基于FPGA的数字频率计的设计_第1页
基于FPGA的数字频率计的设计_第2页
基于FPGA的数字频率计的设计_第3页
基于FPGA的数字频率计的设计_第4页
基于FPGA的数字频率计的设计_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、基于FPGA的数字频率计的设计 学生专业: 学生姓名: 指导教师: 摘要数字频率计是近代电子技术领域的重要测量工具之一,同时也是其它许多领域广泛应用的测量仪器。它在规定的基准时间内把测量的脉冲数记录下来,换算成频率并以数字形式显示出来。在许多测量方案以及测量结果中都会涉及到频率测量的相关问题,频率精确测量的重要性显而易见。本设计在了解频率计的基本原理的基础上,基于直接测频法的测试手段,即在一定闸门时间内测量被测信号的脉冲个数;设计频率计的测量范围为1Hz-99.99MHz。将设计分为六个模块,即顶层模块,分频模块,计数模块,单位选择模块,数码管位选模块,转换模块。采用硬件描述语言Verilog

2、 HDL编写了各个模块的代码,并且利用Quartus II软件平台进行了功能的仿真,从而完成输入被测频率,通过选择不同档位,精确输出测量值,达到了预期目标。关键词 数字频率计;直接测频法;Verilog HDL;Quartus IIAbstractDigital frequency meter modern electronic technology is one of the important measurement tools and other areas widely used measuring instrument. It stipulated in the benchmark

3、time to measure the number of pulses recording, the conversion into frequency and displayed in digital form. In many survey scheme and measurement results involve frequency measurements of related problems, the importance of accurate measurement of frequency is obvious.This design in understanding t

4、he basic principle of the frequency meter, on the basis of direct frequency measurement method based on the means testing, that is, in a certain gate time measurement of the measured signal pulse number; Design the frequency meter measuring range of 1 Hz-99.99 MHz. Will design is divided into six pa

5、rts, a top-level module, points frequency modules, count module, the unit choose module, digital tube a chosen module, conversion moduleThe hardware description language Verilog HDL write each module of the code, and make use of Quartus II software platform functions of the simulation. Then measured

6、 input frequency, by choosing different rank, precise output measured values, and reach the expected goal.Keywords Digital frequency plan;Direct frequency measurement method ;Verilog HDL;Quartus II目录摘要IAbstractII第1章 绪论11.1 课题背景和意义11.2 国内外发展情况1第2章 频率计测量原理及Verilog HDL概述32.1 数字频率计测量原理3 直接计数测频法3 等精度测频法5

7、 全同步测频法62.2 Verilog HDL概述72.2.1 Verilog HDL介绍7 Verilog HDL程序开发流程82.3 本章小结8第3章 数字频率计模块设计93.1 数字频率计设计指标93.2 数字频率计各个模块10 顶层模块fre_counter10 分频模块clk_gen12 计数模块count14 单位控制模块count_4units15 数码管位选模块led_sel15 转换模块transform173.3 本章小结18第4章 数字频率计仿真194.1 分频模块仿真波形194.2 计数模块仿真波形194.3 单位控制模块仿真波形204.4 数码管位选模块204.5 转

8、换模块214.6 本章小结21第5章 芯片介绍和管脚分配225.1 FPGA芯片介绍225.2 代码管脚分配图225.3 顶层原理图效果图235.4 本章小结23结论24致谢25参考文献26附录1 程序源代码28CONTENTSAbstract(Chinese)IAbstract(English)IIChapter 1 Introduction11.1 Background and Significance11.2 Domestic and foreign development1Chapter 2 Principle and Verilog HDL overview32.1 Measurin

9、g principle32.1.1 Direct count frequency measurement method3 Precision frequency measurement method5 With all BuCe frequency method62.2 Verilog HDL overview72.2.1 Verilog HDL introduction72.2.2 Verilog HDL program development processes82.3 Chapter summary8Chapter 3 Digital frequency plan module desi

10、gn93.1 Digital frequency plan design index93.2 Digital frequency plan each module103.2.1 Fre_counter top-level module103.2.2 Points clk_gen frequency modules123.2.3 Count count module143.2.4 The unit control module count_4units153.2.5 Digital tube a choose led_sel module153.2.6 Conversion module tra

