基于FPGA数字频率计设计开题报告
- 格式:pdf
- 大小:2.51 MB
- 文档页数:10
基于FPGA的等精度数字频率计设计微电子学与固体电子学张嘉伟113114312目录摘要 (3)第一章课题背景 (4)第二章方案设计及原理 (4)1 多周期同步测频率测量原理 (4)2 设计实现 (6)2.1 FPGA程序设计 (6)2.2 DSP程序设计 (7)第三章主要模块的Verilog程序 (8)1 计数器 (8)2 除法器 (8)3 分频器 (11)4 BCD模块 (11)第四章仿真结果 (12)第五章设计总结 (13)参考文献 (13)摘要本文主要论述了利用FPGA进行测量频率计数,FPGA实施控制实现多功能频率计的设计过程。
该频率计利用等精度的设计方法,克服了基于传统测频原理的频率计的测量精度随被测信号频率的下降而降低的缺点。
等精度的测量方法不但具有较高的测量精度,而且在整个频率区域包成恒定的测试精度。
根据多周期同步测频率法的原则,选取了多周期同步测频法作为数字频率计的测量算法,提出了基于FPGA的数字频率计设计方案。
给出了该设计方案的实际测量效果,证明该设计方案切实可行,能达到较高的频率测量精度。
关键词:FPGA;等精度;频率计第一章课题背景随着大规模集成电路技术的发展及电子产品市场运作节奏的进一步加快,涉及诸如计算机应用、通信、智能仪表、医用设备、军事、民用电器等领域的现代电子设计技术已迈入一个全新的阶段。
专家预言,未来的电子技术时代将是EDA 的时代,PLD作为EDA技术的一项重要技术,是电子设计领域中最具活力和发展前途的一项技术,它的影响丝毫不亚于70年代单片机的发明和使用。
在电子测量技术中,频率测量是最基本的测量之一。
工程中很多测量,如用振弦式测量力、时间测量、速度测量、速度控制等,都设计到频率测量,或可归结为频率测量。
而常用的直接测量方法在使用中有较大的局限性,其测量精度随着被测信号频率的下降而降低,并且对被测信号的计数要产生±1个数字误差。
采用等精度频率测量方法具有测量精度保持恒定,不随所测信号的变化而变化;结合FPGA,具有集成度高、告诉和高可靠性的特点,是频率的测频范围可达到0.1Hz-50MHz,测频全域相对误差恒为百万分之一。
基于FPGA的数字频率计设计摘要数字频率计是一种常用的电子测量仪器,在工程领域中广泛应用。
与传统的模拟频率计相比,数字频率计具有精度高、响应快、体积小等优点,在现代电子技术领域中广泛应用。
本文将介绍如何使用FPGA设计数字频率计,并通过示例演示FPGA的应用。
介绍数字频率计是一种将输入信号的频率转换成计数信号输出的电子工具,它可以测量频率、周期和时间间隔等参数。
频率计通常采用数字进制计数方式,其测量精度取决于计数器的精度和时钟频率。
在电子电路测试、无线通信、音频、视频等领域中,数字频率计起着至关重要的作用。
FPGA(Field Programmable Gate Array)是一种具有灵活性、可编程性和高速性的逻辑芯片,适用于数字电路的设计和实现。
与ASIC(Application-Specific Integrated Circuit)相比,FPGA具有短设计周期、可重构、低成本等特点。
在数字系统中,FPGA作为计数器的电子部件,使得数字频率计的设计变得更加灵活和简便。
FPGA数字频率计设计系统框图FPGA数字频率计的系统框图如下:FPGA数字频率计系统框图FPGA数字频率计系统框图如图所示,FPGA数字频率计的输入端连接到待测信号,经过放大和滤波处理后送入计数器中进行计数,计数器输出的计数值存储在FPGA的存储器中并进行处理,最终形成数字频率读数并显示在数码管上。
输入端FPGA数字频率计的输入端通常使用低噪声前置放大器和有限带宽滤波器的组合,以保证待测信号的准确度和稳定性。
实际设计中应根据待测信号的具体情况选择合适的放大系数和滤波器参数。
计数器数字频率计的计数器是FPGA实现的核心部件。
计数器根据输入端计数触发信号进行计数,并将计数器输出的计数值存储在FPGA的存储器中。
计数器的计数值越大,频率读数的分辨率就越高。
在FPGA中,计数器可以采用累加计数器或移位寄存器计算,具体实现取决于设计者的需求和性能要求。
数字频率计实验报告数字频率计用VHDL语言设计实现基于FPGA的数字频率计学校:学院:姓名:学号:实验室:实验日期:摘要本文介绍了一种基于FPGA的数字频率的实现方法。
该设计采用硬件描述语言VHDL,在软件开发平台ISE上完成。
该设计的频率计有三种闸门选择,分别是1s、0.1s、0.01s,能较准确的测量频率在10Hz到10MHz之间的信号。
使用ModelSim仿真软件对各个模块的VHDL程序做了仿真,对各个模块的功能进行了测试,并完成了综合布局布线,最终下载到芯片上取得了良好测试效果。
关键词:VHDL、频率计、 FPGA、测量目录第一章引言 ..................................... 错误!未定义书签。
第二章基于FPGA的VHDL设计流程 . (3)2.1概述 (3)2.2VHDL语言和V ERILOG HDL介绍 (3)2.2.1 VHDL的特点 (4)2.3FPGA介绍 (5)第三章数字频率计的软件开发环境 ................. 错误!未定义书签。
3.1开发环境 (6)3.2M ODEL S IM介绍 (6)3.3ISE介绍 (5)第四章数字频率计的设计与实现 (7)4.1任务要求 (7)4.2测量原理................................... 错误!未定义书签。
4.3设计方案与系统需求 (7)4.4各模块的功能及实现 (9)4.4.1 分频器 (9)4.4.2 闸门选择器 (10)4.4.3 测频控制器............................. 错误!未定义书签。
4.4.4 计数器................................. 错误!未定义书签。
4.4.5 锁存器................................. 错误!未定义书签。
4.4.6 显示控制系统........................... 错误!未定义书签。
第一章课题研究概述1.1课题研究的目的和意义在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此,频率的测量就显得更为重要。
测量频率的方法有多种,其中电子计数器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。
目前常用的测频方案有三种:方案一:完全按定义式F=N/T进行测量。
被测信号Fx经放大整形形成时标ГX,晶振经分频形成时基TR。
用时基TR开闸门,累计时标ГX的个数,则有公式可得Fx=1/ГX=N/TR。
此方案为传统的测频方案,其测量精度将随被测信号频率的下降而降低。
方案二:对被信号的周期进行测量,再利用F=1/T(频率=1/周期)可得频率。
测周期时,晶振FR经分频形成时标ГX,被测信号经放在整形形成时基TX控制闸门。
闸门输出的计数脉冲N=ГX/TR,则TX=NГX。
但当被测信号的周期较短时,会使精度大大下降。
方案三:等精度测频,按定义式F=N/T进行测量,但闸门时间随被测信号的频率变化而变化。
如图1所示,被测信号Fx经放大整形形成时标ГX,将时标ГX经编程处理后形成时基TR。
用时基TR开闸门,累计时标ГX的个数,则有公式可得Fx=1/ГX=N/TR。
此方案闸门时间随被测信号的频率变化而变化,其测量精度将不会随着被测信号频率的下降而降。
本次实验设计中采用的是第三种测频方案。
等精度频率计是数字电路中的一个典型应用,其总体设计方案有两种:方案一:采用数字逻辑电路制作,用IC拼凑焊接实现。
其特点是直接用现成的IC组合而成,简单方便,但由于使用的器件较多,连线复杂,体积大,功耗大,焊点和线路较多将使成品稳定度与精确度大打折扣,而且会产生比较大的延时,造成测量误差、可靠性差。
方案二:采用可编程逻辑器件(CPLD)制作。
随着现场可编程门阵列FPGA的广泛应用,以EDA工具作为开发手段,运用VHDL等硬件描述语言语言,将使整个系统大大简化,提高了系统的整体性能和可靠性。
基于FPGA和单片机的高精度数字频率计的设计与实现1. 引言1.1 背景介绍数字计数器是一种广泛应用于科学研究、工程技术和日常生活中的仪器设备,用于测量信号的频率、周期和脉冲数量等。
随着科技的不断发展,对于数字频率计的精度和性能要求也越来越高。
传统的数字频率计主要基于单片机或专用芯片的设计,存在精度受限、功能单一等问题。
而基于FPGA和单片机的高精度数字频率计能够充分发挥FPGA在并行计算和高速数据处理方面的优势,结合单片机的灵活性和易编程性,实现更高精度、更丰富功能的数字频率测量。
本文基于FPGA和单片机,设计并实现了一种高精度数字频率计,具有高度精准、快速响应的特点。
通过软硬件结合的设计思路,实现了数字信号频率的精确测量,同时在硬件设计和软件设计上都进行了详细优化和实现。
系统测试结果表明,该数字频率计具有较高的测量精度和稳定性,在实验中取得了良好的效果和准确的测量数据。
此设计不仅具有实用价值,还对数字频率计的进一步研究和应用具有一定的参考意义。
1.2 研究意义随着科技的发展,对于频率计的要求也越来越高,需要具备更高的精度、更快的响应速度和更广泛的适用范围。
设计和实现基于FPGA 和单片机的高精度数字频率计具有重要的研究意义。
通过本文的研究,可以深入了解数字频率计的工作原理和设计方法,为高精度频率计的研究和应用提供参考和借鉴。
本文的研究成果还可以为提高电子测量仪器的性能,推动数字频率计技术的发展做出重要的贡献。
本文的研究具有重要的理论和实践意义。
1.3 研究现状当前,数字频率计在电子测量领域具有重要的应用价值,其精度和稳定性对于提高测量精度和准确性至关重要。
目前,数字频率计的研究主要集中在硬件设计和软件算法的优化上。
在硬件设计方面,传统的数字频率计主要采用FPGA(现场可编程门阵列)作为核心控制器,实现高速、高精度的频率测量。
通过合理的电路设计和时序控制,可以实现更稳定和准确的频率计算。
在软件设计方面,研究者们致力于优化频率计算算法,提高频率计算的速度和精度。
数字频率计的设计实验报告实验名称:数字频率计的设计实验日期:2021年7月1日实验目的:设计并实现一个基于计数器的数字频率计,使用计数器测量输入信号的频率,并将结果显示在数码管上。
实验器材:FPGA开发板、数字频率计模块、计数器模块、数码管模块。
实验原理:1. 计数器模块设计一个计数器模块,用于计数示波器输入脉冲信号的时间。
计数器的计数时间可以根据需要进行调整。
2. 数字频率计模块设计一个数字频率计模块,用于将计数器的计数时间转换为输入信号的频率。
通过计算计数器的计数值来计算频率,并将结果显示在数码管上。
3. 数码管模块设计一个数码管模块,用于将数字频率计模块计算出的频率值转换为可以在数码管上显示的数码。
实验步骤:1. 搭建实验电路将FPGA开发板连接到计数器模块、数字频率计模块和数码管模块。
2. 编写Verilog代码根据上述原理,编写计数器模块、数字频率计模块和数码管模块的Verilog代码。
3. 编译代码并下载到FPGA开发板使用Xilinx Vivado软件将Verilog代码编译成比特流文件,并将比特流文件下载到FPGA开发板中。
4. 测试实验将示波器的输出信号连接到数字频率计的输入端,并将数字频率计连接到数码管。
通过计算数字频率计的输出,验证数字频率计的测量准确性。
实验结果:经过测试,数字频率计的测量准确度在实验误差范围内。
输入不同频率的信号时,数码管能够正确显示频率值。
实验总结:通过本次实验,成功设计并实现了一个基于计数器的数字频率计。
该实验不仅巩固了计数器、数码管等模块的设计知识,也提高了学生的Verilog编程能力。
在实验中,学生还学习了如何使用FPGA开发板进行数字电路实验,以及测试和验证数字电路的方法和技巧。
数字系统设计实验报告一、设计要求:1、(1)频率测量范围10Hz~1MHz(2)量程自动转换,量程分为10KHz (1s) 、100KHz (0.1s) 、1MHz (10ms)三档。
转换规则如下:当读数大于9999时,频率计处于超量程状态,下一次测量时,量程自动增大一档;当读数小于0999时,频率计处于欠量程状态,下一次测量时,量程自动减小一档(3)数据采用记忆显示方式,即计数过程中不显示数据,待计数过程结束以后,显示计数结果,并将此显示结果保持到下一次计数结束。
(4)用发光二极管显示量程二、方案选则1测量原理:当预置门控信号为高电平时,启动计数器,被测信号(频率为fx) 计数当预置门控信号为低电平时,关闭计数器设在一次预置门控时间Tg内对被测信号计数值为Nx,则fx= Nx / Tg2具体方案:本设计中将2MHz的时钟分三次频,分别作为防抖电路的周期信号、显示模块片选信号、计数及锁存模块闸门信号。
防抖电路滤去窄波,显示模块用模4计数器来分别输出四位测量结果。
计数器通过在0.1s内对输入信号的高电平(发生期)进行计数来得出结果,并且为了达到换挡目的,测量时计六位数,通过结果选择档位进行输出。
二、原理图三、总体电路图四、流程图五、设计清单1、防抖电路LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY debounce ISPORT(key,cp: IN STD_LOGIC; --复位键imp:OUT STD_LOGIC); --去掉窄波后输出END debounce;ARCHITECTURE base OF debounce ISSIGNAL ql,q2:STD_LOGIC;BEGINPROCESS(cp)BEGINIF cp'event AND cp='1'THENq2<=ql; ql<=key;END IF;END PROCESS;imp<=ql AND NOT q2;END base;时序仿真波形:2、分频电路LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_SIGNED.ALL;ENTITY dividefre4 ISPORT(cp_2m:IN STD_LOGIC; --2MHzcpl:OUT STD_LOGIC; --200Hzcp2:OUT STD_LOGIC; --25Hzcp3:OUT STD_LOGIC); --5HzEND dividefre4;ARCHITECTURE behavior OF dividefre4 IS SIGNAL tout:INTEGER RANGE 0 TO 4999; --5000分频SIGNAL toutl:INTEGER RANGE 0 TO 7; --8分频SIGNAL tout2:INTEGER RANGE 0 TO 39; --40分频SIGNAL cp_1:STD_LOGIC;SIGNAL cp_2:STD_LOGIC;SIGNAL cp_3:STD_LOGIC;SIGNAL cp:STD_LOGIC;BEGINPROCESS(cp_2m) –分出400Hz时钟BEGINIF(cp_2m'event AND cp_2m='1')THENIF tout=4999 THENtout<=0;ELSE tout<=tout+1;END IF;IF tout=2499 THENcp<='0';ELSE cp<='1';END IF;END IF;END PROCESS;PROCESS(cp) --200Hz时钟BEGINIF(cp'event AND cp='1')THENcp_1<=NOT cp_1;END IF;END PROCESS;PROCESS(cp_1) --25Hz时钟和5HzBEGINIF(cp_1'event AND cp_1='1')THENIF toutl=7 THEN toutl<=0;ELSE toutl<=toutl+1;END IF;IF toutl=3 THENcp_2<='1';ELSIF toutl=7 THEN cp_2<='0'; --8分频得25Hz END IF;IF tout2=39 THEN tout2<=0; --40分频得5HzELSE tout2<=tout2+1;END IF;IF tout2=39 THENcp_3<='1';ELSIF tout2=19 THEN cp_3<='0';END IF;END IF;END PROCESS;cpl<=cp_1;cp2<=cp_2;cp3<=cp_3;END behavior;仿真波形:(因原程序所分频倍数太大,所以这里将5000倍分频降至50倍)3、计数器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_SIGNED.ALL;ENTITY fretest ISPORT(enable:IN STD_LOGIC; --使能cp3:IN STD_LOGIC; --闸门INput:IN STD_LOGIC; --被测信号reset:IN STD_LOGIC; --复位信号overflow:OUT STD_LOGIC; --大于1000kHzPlay0,playl,play2,play3:OUT INTEGER RANGE 0 TO 9;decimal:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));--小数点,即档位END fretest;ARCHITECTURE behavior OF fretest ISSIGNAL r0_1,r1_1,r2_1,r3_1,r4_1,r5_1:INTEGER RANGE 0 TO 9;BEGINPROCESS(INput,enable,reset,cp3)BEGINIF enable='0'THEN NULL; --不测量ELSIF(input'event AND input='1')THEN --检测被测信号IF reset='1'THEN --同步复位,高电平有效overflow<='0';r0_1<=0;r1_1<=0;r2_1<=0;r3_1<=0;r4_1<=0;r5_1<=0;ELSIF cp3='0'THEN --闸门为0时清零Overflow<='0';r0_1<=0;r1_1<=0;r2_1<=0;r3_1<=0;r4_1<=0;r5_1<=0;ELSE --闸门为高电平计数r0_1<=r0_1+1;IF r0_1=9 THEN r1_1<=r1_1+1;r0_1<=0;IF(r1_1=9)THEN r2_1<=r2_1+1;r1_1<=0;IF(r2_1=9)THEN r3_1<=r3_1+1;r2_1<=0;IF(r3_1=9)THEN r4_1<=r4_1+1;r3_1<=0;IF(r4_1=9)THEN r5_1<=r5_1+1;r4_1<=0;IF(r5_1=9)THEN r5_1<=0;overflow<='1'; --大于1000kHz END IF;END IF;END IF;END IF;END IF;END IF;END IF;END IF;END PROCESS;PROCESS(r5_1,r4_1)BEGINIF r5_1=0 AND r4_1=0 THEN --为小于9999Hz时play0<=r0_1;playl<=r1_1;play2<=r2_1;play3<=r3_1;decimal<="100";ELSIF r5_1=0 THEN --为几十kHz时play0<=r1_1;playl<=r2_1;play2<=r3_1;play3<=r4_1;decimal<="010";ELSE --为几百kHz时play0<=r2_1;playl<=r3_1;play2<=r4_1;play3<=r5_1;decimal<="001";END IF;END PROCESS;END behavior;仿真波形4、锁存器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_SIGNED.ALL;ENTITY frelatch ISPORT(reset:IN STD_LOGIC; --复位cp3:IN STD_LOGIC; --时钟Overflow: IN STD_LOGIC; --大于1000kHz表示play0,playl,play2,play3:IN INTEGER RANGE 0 TO 9;decimal:IN STD_LOGIC_VECTOR(2 DOWNTO 0);--小数点overlatch:OUT STD_LOGIC; --大于1000kHzp0latch,pllatch,p21atch,p31atch:OUT INTEGER RANGE 0 TO 9; delatch:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));--小数点END frelatch;ARCHITECTURE behavior OF frelatch ISBEGINPROCESS(cp3,reset)BEGINIF reset='1'THENoverlatch<='0';p0latch<=0;pllatch<=0;p21atch<=0;p31atch<=0;delatch<=decimal;ELSIF cp3'event AND cp3='0'THENoverlatch<=overflow;p0latch<=play0;pllatch<=playl;p21atch<=play2;p31atch<=play3;delatch<=decimal;END IF;END PROCESS;END behavior;仿真波形5、显示模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_SIGNED.ALL;ENTITY display ISPORT( cpl:IN STD_LOGIC; --时钟overflow:IN STD_LOGIC; --高于1000kHz标志p0,p1,p2,p3:IN INTEGER RANGE 0 TO 9;--BCD码输入 show:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);--7段码输出 sel:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));--位扫描码END dISplay;ARCHITECTURE behavior OF display ISSIGNAL count: INTEGER RANGE 0 TO 3;SIGNAL sel_1:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(cpl)BEGINIF(cpl'event AND cpl='1') THENIF count=3 THEN count<=0;ELSEcount<=count+1;END IF;END IF;END PROCESS;PROCESS(count)BEGINCASE count ISWHEN 0=>sel_1<="1110"; --第0位WHEN 1=>sel_1<="1101"; --第1位WHEN 2=>sel_1<="1011"; --第2位WHEN 3=>sel_1<="0111"; --第3位END CASE;END PROCESS;PROCESS(overflow,sel_1)BEGINIF(overflow='1')THENshow<="0110111"; --高于1000kHz,显示HELSIF(sel_1(0)='0')THEN --第0位数码管译码CASE p0 ISWHEN 0=>show<="1111110";--显示0,a-gWHEN 1=>show<="0110000";--1WHEN 2=>show<="1101101";--2WHEN 3=>show<="1111001";WHEN 4=>show<="0110011";WHEN 5=>show<="1011011";WHEN 6=>show<="0011111";WHEN 7=>show<="1110000";WHEN 8=>show<="1111111";WHEN 9=>show<="1110011";END CASE;ELSIF(sel_1(1)='0')THEN --第1位译码 CASE p1 ISWHEN 0=>show<="1111110";WHEN 1=>show<="0110000";WHEN 2=>show<="1101101";WHEN 3=>show<="1111001";WHEN 4=>show<="0110011";WHEN 5=>show<="1011011";WHEN 6=>show<="0011111";WHEN 7=>show<="1110000";WHEN 8=>show<="1111111"; WHEN 9=>show<="1110011";END CASE;ELSIF(sel_1(2)= '0')THEN --第2位译码 CASE p2 ISWHEN 0=>show<="1111110";WHEN 1=>show<="0110000";WHEN 2=>show<="1101101";WHEN 3=>show<="1111001";WHEN 4=>show<="0110011";WHEN 5=>show<="1011011";WHEN 6=>show<="0011111";WHEN 7=>show<="1110000";WHEN 8=>show<="1111111";WHEN 9=>show<="1110011";END CASE;ELSIF(sel_1(3)='0')THEN --第3位译码 CASE p3 ISWHEN 0=>show<="1111110";WHEN 1=>show<="0110000";WHEN 2=>show<="1101101";WHEN 3=>show<="1111001";WHEN 4=>show<="0110011";WHEN 5=>show<="1011011";WHEN 6=>show<="0011111";WHEN 7=>show<="1110000";WHEN 8=>show<="1111111";WHEN 9=>show<="1110011";END CASE;END IF;END PROCESS; sel<=sel_1; END behavior; 仿真波形。
《FPGA系统设计》实验报告》数字频率计
一、设计任务
设计数字频率计,测量频率在1MHz以内,显示四位十进制输出结果。
可根据大小,自动切换量程,量程分为三档,最大读数为9.99kHz到999.9kHz。
当被测信号频率大于999.9kHz时,为超过量程状态,数码管提示溢出,同时报警指示灯闪烁。
二、设计过程
1.技术模式
(1)编写程序
(2)波形仿真
(3)模块图
2.译码模块(1)编写程序
(2)波形仿真
(3)模块图
3.分频模块(1)编写程序
(2)波形仿真
(3)模块图
4.锁存模块(1)编写程序
(2)波形仿真
(3)模块图
5.扫描模块(1)编码程序
(2)波形仿真
(3)模块图
(1)模块图
(2)波形仿真
(3)引脚分配
四、总结
经过这次的实验课程设计,我学到了如何将多个程序绑在一起使用并构成一个完整的系统。
在老师的指导下、在我们实验设计小组的共同努力下、在其他同学的热情帮助下,我们完整滴完成了《数字频率计》的设计、组装,并做了些创新。
虽然实验成功,我们同样在实验过程中遇到了一些问题,刚开始时候的设计是每组组员做一部分,但是问题就是有些系数不能同一。
因此造成了一开始实验进展缓慢。
在实验过程中,器材的问题也被我们遇到了。
因此也得到了些经验:要对自己的实验成果由信心,不要一出问题就从程序中找问题。
可能对你最大的阻碍就是你没有考虑到的器材问题。
在最后仿真时候,导线的顺序也是常出问题的地方。
由于没有及时发现问题的所在,我们小组花费了整整一节课的时间在改程序,浪费了许多宝贵时间。
基于FPGA的数字频率计的设计学生专业:学生姓名:指导教师:摘要数字频率计是近代电子技术领域的重要测量工具之一,同时也是其它许多领域广泛应用的测量仪器。
它在规定的基准时间内把测量的脉冲数记录下来,换算成频率并以数字形式显示出来。
在许多测量方案以及测量结果中都会涉及到频率测量的相关问题,频率精确测量的重要性显而易见。
本设计在了解频率计的基本原理的基础上,基于直接测频法的测试手段,即在一定闸门时间内测量被测信号的脉冲个数;设计频率计的测量范围为1Hz-99.99MHz。
将设计分为六个模块,即顶层模块,分频模块,计数模块,单位选择模块,数码管位选模块,转换模块。
采用硬件描述语言Verilog 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 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 the 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 parts, a top-level module, points frequency modules, count module, the unit choose module, digital tube a chosen module, conversion module The 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 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目录摘要 (I)Abstract (II)第1章绪论 (1)1.1课题背景和意义 (1)1.2国内外发展情况 (1)第2章频率计测量原理及Verilog HDL概述 (3)2.1数字频率计测量原理 (3)2.1.1 直接计数测频法 (3)2.1.2 等精度测频法 (5)2.1.3 全同步测频法 (6)2.2Verilog HDL概述 (7)2.2.1 Verilog HDL介绍 (7)2.2.2 Verilog HDL程序开发流程 (8)2.3本章小结 (8)第3章数字频率计模块设计 (9)3.1数字频率计设计指标 (9)3.2数字频率计各个模块 (10)3.2.1 顶层模块fre_counter (10)3.2.2 分频模块clk_gen (12)3.2.3 计数模块count (14)3.2.4 单位控制模块count_4units (15)3.2.5 数码管位选模块led_sel (15)3.2.6 转换模块transform (17)3.3本章小结 (18)第4章数字频率计仿真 (19)4.1分频模块仿真波形 (19)4.2计数模块仿真波形 (19)4.3单位控制模块仿真波形 (20)4.4数码管位选模块 (20)4.5转换模块 (21)4.6本章小结 (21)第5章芯片介绍和管脚分配 (22)5.1FPGA芯片介绍 (22)5.2代码管脚分配图 (22)5.3顶层原理图效果图 (23)5.4本章小结 (23)结论 (24)致谢 (25)参考文献 (26)附录1程序源代码 (28)CONTENTSAbstract(Chinese) (I)Abstract(English) (II)Chapter 1 Introduction (1)1.1 Background and Significance (1)1.2 Domestic and foreign development (1)Chapter 2 Principle and Verilog HDL overview (3)2.1 Measuring principle (3)2.1.1 Direct count frequency measurement method (3)2.1.2 Precision frequency measurement method (5)2.1.3 With all BuCe frequency method (6)2.2 Verilog HDL overview (7)2.2.1 Verilog HDL introduction (7)2.2.2 Verilog HDL program development processes (8)2.3 Chapter summary (8)Chapter 3 Digital frequency plan module design (9)3.1 Digital frequency plan design index (9)3.2 Digital frequency plan each module (10)3.2.1 Fre_counter top-level module (10)3.2.2 Points clk_gen frequency modules (12)3.2.3 Count count module (14)3.2.4 The unit control module count_4units (15)3.2.5 Digital tube a choose led_sel module (15)3.2.6 Conversion module transform (17)3.3 Chapter summary (18)Chapter 4 Digital frequency plan simulation (19)4.1Points frequency modules simulation waveform (19)4.2 Count module simulation waveform (19)4.3 The unit control module simulation waveform (20)4.4 Digital tube a chosen module (20)4.5 Conversion module (21)4.6 Chapter summary (21)Chapter 5 Chip introduction and tube foot distribution (22)5.1 Introduced FPGA chip (22)5.2The code to pin assignment graph (22)5.3 Top principle diagram rendering (23)5.4 Chapter summary (23)Conclusion (24)Acknowledgement (25)References (26)Appendix 1 program (28)第1章绪论1.1课题背景和意义随着数字电路应用越来越广泛,传统的通用数字集成电路芯片已经很难满足系统功能的要求,而且随着系统复杂程度的不断增加,所需通用集成电路的数量呈爆炸性增长,使得电路板的体积迅速膨胀,系统可靠性难以保证[1]。