




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
简易数字频率计-数 字 系 统 设 计 文 档 姓名:王淑丽学号:我在本课程中所选择的课题是用Verilog HDL实现的简易数字频率计。设计的频率器可以实现在量程范围内根据被测信号大小自动更换量程,并用数码管显示频率值,用发光二级管显示量程。此次设计的目的要求如下:(1)频率测量范围10Hz1MHz(2)量程自动转换,量程分为10KHz (1s) 、100KHz (0.1s) 、1MHz (10ms)三档。转换规则如下:当读数大于9999时,频率计处于超量程状态,下一次测量时,量程自动增大一档;当读数小于0999时,频率计处于欠量程状态,下一次测量时,量程自动减小一档(3)数据采用记忆显示方式,即计数过程中不显示数据,待计数过程结束以后,显示计数结果,并将此显示结果保持到下一次计数结束。(4)用发光二极管显示量程。系统模型及实际测试情况设计的频率计包括三个量程指示灯,四位数码管显示,复位键,外接信号接线孔,GND接线孔。其界面如下图:系统运行结果:复位键播向0,系统不工作,三个量程显示灯均不亮,四位数码管显示为0000;复位键播向1,系统进入正常工作状态,开始以下测量:当输入信号为6.34KHZ时,红色指示灯亮起,数码管显示:6.340。当输入信号为29.352KHZ时,绿色指示灯亮起,数码管显示:29.35当输入信号为273.9KHZ时,黄色指示灯亮起,数码管显示:273.9系统原理及设计流程根据设计要求可以很容易得出程序的流程图如下:清零显示计数锁存溢出/欠量程更换量程否是由流程图便可以设计系统了,本系统可根据功能分为五个功能模块。分别为:分频器,计数器,控制器,锁存器,显示模块。用Verilog HDL编程时也是根据各个模块的功能要求,分别编写每一个子模块的程序,然后把每个模块封装起开。最终的系统就用这五个模块连接起来即可。每个模块的作用说明如下:分频器:此模块的输入信号为来自控制器的量程选择信号、机内标准时钟(2MHZ),复位信号。输出信号为门限信号,供给计数器作为计数技术时间。计数器: 计数器以被测信号上升沿为触发事件,在门限信号内部计数器累计加1,门限结束根据计数器的计数值判断量程是否合适,并将判断结果以标志位的形式发送给控制器,同时将计数结果输出给锁存器。如果控制器发出清零信号,将立刻清除标记位。控制器: 作为系统核心的控制器,它以被测信号上升沿为触发事件,不断的检测计数器发出的标志位(表征判断量程是否合适)。如果量程合适,发出锁存信号给锁存器;如果量程偏大或偏小,则根据具体情况重置输出量程选择信号,并发出清零信号给计数器。锁存器: 锁存器以锁存信号上升沿为触发事件,每响应一次就将输入端的计数值与量程选择输出给显示电路。显示电路:显示电路以被测信号上升沿为响应事件,每响应一次就根据所选量程控制相应的指示灯亮起。并根据计数值的不同控制四位数码管显示出计数值即可。以上五个模块的具体连接情况如下图:控制器分频器计数器锁存器显示电路机内时钟被测信号量程是否合适锁存信号换量程清零程序代码如下:(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)/判断量程是否改变beginif(outclk=0)beginoutclk=outclk;cnt=0;endelse ;endelse ;if(k1,k2=0)/低量程计时1sbeginif(cnt=)/begincnt=0;outclk=outclk;endelse ;endelse if(k1,k2=1) /中间量程计时0.1sbeginif(cnt=)/99999begincnt=0;outclk=outclk;endelse ;endelse if(k1,k2=2) /高量程计时10msbeginif(cnt=19999)/9999begincnt=0;outclk=outclk;endelse ;endelse outclk=0;state9999;low表示计数是否=999output 3:0cout0,cout1,cout2,cout3;reg high,low,cout0,cout1,cout2,cout3;reg 14:0counter;reg qdoor;always (posedge fx)beginif(reset=1)/beginif(clr=0)/不清零begincase(qdoor,door)/寻找门限2b00: ;2b01: counter=1;/门限开始2b10: begin /门限结束if(counter9999) high=1;else high=0;endcout0=counter/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 high,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个时钟周期,以便计数器响应2b01:beginclr=clr;temp=temp-1;end2b10:temp=temp-1;default ;endcaseif(temp1=1)beginshow=show;temp1=0;endelse ;case(high,low)2b00:beginif(s1,s20) s1,s2=s1,s2-1;else ;clr=clr;temp=2;end2b01:beginshow=show;temp1=1;end2b11:beginif(s1,s22)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,cin3,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=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;always (posedge clk)beginif(reset!=0)begincase(cin0)4b0000:cout0= 7b;4b0001:cout0= 7b;4b0010:cout0= 7b;4b0011:cout0= 7b;4b0100:cout0= 7b;4b0101:cout0= 7b;4b0110:cout0= 7b;4b0111:cout0= 7b;4b1000:cout0= 7b;4b1001:cout0= 7b;default:;endcasecase(cin1)4b0000:cout1= 7b;4b0001:cout1= 7b;4b0010:cout1= 7b;4b0011:cout1= 7b;4b0100:cout1= 7b;4b0101:cout1= 7b;4b0110:cout1= 7b;4b0111:cout1= 7b;4b1000:cout1= 7b;4b1001:cout1= 7b;default:;endcasecase(cin2)4b0000:cout2= 7b;4b0001:cout2= 7b;4b0010:cout2= 7b;4b0011:cout2= 7b;4b0100:cout2= 7b;4b0101:cout2= 7b;4b0110:cout2= 7b;4b0111:cout2= 7b;4b1000:cout2= 7b;4b1001:cout2= 7b;default:;endcasecase(cin3)4b0000:cout3= 7b;4b0001:cout3= 7b;4b0010:cout3= 7b;4b0011:cout3= 7b;4b0100:cout3= 7b;4b0101:cout3= 7b;4b0110:cout3= 7b;4b0111:cout3= 7b;4b1000:cout3= 7b;4b1001:cout3= 7b;default:;endcasecase(k1,k2)2b00:begins3=0;s2=0;s1=1;point3=0;point2=1;point1=1;point0=1;end2b01:begins2=1;s1=0;s3=0;point3=1;point2=0;point1=1;point0=1;end2b10:begins3=1; s2=0; s1=0;point3=1;point2=1;point1=0;point0=1;enddefault: ;endcaseendelsebegin cout0,cout1,cout2,cout3=28b;s1=0; s2=0;s3=0;point3=1;point2=1;point1=1;point0=1;endendendmodule最终设计的顶层文件(gdf格式)如下: 仿真结果:(1) 当测量信号频率在高量程时,仿真时序图如下:从图中可以看出四个小数点的变化总是随着量程的变化而变化。分频器输出的门信号最初为200ns,计数器在200ns内计数值超过9999,于是控制器发出清零信号,同时更换量程,分频器输出20ns的门控信号,计数器重新计数,计数值符合要求,控制器发出锁存信号,数码管显示计数值。三个LED灯显示量程。(2) 当测量信号频率在中间量程时,仿真时序图如下:从图中可以看出四个小数点的变化总是随着量程的变化而变化。分频器输出的门信号最初为200ns,计数器在200ns内计数,计数值符合要求,控制器发出锁存信号,数码管显示计数值。三个LED灯显示量程(3) 当测量信号频率在低量程时的仿真时序图如下:从图中可以看出四个小数点的变化总是随着量程的变化而变化。分频器输出的门信号最初为20ns,计数器在20ns内计数值小于999,于是控制器发出清零信号,同时更换量程,分频器输出200ns的门控信号,计数器重新计数,计数值符合要求,控制器发出锁存信号,数码管显示计数值。三个LED灯显示量程。从以上仿真结果可以看出设计的系统可以实现自动更换量程,并且记忆显示测量量结果。满足设计要求。实验总结通过此次试验,我熟悉了数字电路的基本设计流程。同时也基本掌握了Verilog HDL语言及其开发平台。对于复杂系统可以做到自顶向
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 阀门检修专业试题及答案
- 湖北省武汉市部分学校2026届高三上学期九月调研考试政治(含答案)
- 广告专业综合试题及答案
- 河南省许昌市禹州市2024-2025学年三年级下册期末英语试题(含答案无听力原文无听力音频)
- 茂名阳台花园施工方案
- Unit 1 Wish you were here单元检测(含解析) 译林版(2019) 选择性必修 第三册
- 物流运输合同协议
- 禁毒宣传进校园安全教育
- 2024-2025学年河南省驻马店市驿城区八年级(上)期末数学试卷(含答案)
- 2022年广西壮族自治区柳州市市铁路第一中学高一生物联考试题
- 人社局财务管理暂行办法
- 渔业执法技术手段-洞察及研究
- 冶金行业重大生产安全事故隐患判定标准
- 2025年广西中考化学试卷真题(含答案解析)
- 炎症性肠病的饮食护理措施讲课件
- 物业公司廉洁培训课件
- 2025至2030年中国成都市酒店行业市场发展调研及投资方向分析报告
- 医院“十五五”发展规划(2026-2030)
- 黑龙江学位英语考试试题及答案
- AI大模型驱动的智慧供应链ISC+IT蓝图规划设计方案
- (2025)语文单招考试试题与答案
评论
0/150
提交评论