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

 

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

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

要实现的功能:

  • 计时
  • 定时(倒计时)

模型构建:

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

      基于模型设计的FPGA开发与实现:基本流程(一)之入门小例子(二):秒表_第1张图片

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

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

      基于模型设计的FPGA开发与实现:基本流程(一)之入门小例子(二):秒表_第2张图片

    • FSM图表:

      基于模型设计的FPGA开发与实现:基本流程(一)之入门小例子(二):秒表_第3张图片

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

    • MatlabFunction

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

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

基于模型设计的FPGA开发与实现:基本流程(一)之入门小例子(二):秒表_第4张图片

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

思考:

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

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

基于模型设计的FPGA开发与实现:基本流程(一)之入门小例子(二):秒表_第5张图片

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

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

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

你可能感兴趣的:(function,matlab)