原创 基于模型设计的FPGA开发与实现:基本流程(一)之入门小例子(一):跑马灯

2011-10-8 06:44 1548 5 5 分类: EDA/ IP/ 设计与制造

MBD-FPGA 开发与实现 http://blog.sina.com.cn/McCrocodile

这个简单的例子主要说明使用Simulink的MBD-FPGA基本开发流程。你将体会到这种开发解决方案是多么的高效和简单。

  

目的:

实现一个循环点亮的LED灯。

  

模型构建:

  

  1. 实现的基本思路:使用两个计数器,计数器的1在时钟上升沿时加1,计数到255时,输出一个时钟周期的脉冲溢出信号。将此溢出信号作为计数器2的计数控制信号,最后对计数器2的输出信号与常数比较,控制LED的亮和灭。
  2. 构建的仿真模型:

      

      

      

    屏幕剪辑的捕获时间: 2011/10/5 21:31

      

      

      

    屏幕剪辑的捕获时间: 2011/10/5 21:15

      

      

      

    屏幕剪辑的捕获时间: 2011/10/5 21:15

      

  3. 对模型作以下设置:
    1. 设置信号/端口的显示属性:

    2. 设置模型求解器参数:

        

    3. 设置错误报告属性:

        

        

  4. 构建子系统设置各模块的信号属性:
    1. 子系统:选中需要的模块,右键选择构建子系统。
    2. 计数器属性:

        

        

      屏幕剪辑的捕获时间: 2011/10/5 21:36

        

        

        

  5. 生成HDL代码,联合仿真模型以及FPGA工程:
    1. 生成HDL代码:Tools下面的HDL Code Generation中的Options。

        

      设置要生成HDL代码的子系统,选择要生成的语言,以及生成HDL代码的文件夹,设置好这些之后,单击Run Compatibilty Checker检查是否有代码不能生成代码或者有设置不支持。

        

      屏幕剪辑的捕获时间: 2011/10/5 21:46

        

        

      屏幕剪辑的捕获时间: 2011/10/5 21:53

        

      可以看出这里选择的计数器模块不支持生成HDL代码,初学者经常遇到这个问题,在命令行窗口输入:hdllib(还有一个是eml_hdl_design_patterns),里面的模块都可以生成HDL代码,只要找到替换上面的模块就可以了。绿色的为替换后的模型如右侧。

        

      屏幕剪辑的捕获时间: 2011/10/5 22:05

        

        

      屏幕剪辑的捕获时间: 2011/10/5 22:07

        

      可以看出来替换后的仿真结构一致,再来看看检查的结果。

        

      屏幕剪辑的捕获时间: 2011/10/5 22:10

      之后可以单击Generation生成HDL代码,下面是生成的报告。

        

      屏幕剪辑的捕获时间: 2011/10/5 22:10

      好了,这儿生成的代码,你可以集成到你的工程中了。不过时序逻辑,会自动加入时钟复位,时钟使能等端口。

        

        

      屏幕剪辑的捕获时间: 2011/10/5 22:13

      全局设置:对复位形式,高电平还是低电平复位等作设置。

        

      屏幕剪辑的捕获时间: 2011/10/5 22:17

        

        

    2. 生成测试激励和联合仿真模型:

        

        

      屏幕剪辑的捕获时间: 2011/10/5 22:20

        

      单击生成测试激励,生成联合仿真测试模型,如下图。双击Start Simulator模块启动ModelSim,如果你的ModelSim安装正确(ModelSim? SE 6.6c, 6.5f, 6.4g ModelSim PE 6.6c, 6.5f, 6.4g ModelSim DE 6.6c R2011a只支持这几个版本 ),ModelSim将自动启动,并编译HDL文件,最后会显示Ready for Simulation,表示可以开始启动Simulink开始仿真。

        

      屏幕剪辑的捕获时间: 2011/10/5 22:22

      观察结果:可以看得出来ModelSim的仿真结构和Simulink的行为一致。

        

    3. 生成FPGA工程:Tools下面的HDL Code Generation中的HDL Workflow Advisor,这儿的检查更详细些。

        

      屏幕剪辑的捕获时间: 2011/10/5 22:40

      这儿这个FlashLED的程序就可以作为顶层文件,那么直接分配管教之后就可以下载到FPGA就可以工作了,不过你似乎要注意这儿有个时钟时能端口的处理。

    4. FIL (FPGA In Loop):目前只支持Xilinx

      

    思考一问题

    如果你现在要增加灯的数量,你需要修改那些地方就可以了?如果你是写的HDL代码又怎样修改?

      

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
5
关闭 站长推荐上一条 /3 下一条