EDA课程设计说明书简易频率计设计_第1页
EDA课程设计说明书简易频率计设计_第2页
EDA课程设计说明书简易频率计设计_第3页
EDA课程设计说明书简易频率计设计_第4页
EDA课程设计说明书简易频率计设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、目 录摘 要1一、简易数字频率计设计原理21.1基本原理21.2原理框图2二、各模块程序及仿真42.1信号处理模块_verilog:42.2计数器模块:52.3信号显示处理7三、仿真结果分析10总结与致谢13参考文献14摘 要EDA技术是以硬件语言为主要的描述方式,以EDA软件为主要的设计软件,以大规模课编程逻辑器件为载体的数字电路的设计过程。其设计的灵活性使得EDA技术得以快速发展和广泛应用。本设计以Quartus软件为设计平台,采用Verilog HDL语言现数字频率计的整体设计。电子设计自动化(EDA)逐渐成为重要的设计手段,已经广泛应用于模拟与数字电路系统等许多领域,电子设计自动化是一

2、种实现电子系统或电子产品自动化设计的技术,它与电子技术,微电子技术的发展密切相关,它吸收了计算机科学领域的大多数最新研究成果,以高性能的计算机作为工作平台,促进了工程发展。EDA的一个重要特征就是使用硬件描述语言(HDL)来完成的设计文件,在电子设计领域受到了广泛的接受。EDA技术就是以计算机为工具,设计者在EDA软件平台上,有硬件描述语言Verilog HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作,最终形成集成电子系统或专业集成芯片的一门新技术。EDA技术的出现,极大地提高了电路设计的效

3、率和可操作性,减轻了设计者的劳动强度。关键词:EDA;Quartus;Verilog HDL一、简易数字频率计设计原理1.1基本原理数字频率计的主要功能是测量周期信号的频率。频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。频率是单位时间(1秒)内方波信号发生周期变化的次数。在给定的1秒时间内对方波信号波形计数,并将所计数值显示出来,就能读取被测信号的频率。数字频率计首先必须获得相对稳定与准确的时间,然后通过计数器计算这一段时间间隔内的方波脉冲个数并显示出来。这就是数字频率计的基本原理。脉冲信号的频率就是在单位时间内所产生的脉冲个数,其表达式为fNT,其中f为被

4、测信号的频率,N为计数器所累计的脉冲个数,T为产生N个脉冲所需的时间。本设计要求基准时钟的频率为1MHZ。待测方波信号的频率在1HZ-9999HZ,所以用四位7段数码管无法完全正确显示,所以需要选择恰当的量程来显示待测风波信号的频率,当量程选择不当或者频率超出9999HZ时,能够给出指示信号。1.2原理框图 根据设计要求,输入系统的标准时钟信号要先经过分频后得到一个周期为2s占空比50%的信号,用来对输入信号采样,得到采样信号GATED_CLK;为了能够控制计数模块对采样的信号进行正常计数及保存计数后的频率,这要求,要在计数器刚好完成计数后立即将数据输出给显示部分进行显示,并且要为下次计数做好

5、准备,因此数据信号处理部分还要有产生控制计数器的两个信号LOAD和COUNTER_CLR,LOAD信号控制计数完成后的数据及时输出给显示,COUNTER_CLR信号控制计数器清零;计数模块就是完成对采样信号的计数,并当计数发生溢出时产生溢出信号FLOW_UP;显示控制模块要完成将计数模块输入的信号进行译码显示。1.3信号描述 测试信号采样原理:GATED_CLK、LOAD、COUNTER_CLR信号的关系: 程序中用到的信号变量:FREQUENCY_COUNTROL_BLOCKFREQUENCY_COUNTER_BLOCKFREQUENCY_DISPLY_BLOCKGATED_CLK采样信号C