11、nsform173.3 Chapter summary18Chapter 4 Digital frequency plan simulation194.1Points frequency modules simulation waveform194.2 Count module simulation waveform194.3 The unit control module simulation waveform204.4 Digital tube a chosen module204.5 Conversion module214.6 Chapter summary21Chapter 5 Ch

12、ip introduction and tube foot distribution225.1 Introduced FPGA chip225.2 The code to pin assignment graph225.3 Top principle diagram rendering235.4 Chapter summary23Conclusion24Acknowledgement25References26Appendix 1 program28第1章 绪论1.1 课题背景和意义随着数字电路应用越来越广泛,传统的通用数字集成电路芯片已经很难满足系统功能的要求,而且随着系统复杂程度的不断增加

13、,所需通用集成电路的数量呈爆炸性增长,使得电路板的体积迅速膨胀,系统可靠性难以保证1。此外,现代电子产品的生命周期都很短,一个电路可能要在很短的时间内作改进以满足新的功能要求,对于通用集成电路来说则意味着重新设计和重新布线。而可编程逻辑器件克服了上述缺点,它把通用集成电路通过编程集成到一块尺寸很小的硅片上,成倍缩小了电路的体积,同时由于走线短,减少了干扰,提高了系统的可靠性2。频率计在电子产品开发中也是广受重视的领域。很多厂家根据各种实际应用需要开发出了很多不同性能、不同档次的各类频率计产品3。产品的不断更新换代也促进了相关频率测量理论和频率计开发技术的不断进步。在高校相关专业,频率理论也是非

14、常重要的教学内容4。在基础实验中,利用频率测量器件进行信号频率的测量更是必备基本操作技能之一。在开发性和综合性实验中,利用各种手段进行频率计的设计和开发也是一个重要课题5。1.2 国内外发展情况电子计数器是其它数字化仪器的基础,在它的输入通道接入各种模-数变换器,再利用相应的换能器便可制成各种数字化仪器。电子计数器的优点是测量精度高、量程宽、功能多、操作简单、测量速度快、直接显示数字,而且易于实现测量过程自动化,在工业生产和科学实验中得到广泛应用6。它的主要实现方法有直接式、锁相式、直接数字式和混合式四种。直接式的优点是速度快、相位噪声低,但结构复杂、杂散多,一般只应用在地面雷达中7。锁相式和

15、直接数字式都同时具有容易实现产品系列化、小型化、模块化和工程化的特点,其中,锁相式更是以其容易实现相位同步的自动控制且低功耗的特点成为众多业内人士的首选,应用最为广泛8。频率计的发展也经历了从模拟到数字,从分立到集成、单片机(如美国Intersil公司研发的ICM7216D)、再到可编程逻辑器件(CPLD和FPGA)的漫长发展过程9。我国利用相检宽带测频技术设计的高精度频率计也非常具有突破性和实用性。如我国的XDU-17型高分辨频率计。在2005年我国还研制出了中国模拟测振仪,它采用通用微机,通过“东方科卡”和“DASP”、“PDB”等大型软件实现的“PC卡泰”微机卡式自动检测分析仪器,是专门

16、设计的集数据采集,信号处理,故障诊断,模态分析,桩基检测,噪声与声强测量,动力学修改和响应计算等多种功能于一体的独创性产品10。实现手段的进步使得频率计的性能、功能、性价比、可靠性等指标不断提高。目前频率计主要靠以下三个电路进行设计11:(1)基于分立器件的模拟电路实现:即采用传统分立器件自下而上设计实现,这种方法在电子技术发展的早期采用较多。(2)基于单片机的数字电路实现:即以技术及应用都非常成熟的单片机为核心控制部件加上中规模集成数字器件来实现。(3)基于可编程逻辑器件的数字电路实现:即除了脉冲整形、键盘输入和显示等少部分电路外,频率计其余主要电路都用可编程逻辑器件来实现。第2章 频率计测

