VerilogHDL语言四位数字频率计课程设计_第1页
VerilogHDL语言四位数字频率计课程设计_第2页
VerilogHDL语言四位数字频率计课程设计_第3页
VerilogHDL语言四位数字频率计课程设计_第4页
VerilogHDL语言四位数字频率计课程设计_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

年4月19日VerilogHDL语言四位数字频率计课程设计文档仅供参考1、设计目的和要求1、设计一个4位十进制数字频率计。2、测量范围1~9999Hz,采用4位数码管显示,有溢出指示。3、量程有1KHz,1MHz两档,用LED灯指示。4、读数大于9999时,频率计处于超量程状态,发出溢出指示,下次量程,量程自动增大一档。5、读数小时,频率计处于前量程状态,下次测量,量程自动减小一档。6、采用记忆显示方式,在计数与显示电路中间加以锁存电路,每次计数结束,将计数结果送锁存器锁存,并保持到下一个计数结束。2、设计原理1、基本原理频率测量的基本原理是计算每秒钟内待测信号的脉冲个数。这就要求sysclk能产生一个1s脉宽的周期信号,并对频率计的每一个计数器cntp的使能端进行同步控制。当clK_cnt高电平时允许计数,并保持其所计的数。在停止计数期间,首先需要一个锁存信号将计数器在前1s的计数值锁存进锁存器reg中,并由外部的7段译码器译出并稳定显示。原理图如图1-1脉冲形成模块计数模块译码模块脉冲形成模块计数模块译码模块控制模块分频模块量程切换模块被测信号锁存清零使能基准信号2、模块原理根据数字频率计的基本原理,本文设计方案的基本思想是分为五个模块来实现其功能,即整个数字频率计系统分为分频模块、控制模块、计数模块、译码模块和量程自动切换模块等几个单元,而且分别用VHDL对其进行编程,实现了闸门控制信号、计数电路、锁存电路、显示电路等。3、设计内容1、分频模块由于晶体振荡器提供的为50MHz的时钟,而在整个频率计里将用到周期为2s,半个周期为1s的闸门信号,因此我们在此模块先分频产生0.5Hz的分频信号。always@(posedgesysclk)begin if(cnt==26’b10_1111_1010_1111_0000_1000_0000) beginclk_cnt<=~clk_cnt;cnt<=0;end else begincnt<=cnt+1;endend二进制的26’b10_1111_1010_1111_0000_1000_0000,即为十进制的50x10^7,由程序中的clk_cnt<=~clk_cnt;cnt<=0;得知会产生我们想要的周期为2s的clk_int信号。仿真结果如图1-2.图1-22、4位十进制计数器模块4位十进制计数器模块包含4位十进制的计数器,用来对施加到时钟脉冲输入端的待测信号产生的脉冲进行计数,十进制计数器具有清零控制和进位扩展输出的功能。always@(posedgeclkint)begin if(clk_cnt) begin if(cntp1==’b1001) begincntp1<=’b0000;cntp2<=cntp2+1; if(cntp2==’b1001) begincntp2<=’b0000;cntp3<=cntp3+1; if(cntp3==’b1001) begincntp3<=’b0000;cntp4<=cntp4+1; if(cntp4==’b1001) begincntp4<=’b0000;led=1;本程序采用的是以累加的方法结合巧妙地if语句进行四重循环,实现四位十进制不同的高低级别,实现计数。一位十进制原理图仿真如图1-3。图1-3四位十进制原理图仿真如图1-4。图1-43、锁存模块如果计数器输出直接与译码器相连接,那么在计数过程中输出端则随输入脉冲数的增加而不断跳变,那么显示数码管则也会不断闪烁跳变,让人不能看到稳定的输出,设锁存器后,则不再跳变,便可清晰读出计数结果。其生成的功能模块如图所示:if(cntp1!=’b0000|cntp2!=’b0000|cntp3!=’b0000|cntp4!=’b0000)begincntq1<=cntp1;cntq2<=cntp2;cntq3<=cntp3;cntq4<=cntp4;cntp1<='b0000;cntp2<=’b0000;cntp3<=’b0000;cntp4<=’b0000;4、动态扫描模块本设计采用扫描方式来实现LED数码管动态显示,控制好数码管之间的延迟时间相当重要。根据人眼视觉暂留原理,LED数码管每秒导通16次以上,人眼就无法LED数码管短暂的不亮,认为是一直点亮的(其实LED数码管是以一定频率在闪动的)。可是,延时(导通频率)也不是越小越好,因为LED数码管达到一定亮度需要一定时间。如果延时控制的不好则会出现闪动,或者亮度不够,根据经验,延时0.005S能够达到满意的效果。另外,显示的字符有变化时,可在延时到达后送一个地电平(共阴极数码管)LED数码管先短暂熄灭,再显示一个字符,可使在视觉上字符的变化更清楚。begin case(cnt[14:13]) 'b00:beginscan<=’b00000001;dat<=cntq1;end 'b01:beginscan<=’b00000010;dat<=cntq2;end 'b10:beginscan<=’b00000100;dat<=cntq3;end 'b11:beginscan<=’b00001000;dat<=cntq4;end default:beginscan<=’bx;dat<=’bx;end5、译码模块译码模块是对计数出的数进行译码显示出来。endcase case(dat[3:0]) 4’b0000:beginseg7[6:0]=7’b1111110:end 4’b0001:seg7[6:0]=7’b0110000; 4’b0010:seg7[6:0]=7’b1101101; 4’b0011:seg7[6:0]=7’b1111001; 4’b0100:seg7[6:0]=7’b0110011; 4’b0101:seg7[6:0]=7’b1011011; 4’b0110:seg7[6:0]=7’b1011111; 4’b0111:seg7[6:0]=7’b1110000; 4’b1000:seg7[6:0]=7’b1111111; 4’b1001:seg7[6:0]=7’b1111011; default:seg7[6:0]=’bX;其中分别对应着十进制的0—9这是个数字。6、编译仿真最后的程序的编译仿真结果如图1-5。图1-5附录1:modulecymometer(seg7,scan,sysclk,clkin);output[6:0]seg7;output[7:0]scan;outputled;regled;inputsysclk;//20MHz时钟信号inputclkin;reg[6:0]seg7;reg[7:0]scan;reg[25:0]cnt;regclk_cnt;reg[2:0]cntp1,cntp2,cntp3,cntp4;reg[2:0]cntq1,cntq2,cntq3,cntq4;reg[3:0]dat;always@(posedgesysclk)begin if(cnt==26’b1_0111_1101_0111_1000_0100_0000) beginclk_cnt<=~clk_cnt;cnt<=0;end else begincnt<=cnt+1;endendalways@(posedgeclkint)begin if(clk_cnt) begin if(cntp1==’b1001) begincntp1<=’b0000;cntp2<=cntp2+1; if(cntp2==’b1001) begincntp2<=’b0000;cntp3<=cntp3+1; if(cntp3==’b1001) begincntp3<=’b0000;cntp4<=cntp4+1; if(cntp4==’b1001) begincntp4<=’b0000;led=1;end end end end elsebegincntp1<=cntp+1;end endelsebeginif(cntp1!=’b0000|cntp2!=’b0000|cntp3!=’b0000|cntp4!=’b0000|) begincntq1<=cntp1;cntq2<=cntp2;cntq3<=cntp3;cntq4<=cntp4; cntp1<='b0000;cntp2<=’b0000;cntp3<=’b0000;cntp4<=’b0000;endendendalwaysbegin case(cnt[14:13]) 'b00:beginscan<=’b00000001;dat<=cntq1;end 'b01:beginscan<=’b00000010;dat<=cntq2;end 'b10:beginscan<=’b00000100;dat<=cntq3;end 'b11:beginscan<=’b00001000;dat<=cntq4;end default:beginscan<=’bx;dat<=’bx;endendcase case(dat[3:0]) 4’b0000:beginseg7[6:0]=7’b1111110:end 4’b0001:seg7[6:0]=7’b0110000; 4’b0010:seg7[6:0]=7’b1101101; 4’b0011:seg7[6:0]=7’b1111001; 4’b0100:s

温馨提示

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

评论

0/150

提交评论