6、OUT计数输出信号DOUT输出到数码管LOAD控制计数器信号FLOW_UP计数溢出信号CDIN计数输入信号COUNTER_CLR清零计数器信号CLOCK_IN计数器时钟信号DCLK_IN标准时钟信号CLK_IN标准时钟信号LOAD控制计数输出RESET复位信号SIGNAL_TEST测试信号COUNTER_CLR清零计数信号RESET复位信号RESET复位信号 二、各模块程序及仿真此设计运用元件例化的方法进行功能的实现,所以各个模块即使相互独立又是彼此联系的,三个模块和一个顶层共同完成方波信号的测量。2.1信号处理模块_verilog:module FREQUENCY_COUNTROL_BLOC

7、K(GATED_CLK,LOAD,COUNTER_CLR,CLK_IN,SIGNAL_TEST,RESET);output GATED_CLK;output LOAD;output COUNTER_CLR;input CLK_IN;input SIGNAL_TEST;input RESET;reg LOAD;reg COUNTER_CLR;reg DIVIDE_CLK;reg19:0 cn;reg A1,A2;/信号分频:由CLK_IN得到分频后的信号DIVIDE_CLK(0.5Hz)always (posedge CLK_IN) beginif(RESET)beginDIVIDE_CLK&l

8、t;=0;cn<=0;endelse if(cn=1000000) begincn<=0;DIVIDE_CLK<=DIVIDE_CLK; endelsecn<=cn+1;end/频率计数控制信号的产生:产生LOAD信号和COUNTER_CLR信号 always (posedge SIGNAL_TEST)beginA1<=DIVIDE_CLK;endalways (posedge SIGNAL_TEST)beginA2=A1;endalways (A1 or A2)beginLOAD=A1&&(!A2);endalways (posedge SIGN

9、AL_TEST)COUNTER_CLR=LOAD;/产生驱动计数模块的信号GATED_CLK,也就是被计数模块检测的信号 assign GATED_CLK=SIGNAL_TEST&DIVIDE_CLK;endmodule 2.2计数器模块:module FREQUENCY_COUNTER_BLOCK(COUT,FLOW_UP,CLOCK_IN,RESET,LOAD,COUNTER_CLR);output15:0 COUT;output FLOW_UP;input CLOCK_IN;input LOAD;input COUNTER_CLR;input RESET;reg15:0 TEMP

10、;reg FLOW_UP;parameter B_SIZE=16; /二进制位宽,为便于移植,所有定义了成参数regB_SIZE+3:0 bcd; /转换后的BCD码的位数要比二进制多4位regB_SIZE-1:0 binary;regB_SIZE-1:0 bin; regB_SIZE+3:0 result;/计数器完成计数得到二进制表示的频率数值always (CLOCK_IN or RESET or LOAD or COUNTER_CLR)beginif(RESET|COUNTER_CLR)beginTEMP<=0;FLOW_UP<=0;endelse if(LOAD)bina

11、ry<=TEMP;else if(TEMP>9999)beginFLOW_UP<=1;binary<=9999;endelseif(CLOCK_IN)TEMP<=TEMP+1;end/将二进制表示(或十六进制表示)的数转换为BCD码的形式,便于数码管译码显示always (binary or RESET)beginbin=binary;result=0;if(RESET)bcd<=0;elsebeginrepeat(B_SIZE-1)beginresult0=binB_SIZE-1;if(result3:0>4)result3:0=result3:0+

12、4'd3;if(result7:4>4)result7:4=result7:4+4'd3;if(result11:8>4)result11:8=result11:8+4'd3;if(result15:12>4)result15:12=result15:12+4'd3;if(result19:16>4)result19:16=result19:16+4'd3;result=result<<1;bin=bin<<1;endresult0=binB_SIZE-1;bcd<=result;endend ass

13、ign COUT=bcd15:0;endmodule 2.3信号显示处理module FREQUENCY_DISPLY_BLOCK(DOUT,DCLK_IN,RESET,CDIN);output10:0 DOUT;input15:0 CDIN;input DCLK_IN;input RESET;reg10:0 DOUT;reg3:0 Temp1;reg1:0 cn;always (posedge DCLK_IN) /设置成动态扫描beginif(RESET)cn<=0;elsebegincn<=cn+1;case(cn)2'b00: begin DOUT10:7<=4

