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

2011-10-12 06:23 1155 4 4 分类: EDA/ IP/ 设计与制造

这个例子是演示在Simulink环境下借助Stateflow设计一个FSM是多简单的事情,即使生成HDL代码也轻而易举。同事还将Matlab Function如何用在Simulink中生成HDL代码做了介绍。

  

要实现的功能:

  • 计时
  • 定时(倒计时)

      

模型构建:

  

  • 实现思路:设计一个状态机控制计数器,如置数,增计数,减计数,复位;设计一个真值表完成数码管的显示译码。
  • 仿真模型构建:
    • 框图:

        

      屏幕剪辑的捕获时间: 2011/10/11 20:13

        

    • 使用到的主要模块:Stateflow设计状态机,LUT实现查表,计数器
    • 建模说明:外部有两个按键上升沿除法,状态机控制计数器,计数器的输出为
  • 对模型设置:
    • 对Stateflow设置

        

        

    • FSM图表:

        

        

      屏幕剪辑的捕获时间: 2011/10/11 20:15

        

    • MatlabFunction

        

        

      屏幕剪辑的捕获时间: 2011/10/11 20:17

        

        

对模型定点化之后就可,就可以生成代码。这里具体设置可以自行查看源文件,在我的SkyDrive(博客首页有地址)可以下载到。如何生成代码就是后面介绍基本开发流程的重点,学习完后面你就都会了。你可以现在就去看看Matlab的帮助额。

  

  

屏幕剪辑的捕获时间: 2011/10/11 21:32

  

思考:

这儿计数器的是每个始终周期加1,开发板的系统时钟是50MHz,那如何以秒为单位计时?

  

  

  

  

  

一种方案:首先通过PLL得到1KHz的时钟,在对模型修改,使用两个计时器,修改模型如下。

  

  

屏幕剪辑的捕获时间: 2011/10/11 21:52

  

从上面的可以看出,MBD FPGA开发的维护是要比修改HDL代码简单多了。可维护性优势明显!!!只不过这儿的这个问题应该在前面就解决的~~~~~~~~

最好在思考如何修改为可以计时到分钟的~~~~~

PARTNER CONTENT

文章评论0条评论)

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