17、量原理及Verilog HDL概述2.1 数字频率计测量原理为了准确测量频率,人们研究出了很多方法。频率测量的准确度主要取决于所测量的频率范围和被测对象的特点。而测量所能达到的精度,既取决于基准频率源的精度,也取决于所使用的测量设备和测量方法12。下面介绍几种常用频率测量方法,分析各自优缺点。2.1.1 直接计数测频法目前广泛使用的直接测频法则适合于数字电路实现,该方法是根据频率的定义,记下单位时间内周期信号的重复次数,因此又称为电子计数器测频法13。其中最基本方法是直接计数测频法,它又包括以下2种主要测量方法:1 .直接测频法又称M法,其测频原理如图2-1所示。其基本原理是选用一个频率较低的

18、标准频率信号作为闸门信号,而将被测较高频率信号作为填充脉冲,在确定的闸门时间T内,记录被测信号的变化周期数N,则可知被测信号的频率为: (2-1)图2-1直接测频法原理误差分析:此法测量误差主要取决于闸门时间T和计数器计数的准确度,因此总误差可用分项误差绝对值线性相加表示: (2-2)式中,是最大量化误差的相对值,它的产生是由于测频时,闸门的开启时刻与被测计数脉冲的时间关系不相关造成的,即在相同的闸门开启时间内,计数器所得的数并不一定相同14。当闸门时间开启时间T接近甚至等于被测信号周期TX的整数倍时,最大量化误差为N=1个数。为闸门时间相对误差,主要由时基电路标准频率的准确度决定15。通常,

19、对闸门时间准确度的要求是根据所要求的测频准确度而提出的,为了使闸门时间频率误差不对测量结果产生影响,标准频率的准确度应高于被测信号准确度至少1个数量级,即。因此,测量较高的信号频率时,如果f0一定,闸门时间T越长,测量准确度越高;反之当T选定后,越高,1个计数误差对测量结果的影响越小,测量准确度越高。根据以上介绍和分析可知直接测频法比较适合于高频信号的测量16。2 .直接测周期法又称T法,其测频原理如图2-2所示。其基本原理是选被测信号作为闸门信号,而将频率较高的标准频率信号作为填充脉冲进行计数。设标准频率信号的频率为f0,在一个闸门时间计数值为N,则被测信号的频率为: (2-3)图2-2直接

20、测周期法原理综上可知,直接计数测频法(包括直接测频法和直接测周期法)的优点是原理简单、测量方便、读数直接,能够在比极宽的频率范围内进行测量17。缺点是由于存在对被测信号或标频信号计数的1个数字误差,难以兼顾低频和高频实现等精度测量,所以总体来说测量精度较低。2.1.2 等精度测频法等精度测频法(M/T法),又叫多周期同步测频法,是在直接计数测频法基础上发展起来的,在目前的测频系统中应用比较广泛18。其测量原理波形如图2-3所示,测量原理框图如图2-4所示。该法同时具有M法和T法的优点,它通过测量被测信号数个周期的标频计数次数, 然后换算得出被测信号的频率,可兼顾低频与高频信号,提高了测量精度1

21、9。图2-3等精度测频法原理波形图2-4等精度测频法原理框图测量时,首先预置闸门信号开启,此时计时器并不计数。待被测脉冲信号上升沿到来时,触发器被触发输出计数使能信号(即实际闸门)20。此时,count1对标准信号进行计数,count2对被测信号计数。预置闸门信号关闭时,计数器并不立即停止计数,而是等到被测信号上升沿到来时才停止计数,从而实现了实际闸门信号与被测信号的同步,消除了由于被测信号产生的最大 1个计数误差21。2.1.3 全同步测频法在全同步测频法中,闸门信号不仅与被测信号同步,而且与标准时钟也同步,实现三者真正的全同步,从而彻底消除了由被测信号或者标频信号计数引起的量化误差,大大提

