您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > VHDL-数字秒表设计
通达学院2017/2018学年第一学期课程设计实验报告模块名称VHDL课程设计专业学生班级学生学号学生姓名指导教师设计题目数字秒表设计任务要求(1)计时精度10ms,计时范围0~4分59.99秒;(2)设置启动、停止和复位键控制秒表的工作(3)用数码管实时显示计时结果。设备及软件QuasterⅡ目录一、课程设计目的与要求......................................11.1课程设计目的...................................................11.2基本要求.......................................................1二、设计方案--数字秒表的设计................................12.1设计功能.......................................................12.2秒表基本原理及设计方法.........................................22.3数字秒表设计原理...............................................2三、开发环境................................................3四、模块结构................................................44.1数字秒表RTL级电路.............................................44.2计时器模块.....................................................54.3取数模块.......................................................74.4编码模块.......................................................84.5数码管显示控制模块............................................124.6数码管地址选择模块............................................13五、设计仿真和实验........................................155.1计时器模块仿真................................................155.2秒表仿真......................................................155.3pin引脚接口图................................................165.4实验结果图....................................................17六、总结与体会.............................................196.1错误分析......................................................196.2心得体会......................................................19七、参考文献...............................................201一、课程设计目的与要求1.1课程设计目的《EDA技术综合设计与实践》(注:EDA即电子设计自动化,ElectronicsDesignAutomation)是继《模拟电子技术基础》、《数字电子技术基础》、《电子技术基础实验》、《EDA》等课程后,电子类等专业学生在电子技术实验技能方面综合性质的实验训练课程,是电子技术基础的一个部分,其目的和任务是通过一周的时间,让学生掌握EDA的基本方法,熟悉一种EDA软件(QuartusII),并能利用EDA软件设计一个电子技术综合问题,并在实验板上成功下载,为以后进行工程实际问题的研究打下设计基础。1.2基本要求(1)通过课程设计使学生能熟练掌握一种EDA软件(QuartusII)的使用方法,能熟练进行设计输入、编译、管脚分配、下载等过程。(2)通过课程设计使学生能利用EDA软件(QuartusII)进行至少一个电子技术综合问题的设计(内容可由老师指定或自由选择),设计输入采用VerilogHDL硬件描述语言输入法。(3)通过课程设计使学生初步具有分析、寻找和排除电子电路中常见故障的能力。(4)通过课程设计使学生能独立写出严谨的、有理论根据的、实事求是的、文理通顺的课程设计报告。二、设计方案--数字秒表的设计2.1设计功能(1)计时功能:设计一个秒表,该秒表计时范围为0--59分59秒990毫秒,分辨率为10毫秒(0.01秒)。(2)显示功能:分、秒、毫秒各用2位数码管(共6位数码管)显示。(3)清零,启动计时,暂停及继续计时功能:22.2秒表基本原理及设计方法(1)秒表的基本结构:该秒表有3个输入端,分别为时钟输入(输入时钟为1毫秒)、复位输入和启动/暂停。(2)复位信号高电平有效,可以对整个系统异步清0;当启动/暂停为低电平时秒表开始计时,为高电平时暂停,变低后在原来的数值基础上再计数。(3)百分秒、秒和分钟信号用七段LED显示。(4)“毫秒计数器”采用100进制计数器,每累计1000毫秒(1秒)产生一个“秒脉冲”信号,该信号将作为“秒计数器”的时钟脉冲。“秒计数器”采用60进制计数器,每累计60秒,发出一个“分脉冲”信号,该信号将被送到“分计数器”。“分计数器”采用60进制计时器,可实现对60分钟的累计。2.3数字秒表设计原理数字秒表采用模块化设计:(1)输入信号:基准时钟clk(20MHz),清零端clr(高电平有效),启动/暂停信号en_count(低电平时启动,高电平时暂停)(2)计时器:以10ms为计时分辨率,每10ms产生一个“10毫秒脉冲”信号,每990ms产生一个“秒脉冲”信号,每60秒产生一个“分脉冲”信号;(3)取数模块:对计时器输出的分、秒、十毫秒信号进行逐位取数,变成将在数码管上显示的十进制数;(4)编码模块:将分、秒、十毫秒的十进制数转换成数码管显示的编码;(5)数码管显示控制模块:每隔3ms使能更新不同数码管的数据,6位数码管更新一次共用时18ms,刷新频率大于50HZ,利用人的视觉暂留,好像6位LED是同时点亮的,并不察觉有闪烁现象;(6)数码管地址选择模块:每隔3ms使能点亮不同的数码管,6位数码管一共用时18ms。3三、开发环境开发环境:1、PC机一台2、WindowsXP32位操作系统3、Altera公司的QuartusII9.0软件4、基于CycloneII型EP2C8Q208C8的开发板4四、模块结构4.1数字秒表RTL级电路modulecounter_top(clk,en_count,clr,row_scan_sig,column_scan_sig);inputclk;//inputclock20MHzinputen_count;//startandpauseinputclr;//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;wire[7:0]ms_ten_dis,ms_hun_dis,sec_ten_dis,sec_one_dis,min_ten_dis,min_one_dis;countU0(.clk(clk),.clr(clr),.en_count(en_count),.ms(ms),.sec(sec),.min(min)//output-toU1);number_modU1(.clk(clk),.clr(clr),.en_count(en_count),.ms(ms),.sec(sec),.min(min),//input-fromU0.ms_ten(ms_ten),.ms_hun(ms_hun),//output-toU2.sec_one(sec_one),.sec_ten(sec_ten),//output-toU2.min_one(min_one),.min_ten(min_ten)//output-toU2);encoderU2(.clk(clk),.clr(clr),.en_count(en_count),5.ms_ten(ms_ten),.ms_hun(ms_hun),//input-fromU1.sec_one(sec_one),.sec_ten(sec_ten),//input-fromU1.min_one(min_one),.min_ten(min_ten),//input-fromU1.ms_ten_dis(ms_ten_dis),.ms_hun_dis(ms_hun_dis),//output-toU3.sec_one_dis(sec_one_dis),.sec_ten_dis(sec_ten_dis),//output-toU3.min_one_dis(min_one_dis),.min_ten_dis(min_ten_dis)//output-toU3);row_scanU3(.clk(clk),.clr(clr),.en_count(en_count),.ms_ten_dis(ms_ten_dis),.ms_hun_dis(ms_hun_dis),.sec_one_dis(sec_one_dis),.sec_ten_dis(sec_ten_dis),.min_one_dis(min_one_dis),.min_ten_dis(min_ten_dis),.row_scan_sig(row_scan_sig)//outputoftop//input-fromU2//input-fromU2//input-fromU2);column_scanU4(.clk(clk),.clr(clr),.column_scan_sig(column_scan_sig)//outputoftop);endmodule4.2计时器模块输入信号:基准时钟clk,清零端clr,启动/暂停信号en_count输出信号:分min、秒sec、毫秒msmodulecount(clk,clr,en_count,ms,sec,min);inputclk,clr,en_count;output[7:0]ms,sec,min;reg[17:0]count1;6reg[7:0]r_min,r_sec,r_ms;parameterT10MS=18'd199_999;//parameterT10MS=18'd1;/*setT10MS=18'd1forsimulation*/always@(posedgeclkorposedgeclr)if(clr)count1=18'd0;elseif(count1==T10MS)count1=18'd0;elsecount1=count1+1'b1;always@(posedgeclkorposedgeclr)if(clr)beginr_min=8'd0;r_sec=8'd0;r_ms=8'd0;endelseif(en_count)beginr_min=r_min;r_sec=r_sec;r_ms=r_ms;endelsebeginif(count1==T10MS)beginif(r_ms==8'd99)beginr_ms
本文标题:VHDL-数字秒表设计
链接地址:https://www.777doc.com/doc-6070506 .html