根据Verilog的数字频率计的设计(包含代码及仿真)_第1页
根据Verilog的数字频率计的设计(包含代码及仿真)_第2页
根据Verilog的数字频率计的设计(包含代码及仿真)_第3页
根据Verilog的数字频率计的设计(包含代码及仿真)_第4页
根据Verilog的数字频率计的设计(包含代码及仿真)_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、一、实验名称数字频率计的设计二、实验地点211楼303三、实验目的和任务了解数字电路设计的基本特点了解数字频率计电路的基本原理基本掌握ISE软件的使用(设计输入、仿真、实现)(4)了解可编程逻辑器件(FPGA)的一般情况(5)基本掌握HDL的使用四、实验内容(1)设计出符合设计要求的解决方案(2)设计出单元电路(3)利用EDA软件对各单元电路及整体电路进行仿真(4)利用EDA软件在ELB电子课程设计实验板实现设计(5)观察实验结果五、项目需用仪器设备名称以及所需主要元器件PC机、EDA教学实验系统一台,带有(SPARTAN-3AXC3S200A芯片,LED管,七段数码管等)的实验板一块,跳线、

2、下载电缆一根,函数发生器。六、实验任务与要求频率测量范围为10Hz10MHz,用6只数码管以kHz为单位显示测量结果;有三个带锁按键开关(任何时候都只会有一个被按下)用来选择1S、0.1S和0.01S三个闸门时间中的一个;有一个按钮开关用来使频率计复位;有两只LED,一只用来显示闸门的开与闭,另一只当计数器溢出时做溢出指示。数字频率计的相关技术指标如下:1、位数:测量频率通过LED数码管为六位十进制数显示。2、测试频率范围为:10HZ-10MHZ。3、计数器溢出时要有溢出标志over。4、需要有闸门标志gate。5、显示工作方式:a、用BCD七段共阳极数码管显示读数,只有在读数不发生跳变时才是

3、正确的结果。b、采用记忆显示方法,即在一次测试结束时,显示测试结果,此显示值一直保留到下次测量显示数到来,才将上次显示更新。用第二次测试结果,更新显示值。6、要求被测输入信号应是符合数字电路要求的脉冲波。七、verilog设计环境介绍VerilogVerilogHDL是目前应用最为广泛的硬件描述语言.VerilogHDL可以用来进行各种层次的逻辑设计,也可以进数字系统的逻辑综合,仿真验证和时序分析等。VerilogHDL适合算法级,寄存器级,逻辑级,开关级、系统级和版图级等各个层次的设计和描述.verilogHDL进行设计最大的优点是其工艺无关性.这使得工程师在功能设计,逻辑验证阶段可以不必过

4、多考虑门级及工艺实现的具体细节,只需根据系统设计的要求施加不同的约束条件,即可设计出实际电路.verilogHDL是一种硬件描述语言(hardwaredescriptionlanguage),为了制作数字电路而用来描述ASICS和FPGA的设计之用。verilogHDL的设计者想要以C编程语言为基础设计一种语言,可以使工程师比较容易学习。Verilog是由en:GatewayDesignAutomation公司于大约1984年开始发展。GatewayDesignAutomation公司后来被CadeneeDesignSystems于1990年所购并。现在Cadenee对于Gateway公司的V

5、erilog和Verilog-XL模拟器拥有全部的财产权。选择VHDL还是verilogHDL?这是一个初学者最常见的问题。其实两种语言的差别并不大,他们的描述能力也是类似的。掌握其中一种语言以后,可以通过短期的学习,较快的学会另一种语言。选择何种语言主要还是看周围人群的使用习惯,这样可以方便日后的学习交流。当然,如果您是专用集成电路(ASIC)设计人员,则必须首先掌握verilog,因为在IC设计领域,90%以上的公司都是采用verilog进行IC设计。对于PLD/FPGA设计者而言,两种语言可以自由选择。八、实验原理所谓“频率”,就是周期性信号在单位时间(1秒)内变化的次数。若在一定时间内

6、计得这个周期信号变化的次数为N,则其频率可表达为:fN(1)电子技术器可以严格按公式(1)所表达的频率的定义进行测频,其原理方框图如图1所示:图1测频原理图首先,把被测信号(以正弦波为例)通过放大整形电路变成脉冲(实际上变成方波即可)其重复频率等于被测频率f,然后将它加到闸门的一个输入端。闸x门通过门控信号来控制开、闭时间,只有在闸门开通时间T内,被计数的脉冲才能通过闸门,被送到十进制电子计数器进行计数。门控信号的时间T是非常准确的,以它作为时间基准,它由时基发生器提供。时基信号发生器由一个高稳定的石英振荡器和一系列数字分频器组成,由它输出的标准时间脉冲(时标)去控制门控电路形成门控信号。比如