22、高了测量精确度。其测量原理波形如图2-5所示,测量原理系统框图如图2-6所示。图2-5全同步测频原理波形图2-6全同步测频原理系统框图被测频率与标准时钟分别送给脉冲同步检测电路与两个计数器,当脉冲同步检测电路检测到被测频率与标准时钟相位同步时,脉冲同步检测电路发出同步信号,2个计数器开始计数,当脉冲同步检测电路再次检测到同步信号时,又发出同步信号,计数器停止计数。同时计数器的计数值锁存到锁存器,时序乘法器从锁存器中取得被测频率的计数值与标准时钟频率进行乘法运算,然后再将乘法器运算所得的值与标准时钟的计数值送给除法器,乘法器的结果为被除数,标准时钟的计数值为除数,运算所得结果就是被测信号的频率2

23、2。由以上介绍和分析可知,经过长期的发展,数字频率计的测量方法已经比较丰富和成熟。由于直接计数测频法有着设计简单,并且它是所有测量方法的基础,有着比较成熟的理论,可参考资料也较多。所以本文采用直接计数测频法中的直接测频进行的设计。2.2 Verilog HDL概述2.2.1 Verilog HDL介绍Verilog HDL是一种硬件描述语言(hardware description language),为了制作数位电路(数字电路)而用来描述ASICs和FPGAs的设计之用。Verilog的设计者想要以C程序语言(en:C programming language)为基础C程序语言(en:C p

24、rogramming language)为基础设计一种语言,可以使工程师比较熟悉跟容易接受。事实上,它产生与C程序语言类似的不严谨性质,并且大概与Pascal很相像。这种语言跟传统的程序设计语言不同,在于它的程序叙述并非严格地线性(循序)执行。Verilog模式包含不同模组(modules)的阶层关系。模组(modules)是输出(inputs)和输入(outputs)所定义出来的一个集合。在每个模组中有一串的电线(wires)、暂存器(registers)和子模组(submodules)的定义。并且在每个模组里面,语言叙述大部分都被群组成为各种的执行区块(blocks),用来定义该模组所产生

25、的行为描述。在每个区块(blocks)内,使用begin和end的关键字来区隔开来,其中的叙述是循序被执行。但是同一个设计,不同的区块间的执行是平行的23。2.2.2 Verilog HDL程序开发流程1.文本编辑:用任何文本编辑器都可以进行,也可以用专用的HDL编辑器进行编辑。通常Verilog文件保存为.v文件。2.功能仿真:将文件调入HDL仿真软件进行功能仿真,检查逻辑功能是否正确(也叫前仿真,对简单的设计可以跳过这一步,只在布线完成以后,进行时序仿真)。3.逻辑综合:将源文件调入逻辑综合软件进行综合,即把语言综合成最简的布尔表达式和信号的连接关系。逻辑综合软件会生成.edf(edif)

26、的EDA工业标准文件。4.布局布线:将.edf文件调入PLD厂家提供的软件中进行布线,即把设计好的逻辑安放到PLD/FPGA内。5.时序仿真:需要利用在布局布线中获得的精确参数,用仿真软件验证电路的时序。6.编程下载:确认仿真无误后,将文件下载到芯片中24。2.3 本章小结 本章主要的介绍了数字频率计的三种测量方法,分别为:直接测量,等精度测量,全同步测量,并且在第二部分对Verilog HDL语言进行了简单的介绍。第3章 数字频率计模块设计3.1 数字频率计设计指标该频率计有三个输入信号fre_in,clk_50k,rstn其中clk_50k脚输入标准的50KHz方波信号,作为参考时钟fre

27、_in为信号输入端,被测信号频率从这里送入,rstn为系统复位端,上电时该引脚需要保持一端时间低电平。该系统输出脚为a,b,c,d,e,f,g,unit,led_sel。a,b,c,d,e,f,g为数码管译码输出。unit表示当前显示数值的单位,可为1Hz,10Hz,100Hz,1kHz,10kHz。led_sel为数码管位选信号。该频率计测量范围为1Hz-99.99MHz,可根据输入信号频率自动调整显示数值的单位为合适的数值,并通过unit端口告知用户读数的单位。本课题的数字频率计顶层RTL硬件电路图如图3-1所示。图3-1顶层RTL硬件电路图3.2 数字频率计各个模块3.2.1 顶层模块f

