FPGA嵌入式系统开发与实例PPT课件(共6章)第5章基于Vivado的FPGA设计案例.pptxVIP

FPGA嵌入式系统开发与实例PPT课件(共6章)第5章基于Vivado的FPGA设计案例.pptx

  1. 1、本文档共298页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章 基于Vivado的FPGA设计案例; 5.1 流 水 灯 设 计; 5.1.2 设计方案   根据设计的功能要求,每次亮的灯向左或向右移动一位,所以可以通过设计一个控制器使输出信号向左或向右移位来实现。又因为LED灯亮灭移动的时间间隔为1?s,因此控制器的时钟信号频率应为1?Hz。而开发板提供的默认时钟频率为100 MHz,因此首先需要一个分频器,以得到频率为1?Hz的信号,然后以频率1?Hz的信号作为控制器的时钟,控制16位的输出信号每次向左或向右移位。按键RESET作为复位信号,按下后LED灯从最右端D16开始依次序亮灭。系统组成框图如图5-1所示。;; 5.1.3 系统设计   1. 计数器   本模块分频器的设计采用两个计数器相乘的方法实现。设计中输入时钟信号为100 MHz。若用一个计数器,计数值将会非常庞大,因此采用两个14位的计数器cnt_first、cnt_second共同完成。每个计数器的计数范围为1~10 000。;;   2. 控制器   根据设计要求,sw0信号的值控制led[15:0]值变化。因此可以设计一个控制器,当sw0值为零时,led[15:0]值以计数器输出的clk_bps为频率每次向左移一位,即LED灯向左移动一位;sw0值为1时,led值按相同频率每次向右移动一位,即LED灯向右移动一位。;;;   3. 顶层模块   将上述两个模块综合在一起,即构成了顶层模块,如图5-2所示。在该模块中,分别调用counter和flash_led_ctl模块实现流水灯功能。;;;   4. 引脚分配   完成各模块设计后,还需进行引脚分配。引脚分配是将实现设计的输入输出端口与对应的实际芯片的输入输出端口进行连接。;;; 5.1.4 系统仿真   设置仿真模块时间单位为1 ps,则LED灯移动的单位时间为1 ms,初始条件下sw0为低电平,6 ms后将sw0变为高电平,即6 ms后改变LED灯的移动方向。使整个系统在输入条件下进行仿真,输出仿真波形,观察波形是否符合预期结果。;   1. 仿真文件的编写;;   2. 执行仿真   打开仿真工具Simulation,点击运行后执行仿真,输出的仿真波形如图5-3所示。;;   3. 波形分析   由仿真波形可以看出,初始条件下LED灯从最左端led[15]开始向右移动,6 ms后移动??led[10],然后改变位移方向向左移动,12 ms后移动至led[15]。仿真波形与预期结果一致。; 5.1.5 系统测试   完成设计后,进行整体的编译、综合、锁定管脚、适配,生成可编程文件,最后下载至FPGA开发板。程序下载到开发板上后,进行设计的最后环节,即测试验证是否达到设计要求。如图5-4所示,观察开发板上的16个LED灯,可以看出该设计达到实验要求。;; 5.2 智 力 抢 答 器; 5.2.2 设计方案   抢答器是一个典型的异步时序逻辑电路,按照实验要求,有四个选手抢答,清零由倒计时结束或主持人控制。当主持人按下开始按钮后,选手可以开始抢答,最先按下按钮的选手被选中,与之对应的数码管开始显示倒计时,在倒计时结束时或主持人按下清零按钮后,系统的状态恢复到初始状态,数码管显示清零。; 5.2.3 系统设计   1. 按键检测模块   按键检测模块用于监测抢答环节,当抢答开始后,监测第一个按下按键的选手,并屏蔽后面按下按键的选手。当有选手按下按键时,锁存器锁存第一个按下按键的选手的编号,并在与之对应的数码管上显示数字倒计时。   btn[3:0]分别连接4个选手的抢答按键,rst连接清零按键,当抢答开始并有选手按下抢答按键时,state[3]~state[0]输出抢中选手的四位二进制编码。;;;   2. 抢答显示模块   在这个系统中,需要用数码管显示抢中选手所对应的倒计时,四位二进制编码用来控制要点亮的数码管。   四位二进制编码由四位数据state[3]~state[0]输入,cnt_down_over用于控制在倒计时结束时熄灭数码管。   为了实现译码功能,实例中使用了一个case分支表。根据输入的四位二进制代码,选择点亮与之对应的数码管。;;;   3. 抢答计时模块   每个选手对应一个数码管,当选手抢中后,该选手对应的数码管开始倒计时,时间限制为10 s。;;;;   4. 顶层模块   顶层模块用于将系统中各个子模块连接起来,形成一个完整的系统,并引出与外围电路的连接端口。该模块的逻辑框图如图5-5所示。;;;;   图5-6所示为Smart_responder.v文件编译后的RTL原理图。;   5. 引脚分配   完成各模块设计后,还需进行引脚分配工作。引脚分配用于将实现设计的输入输出端口与对应的实际芯片的输入输出端口相连接。;; 5.

文档评论(0)

139****1983 + 关注
实名认证
文档贡献者

副教授、一级建造师持证人

从事职业教育近20年,高级职称。

领域认证该用户于2023年06月21日上传了副教授、一级建造师

1亿VIP精品文档

相关文档