7、,时标信号的重复周期为1S,则加到闸门的门控信号作用时间T及闸门时间亦准确的等于1S,及闸门开通时间为1S,这时若计得10000个数,则有(1)式知,被测频率f10000Hz。x从以上讨论可知,电子计数器的测频原理实质上以比较法为基础,它将f和时x基信号频率相比,两个频率相比的结果以数字的形式显示出来。时基2、各模块功能及实现一.分频模块程序modulecount(rest,clk,clk_1hz,clk_10hz,clk_100hz,clk_1khz);inputclk,rest;outputregclk_1hz,clk_10hz,clk_100hz,clk_1khz;reg29:0coun

8、t1,count2,count3,count4;initialbeginclk_1hz=0;clk_10hz=0;clk_100hz=0;clk_1khz=0;count1=0;count2=0;count3=0;count4=0;endalways(posedgeclk)beginif(!rest)begincount1=0;count2=0;count3=0;count4=0;clk_1hz=0;clk_10hz=0;clk_100hz=0;clk_1khz=0;endelsebeginif(count1=24000000)begincount1=0;clk_1hz=clk_1hz;end

9、elsecount1=count1+1;if(count2=2400000)begincount2=0;clk_10hz=clk_10hz;endelsecount2=count2+1;if(count3=240000)begincount3=0;clk_100hz=clk_100hz;endelsecount3=count3+1;if(count4=24000)begincount4=0;clk_1khz=clk_1khz;endelsecount4=count4+1;endendendmodule仿真图仿真模块dJL?Ohzrestdk_1f3二,门控电路和清零,锁存,阀门信号产生程序mo

10、dulechose(rest,clk_10hz,clk_100hzhz,clk_1khz,key1,key10,key100,gate_out1,ff,clk_latch,clk_clear);inputrest,clk_10hz,clk_100hz,clk_1khz,key1,key10,key100;outputgate_out1,clk_latch,clk_clear;outputreg2:1ff;reggate_out1,clk_latch,clk_clear,gate;reg4:1count;initialbegingate_out1=0;ff=0;clk_latch=0;clk_c

11、lear=0;gate=0;count=0;endalways(posedgeclk_1khz)beginif(!rest)begingate_out1=0;ff=2b00;endelsebeginif(key1=1&key10=0&key100=0)begingate=clk_10hz;ff=2b01;endelseif(key1=0&key10=1&key100=0)begingate=clk_100hz;ff=2b10;endelseif(key1=0&key10=0&key100=1)begingate=clk_1khz;ff=2b11;endelsebeginff=0;endende

12、nd/always(posedgegate)begincount=count+1;if(count=9)begingate_out1=1;clk_clear=0;clk_latch=0;endelseif(count=11)begingate_out1=0;clk_clear=0;clk_latch=1;endelseif(count=13)begingate_out1=0;clk_clear=1;clk_latch=0;count=0;endelsebegingate_out1=0;clk_clear=0;clk_latch=0;endendendmodule仿真图仿真模块dkjhsdkjk

13、hz碇;計dk1Oh?1Ul1c_dsardk_10-0hzksy1Glk_l日tcJikeyWkeylCDrestgate_nutj*cnt1=4b0000;cnt2=4b0000;cnt3=4b0000;cnt4=4b0000;三,计数器程序modulecounter(rest,start,clk_in,cnt1,cnt2,cnt3,cnt4,cnt5,cnt6,yichu,clk_clear);inputrest,start,clk_in,clk_clear;outputyichu;regyichu;outputreg4:1cnt1,cnt2,cnt3,cnt4,cnt5,cnt6;in

14、itialbeginyichu=1;cnt5=4b0000;*cnt6=4b0000;endalways(posedgeclk_in)beginif(!rest)begincnt1=4b0000;cnt2=4b0000;cnt3=4b0000;cnt4=4b0000;cnt5=4b0000;cnt6=4b0000;endelsebeginif(clk_clear=1)begincnt1=4b0000;cnt2=4b0000;cnt3=4b0000;cnt4=4b0000;cnt5=4b0000;cnt6=4b0000;yichu=1;endelseif(start=1)begin*cnt1=4

15、b0000;cnt2=4b0000;if(cnt6=4b1001)&(cnt5=4b1001)&(cnt4=4b1001)&(cnt3=4b1001)&(cnt2=4b1001)&(cnt1=4b1001)begincnt1=4b0000;cnt2=4b0000;cnt3=4b0000;cnt4=4b0000;cnt5=4b0000;cnt6=4b0000;yichu=0;endelseif(cnt5=4b1001)&(cnt4=4b1001)&(cnt3=4b1001)&(cnt2=4b1001)&(cnt1=4b1001)begin*cnt3=4b0000;cnt4=4b0000;cnt5