28、re_counter顶层模块为本课题的最上层模块,由它来例化整个程序,把其它分开的小模块进行整合。其电路原理图如图3-2所示。图3-2顶层模块原理图根据模块实现的功能设计Verilog HDL源代码如下:module fre_counter(clk_50k,fre_in,rstn,led_sel,unit,a,b,c,d,e,f,g);input clk_50k,fre_in,rstn;output1:0 led_sel;output2:0 unit;output a,b,c,d,e,f,g;wire div_10,div_100,div_1000,div_10000,div_100000;c

29、lk_gen part_clk_gen(.rstn(rstn),.clk(clk_50k),.div_10(div_10),.div_100(div_100),.div_1000(div_1000),.div_10000(div_10000),.div_100000(div_100000);reg gate;wire3:0 count_a,count_b,count_c,count_d;count_4units part_count(.clk(fre_in),.gate(gate),.out_a(count_a),.out_b(count_b),.out_c(count_c),.out_d(c

30、ount_d);reg2:0 gate_sel;assign unit=gate_sel;wire unit_H;reg unit_L;always(negedge count_a3 or negedge gate) if(!gate) unit_L=1b0; else unit_L=1b1;assign unit_H=(count_a=4d0)&(count_b=4d0)&(count_c=4d0)&(count_d=4d0);always(negedge gate or negedge rstn)begin if(!rstn) gate_sel=3d0; else if(unit_L&(g

31、ate_sel!=3d4) gate_sel=gate_sel+3d1; else if(unit_H&(gate_sel!=3d0) gate_sel=gate_sel-3d1; else gate_sel=gate_sel;endalways(gate_sel or div_10 or div_100 or div_1000 or div_10000 or div_100000)begin case(gate_sel) 3d0:gate=div_100000; 3d1:gate=div_10000; 3d2:gate=div_1000; 3d3:gate=div_100; 3d4:gate

32、=div_10; default:gate=div_100000; endcaseendwire d_n0_a,d_n0_b,d_n0_c,d_n0_d;wire a,b,c,d,e,f,g;wire trans_ena_a,trans_ena_b,trans_ena_c,trans_ena_d;wire ena_a,ena_b,ena_c,ena_d;wire clk_lock;assign clk_lock=gate;transform part_tran_a(.d_n0(d_n0_a),.din(count_a),.clk_lock(clk_lock),.ena(trans_ena_a)

33、,.a(a),.b(b),.c(c),.d(d),.e(e),.f(f),.g(g);transform part_tran_b(.d_n0(d_n0_b),.din(count_b),.clk_lock(clk_lock),.ena(trans_ena_b),.a(a),.b(b),.c(c),.d(d),.e(e),.f(f),.g(g);transform part_tran_c(.d_n0(d_n0_c),.din(count_c),.clk_lock(clk_lock),.ena(trans_ena_c),.a(a),.b(b),.c(c),.d(d),.e(e),.f(f),.g(

34、g);transform part_tran_d(.d_n0(d_n0_d),.din(count_d),.clk_lock(clk_lock),.ena(trans_ena_d),.a(a),.b(b),.c(c),.d(d),.e(e),.f(f),.g(g);wire clk_ledc;assign clk_ledc=div_1000;led_sel part_led_sel(.rstn(rstn),.clk_ledc(clk_ledc),.led_ena(ena_a,ena_b,ena_c,ena_d),.led_count(led_sel);assign trans_ena_a=en

35、a_a&d_n0_a;assign trans_ena_b=ena_b&(d_n0_b|d_n0_a);assign trans_ena_c=(d_n0_c|d_n0_b|d_n0_a)&ena_c;assign trans_ena_d=ena_d;endmodule以上程序把clk_gen,count_4units,transform 和 led_sel这几个模块连起来进行了整个程序的整合。3.2.2 分频模块clk_gen这个模块主要是对给的总频率50khz进行了5次分频,通过这5个不同的频率来完成档位的自动转换。分频模块的电路原理图如图3-3所示。图3-3分频模块原理图根据模块实现的功能

36、设计Verilog HDL部分源代码如下:always(posedge clk or negedge rstn)begin if(!rstn) count1=3d0; else if(count1=3d4) count1=3d0; else count1=count1+3d1;endreg d1;always(posedge count12 or negedge rstn)begin if(!rstn) d1=1d0; else d1=d1;endassign div_10=d1;reg2:0 count2;always(posedge d1 or negedge rstn)begin if(

37、!rstn) count2=3d0; else if(count2=3d4) count2=3d0; else count2=count2+3d1;end其中,div_10是把输入的clk_10分频,为了得到占空比50%的方波,我先把它5分频,再2分频。count1=3d4,是因为count1有0,1,2,3,4。这5个状态,d1用于2分频。若输入的clk信号为50khz则div_100000的高电平持续时间为1S,用这个作为计数器的gate信号,计数器在1S内对fre_in脚信号的脉冲进行计数,所以输出的值单位为Hz。例如若当前是div_100000信号(高电平1S),检测到计数器溢出,说明

38、输入频率大于9999Hz,显示的数据并不准确,于是选择div_10000(高电平0.1S),显示计数单位为10Hz,若仍然检测到溢出,就选择div_1000(高电平0.01s)。3.2.3 计数模块count这个模块是一个十进制计数器,计数范围为0-9,count对输入的clk进行加法计数,当计数到9及4b1001时,下一个clk脉冲来时count值归零,这样以实现一个简单的计数功能。计数模块电路原理图如图3-4所示。图3-4计数模块原理图根据模块实现的功能设计Verilog HDL部分源代码如下:always(posedge rst or posedge clk)begin if(rst)

39、begin count=4b0000; end else if(ena) begin if(count=4b1001) count=4b0000; else count=count+4b0001; end else begin count=count; endendassign qout=count;assign full=(count=4b1001);上面的代码主要实现了当ena为1时当count等于9时自动清0否则自动加1当count为9是full给一个高电平1。这样来实现一个简单的计数功能。3.2.4 单位控制模块count_4units本模块是显示测量频率的单位部分,当分频模块进行自动

40、档位变化的时候,用这个模块通过unit端口告知用户读数的单位。模块能读取的单位分别为1Hz,10Hz,100Hz,1kHz,10kHz。单位控制模块的原理图如图3-5所示。图3-5单位控制模块原理图根据模块实现的功能设计Verilog HDL部分源代码如下:countc_d(.clk(clk),.ena(1b1),.rst(rst),.qout(out_d),.full(ena_c);countc_c(.clk(clk),.ena(ena_c),.rst(rst),.qout(out_c),.full(ena_b);countc_b(.clk(clk),.ena(ena_b&ena_c),.r

41、st(rst),.qout(out_b),.full(ena_a);countc_a(.clk(clk),.ena(ena_a&ena_b&ena_c),.rst(rst),.qout(out_a),.full()以上程序是对四个count模块进行了例化,所以单位控制模块是由4个计数器组成的。3.2.5 数码管位选模块led_sel本模块是为了在数码管显示的时候对数码管进行选择性的点亮,用程序代码来控制数码管的使能端口。位选模块原理图如图3-6所示。图3-6位选模块原理图根据模块实现的功能设计Verilog HDL部分源代码如下:parameter LED_NUM=4;parameter CO

42、UNT_BIT=2;input clk_ledc,rstn;outputLED_NUM:1 led_ena;outputCOUNT_BIT:1 led_count;regCOUNT_BIT:1 count;assign led_count=count;always(posedge clk_ledc or negedge rstn)begin if(!rstn) count=2d0; else count=count+2d1;endregLED_NUM:1 led_ena;always(count)begin case(count) 2d0:led_ena=4b0001; 2d1:led_ena

43、=4b0010; 2d2:led_ena=4b0100; 2d3:led_ena=4b1000; default:led_ena=4b0000; endcaseend以上程序主要是为了当clk_ledc输入时钟的时候,led_count对4个数码管进行动态扫描。3.2.6 转换模块transform这个模块相当于一个译码模块,把测量出的结果转换成能够在数码管上显示的模式。转换模块原理图如图3-7所示。图3-7转换模块原理图根据模块实现的功能设计Verilog HDL部分源代码如下:always(posedge clk_lock) locked_d=din;reg6:0 codecache;al

44、ways(locked_d)begin case(locked_d) 4d0:codecache=7b1111110; 4d1:codecache=7b0110000; 4d2:codecache=7b1101101; 4d3:codecache=7b1111001; 4d4:codecache=7b0110011; 4d5:codecache=7b1011011; 4d6:codecache=7b1011111; 4d7:codecache=7b1110000; 4d8:codecache=7b1111111; 4d9:codecache=7b1111011; default:codecac

45、he=7bzzzzzzz; endcaseend以上程序能够使程序中的十进制数转化为数码管能显示的二进制数。这样数码管才能够正常在上面进行数值的显示。3.3 本章小结本章为论文的主体部分,介绍了数字频率计的6个模块分别为:顶层模块,分频模块,计数模块,单位选择模块,数码管位选模块,转换模块。并且在章节中还对部分Verilog代码进行了简单的说明。第4章 数字频率计仿真4.1 分频模块仿真波形这个模块是把输入的50khz的时钟进行了5次不同的分频,用这个模块实现一个档位的自动转换功能。由下面的仿真波形可以看出这个程序的复位端为0复位,当rstn为1是正常工作。仿真波形图如图4-1所示。图4-1分

46、频模块仿真波形4.2 计数模块仿真波形计数模块实现的是一个简单的计数功能,本设计用到了4个计数器,ena为计数器的使能端口,当ena为1时计数器正常工作。rst为计数器的复位端口并且1为复位信号。由下图可以看出当计数器计数到9时full出现一个高电平使第二个计数器工作而第一个计数器清0开始从新计数。仿真波形如图4-2所示。图4-2计数器模块仿真波形4.3 单位控制模块仿真波形单位控制模块是对四个计数器进行了文件的例化。gate为门控信号当gate为1时程序进行正常的工作,out_a,out_b,out_c,out_d分别为四个计数器的输出。仿真波形如图4-3所示。图4-3单位控制模块仿真波形4

47、.4 数码管位选模块数码管位选模块主要是对数码管进行选择性点亮。led_ena控制着转换模块的使能端,led_count控制着4个数码管的的使能端口。仿真波形如图4-4所示。图4-4位选模块仿真波形4.5 转换模块转换模块接的是数码管,相当于译码部分。当ena和d_n0这两个使能端位于1时,本模块能够正常工作。当din输入时,shuchu能够进行译码。仿真波形如图4-5所示。图4-5转换模块仿真波形4.6 本章小结本章主要对第三章的分频模块,计数模块,单位选择模块,数码管位选模块,转换模块这5个模块进行了Quartus II软件的功能仿真,并对仿真波形图进行了简单的说明。第5章 芯片介绍和管脚

48、分配5.1 FPGA芯片介绍本设计中用到的FPGA芯片为Cyclone系列的EP1C3TC144,其管脚数为 144,封装为TQFP,工作电压为1.5V,最大可用系统门数位59904,逻辑单元(LE)为 2910。芯片管脚原理图如图5-1所示。图5-1 芯片管脚原理图5.2 代码管脚分配图对数字频率计的输入和输出管脚进行分配,管脚分配图如图5-2所示。图5-2 管脚分配图5.3 顶层原理图效果图把顶层文件代码生成原理图,用原理图进行连接并且进行管脚分配之后的程序截图如图5-3所示。图5-3 顶层原理图5.4 本章小结本章主要介绍了应用的主芯片管脚图,数字频率计的管脚分配图以及顶层模块原理效果图

49、。结论频率计是工程技术人员必不可少的测量工具。频率测量也是电子测量技术中最基本最常见的测量之一,并与其他许多电参量的测量方案和测量结果都有着十分密切的关系,不少物理量的测量,如转速、振动频率等的测量都涉及到或可以转化为频率的测量。正因为频率和频率测量具有如此的重要性,因而频率计在电子产品开发中也广受重视。在生产和生活中主要测量频率的方法为直接计数测频法,等精度测频法和全同步测频法,本设计利用直接测频的方法,采用EDA的设计方法完成频率计的设计,具有设计周期短,设计效率高的特点。本设计在了解国内外发展情况的基础上,掌握频率计的基本原理。设计频率计的测量范围为1Hz-99.99MHz。可根据输入信

50、号频率自动调整显示数值的单位为合适的数值,并通过unit端口告知用户读数的单位。在掌握硬件描述语言(Verilog HDL)的基础上,根据设计思想对频率计进行了模块划分-频率计顶层模块,分频模块,计数模块,单位控制模块,数码管位选模块和转换模块。相应完成文件例化,自动档位变换功能,记录10以内数据的变化,根据不同功能选择不同单位精度,控制数码管点亮顺序,译码等功能。利用Verilog HDL语言编写相关模块代码。并通过Quartus II软件平台进行了程序各个模块的功能仿真。从而完成输入被测频率,通过选择不同档位,精确输出测量值,达到了预期目标。致谢感谢学校和老师对我的培养,给我这个自己动手的

51、机会和空间。经过一段时间的编写,终于在指导老师陈晓洁的帮助下完成了毕业设计,陈老师治学严谨,理论知识深厚,在学术研究上给予我悉心的指导和耐心的帮助。从论文的选题、课题研究,直到论文的撰写许许多多方面都体现了导师的关怀。陈老师求真务实、开拓创新的学术精神,注重理论又强调实践的科研作风,诲人不倦的学者风范,高度的责任感和生活中谦逊质朴、平易近人的学者风范时时都深深感染和指引着我。在论文工作中,遇到了许许多多这样那样的问题,有的是专业上的问题,有的是论文格式上的问题,一直得到陈老师的亲切关怀和悉心指导,使我的论文可以又快又好的完成。值此论文完成之际,谨向陈老师致以最崇高的谢意!其次我要感谢我的同学们

52、,在我最艰难的日子里,他们给我精神上的支持。他们一直在鼓励我,让我充满信心地迎接每一个问题。最后,衷心地感谢在百忙之中评阅论文和参加答辩的各位专家、教授!参考文献1 徐辉,王祖强,王照君.基于高速串行BCD码除法的数字频率计的设计M. 电子技术应用, 2002,67-702 徐成,刘彦,李仁发,等.一种全同步数字频率测量方法的研究J.电子技术应用, 2004,43-503 侯伯亨,顾新.VHDL 硬件描述语言与数字逻辑电路设计(第3版)M.西安: 西安电子科技大学出版社.2003,153-1654 谭会生,张昌凡.EDA技术及应用M.西安: 西安电子科技大学出版社. 2003,202-2075

53、 魏忠,蔡勇,雷红卫.嵌入式开发详解M.电子工业出版社2003,233-2376 周如辉.实时视频处理系统中乒乓存储控制器的设计J.电子元器件应用,2006,66-68.7 马忠梅.单片机的C语言应用程序设计M.北京航空航天大学出版社.2002,247-2498 宋万杰,罗丰,吴顺君.CPLD技术极其应用M.西安电子科技大学出版社.2004,317-3189 常青,陈辉煌.可编程专用集成电路及其应用与设计实践M.国防工业出版社.2006,46-5010 王金明,杨吉斌.数字系统设计与VHDLM.北京:电子工业出版社,2002, 268-26911 林明权.VHDL数字控制系统设计范例M.电子工

54、业出版社,2003,168-17312 张凌.VHDL 语言在FPGA/CPLD开发中的应用M.电子工程师,2002,281-28613 任晓东,文博.CPLD/FPGA高级应用开发指南M.电子工业出版社2004,368-36914 来金梅. FPGA现状及其发展趋势M. 复旦大学FPGA培训教程.2005,135-13715 姜雪松,张海风. 可编程逻辑器件和EDA设计技术M, 北京:机械工业出版社, 2005,295-29816 魏西峰. 全同步数字频率测量方法的研究J 现代电子技术,2005,76-7917 黄智伟. FPGA系统设计与实践M北京:电子工业出版社,2005,3-5518 冯涛,秦永左. 数字测频方法的研究J.长春光学精密机械学院学报,2001,38-4119 杨守良 基于FPGA的数字频率计的设计和实现J.现代电子技术,2005,123-12520 谢海鸿. 基于FPGA芯片的数字频率计设计J现代电子技术,2005, 45-4721 王伟. Verilog HDL 程序

温馨提示

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

评论

0/150

提交评论