钟表系统控制器设计_第1页
钟表系统控制器设计_第2页
钟表系统控制器设计_第3页
钟表系统控制器设计_第4页
钟表系统控制器设计_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

HUBEINORMALUNIVERSITYVerilog课程设计verilogCurriculumDesign所在院系教育信息与技术学院专业名称电子信息工程班级1005题目钟表系统控制器设计指导教师梁赫西成员宋凡完成时间2012.6.12一、 设计任务及要求:设计任务:钟表系统控制器设计。要求:设计一个24小时计数系统的控制器.计时功能:每隔一分钟计时一次,并在显示屏上显示当前时间•设置新的计时时间:通过数字键“0”~“9”输入新的时间,然后按“time”键确认.利用modelsim、quartusii仿真综合.指导教师签名: 2012年6月12日二、 指导教师评语:指导教师签名: 2012年6月12日三、成绩验收盖章2012年6月12日钟表系统控制器设计摘要:本系统由分频器、计数器、译码器、译码器和校分电路组成,采用了中小规模集成芯片。总体方案设计由主体电路和扩展电路两大部分组成。其中主体电路完成数字钟的基本功能,扩展电路完成数字计时器的扩展功能,进行了各单元设计,总体调试。多功能数字计时器可以完成0分00秒-9分59秒的计时功能,并在控制电路的作用下具有清零,调时,快进的功能。数字钟的主体是计数器,它记录并显示接收到的秒脉冲个数,其中秒和分为模60计数器小时是模24计数器分别产生3位BCD码.BCD码经译码驱动后接数码管现实电路.关键词:FPGA;VerilogHDL;QuartusII;Verilog;modelsim设计要求与思路1.1设计要求设计一个24小时计数系统的控制器.计时功能:每隔一分钟计时一次,并在显示屏上显示当前时间.设置新的计时时间:通过数字键“0”~“9”输入新的时间,然后按“time”键确认.利用modelsim、quartusii仿真综合.1.2设计思路绘制设计思路表格,及转换状态图,如表一、图1所示。表一钟表系统控制器转换表类别转换所需时间显示时间秒1s1s分钟60s1m小时60m1h钟表系统的控制以时间的转化,与积累的过程设计而成!60s转换成lm,60m转换成1h。图1全部状态转移示意图1.3系统设计框图系统主要分三个模块实现,分别是分频模块、计数模块、译码显示模块。分频模块用来提供计时电路工作时钟(1HZ)和数码管动态显示的扫描频率(200HZ—500HZ),计数模块是对1s信号源进行秒、段选来实现对译码后的计时信号进行动态显示图2系统设计图详细模块设计2.1分频模块设计分频模块用于为系统的实现提供稳定的工作频率和计时信号源,要求产生两路不同频率的信号,分频为1HZ频率的信号作为计时模块的信号源,200HZ的信号用于数码管动态显示的扫描频率。定义变量并根据需要得到的分频信号设定计数值,对该变量进行加或减计数,每到达一次计数值点,将该变量清零或重置,并且对输出信号取一次反,即可以得到所需的分频信号。moduleclkgen(clock,clkdiv,clk500);inputclock;outputclkdiv;outputclk500;reg[31:0]counter1;regclkdiv;regclk500;reg[31:0]counter0;parameterC_COUNT0=25'd500_00_000;〃变量0用于产生1HZ的信号parameterC_C0UNT1=25'd100_000;〃变量1用于产生500HZ的信号/********产生1HZ频率的信号always@(posedgeclock)beginif(counter0==0)begincounter0<=C_COUNT0;clkdiv<=~clkdiv;endelsecounte0<=counter0-1;end/********产生500HZ频率的信号always@(posedgeclock)beginif(counter1==0)begincounter1<=C_COUNT1;clk500<=~clk500;endelsecounter1<=counter1-1;endendmodule仿真波形以4,分频8分频为例图3分频仿真图2.2计时模块设计

◊◊◊二模块功能为正常计时,即每秒钟读一次数,秒表加1,秒计时满60进1给分计时,分计时满60进1给小时计时,小时计时满24清零。从功能上讲分别为模60计数器,模60计数器和模24◊◊◊二一电路功能分析有三个计时器电路组成秒针进行60进制计数分针进行60进制计数小时进行24进制计数是是否复位否是否秒计数s是否达到最秒计数器s置0想分计数器输出高脉冲是是否复位否是否秒计数s是否达到最秒计数器s置0想分计数器输出高脉冲S_carry复位信号rst或输入信号上升沿触发clk秒计数器s加1图4秒计数流程图⑵ 复位信号clkdiv或进位信号s_carry上升沿触发At为1正常计时控制信号atat为0否是否复位否分计数m

是否达到校时启动是想分计数器输出高脉冲m_carryAt为1正常计时控制信号atat为0否是否复位否分计数m

是否达到校时启动是想分计数器输出高脉冲m_carry制时分m为0m置0是秒计数器把change信号赋给minute分计数器分计数器m加1⑶时计数图5⑶时计数图5分计数流程图图6时计数流程图仿真图形如下modulejishu24(clk,clear,second,s_carry,minute,m_carry,hour,sL,sH,mL,mH,hL,hH);inputclk,clear;output[5:0]second,minute;output[4:0]hour;outputs_carry,m_carry;outputsL,sH,mL,mH,hL,hH;regs_carry,m_carry;reg[5:0]second,minute;reg[4:0]hour;regsL,sH,mL,mH,hL,hH;always@(posedgeclkorclear)if(clear)second<=0;elseif(second!=6'b111011)beginsecond<=second+1;s_carry<=0;endelsebeginsecond<=0;s_carry<=1;endalways@(posedges_carryorclear)if(clear)minute<=0;elseif(minute!=6'b111011)beginminute<=minute+1;m_carry<=0;endelsebeginminute<=0;m_carry<=1;endalways@(posedgem_carryorclear)if(clear)hour<=0;elseif(hour!=5'b10111)beginhour<=hour+1;endelsebeginhour<=0;endalways@(posedgesecond)beginsL<=second%10;sH<=second/10;endalways@(posedgeminute)beginmL<=minute%10;mH<=minute/10;endalways@(posedgehour)beginhL<=hour%10;hH<=hour/10;endendmodule图7计时仿真图2.3数码管显示模块设计译码显示模块采用的是数码管的动态扫描方式,定义变量COM来控制数码管显示的位选信号(通过变量Uweixuan来给数码管的各个位选位送出低电平信号)。由于试验箱上的八个数码管是每四个的位选端连接在一起,分为两组数码管,所以定义两个变量show_temp_H和show_temp_L来分别控制两组数码管,该变量决

定了哪个数码管显示哪个信号,再根据这两个变量判断显示的是哪一组数码管,确定之后通过送入的数据利用变量HIGH和LOW控制数码管的段选信号完成译码显示工作。图8数码管显示设计流程图moduledecode(clk500,reset,hH,hL,mH,mL,sH,sL,HIGH,LOW,COM);inputclk500;inputreset;inputhH,hL;〃小时的高、低位信号inputmH,mL;//分钟的高、低位信号inputsH,sL;〃秒的高、低位信号output[6:0]HIGH,LOW;〃分别控制两组数码管的段选信号output[7:0]COM;//控制数码管的位选信号reg[7:0]show_temp_H,show_temp_L;〃定义的内部变量,决定数码管上显示的信号reg[7:0]COM;reg[7:0]Uweixuan;〃通过控制COM变量给数码管的位选位送出高低电平reg[2:0]sm;//扫描变量reg[6:0]HIGH;//控制高四位数码管的段选信号reg[6:0]LOW;//控制低四位数码管的段选信号always@(posedgeclk500)beginif(sm==3'b111)sm<=3'b000;elsesm<=sm+3'b001;Uweixuan<=Uweixuan<<1;//通过对变量的左移操作依次给数码管的位选位送高电平if(Uweixuan==8'b0000_0000)Uweixuan<=8'b0000_0001;//给Uweixuan变量设定的初值COM=~Uweixuan;//共阴极数码管显示的位选信号应为低电平,故对Uweixuan变量进行取反操作endalways@(clk500)begincase(COM)8'b1111_1110:show_temp_H=sL;//最低位的数码管用于显示秒信号的低位8'b1111_1101:show_temp_H=sH;8'b1111_1011:show_temp_H=4'b1010;8'b1111_0111:show_temp_H=mL;8'b1110_1111:show_temp_L=mH;8'b1101_1111:show_temp_L=4'b1010;8'b1011_1111:show_temp_L=hL;8'b0111_1111:show_temp_L=hH;//最高位的数码管用于显示小时信号的高位endcaseendalways@(show_temp_H)〃高四位的数码管显示begincase(show_temp_H)4'b0000:HIGH=7'b011_1111;4'b0001:HIGH=7'b000_0110;4'b0010:HIGH=7'b101_1011;4'b0011:HIGH=7'b100_1111;4'b0100:HIGH=7'b110_0110;4'b0101:HIGH=7'b110_1101;4'b0110:HIGH=7'b111_1101;4'b0111:HIGH=7'b000_0111;4'b1000:HIGH=7'b111_1111;4'b1001:HIGH=7'b110_1111;4'b1010:HIGH=7'b100_0000;defaultHIGH=7'b000_0000;endcaseendalways@(show_temp_L)〃低四位的数码管显示begincase(show_temp_L)4'b0000:LOW=7'b011_1111;4'b0001:LOW=7'b000_0110;4'b0010:LOW=7'b101_1011;4'b0011:LOW=7'b100_1111;4'b0100:LOW=7'b110_0110;4'b0101:LOW=7'b110_1101;4'b0110:LOW=7'b111_1101;4'b0111:LOW=7'b000_0111;4'b1000:LOW=7'b111_1111;4'b1001:LOW=7'b110_1111;4'b1010:LOW=7'b100_0000;defaultLOW=7'b000_0000;endcaseendendmodule仿真图伽酬IGH1111001111...IhiiiiooiIIKilnooint工"Imupoi伽2/L0训11110011111001IIpiuooi|DOOEHlooELUL/Vm2/C0M11111111ooqIIIpI11II屮!Monof工□ncjrz/Vm2/show_tEmp_H00000001000...IhjOOOOOOOlIIMoooooi1工-foOOOffiOOlFt/ni2/shQW_tEEp_L000000010000000JI1.itoooooool■UULMooooiLUL/Vm2/Uweixuan00000001■■■■■■■■图9显示仿真图2.4.顶层文件设计本实验设计最终是要显示小时,而小时需要秒、分的积累而成,首先是以秒显示,进行到60秒时跳变为1分,进行到60分时跳变为1时,进而进行到24时顶层文件原理图如图所示

图10始终控制系统的顶层文件原理图功能仿真与测试图11是总程序的仿真图图11QUARTUSII仿真结果示意图4.结论Verilog是硬件描述语言的一种,用于数字电子系统设计。本课程实验设计运用综合的相关知识来设计最终的程序来得以仿真成功。实验运用了四个模块,经过多次仿真才得到所需要的仿真图。通过本实验的学习,对Verilog有了确切的认识,达到能够设计简单程序的水平。为以后相关的知识学习打下了良好的基础。参考文献【1】夏宇闻.《verilog数字系统设计教程》第二版.北京航空航天大学出版社.2006.01【2】康华光《电子技术基础》第五版高等教育出版社【3】马淑华高原《电子设计自动化》北京邮电大学出版社附录:程序源代码1.源程序moduleclkgen(clock,clkdiv,clk500);inputclock;outputclkdiv;outputclk500;reg[31:0]counter1;regclkdiv;regclk500;reg[31:0]counter0;parameterC_COUNT0=25'd500_00_000;parameterC_COUNT1=25'd100_000;//always@(posedgeclock)beginif(counter0==0)begincounter0<=C_COUNT0;clkdiv<=~clkdiv;endelsecounte0<=counter0-1;endalways@(posedgeclock)beginif(counter1==0)begincounter1<=C_COUNT1;clk500<=~clk500;endelsecounter1<=counter1-1;endendmodulemodulejishu24(clk,clear,second,s_carry,minute,m_carry,hour,sL,sH,mL,mH,hL,hH);inputclk,clear;output[5:0]second,minute;output[4:0]hour;outputs_carry,m_carry;outputsL,sH,mL,mH,hL,hH;regs_carry,m_carry;reg[5:0]second,minute;reg[4:0]hour;regsL,sH,mL,mH,hL,hH;always@(posedgeclkorclear)if(clear)second<=0;elseif(second!=6'b111011)beginsecond<=second+1;s_carry<=0;endelsebeginsecond<=0;s_carry<=1;endalways@(posedges_carryorclear)if(clear)minute<=0;elseif(minute!=6'b111011)beginminute<=minute+1;m_carry<=0;endelsebeginminute<=0;m_carry<=1;endalways@(posedgem_carryorclear)if(clear)hour<=0;elseif(hour!=5'b10111)beginhour<=hour+1;endelsebeginhour<=0;endalways@(posedgesecond)beginsL<=second%10;sH<=second/10;endalways@(posedgeminute)beginmL<=minute%10;mH<=minute/10;endalways@(posedgehour)beginhL<=hour%10;hH<=hour/10;endendmodulemoduledecode(clk500,reset,hH,hL,mH,mL,sH,sL,HIGH,LOW,COM);inputclk500;inputreset;inputhH,hL;inputmH,mL;inputsH,sL;output[6:0]HIGH,LOW;output[7:0]COM;reg[7:0]show_temp_H,show_temp_L;reg[7:0]COM;reg[7:0]Uweixuan;reg[2:0]sm;reg[6:0]HIGH;reg[6:0]LOW;always@(posedgeclk200)beginif(sm==3'b111)sm<=3'b000;elsesm<=sm+3'b001;Uweixuan<=Uweixuan<<1;if(Uweixuan==8'b0000_0000)Uweixuan<=8'b0000_0001;/COM=~Uweixuan;endalways@(clk500)begincase(COM)8'b1111_1110:show_temp_H=sL;8'b1111_1101:show_temp_H=sH;8'b1111_1011:show_temp_H=4'b1010;8'b1111_0111:show_temp_H=mL;8'b1110_1111:show_temp_L=mH;8'b1101_1111:show_temp_L=4'b1010;8'b1011_1111:show_temp_L=hL;8'b0111_1111:show_temp_L=hH;endcaseendalways@(show_temp_H)begincase(show_temp_H)4'b0000:HIGH=7'b011_1111;4'b0001:HIGH=7'b000_0110;4'b0010:HIGH=7'b101_1011;4'b0011:HIGH=7'b100_1111;4'b0100:HIGH=7'b110_0110;4'b0101:HIGH=7'b110_1101;4'b0110:HIGH=7'b111_1101;4'b0111:HIGH=7'b000_0111;4'b1000:HIGH=7'b111_1111;4'b1001:HIGH=7'b110_1111;4'b1010:HIGH=7'b100_0000;defaultHIGH=7'b000_0000;endcaseendalways@(show_temp_L)begincase(show_temp_L)4'b0000:LOW=7'b011_1111;4'b0001:LOW=7'

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论