数字系统设计文档智能频率计_第1页
数字系统设计文档智能频率计_第2页
数字系统设计文档智能频率计_第3页
数字系统设计文档智能频率计_第4页
数字系统设计文档智能频率计_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、简易数字频率计-数 字 系 统 设 计 文 档 姓名:王淑丽学号:08008103我在本课程中所选择的课题是用Verilog HDL实现的简易数字频率计。设计的频率器可以实现在量程范围内根据被测信号大小自动更换量程,并用数码管显示频率值,用发光二级管显示量程。此次设计的目的要求如下:(1)频率测量范围10Hz1MHz(2)量程自动转换,量程分为10KHz (1s) 、100KHz (0.1s) 、1MHz (10ms)三档。转换规则如下:当读数大于9999时,频率计处于超量程状态,下一次测量时,量程自动增大一档;当读数小于0999时,频率计处于欠量程状态,下一次测量时,量程自动减小一档(3)数

2、据采用记忆显示方式,即计数过程中不显示数据,待计数过程结束以后,显示计数结果,并将此显示结果保持到下一次计数结束。(4)用发光二极管显示量程。系统模型及实际测试情况设计的频率计包括三个量程指示灯,四位数码管显示,复位键,外接信号接线孔,GND接线孔。其界面如下图:系统运行结果:复位键播向0,系统不工作,三个量程显示灯均不亮,四位数码管显示为0000;复位键播向1,系统进入正常工作状态,开始以下测量:当输入信号为6.34KHZ时,红色指示灯亮起,数码管显示:6.340。当输入信号为29.352KHZ时,绿色指示灯亮起,数码管显示:29.35当输入信号为273.9KHZ时,黄色指示灯亮起,数码管显

3、示:273.9系统原理及设计流程根据设计要求可以很容易得出程序的流程图如下:清零显示计数锁存溢出/欠量程更换量程否是由流程图便可以设计系统了,本系统可根据功能分为五个功能模块。分别为:分频器,计数器,控制器,锁存器,显示模块。用Verilog HDL编程时也是根据各个模块的功能要求,分别编写每一个子模块的程序,然后把每个模块封装起开。最终的系统就用这五个模块连接起来即可。每个模块的作用说明如下:分频器:此模块的输入信号为来自控制器的量程选择信号、机内标准时钟(2MHZ),复位信号。输出信号为门限信号,供给计数器作为计数技术时间。计数器: 计数器以被测信号上升沿为触发事件,在门限信号内部计数器累

4、计加1,门限结束根据计数器的计数值判断量程是否合适,并将判断结果以标志位的形式发送给控制器,同时将计数结果输出给锁存器。如果控制器发出清零信号,将立刻清除标记位。控制器: 作为系统核心的控制器,它以被测信号上升沿为触发事件,不断的检测计数器发出的标志位(表征判断量程是否合适)。如果量程合适,发出锁存信号给锁存器;如果量程偏大或偏小,则根据具体情况重置输出量程选择信号,并发出清零信号给计数器。锁存器: 锁存器以锁存信号上升沿为触发事件,每响应一次就将输入端的计数值与量程选择输出给显示电路。显示电路:显示电路以被测信号上升沿为响应事件,每响应一次就根据所选量程控制相应的指示灯亮起。并根据计数值的不

5、同控制四位数码管显示出计数值即可。以上五个模块的具体连接情况如下图:控制器分频器计数器锁存器显示电路机内时钟被测信号量程是否合适锁存信号换量程清零程序代码如下:(1) 分频模块:module newclk(clk,rst,k1,k2,outclk);input clk,k1,k2,rst;output outclk;reg outclk;reg 20:0cnt;reg1:0state;always (posedge clk)beginif(!rst) begin cnt<=0; outclk<=0; endelsecnt<=cnt+1;if(state!=k1,k2)/判断量

6、程是否改变beginif(outclk=0)beginoutclk<=outclk;cnt<=0;endelse ;endelse ;if(k1,k2=0)/低量程计时1sbeginif(cnt=1999999)/999999begincnt<=0;outclk<=outclk;endelse ;endelse if(k1,k2=1) /中间量程计时0.1sbeginif(cnt=199999)/99999begincnt<=0;outclk<=outclk;endelse ;endelse if(k1,k2=2) /高量程计时10msbeginif(cnt

7、=19999)/9999begincnt<=0;outclk<=outclk;endelse ;endelse outclk<=0;state<=k1,k2;endendmodule(2)计时器模块 module count(cout0,cout1,cout2,cout3,high,low,door,fx,clr,reset);input fx,door , clr , reset;output high,low; /high表示计数是否>9999;low表示计数是否<=999output 3:0cout0,cout1,cout2,cout3;reg hig

8、h,low,cout0,cout1,cout2,cout3;reg 14:0counter;reg qdoor;always (posedge fx)beginif(reset=1)/beginif(clr=0)/不清零begincase(qdoor,door)/寻找门限2'b00: ;2'b01: counter=1;/门限开始2'b10: begin /门限结束if(counter<1000)beginhigh=0;low=0;endelsebeginlow=1;if(counter>9999) high=1;else high=0;endcout0=c

