基于VHDL的数字频率计的设计

合集下载

基于VHDL语言的数字频率计的设计方案

基于VHDL语言的数字频率计的设计方案

基于VHDL语言的数字频率计的设计方案
1.引言数字频率计是通讯设备、计算机、电子产品等生产领域不
可缺少的测量仪器。

由于硬件设计的器件增加,使设计更加复杂,可靠性变差,延迟增加,测量误差变大。

通过使用EDA技术对系统功能进行描述,运用VHDL语言,使系统简化,提高整体的性能和可靠性。

采用VHDL编程设计的数字频率计,除了被测信号的整形部分,键输入和数码显示以外,其他都在一片FPGA上实现,从而让整个系统非常精简,让其具有灵活的现场更改性,在不改变硬件电路的基础上,进一步改进提高系统的性能,使数字频率计具有高速,精确度高,可靠性强,抗干扰等优点,为数字系统进一步的集成创造了条件。

2.数字频率计的工作原理
频率测量方法中,常用的有直接测频法、倍频法和等精度测频法。

中直接测频法是依据频率的含义把被测频率信号加到闸门的输入端,只有在闸门开通时间T(以ls计)内,被测(计数)的脉冲送到十进制计数器进行计数。

直接测频法比其他两个方案更加简单方便可行,直接测频法虽然在低频段测量时误差较大,但在低频段我们可以采用直接测周法加测量,这样就可以提高测量精度了。

直接周期测量法是用被测周期信号直接控制计数门控电路,使主门开放时间等于Tx,时标为Ts的脉冲在主门开放时间进入计数器。

设在Tx期间计数值为N,可以根据Tx=N乘以Ts来算得被测信号周期。

因此本文采用低频测周,高频测频的方法来提高精度,减小误差。

3.主要功能模块的实现
该系统设计的控制器是由状态机实现,通过在不同测量档位,选择合理的时基信号频率降低误差,确定各状态转移条件和状态名,采用低频档位测周,。

基于VHDL设计的频率计

基于VHDL设计的频率计

基于VHDL设计的频率计专业:信息工程学号:姓名:一、实验任务及要求1、设计一个可测频率的数字式频率计,测量范围为1Hz~12MHz。

该频率计的逻辑图如图所示。

2、用层次化设计方法设计该电路,编写各个功能模块的程序。

3、仿真各功能模块,通过观察有关波形确认电路设计是否正确。

4、完成电路设计后,用实验系统下载验证设计的正确性。

二、设计说明与提示由上图可知8位十进制数字频率计,由一个测频控制信号发生器TESTCTL、8个有时钟使能的十进制计数器CNT10、一个32位锁存器REG32B组成。

1、测频控制信号发生器设计要求。

频率测量的基本原理是计算每秒种内待测信号的脉冲个数。

这就要求TESTCTL的计数使能信号TSTEN能产生一个1秒脉宽的周期信号,并对频率计的每一计数器CNT10的ENA使能端进行同不控制。

当TSTEN高电平时允许计数、低电平时停止计数,并保持其所计的数。

在停止计数期间,首先需要一个锁存信号Load的上跳沿将计数器在前1秒钟的计数值锁存进32位锁存器REG32B中,并由外部的7段译码器译出并稳定显示。

设置锁存器的好处是为了显示的数据稳定,不会由于周期性的清零信号而不断闪烁。

锁存信号之后,必须有一清零信号CLR_CNT对计数器进行清零,为下1秒钟的计数操作做准备。

测频控制信号发生器的工作时序如下图。

为了产生这个时序图,需首先建立一个由D触发器构成的二分频器,在每次时钟CLK上沿到来时使其值翻转。

其中控制信号时钟CLK的频率1Hz,那么信号TSTEN的脉宽恰好为1秒,可以用作闸门信号。

然后根据测频的时序要求,可得出信号Load和CLR_CNT 的逻辑描述。

由图可见,在计数完成后,即计数使能信号TSTEN在1秒的高电平后,利用其反相值的上跳沿产生一个锁存信号Load,0.5秒后,CLR_CNT产生一个清零信号上跳沿。

高质量的测频控制信号发生器的设计十分重要,设计中要对其进行仔细的实时仿真(TIMING SIMULATION),防止可能产生的毛剌。

