ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:328.61KB ,
资源ID:20598639      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20598639.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(VHDL数字秒表设计Word文档下载推荐.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

VHDL数字秒表设计Word文档下载推荐.docx

1、数字秒表采用模块化设计:(1)输入信号:基准时钟 clk (20MHz),清零端 clr(高电平有效),启动/暂停信号 en_count(低电平时启动,高电平时暂停)(2)计时器:以 10ms 为计时分辨率,每 10ms 产生一个“10 毫秒脉冲”信号,每 990ms 产生一个“秒脉冲”信号,每 60 秒产生一个“分脉冲”信号;(3)取数模块:对计时器输出的分、秒、十毫秒信号进行逐位取数,变成将在数码管上显示的十进制数;(4)编码模块:将分、秒、十毫秒的十进制数转换成数码管显示的编码;(5)数码管显示控制模块:每隔 3ms 使能更新不同数码管的数据,6 位数码管更新一次共用时 18ms,刷新频

2、率大于 50HZ,利用人的视觉暂留,好像 6 位 LED 是同时点亮的,并不察觉有闪烁现象;(6)数码管地址选择模块:每隔 3ms 使能点亮不同的数码管,6 位数码管一共用时 18ms。三、开发环境开发环境:1、PC 机一台2、Windows XP 32 位操作系统3、Altera 公司的 Quartus II 9.0 软件4、基于 Cyclone II 型 EP2C8Q208C8 的开发板四、模块结构4.1 数字秒表RTL级电路module counter_top(clk,en_count,clr,row_scan_sig,column_scan_sig);input clk; /input

3、 clock 20MHzinput en_count; /start and pauseinput clr; /clearoutput 7:0 row_scan_sig; output 5:0 column_scan_sig;wire 7:0 ms,sec,min;wire 3:0 ms_hun,ms_ten,sec_ten,sec_one,min_ten,min_one;0 ms_ten_dis,ms_hun_dis,sec_ten_dis,sec_one_dis,min_ten_dis,min_one_dis;count U0(.clk(clk),.clr(clr),.en_count(e

4、n_count),.ms(ms),.sec(sec),.min(min) / output - to U1);number_mod U1.ms(ms),.sec(sec),.min(min), / input - from U0.ms_ten(ms_ten),.ms_hun(ms_hun), / output - to U2.sec_one(sec_one),.sec_ten(sec_ten), / output - to U2.min_one(min_one),.min_ten(min_ten) / output - to U2encoder U2.ms_ten(ms_ten),.ms_hu

5、n(ms_hun),/ input - from U1.sec_one(sec_one),.sec_ten(sec_ten),.min_one(min_one),.min_ten(min_ten),.ms_ten_dis(ms_ten_dis),.ms_hun_dis(ms_hun_dis),/ output - to U3.sec_one_dis(sec_one_dis),.sec_ten_dis(sec_ten_dis),.min_one_dis(min_one_dis),.min_ten_dis(min_ten_dis) / output - to U3row_scan U3.min_o

6、ne_dis(min_one_dis),.min_ten_dis(min_ten_dis),.row_scan_sig(row_scan_sig) / output of top/input - from U2column_scan U4.clk(clk),.clr(clr),.column_scan_sig( column_scan_sig ) / output of top endmodule4.2 计时器模块输入信号:基准时钟 clk,清零端 clr,启动/暂停信号 en_count输出信号:分 min、秒 sec、毫秒 msmodule count(clk,clr,en_count,m

7、s,sec,min);input clk,clr,en_count; output 7:reg 17:0count1;reg 7:0 r_min,r_sec,r_ms;parameter T10MS = 18d199_999;/parameter T10MS = 18d1;/*set T10MS = 18d1 for simulation */always ( posedge clk or posedge clr ) if( clr )count1 = 18d0;else if( count1 = T10MS ) count1 else= count1 + 1b1;beginr_min = 8

8、 r_sec r_ms endelse if(en_count) begin= r_min;= r_sec;= r_ms;end elseif(count1 = T10MS) beginif(r_ms = 8d99) beginr_ms if(r_sec = 8d59)r_sec if(r_min = 8 else= r_min + 1= r_sec + 1= r_ms + 1assign ms = r_ms;assign sec = r_sec; assign min = r_min;endmodule4.3 取数模块基准时钟 clk,清零端 clr,启动/暂停信号 en_count,分 m

9、in、秒 sec、毫秒 ms毫秒的十位 ms_ten、毫秒的百位 ms_hun、秒的个位 sec_one、秒的十位 sec_ten、分的个位 min_one、分的十位 min_tenmodule number_modclk,clr,en_count,ms,sec,min, ms_ten,ms_hun,sec_one,sec_ten,min_one,min_ten input 7:output 3:/*/reg 31:0r_ms_hun,r_ms_ten,r_sec_ten,r_sec_one,r_min_ten,r_min_one; /*在 quartus II 9.0 版本中,“除法器”可以

10、自己定义。在更高级的版本中,默认下“除法器”和“求余器”是 32 位输出。但是经过“编译”过后,编译器会“自动优化”最适合的位宽*/r_ms_ten = 32 r_ms_hun else if( en_count ) begin= r_ms_ten;r_ms_hun = r_ms_hun;= ms % 10;= ms / 10;r_sec_one r_sec_ten = r_sec_one;= r_sec_ten;= sec % 10;= sec / 10;r_min_one r_min_ten = r_min_one;= r_min_ten;= min % 10;= min / 10;end

11、 /*/assign ms_ten = r_ms_ten3:0;assign ms_hun = r_ms_hun3:assign sec_one = r_sec_one3:assign sec_ten = r_sec_ten3:assign min_one = r_min_one3:assign min_ten = r_min_ten3:/*/4.4 编码模块基准时钟 clk,清零端 clr,启动/暂停信号 en_count,毫秒的十位 ms_ten、毫秒的百位ms_hun、秒的个位 sec_one、秒的十位 sec_ten、分的个位 min_one、分的十位 min_ten毫秒的十位编码 m

12、s_ten_dis、毫秒的百位编码 ms_hun_dis、秒的个位编码 sec_one_dis、秒的十位编码 sec_ten_dis、分的个位编码 min_one_dis、分的十位编码 min_ten_dismodule encoderclk,clr,en_count, ms_ten,ms_hun,ms_ten_dis,ms_hun_dis, sec_one,sec_ten,sec_one_dis,sec_ten_dis, min_one,min_ten,min_one_dis,min_ten_disinput 3:0 ms_ten,ms_hun,sec_ten,sec_one,min_ten

13、,min_one;/* 不带小数点的数码管显示 */parameter _0 = 8b1100_0000, _1 = 8b1111_1001, _2 = 8b1010_0100, _3 = 8b1011_0000, _4 = 8b1001_1001, _5 = 8b1001_0010, _6 = 8b1000_0010, _7 = 8b1111_1000, _8 = 8b1000_0000, _9 = 8b1001_0000;/* 带小数点的数码管显示 */parameter _0_ = 8b0100_0000, _1_ = 8b0111_1001, _2_ = 8b0010_0100, _3

14、_ = 8b0011_0000, _4_ = 8b0001_1001, _5_ = 8b0001_0010, _6_ = 8b0000_0010, _7_ = 8b0111_1000, _8_ = 8b0000_0000, _9_ = 8b0001_0000;/*/0r_ms_ten_dis;r_ms_ten_dis = _0; else if( en_count )= r_ms_ten_dis;case(ms_ten)4d0 : r_ms_ten_dis d1 := _1;d2 := _2;d3 := _3;d4 := _4;d5 := _5;d6 := _6;d7 := _7;d8 :=

15、_8;d9 := _9; endcase/*/0r_ms_hun_dis;always (posedge clk or posedge clr) if( clr )r_ms_hun_dis = r_ms_hun_dis;case(ms_hun) r_ms_hun_dis 0r_sec_one_dis;r_sec_one_dis = _0_;= r_sec_one_dis;case(sec_one) r_sec_one_dis = _1_;= _2_;= _3_;= _4_;= _5_;= _6_;= _7_;= _8_;= _9_;/*/ reg 7:0r_sec_ten_dis;r_sec_ten_dis = r_sec_ten_dis;case(sec_ten) r_sec_ten_dis 0r_min_one_dis;r_min_one_dis = r_min_one_dis;case(min_one) r_min_one_dis 0r_min_ten_dis;r_min_ten_dis = r_min_ten_dis;case(min_ten) r_min_ten_dis d

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1