16、=4b0001;cnt6=cnt6+4b0001;endelseif(cnt4=4b1001)&(cnt3=4b1001)&(cnt2=4b1001)&(cnt1=4b1001)begincnt1=4b0000;cnt2=4b0000;cnt3=4b0000;cnt4=4b0000;cnt5=cnt5+4b0001;cnt6=cnt6;endelseif(cnt3=4b1001)&(cnt2=4b1001)&(cnt1=4b1001)begincnt1=4b0000;cnt2=4b0000;cnt3=4b0000;cnt4=cnt4+4b0001;cnt5=cnt5;cnt6=cnt6;end

17、elseif(cnt2=4b1001)&(cnt1=4b1001)begincnt1=4b0000;cnt2=4b0000;cnt3=cnt3+4b0001;cnt4=cnt4;cnt5=cnt5;cnt6=cnt6;endelseif(cnt1=4b1001)begincnt1=4b0000;cnt2=cnt2+4b0001;cnt3=cnt3;cnt4=cnt4;cnt5=cnt5;cnt6=cnt6;endelsebegincnt1=cnt1+4b0001;cnt2=cnt2;cnt3=cnt3;cnt4=cnt4;cnt5=cnt5;cnt6=cnt6;endendendendendm

18、odule仿真图Now:1000ns0202.6200I40011n期cht14:14h3:4hOHcnt24:14h1厂4hox4,;!DC4皿nCFTt34:14hO:Phu蘇期cnt44:14hO4hOOlcflt54:14hO4hOcnt64:1l4hO尸4TO亂yii:hu1规rest1爲Iclk_clear0艸elk0LJ念!start0模块仿真图四,锁存以及译码扫描显示程序modulev138(rest,clk_1khz,se,in1,in2,in3,in4,in5,in6,segs,ff,dp,led,en,clk_latch);input4:1in1,in2,in3,in4,

19、in5,in6;inputclk_1khz,rest;input2:1ff;inputclk_latch;outputregdp,led,en;outputreg4:1se;reg3:1count,dig;outputreg7:1segs;reg4:1sign_out4;reg4:1latch1,latch2,latch3,latch4,latch5,latch6;initialbegincount=0;dp=1;segs=0;se=0;sign_out4=0;led=0;en=0;latch1=0;latch2=0;latch3=0;latch4=0;latch5=0;latch6=0;en

20、d/always(posedgeclk_latch)beginlatch1=in1;latch2=in2;latch3=in3;latch4=in4;latch5=in5;latch6=in6;end*三三三三三三三三三三三三三三三三三三三三三三三三三三二a-waysd(posedgec-kllkhz)begincountAucount+ljend=a-waysd(posedgec-kllkhz)beginif(一rest)begin-eckuljende-sebeginseAucouncendcasenounl:)pbeginsignloutAAH-atchljrbeginsignloutA

21、AH-atchz*se=count;end2:beginsign_out4=latch3;se=count;end3:beginsign_out4=latch4;se=count;end4:beginsign_out4=latch5;se=count;end5:beginsign_out4=latch6;se=count;enddefault:sign_out4=4b1111;endcaseendend/将数据依次译码always(posedgeclk_1khz)beginif(ff=2b01&se=3)begindp=0;endelseif(ff=2b10&se=2)begindp=0;en

22、delseif(ff=2b11&se=1)begindp=0;endelsebegindp=1;endend/档位选择always(sign_out4)beginif(!rest)beginsegs=0;endelsebegincase(sign_out4)0:segs=7b0000001;1:segs=7b1001111;2:segs=7b0010010;3:segs=7b0000110;4:segs=7b1001100;5:segs=7b0100100;6:segs=7b1100000;7:segs=7b0001111;8:segs=7b0000000;9:segs=7b0000100;d

23、efault:segs。1测區0和曲屋归友口0、1vooCNsmux理宦*率可调的函数发生器生成测试信号。当闸门时间为1S时,测得结果如下:序号输入(Hz)输出(KHz)11000.001210000.01031000000.100410000001.0005100000010.0006100000100.0007200000200.0008300000300.0009400000400.00010500000500.00011600000600.00012700000700.00013800000800.00014900000899.99515920000919.99416960000959

24、.995171000000999.996181000008999.999191000017溢出十、误差分析由上表可以看出实验测量中存在误差,误差一方面来源于闸门时间T,另一方面来源于计数器计得的数。由计数器频率计算公式fx二N/T以及误差合成方法可得:AfxANAT(2)=(2)fxNT其中,第一项是数字化仪器所特有的误差,而第二项是闸门时间的相对误差,这项误差决定于石英振荡器所提供的标准频率的准确度。、误差在测频时,主门的开启时刻与计数脉冲之间的时间关系是不相关的,所以它们在时间轴上的相对位置是随机的。这样,在相同的主门开启时间内,计数器所计得的数却不一定相同,当主门开启时间T接近甚至等于被测信号周期Tx的整数倍N时,此项的误差最大,如下图:NTxa)T0b)趋近于0趋近于0若主门开启时刻为T,而第1个计数脉冲出现在T上图(a)中示出了TT0的0 xx0情况(T=T-T),这时计数器计得N个数(图

温馨提示

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

评论

0/150

提交评论