基于VHDL的频率计设计本科毕业设计

基于VHDL的频率计设计本科毕业设计

JIU JIANG UNIVERSITY毕业论文(设计)题目基于VHDL的频率计设计英文题目 The frequency meter based on VHDL design 院系电子工程学院专业电子信息工程九江学院学士学位论文摘要数字频率计是直接用十进制数字来显示被测信号频率的一种测量装置。

它不仅可以测量正弦波、方波、三角波、尖脉冲信号,而且还可以测量它们的周期。

经过改装,可以测量脉冲宽度,做成数字式脉宽测量仪;在电路中增加传感器,还可以做成数字脉搏仪、计价器等。

因此数字频率计在测量物理量方面应用广泛。

本设计用VHDL在CPLD器件上实现数字频率计测频系统,能够用十进制数码显示被测信号的频率,而且还能对其他多种物理量进行测量。

具有体积小、可靠性高、功耗低的特点。

采用VDHL编程设计实现的数字频率计,除被测信号的整形部分、键输入部分和数码显示部分以外,其余全部在一片FPGA芯片上实现,整个系统非常精简,而且具有灵活的现场可更改性。

关键字:VHDL语言;频率计;FPGA基于VHDL的频率计设计The frequency meter based on VHDL designAbstractDigital frequency meter is directly with a decimal number to display the measured signal frequency of a measuring device. It not only can measure the sine wave, square wave, triangle wave, pulse signal, but also can measure their cycle. Modified, and can measure pulse width, into a digital pulse width measuring instrument; Add the sensors in the circuit, but also can be made into digital pulse apparatus, meter, etc. So the digital frequency meter has been widely applied in measuring physical quantities. This design with VHDL on the CPLD device to realize digital frequency meter frequency measurement and control system, can use decimal digital display measured signal frequency, but also to measure a variety of other physical quantities. With the characteristics of small volume, high reliability, low power consumption. VDHL programming design was adopted to realize digital frequency meter, in addition to the measured signal of the plastic part and digital display, key input parts, all on a FPGA chip, the whole system is very compact, and with flexible field is modified.Key Words:VHDL language; Frequency meter; FPGA九江学院学士学位论文目录摘要 (I)The frequency meter based on VHDL design (II)Abstract (II)第一章绪论 (1)1.1课题的研究背景 (1)1.2频率计发展现状 (1)第2章数字频率计的要求 (3)2.1 主要技术指标 (3)2.2 课题的研究内容 (3)第3章数字频率计的方案设计 (4)3.1 基本原理 (4)3.1.1 频率计测量频率的设计原理 (4)3.1.2频率计测量频率的原理图 (4)3.2 设计流程图 (5)第4章数字频率计各模块功能介绍 (6)4.1频率控制模块的VHDL语言源程序 (6)4.1.1 频率控制模块的程序如下: (6)4.1.2 频率控制模块CNT12 (7)4.2十进制加法计数器CNT10的VHDL语言源程序 (7)4.2.1 十进制计数器的程序 (7)4.2.2 十进制计数器的顶层设计 (9)4.3系统模块的VHDL语言源程序 (9)4.3.1系统模块的设计 (9)4.3.2 系统模块的程序 (9)4.4 锁存器LOCK的VHDL语言源程序 (13)4.4.1 锁存器LOCK的程序 (13)4.4.2 锁存器LOCK顶层设计图 (14)4.5 译码模块DECODER的VHDL语言源程序 (15)4.5.1 译码模块DECODER的程序 (15)4.6四选一选择器MUX41的VHDL语言源程序 (16)4.6.1 MUX41程序 (16)4.7 四进制计数器CNT4的VHDL语言源程序 (17)基于VHDL的频率计设计4.7.1 四进制计数器CNT4的程序 (17)4.7.2 四进制计数器CNT4 (17)4.8 250分频器的VHDL语言源程序 (18)4.8.1 250分频器的程序 (18)4.8.2 250分频器 (18)九江学院学士学位论文第一章绪论在科技高度发展的今天,集成电路和计算机应用得到了高速发展。

基于VHDL语言的数字频率计设计

基于VHDL语言的数字频率计设计

