- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计数器类时序逻辑设计4
实验内容 设计实验项目二 电子琴与记谱器设计(1~7) 设计实验项目三 简单计算器设计(8~14) 设计实验项目四 图片的VGA显示(15~21) 设计实验项目五 语音频谱分析与处理(22~33) 有特别创意的同学可以特别提出项目申请 验收要求 实验报告 实验项目 算法原理、源码、仿真、仿真方案、管脚约束、资源情况、下载验证; 1 电子线路设计、测试与实验 华中科技大学电子与信息工程系 汪小燕 wxyeclab@126.com 2013.8.26 HUAZHONG UNIVERSITY OF SCIENCE AND TECHNOLOGY 实验内容 计数类应用项目实现(含清零、暂停等装置) 十进制加减可逆计数器设计 篮球竞赛24秒倒计数定时器设计 电子秒表 多功能电子钟 一、实验目的 掌握基于FPGA的简单时序逻辑的设计实现方法 掌握数字电路的层次化设计方法 初步了解基于FPGA的复杂数字系统的设计实现方法 层次化、模块化设计方法 为什么要采用层次化、模块化设计方法 对于复杂系统-----“分而治之” 方便设计---使设计课题进一步细化, 明确各层次、各模块目标, 条理清晰; 方便调试---使设计中出现的问题在模块级就能发现, 及时处理 方便维护---模块化、层次化维护与修理 方便管理 方便后续开发与更新---拓展、继承、移植 为什么要采用层次化、模块化设计方法? 对于一个复杂的数字系统, 运用层次化设计方法, 使设计课题进一步细化, 分块设计, 条理清晰。另外, 在调试时可采用逆向调试方式, 即从模块调试向总体调试方向开展调试工作, 使设计中出现的问题在模块级就能发现, 及时处理, 这样就会使一个复杂的设计变得容易调试, 缩短了设计时间。 如何采用层次化设计方法? 自顶向下 自顶向下---先设计顶层总框图, 该框图由若干个具有特定功能的源模块组成。下一步针对这些具有不同功能的模块进行设计, 对于有些功能复杂的模块, 还可以将该模块继续化分为若干个功能子模块, 这样就形成模块套模块的层次化设计方法。 自底向上 三、层次化设计方法 高层次设计是一种“自顶向下”的全新设计方法,这种设计方法首先从系统设计入手,在顶层进行功能方框图的划分和结构设计。 由于设计的主要仿真和调试过程是在高层次上完成的,这既有利于早期发现结构设计上的错误,避免设计工作的浪费,又减少了逻辑功能仿真的工作量,提高了设计的一次成功率。 四、模64计数器实现举例 层次化设计举例-64进制计数器 module cnt64(input clk, input reset, output clk190, output [5:0] cntout); reg [29:0] counter; always @(posedge clk) begin if (reset) counter = 0; else counter = counter + 1; end //assign led_out = counter[5:0]; //仿真时将counter的低4位传给led_out以提高频率,加快仿真速度 assign cntout = counter[29:24]; //做完仿真后将counter的高4位传给led_out以降低频率,看到led闪烁 assign clk190 = counter[17]; endmodule 二进制转BCD码模块 module binbcd8(input [7:0] b, output reg [9:0] p); reg [17:0]z; integer i; always @(*) begin for (i=0; i=17; i =i+1) z[i]=0; z[10:3] = b; // shift b left 3 places repeat(5) begin if(z[11:8]4) //如果个位大于4 z[11:8] = z[11:8]+3; //加3 if(z[15:12]4) //如果十位大于4 z[15:12] = z[15:12]+3; //加3 z[17:1] = z[16:0]; //左移1位 end p = z[17:8]; end endmodule 数码管扫描显示模块 //输入时钟信号cclk频率应为190Hz module x7segbc(input [15:0] x, input clk190, input clr, output reg [6:0] a_to_g, output re
文档评论(0)