9、ounter/1000;cout1=(counter/100)%10;cout2=(counter/10)%10;cout3=counter%10; enddefault:counter=counter+1;/门限内部计数endcaseendelse /清零信号作用beginhigh=1;low=0;counter=2;endendelse /复位信号作用beginhigh=1;low=0;counter=0;endqdoor=door;endendmodule(3)控制器模块module control(s1,s2,show,high,low,clk,reset,clr);input hig

10、h,low,clk,reset; output s1,s2,show,clr; /s1,s2是量程选择信号,show为锁存信号,clr是清零信号;reg s1,s2,show,clr,temp1;reg 1:0temp;always (posedge clk)beginif(reset=1)begincase(temp) /使清零信号保持2个时钟周期,以便计数器响应2'b01:beginclr=clr;temp=temp-1;end2'b10:temp=temp-1;default ;endcaseif(temp1=1)beginshow=show;temp1=0;endels

11、e ;case(high,low)2'b00:beginif(s1,s2>0) s1,s2=s1,s2-1;else ;clr=clr;temp=2;end2'b01:beginshow=show;temp1=1;end2'b11:beginif(s1,s2<2)s1,s2=s1,s2+1;else;clr=clr;temp=2;enddefault;endcaseendelsebegins1=0;s2=1;show=0;clr=0;endendendmodule(4)锁存器模块module lock(reset,show,cin0,cin1,cin2,ci

12、n3,s1,s2,cout0,cout1,cout2,cout3,k1,k2);input reset,show,s1,s2;input 3:0cin0,cin1,cin2,cin3;output 3:0cout0,cout1,cout2,cout3;output k1,k2;reg cout0,cout1,cout2,cout3,k1,k2;always (posedge show)beginif(reset!=0)cout0,cout1,cout2,cout3,k1,k2=cin0,cin1,cin2,cin3,s1,s2;elsecout0,cout1,cout2,cout3,k1,k2

13、=3; /无效endendmodule(5)显示电路module show(clk,reset,cin0,cin1,cin2,cin3,k1,k2,cout0,cout1,cout2,cout3,s1,s2,s3,point);input 3:0 cin0,cin1,cin2,cin3;input clk,reset,k1,k2;output6:0 cout0,cout1,cout2,cout3; /七段数码管显示output 3:0 point; /四位小数点output s1,s2,s3; /量程指示灯reg cout0,cout1,cout2,cout3,s1,s2,s3,point;a

14、lways (posedge clk)beginif(reset!=0)begincase(cin0)4'b0000:cout0= 7'b0000001;4'b0001:cout0= 7'b1001111;4'b0010:cout0= 7'b0010010;4'b0011:cout0= 7'b0000110;4'b0100:cout0= 7'b1001100;4'b0101:cout0= 7'b0100100;4'b0110:cout0= 7'b0100000;4'b0111

15、:cout0= 7'b0001111;4'b1000:cout0= 7'b0000000;4'b1001:cout0= 7'b0000100;default:;endcasecase(cin1)4'b0000:cout1= 7'b0000001;4'b0001:cout1= 7'b1001111;4'b0010:cout1= 7'b0010010;4'b0011:cout1= 7'b0000110;4'b0100:cout1= 7'b1001100;4'b0101:c

16、out1= 7'b0100100;4'b0110:cout1= 7'b0100000;4'b0111:cout1= 7'b0001111;4'b1000:cout1= 7'b0000000;4'b1001:cout1= 7'b0000100;default:;endcasecase(cin2)4'b0000:cout2= 7'b0000001;4'b0001:cout2= 7'b1001111;4'b0010:cout2= 7'b0010010;4'b0011:cou

17、t2= 7'b0000110;4'b0100:cout2= 7'b1001100;4'b0101:cout2= 7'b0100100;4'b0110:cout2= 7'b0100000;4'b0111:cout2= 7'b0001111;4'b1000:cout2= 7'b0000000;4'b1001:cout2= 7'b0000100;default:;endcasecase(cin3)4'b0000:cout3= 7'b0000001;4'b0001:cout3

18、= 7'b1001111;4'b0010:cout3= 7'b0010010;4'b0011:cout3= 7'b0000110;4'b0100:cout3= 7'b1001100;4'b0101:cout3= 7'b0100100;4'b0110:cout3= 7'b0100000;4'b0111:cout3= 7'b0001111;4'b1000:cout3= 7'b0000000;4'b1001:cout3= 7'b0000100;default:;en

19、dcasecase(k1,k2)2'b00:begins3=0;s2=0;s1=1;point3=0;point2=1;point1=1;point0=1;end2'b01:begins2=1;s1=0;s3=0;point3=1;point2=0;point1=1;point0=1;end2'b10:begins3=1; s2=0; s1=0;point3=1;point2=1;point1=0;point0=1;enddefault: ;endcaseendelsebegin s1=0; s2=0;s3=0;point3=1;point2=1;point1=1;point0=1;endendendmodule最终设计的顶层文件(gdf格式)如下: 仿真结果:(1) 当测量信号频率在高量程时,仿真时序图如下:从图中可以看出四个小数点的变化总是随着量程的变化而变化。分频器输出的门信号最初为200ns,计数器在200ns内计数值超过9999,于是控制器发出清零信号,同时更换量程,分频器输出20ns的门控信号,计数器重新计数,计数值符合要求,控制器发出锁存信号,数码管显示计数值。三个LED灯显示量程。(2) 当测量信号频率在中间量程时,仿真时序图如

温馨提示

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

评论

0/150

提交评论