数 码 管显示 ,最 大 读 数分 别 为 9 9 Hz 9 9k 、 . 9k 、9 . Hz 9 9k , 9 Hz 小数 点 随量 程 变 换 自动 移 位 ) ,量 程 自动 转
换 规则 :
硬件 描述语 言对 高层 次的 系统行 为进 行描述 ,在 系统

级 进行验 证 ,最 后再 用逻 辑综合 优 化工具 生成 具体
摘 要 介 绍 了 VHD L语 言在 数 字频 率 计 设 计 中的 具 体 应 甩 ,说 明 了 实现 电子 电路 设 计 的 自动 化 ( A)过 程 和 ED
E A 技 术在 现 代 数 字 系统 设 计 中的 重要 地 位 和 作 用 。 D 关 键 词 VH E A 自下 至上 自上 至 下 综 合 编 程 下载 DL D
M od f M u tme a ds or li di Pr s nt ton e e a i wih t U S r e
[ ] 94 2 7 23 C ,1 9 , 5 ~ 7
5 Pr b k r n,B, gh v n, a ha a a Ra a a S V.Sy hr nia i n nc o z to
的 门级逻辑 电路 的 网表 ,其 对应 的物理 实 现是专 用集 成 电路 ( I 。 AS C)
( )读数 大 于 9 9时 ( 1 9 不考虑 小数 点 ,下同 ) ,频 率计 处 于超 量程 状态 ,此时显 示器 发 出溢 出指示 ( 显
示 F F ,下次 测量 ,量 程 自动增 大一档 。 F )
设 计一个 3位 十进 制 数字 频率 计 ,其 测量范 围 为
1MH , 程分 1 Hz 0 Hz z三档 ( 位 z量 0k 、1 0k 、1MH 3

基于VHDL的数字频率计的设计

基于VHDL的数字频率计的设计

目录第一章概述 (1)1.1 设计概述 (1)1.2设计内容 (1)1.3 设计原理 (1)1.4 设计功能 (2)第二章技术与开发工具 (3)2.1 VHDL简介 (3)2.1.1简介 (3)2.1.2 VHDL程序组成部分 (4)2.1.3 VHDL系统优势 (4)2.2 MAX+PLUSⅡ (5)2.2.1 软件简介 (5)2.2.2 软件组成 (6)2.2.3设计流程 (7)第三章系统分析 (8)3.1数字频率计的设计任务及要求 (8)3.2 模块的划分 (8)3.3设计分析 (9)第四章各功能模块基于VHDL的设计 (10)4.1 时基产生与测频时序控制电路模块的VHDL源程序 (10)4.2 待测信号脉冲计数电路模块的VHDL源程序 (11)4.2.1 十进制加法计数器的VHDL源程序 (11)4.2.2待测信号脉冲计数器的VHDL源程序 (12)4.3 锁存与译码显示控制电路模块的VHDL源程序 (13)4.3.1 译码显示电路的VHDL源程序 (13)4.3.2 锁存与译码显示控制模块的VHDL源程序 (14)4.4 顶层电路的VHDL源程序 (16)第五章数字频率计波形仿真 (18)5.1 时基产生与测频时序控制电路模块的仿真 (18)5.2 待测信号脉冲计数电路模块的仿真 (18)5.2.1 十进制加法计数器的仿真 (18)5.2.2待测信号脉冲计数器的仿真 (19)5.3 锁存与译码显示控制电路模块的仿真 (19)5.3.1 译码显示电路的仿真 (19)5.3.2 锁存与译码显示控制模块的仿真 (20)5.4 数字频率计系统的仿真 (20)结论 (22)参考文献 (23)摘要本文介绍了一种自顶向下分层设计多功能数字频率计的设计方法。

该频率计采用VHDL硬件描述语言编程以MAX+PLUSⅡ为开发环境,极大地减少了硬件资源的占用。

数字频率计模块划分的设计具有相对独立性,可以对模块单独进行设计、调试和修改,缩短了设计周期。

基于VHDL频率计的设计

基于VHDL频率计的设计

频率计一、实验目的1.学习并熟悉使用max+plusⅡ软件。

2.掌握各频率计各逻辑模块的功能与设计方法。

二、实验原理频率测量基本原理是计算每秒钟内待测信号的脉冲个数。

要求TESTCTL的计数使能信号TSTEN能产生一个1秒脉宽的周期信号,并对频率计的每一计数器CNT10的ENA使能端进行同步控制。

当TSTEN为高电平时,允许计数;为低电频时停止计数,并保持其所计的脉冲信号。

在停止计数期间,首先需要一个锁存信号LOAD的上跳沿将计数器在前一秒的计数值锁存进32位锁存器REG32B中,并由周期性的清零信号并不断闪烁。

所存信号之后,必需有一清零信号CLR_CNT 对计数器进行清零,为下一秒的计数做准备。

测试控制信号发生器的工作时序如图。

为了产生这个时序图,需首先建立一个由D触发器构成的二分频器,在每次时钟CLK上沿到来时其值翻转。

三、实验内容和代码—————————————cnt10——————————————LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY CNT10 ISPORT (CLK: IN STD_LOGIC;CLR: IN STD_LOGIC;ENA: IN STD_LOGIC;CQ: OUT INTEGER RANGE 0 TO 15;CARRY_OUT :OUT STD_LOGIC );END CNT10;ARCHITECTURE behav OF CNT10 ISSIGNAL CQI: INTEGER RANGE 0 TO 15;BEGINPROCESS(CLK, CLR, ENA)BEGINIF CLR = '1' THEN CQI <= 0;ELSIF CLK'EVENT AND CLK = '1' THENIF ENA = '1' THENIF CQI < 9 THEN CQI <= CQI + 1;ELSE CQI <= 0;END IF;END IF;END IF;END PROCESS;PROCESS(CQI)BEGINIF CQI = 9 THEN CARRY_OUT <= '1';ELSE CARRY_OUT <= '0'; END IF;END PROCESS;CQ <= CQI;END behav;——————————————REG32GB——————————LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG32B ISPORT (Load : IN STD_LOGIC;DIN : IN STD_LOGIC_VECTOR(31 DOWNTO 0);DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) ); END REG32B;ARCHITECTURE behav OF REG32B ISBEGINPROCESS(Load, DIN)BEGINIF Load'EVENT AND Load='1' THEN DOUT <=DIN;END IF;END PROCESS;END behav; ——————————————TESTCTL——————————LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY TESTCTL ISPORT (CLK : IN STD_LOGIC;TSTEN : OUT STD_LOGIC;CLR_CNT : OUT STD_LOGIC;Load : OUT STD_LOGIC);END TESTCTL;ARCHITECTURE behav OF TESTCTL ISSIGNAL Div2CLK : STD_LOGIC;BEGINPROCESS(CLK)BEGINIF CLK'EVENT AND CLK = '1' THENDiv2CLK <= NOT Div2CLK;END IF;END PROCESS;PROCESS(CLK, Div2CLK)BEGINIF CLK = '0' AND Div2CLK ='0' THEN CLR_CNT <= '1';ELSE CLR_CNT <= '0'; END IF;END PROCESS;Load <= NOT Div2CLK; TSTEN <= Div2CLK;END behav;——————————FREQTEST——————————LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY FREQTEST ISPORT(CLK : IN STD_LOGIC;FSIN : IN STD_LOGIC;DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) );END FREQTEST;ARCHITECTURE struc OF FREQTEST ISCOMPONENT TESTCTLPORT(CLK : IN STD_LOGIC ; TSTEN : OUT STD_LOGIC ;CLR_CNT : OUT STD_LOGIC ; Load : OUT STD_LOGIC );END COMPONENT;COMPONENT CNT10PORT(CLK : IN STD_LOGIC ; CLR : IN STD_LOGIC ; ENA : IN STD_LOGIC ;CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);CARRY_OUT : OUT STD_LOGIC);END COMPONENT;COMPONENT REG32BPORT( Load : IN STD_LOGIC;DIN : IN STD_LOGIC_VECTOR(31 DOWNTO 0);DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) );END COMPONENT ;SIGNAL Load1,TSTEN1,CLR_CNT1: STD_LOGIC;SIGNAL DTO1 : STD_LOGIC_VECTOR(31 DOWNTO 0);SIGNAL CARRY_OUT1: STD_LOGIC_VECTOR(6 DOWNTO 0);BEGINU1 : TESTCTL PORT MAP(CLK => CLK, TSTEN =>TSTEN1,CLR_CNT => CLR_CNT1, Load => Load1 );U2 : REG32B PORT MAP(Load => Load1, DIN => DTO1, DOUT => DOUT );U3 : CNT10 PORT MAP(CLK => FSIN ,CLR => CLR_CNT1, ENA => TSTEN1,CQ => DTO1(3 DOWNTO 0), CARRY_OUT => CARRY_OUT1(0) ); U4 : CNT10 PORT MAP(CLK => CARRY_OUT1(0), CLR => CLR_CNT1,ENA => TSTEN1, CQ => DTO1(7 DOWNTO 4),CARRY_OUT => CARRY_OUT1(1) );U5 : CNT10 PORT MAP(CLK => CARRY_OUT1(1), CLR => CLR_CNT1,ENA => TSTEN1,CQ => DTO1(11 DOWNTO 8),CARRY_OUT => CARRY_OUT1(2) );U6 : CNT10 PORT MAP(CLK => CARRY_OUT1(2), CLR => CLR_CNT1,ENA => TSTEN1,CQ => DTO1(15 DOWNTO 12),CARRY_OUT => CARRY_OUT1(3) );U7 : CNT10 PORT MAP(CLK => CARRY_OUT1(3), CLR => CLR_CNT1,ENA => TSTEN1,CQ => DTO1(19 DOWNTO 16),CARRY_OUT => CARRY_OUT1(4) );U8 : CNT10 PORT MAP(CLK => CARRY_OUT1(4), CLR => CLR_CNT1,ENA => TSTEN1,CQ => DTO1(23 DOWNTO 20),CARRY_OUT => CARRY_OUT1(5) );U9 : CNT10 PORT MAP(CLK => CARRY_OUT1(5), CLR => CLR_CNT1,ENA => TSTEN1,CQ => DTO1(27 DOWNTO 24),CARRY_OUT => CARRY_OUT1(6) );U10 : CNT10 PORT MAP(CLK => CARRY_OUT1(6), CLR => CLR_CNT1,ENA => TSTEN1,CQ => DTO1(31 DOWNTO 28) ); END struc;四、实验原理图:五、实验仿真波形:本次设计我们采用GW48 EDA实验箱,选择芯片EP1K30TC144-1,选择模式0,引七、编程下载在实验箱上选择CLOCK2输入为1Hz,模式选择模式0,引脚映射如上表所示。

基于vhdl数字频率计设计说明书

基于vhdl数字频率计设计说明书

一、设计功能与要求设计数字频率计,满足如下功能:(1)用VHDL语言完成数字频率计的设计及仿真。

(2)频率测量范围:1∼10KHz,分成两个频段,即1∼999Hz,1KHz∼10KHz,用三位数码管显示测量频率,且用LED(发光二极管)来表示所显示单位,我们这里定义亮绿灯表示以Hz为单位,亮红灯表示以KHz为单位。

(3)具有自动校验和测量两种功能,即既能用于标准时钟的校验,同时也可以用于未知信号频率的测量。

(4)具有超量程报警功能,在超出目前所选量程档的测量范围时,会发出音响报警信号。

二、设计思路通过计算已知单位时间内待测信号的脉冲个数来计算被测信号的频率,同时通过动态扫描方式在三个数码管上显示出测得频率值。

如下图1的系统框图所示,计数器对CP信号进行计数,在1秒定时结束后,将计数器结果送锁存器锁存,并通过时钟下降沿将不再变化的测量值送至数码管显示。

在下一个计数时钟信号上升沿到来时,再次重新计数。

图1 系统设计框架图系统各个模块介绍如下:(1)测量/校验选择模块:输入信号:选择信号selin,被测信号measure,标准校验信号test;输出信号:CP;当selin=0时,为测量状态,CP=measure;当selin=1时,为校验状态,CP=test。

校验与测量共用一个电路,只是被测信号CP不同而已。

(2)测频控制信号发生器(二分频):输入信号:1Hz时钟信号clk;输出信号:1秒钟高电平基准信号clk1(周期为2秒);(3)四级十进制计数器模块(带进位C):输入信号:clk1、CP,用于计数开始、清零、锁存。

输出信号:q4~q1设置超出量程档测量范围示警信号alert。

若被测信号频率小于1KHz(K=0),则计数器只进行三级十进制计数,最大显示值为999.Hz,如果被测信号频率超过此范围,示警信号扬声器报警;若被测信号为1KHz~10KHz (K=1),计数器进行四位十进制计数,取高三位显示,最大显示值为9.99KHz,如果被测信号频率超过此范围, 示警信号扬声器报警。

VHDL语言设计数字频率计

VHDL语言设计数字频率计

数字频率计的设计一、频率计实现的功能要设计的频率计的测量范围为1MHz。

为了提高测量的精度,量程分为三档,分别是:10kHz、100kHz、1MHz。

并要求在测量频率大于或小于选择的量程时,频率计自动换档。

1、当读数大于999时,频率计处于超量程状态,下一次测量时,量程自动增加一档。

2、当读数小于009时,频率计处于欠量程状态,下一次测量时,量程自动减小一档。

3、当超出测量范围时,显示错误。

4、在计数时不显示数据,计数完成后只显示测量结果。

5、小数点位置要自动移位。

二、频率计各部分的分析在这个设计中,需要用计数器来进行计数,而且计数器在各个档位要被重复使用,在测量的过程中,计数允许时钟信号还要进行调整,故将计数器设计成一个单独的模块,提供计数值的输出。

显示结果包括数值显示,档位显示及溢出标志显示。

其中数值显示要用到三个数码管,实验箱上连在一起的三个数码管中,只有两个数码管内部接有译码器,因此我们自己还要在程序中为那个没有译码器的数码管再加一段七段译码器程序来显示结果。

档位标志由三个LED灯来显示,代替数码管上的小数点的功能。

溢出标志由两个LED灯来显示,其中一个显示结果溢出,另一个显示输入信号在测量范围之内。

该频率计的顶层逻辑电路原理图如图(1)所示:图(1)三、频率计各部分的设计和实现从上面的分析可以知道,频率计可以由三个模块来组成。

下面对各个模块的设计方法和实现方法进行详细说明。

1、时基进程的设计和实现在实际使用时,输入的信号是随意的,没有办法预知输入的频率。

因此选取频率计的时基是非常重要的。

在设计要求中,将量程分为三档,在某一档进行测量时,需要提供该档的时基。

在10kHz档,该档最大读数为9.99kHz,最小读数为0.01 kHz,所以要提供的时基是频率为0.01 kHz的脉冲。

同理,在100 kHz档上,要提供的时基应该是频率为0.1 kHz的脉冲。

在1 MHz档上,要提供的时基是频率为1 kHz的脉冲。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

湖南科技大学信息与电气工程学院《VHDL硬件描述语言课程设计报告》题目:数字频率计专业:通信工程班级:一班姓名:学号:指导教师:***2015年 01月 04日信息与电气工程学院课程设计任务书20 —20 学年第学期专业:学号:姓名:课程设计名称:设计题目:完成期限:自年月日至年月日共周设计依据、要求及主要内容(可另加附页):指导教师(签字):批准日期:年月日目录摘要 (1)引言 (2)第一章概述 (2)1.1设计概述 (2)1.2课程设计的总体目标 (2)1.3设计内容 (2)1.4设计原理 (2)1.5设计功能 (3)第二章数字频率计系统分析 (3)2.1数字频率计的设计任务及要求 (3)2.2模块的划分 (3)2.3设计分析 (4)第三章各功能模块基于VHDL的设计 (4)3.1时基产生与测频时序控制电路模块的VHDL源程序 (4)3.2待测信号脉冲计数电路模块的VHDL源程序 (5)3.2.1 十进制加法计数器的VHDL源程序 (5)3.2.2待测信号脉冲计数器的VHDL源程序 (6)3.3锁存与译码显示控制电路模块的VHDL源程序 (7)3.3.1 译码显示电路的VHDL源程序 (7)3.3.2 锁存与译码显示控制模块的VHDL源程序 (7)3.4顶层电路的VHDL源程序 (8)第四章数字频率计波形仿真 (9)4.1时基产生与测频时序控制电路模块的仿真 (9)4.2待测信号脉冲计数电路模块的仿真 (10)4.2.1 十进制加法计数器的仿真 (10)4.2.2待测信号脉冲计数器的仿真 (10)4.3锁存与译码显示控制电路模块的仿真 (10)4.3.1 译码显示电路的仿真 (11)4.3.2 锁存与译码显示控制模块的仿真 (11)4.4数字频率计系统的仿真 (11)第五章体会和建议 (12)参考文献: (13)摘要本文介绍了一种自顶向下分层设计多功能数字频率计的设计方法。

该频率计采用VHDL硬件描述语言编程以MAX+PLUSⅡ为开发环境,极大地减少了硬件资源的占用。

数字频率计模块划分的设计具有相对独立性,可以对模块单独进行设计、调试和修改,缩短了设计周期。

该数字频率计的测量范围为lHz~1MHz,响应时间小于等于15秒;其测试结果由4只七段数码管稳定显示,测量误差小于等于1%。

仿真波形与分析结果表明,所设计的电路通过硬件仿真能够满足数字频率计的功能要求,具有理论与实践意义,实现了电子电路自动化的过程。

数字频率计模块划分的设计具有相对独立性,可以对模块单独进行设计、调试和修改,缩短了设计周期。

关键词:VHDL 数字频率计 EDA MAX+PLUSⅡAbstractThis paper presents a top-down design of multi-layered design method of digital frequency meter. The frequency counter using VHDL hardware description language programming in MAX + PLUS Ⅱ for the development environment, greatly reducing the hardware resources of the occupation. Digital frequency meter module design division of the relative independence of the separate modules can design, debug and modify, shorten the design cycle. The digital frequency meter measurement range of lHz ~ 1MHz, response time of 15 seconds or less; the test results from the four seven-segment digital tube display stability, measurement error is less than equal to 1%. Simulation waveforms and analysis results show that the designed circuit simulation by hardware to meet the functional requirements of digital frequency meter of great theoretical and practical significance of the electronic circuit to achieve the automated process. Digital frequency meter module design division of the relative independence of the separate modules can design, debug and modify, shorten the design cycle.Key words: VHDL Digital frequency meter EDA MAX+PLUSⅡ引言数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生较大的延时,造成测量误差、可靠性差。

随着可编程逻辑器件(CPLD)的广泛应用,以EDA工具为开发平台,利用VHDL(Very High Speed Integrated Circuit Hardware Description Language,超高速集成电路硬件描述语言)工业标准硬件描述语言,采用自顶向下(Top to Down)和基于库(Library-based)的设计,设计者不但可以不必了解硬件结构设计,而且将使系统大大简化,提高整体的性能和可靠性。

第一章概述1.1 设计概述所谓频率,就是周期信号在单位时间(1s)里变化的次数。

本数字频率计的设计思路是:(1) 根据频率计的测频原理,可以选择合适的时基信号对输入被测信号脉冲进行计数,实现测频的目的。

(2) 根据数字频率计的基本原理,本文设计方案的基本思想是分为三个模块来实现其功能,即时基产生与测频时序控制电路模块、待测信号脉冲计数电路模块和锁存与译码显示控制电路模块,并且分别用VHDL对其进行编程,实现计数电路、锁存电路、显示电路等。

1.2课程设计的总体目标(1)、本设计的任务是熟悉支持VHDL语言的软件,例如:MAX—PLUS2,ISP,FOUNDATION等,利用这一类软件使用VHDL语言进行设计。

(2)、熟悉数字电路及相关专业课程的基本知识并能联系具体程序(3)、正确操作使用VHDL语言相关软件,能编译,调试,仿真VHDL语言程序(4)、设计数字电路,编写程序,实现电路功能。

1.3 设计内容分析数字频率计的功能,完成功能模块的划分,分别用VHDL语言完成底层模块的设计和以原理图的方法完成顶层模块的设计,分别对各个模块以及顶层模块进行仿真分析,最后在硬件开发平台上进行测试。

1.4 设计原理众所周知,频率信号易于传输,抗干扰性强,可以获得较好的测量精度。

因此,频率检测是电子测量领域最基本的测量之一。

频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。

通常情况下计算每秒内待测信号的脉冲个数,即闸门时间为1s。

闸门时间可以根据需要取值,大于或小于1S都可以。

闸门时间越长,得到的频率值就越准确,但闸门时间越长,则每测一次频率的间隔就越长。

闸门时间越短,测得的频率值刷新就越快,但测得的频率精度就受影响。

一般取1s作为闸门时间。

数字频率计的关键组成部分包括测频控制信号发生器、计数器、锁存器、译码驱动电路和显示电路,其原理框图如图1. 1所示。

图1.1 原理框图1.5 设计功能四位十进制数字频率计用四组七段译码显示的数字频率计,其频率测量范围为1Hz~10kHz。

采用记忆显示的方法,即在测量过程中不刷新数据,等数据过程结束后才显示测量结果,给出待测信号的频率值,并保存到下一次测量结束,显示时间不少于1秒。

第二章数字频率计系统分析2.1数字频率计的设计任务及要求设计一个四位十进制的数字频率计,要求具有以下功能:(1) 测量范围:1Hz~10kHz。

(2) 测量误差≤1%。

(3) 响应时间≤15s。

(4) 显示时间不少于1s。

(5) 具有记忆显示的功能,即在测量的过程中不刷新数据,等数据过程结束后才显示测量结果,给出待测信号的频率值,并保存到下一次测量结束。

2.2 模块的划分根据系统设计要求,系统设计采用自顶向下的设计方法,系统的组成框图如图3. 1所示,包括时基产生与测频时序控制电路模块,以及待测信号脉冲计数电路模块和锁存与译码显示控制电路模块。

图3.1 数字频率计的组成框图(1) 时基产生与测频时序控制电路模块时基产生与测频时序控制电路的主要产生计数允许信号EN、清零信号CCLR和锁存信号LOCK。

(2) 待测信号脉冲计数电路模块待测信号脉冲计数电路是对待测脉冲信号的频率进行测量,它可由4个十进制加法计数器组成,其中EN为计数选通控制信号,CLR为计数器清零信号。

在计数器清零信号CLR清零后,当计数选通控制信号EN有效时,开始对待测信号进行计数。

如果计数选通控制信号EN的宽度为1s,那么计数结果就为待测信号的频率;如果计数选通信号EN的宽度为100ms,那么待测信号的频率等于计数结果 10。

(3) 锁存与译码显示控制电路模块锁存与译码显示控制电路用于实现记忆显示,在测量过程中不刷新新的数据,直到测量过程结束后,锁存显示测量结果,并且保存到下一次测量结束。

锁存与译码显示电路的功能是对四位BCD码进行锁存,并转换为对应的4组七段码,用于驱动数码管。

2.3设计分析采用VHDL语言设计一个复杂的电路系统,运用自顶向下的设计思想,将系统按功能逐层分割的层次化设计方法进行设计。

在顶层对内部各功能块的连接关系和对外的接口关系进行了描述,而功能块的逻辑功能和具体实现形式则由下一层模块来描述。

各功能模块采用VHDL语言来描述。

第三章各功能模块基于VHDL的设计3.1 时基产生与测频时序控制电路模块的VHDL源程序程序ctrl.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CTRL ISPORT(CLK: IN STD_LOGIC; -系统时钟LOCK: OUT STD_LOGIC; -锁存信号EN: OUT STD_LOGIC; -计数允许信号CLR: OUT STD_LOGIC); -清零信号END;ARCHITECTURE ART OF CTRL ISSIGNAL Q: STD_LOGIC_VECTOR(3 DOWNTO 0); -定义变量BEGINPROCESS(CLK)BEGINIF(CLK'EVENT AND CLK='1')THEN -检测时钟上升沿IF Q="1111"THENQ<="0000"; -计数大于15,清零ELSEQ<=Q+'1'; -允许计数END IF;END IF;EN<=NOT Q(3);LOCK<=Q(3) AND NOT(Q(2)) AND Q(1);CLR<=Q(3) AND Q(2) AND NOT(Q(1));END PROCESS;END ART;程序主要讲述了由时钟信号产生计数允许信号、清零信号和锁存信号,而且限定了响应时间为不超过15s。

相关文档
最新文档