14、'b0001; Temp1<=CDIN3:0;end2'b01: begin DOUT10:7<=4'b0010; Temp1<=CDIN7:4;end2'b10: begin DOUT10:7<=4'b0100; Temp1<=CDIN11:8;end2'b11: begin DOUT10:7<=4'b1000; Temp1<=CDIN15:12;endendcaseendendalways (Temp1) /译码显示begincase(Temp1)4'b0000: DOUT6:0<

15、;=7'b0111111; /3fh=04'b0001: DOUT6:0<=7'b0000110; /06h=14'b0010: DOUT6:0<=7'b1010110; /56h=24'b0011: DOUT6:0<=7'b1001111; /4fh=34'b0100: DOUT6:0<=7'b1100110; /66h=44'b0101: DOUT6:0<=7'b1101101; /6dh=54'b0110: DOUT6:0<=7'b1111101;

16、/7dh=64'b0111: DOUT6:0<=7'b0000111; /07h=74'b1000: DOUT6:0<=7'b1111111; /7fh=84'b1001: DOUT6:0<=7'b1101111; /6fh=9default: DOUT6:0<=7'b0111111; /3fhendcaseendendmodule 2.4顶层verilog程序:module FREQUENCY_COUNTER_DISPLY_BLOCK(DOUT,FLOW_UP,CLK,TEST_CLK_IN,RESET);out

17、put10:0 DOUT;output FLOW_UP;input CLK;input TEST_CLK_IN;input RESET;wire gated_clk,load,counter_clr;wire15:0 cout_cdin;FREQUENCY_COUNTROL_BLOCK u1(.GATED_CLK(gated_clk),.LOAD(load),.COUNTER_CLR(counter_clr),.CLK_IN(CLK),.SIGNAL_TEST(TEST_CLK_IN),.RESET(RESET); FREQUENCY_COUNTER_BLOCK u2(.COUT(cout_c

18、din),.FLOW_UP(FLOW_UP),.CLOCK_IN(gated_clk),.RESET(RESET),.LOAD(load),.COUNTER_CLR(counter_clr);FREQUENCY_DISPLY_BLOCK u3(.DOUT(DOUT),.DCLK_IN(CLK),.RESET(RESET),.CDIN(cout_cdin); endmodule 三、仿真结果分析仿真结果如图所示,输入标准时钟频率为1MHz,经过分频后变成频率为0.5Hz的信号,将其与测试信号相与得到采样信号GATED_CLK,同时利用测试信号和0.5Hz的分频信号可以产生LOAD信号和COUNT

19、ER_CLR信号,它们和采样信号的关系在图上可以清楚的看出。图中测试信号频率为2500Hz,16进制表示为09C4。Dout信号为要输入4个共阴数码管的信号,其高四位为片选控制,低七位为经译码后输入到数码管的信号。 以下为综合后的顶层电路和各子电路图:(a)顶层模块综合后的电路(b)FREQUENCY_COUNTROL_BLOCK模块综合后的电路(c)FREQUENCY_COUNTER_BLOCK模块综合后的电路(d)FREQUENCY_DISPLY_BLOCK模块综合后的电路 总结与致谢通过这次EDA课程设计,我对课堂上所学到的理论知识的理解加深了许多, 自己动脑、动手设计的能力也得到了较大提高。在这次课程设计的过程中,我对 Verilog HDL 语言有了更深的认识。通过查阅相关资料和动手设计我发现我以前对 Verilog HDL 语言的认识太过肤浅,认为 Verilog HDL 语言只能用于设计小型的电路系统。但有了更深刻的认识之后我发现学好 Verilog HDL 语言可以设计出大规模的、功能复杂的电路系统。我发现了动手实践的重要性。动手实践是理论知识得以灵活运用的必要前提,也是今后走上工作岗位之后能够很好的完成设计工作的技术保证。只有遇到实际问题并根据自己对课堂上获得的专业知识

温馨提示

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

评论

0/150

提交评论