基于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的频率计设计本科毕业设计

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语言的数字频率计设计

数 码 管显示 ,最 大 读 数分 别 为 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的数字频率计的设计

目录第一章概述 (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的数字频率计设计

XXXXXXX学院学生毕业设计(论文)报告系别:电子与电气工程学院专业:电子信息工程技术班号:学生姓名:学生学号:设计(论文)题目:基于VHDL的数字频率计设计指导教师:设计地点:XXXXXXX学院起迄日期:20XX.9.1~20XX.10.31毕业设计(论文)任务书专业电子信息工程技术班级姓名一、课题名称:基于VHDL的数字频率计设计二、主要技术指标:1. 频率范围为:1Hz~50MHz。
2. 结果用数码管十进制显示。
3. 输入信号电压幅度为50mV~5V。
三、工作内容和要求:1. 构建大体的设计方案,并了解其内容。
2. 构建出大体的顶层原理设计框图。
3. 对底层的每个电路模块的设计,并通过软件MAX+PLUS2完成程序的编写通过。
4. 对整个原理框图进行编译并通过。
5. 对整个仿真图编译通过。
四、主要参考文献:[1] 陈必群. EDA技术与项目训练[M] ,常州:常州信息职业技术学院,2009年.[2] 王凤英. 基于FPGA的数字频率计设计与仿真[J].科技资讯,,2008,15(8):1—10[3] 谭会生,张昌凡.EDA技术及应用.西安[M]:电子科技大学出版社,2001年[4] 张凯,林伟.VHDL实例剖析[M].北京:国防工业出版社,2004年[5] 刘玉良,李玲玉,邓勇全.吉林:用EDA方法设计数字系统的灵活性[D],2002年[6] 宋万杰等.CPLD技术及其应用.[M].西安:西安电子科技大学出版社,2000年.学生(签名)年月日指导教师(签名)年月日教研室主任(签名)年月日系主任(签名)年月日毕业设计(论文)开题报告基于VHDL的数字频率计设计目录摘要Abstract第1章前言 (1)第2章数字频率计的要求 (2)2.1 主要技术指标 (2)2.2 工作内容和要求 (2)第3章数字频率计的方案设计.............................. (3)3.1 基本原理 (3)3.1.1 频率计测量频率的设计原理 (3)3.1.2 频率计测量频率的原理图 (3)3.2 设计流程图 (3)第4章数字频率计各模块功能介绍 (4)4.1 频率控制模块的VHDL语言源程序 (4)4.1.1 频率控制模块的程序 (4)4.2 十进制加法计数器CNT10的VHDL语言源程序 (5)4.2.1 十进制计数器的程序 (5)4.2.2 十进制计数器的顶层设计 (6)4.3系统模块的VHDL语言源程序 (7)4.3.1系统模块的设计 (7)4.3.2 系统模块的程序 (7)4.4 锁存器LOCK的VHDL语言源程序 (10)4.4.1 锁存器LOCK的程序 (10)4.5 译码模块DECODER的VHDL语言源程序 (11)4.5.1 译码模块DECODER的程序 (11)4.6四选一选择器MUX41的VHDL语言源程序 (12)4.6.1 MUX41程序 (12)4.7 四进制计数器CNT4的VHDL语言源程序 (13)4.7.1 四进制计数器CNT4的程序 (13)4.8 250分频器的VHDL语言源程序 (14)4.8.1 250分频器的程序 (14)第5章数字频率计仿真图 (15)5.1 频率控制模块仿真波形图 (15)5.2 十进制计数器模块仿真波形图 (15)5.3 锁存模块仿真波形图 (15)5.4 译码模块波形仿真图 (16)5.5 四选一选择器MUX41的仿真图 (16)5.6 四进制计数器CNT4的仿真图 (16)5.7 250分频器的仿真图 (17)第6章频率计顶层原理图的输入 (18)第7章下载测试 (19)第8章结束语 (20)参考文献答谢辞数字频率计是直接用十进制数字来显示被测信号频率的一种测量装置。
基于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的频率计设计课程论文(设计)题目基于quartus的频率计的设计院系电子与信息工程学院专业电子与通信工程学生姓名学号指导教师二O一四年元月三日一、频率计的说明 (3)二、顶层原理图 (4)三、底层模块设计 (4)3.1十进制加法计数器CNT10 (4)3.2十二进制加法计数器CNT12 (5)3.3控制模块CODE (6)3.4锁存器LOCK (7)四、底层模块的仿真 (7)4.1LOCK模块的仿真结果 (7)4.2CNT12的仿真结果 (8)4.3CNT10模块的仿真结果 (8)4.4CODE模块的仿真结果 (8)五、频率计顶层原理图的输入 (9)六、频率计仿真结果 (9)总结 (10)一、频率计的说明频率就是周期性信号在单位时间(1S )内的变化次数。
频率计的作用就是测量输入信号的频率,我设计的频率计的原理是若在一定1S 的时间间隔内测得这个周期性信号的重复变化次数为N ,则其频率可表示为:f=N 。
如下图1.1所示,通过定义闸门信号为1s 后,通过统计下该时间内有多少次脉冲即可得到相应的频率。
图1.1系统测量频率的原理系统的框图如下图1.2所示,首先由时基电路产生基准信号,通过控制电路产生出1s 的闸门信号,闸门电路把1s 内截取的检测信号传递给计数器,通过计数器计数就可以得到需要测量的频率。
锁存器的作用就是为了保存当前的频率交给显示电路显示。
计数器锁存器显示电路闸门电路计数脉冲控制电路锁存信号清零信号闸门信号时基电路被测信号图1.2系统原理框图二、顶层原理图如下图2.1所示,系统顶层原理图包括CNT12、CODE 、CNT10、LOCK 、CODE 模块。
其中CNT10和CNT12分别为10和12进制计数器,CODE 则为控制模块输出清零、锁存、和闸门信号,LOCK 则为锁存模块,负责将采集的频率数值锁存起来方便显示,CODE 模块则是将二进制转换成十进制的模块。
系统中的clk1为为我们为测试时候的输入闸门信号,通过CNT12信号后模拟1s 的闸门的信号,系统输出的端口为4个QQ[3..0],这样方便系统仿真,也可以减少系统的复杂程度。
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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录第一章概述 (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Ⅱ为开发环境,极大地减少了硬件资源的占用。
数字频率计模块划分的设计具有相对独立性,可以对模块单独进行设计、调试和修改,缩短了设计周期。
该数字频率计的测量范围为lHz~1MHz,响应时间小于等于15秒;其测试结果由4只七段数码管稳定显示,测量误差小于等于1%。
仿真波形与分析结果表明,所设计的电路通过硬件仿真能够满足数字频率计的功能要求,具有理论与实践意义,实现了电子电路自动化的过程。
数字频率计模块划分的设计具有相对独立性,可以对模块单独进行设计、调试和修改,缩短了设计周期。
关键词:VHDL 数字频率计 EDA MAX+PLUSⅡ基于VHDL的数字频率计的设计第一章概述1.1 设计概述所谓频率,就是周期信号在单位时间(1s)里变化的次数。
本数字频率计的设计思路是:(1) 根据频率计的测频原理,可以选择合适的时基信号对输入被测信号脉冲进行计数,实现测频的目的。
(2) 根据数字频率计的基本原理,本文设计方案的基本思想是分为三个模块来实现其功能,即时基产生与测频时序控制电路模块、待测信号脉冲计数电路模块和锁存与译码显示控制电路模块,并且分别用VHDL对其进行编程,实现计数电路、锁存电路、显示电路等。
1.2 设计内容分析数字频率计的功能,完成功能模块的划分,分别用VHDL语言完成底层模块的设计和以原理图的方法完成顶层模块的设计,分别对各个模块以及顶层模块进行仿真分析,最后在硬件开发平台上进行测试。
1.3 设计原理我们都知道,频率信号易于传输,抗干扰性强,可以获得较好的测量精度。
因此,频率检测是电子测量领域最基本的测量之一。
频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。
通常情况下计算每秒内待测信号的脉冲个数,即闸门时间为1s。
闸门时间可以根据需要取值,大于或小于1S都可以。
闸门时间越长,得到的频率值就越准确,但闸门时间越长,则每测一次频率的间隔就越长。
闸门时间越短,测得的频率值刷新就越快,但测得的频率精度就受影响。
一般取1s作为闸门时间。
数字频率计的关键组成部分包括测频控制信号发生器、计数器、锁存器、译码驱动电路和显示电路,其原理框图如图1. 1所示。
待测信号计数器锁存器译码驱动电路数码管显示测频控制信号发生器图1.1 原理框图1.4 设计功能四位十进制数字频率计用四组七段译码显示的数字频率计,其频率测量范围为1Hz~10kHz。
采用记忆显示的方法,即在测量过程中不刷新数据,等数据过程结束后才显示测量结果,给出待测信号的频率值,并保存到下一次测量结束,显示时间不少于1秒。
第二章技术与开发工具2.1 VHDL简介2.1.1 简介VHDL主要用于描述数字系统的结构,行为,功能和接口。
VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。
这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
VHDL 语言能够成为标准化的硬件描述语言并获得广泛应用 , 它自身必然具有很多其他硬件描述语言所不具备的优点。
归纳起来,VHDL 语言主要具有以下优点:(1) VHDL 语言功能强大,设计方式多样VHDL 语言具有强大的语言结构, 只需采用简单明确的VHDL语言程序就可以描述十分复杂的硬件电路。
同时,它还具有多层次的电路设计描述功能。
此外,VHDL 语言能够同时支持同步电路、异步电路和随机电路的设计实现,这是其他硬件描述语言所不能比拟的。
VHDL 语言设计方法灵活多样 , 既支持自顶向下的设计方式, 也支持自底向上的设计方法; 既支持模块化设计方法, 也支持层次化设计方法。
(2) VHDL语言具有强大的硬件描述能力VHDL语言具有多层次的电路设计描述功能,既可描述系统级电路 , 也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。
同时,VHDL语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。
VHDL语言的强大描述能力还体现在它具有丰富的数据类型。
VHDL 语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描述带来较大的自由度。
(3) VHDL语言具有很强的移植能力VHDL语言很强的移植能力主要体现在: 对于同一个硬件电路的 VHDL 语言描述,它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个综合器上或者从一个工作平台移植到另一个工作平台上去执行。
(4) VHDL语言的设计描述与器件无关采用VHDL语言描述硬件电路时,设计人员并不需要首先考虑选择进行设计的器件。
这样做的好处是可以使设计人员集中精力进行电路设计的优化,而不需要考虑其他的问题。
当硬件电路的设计描述完成以后,VHDL 语言允许采用多种不同的器件结构来实现。
(5) VHDL语言程序易于共享和复用VHDL语言采用基于库(library)的设计方法。
在设计过程中,设计人员可以建立各种可再次利用的模块,一个大规模的硬件电路的设计不可能从门级电路开始一步步地进行设计,而是一些模块的累加。
这些模块可以预先设计或者使用以前设计中的存档模块,将这些模块存放在库中,就可以在以后的设计中进行复用。
2.1.2 VHDL程序组成部分全部的VHDL程序由实体(Entity)、构造体(Architecture)、配置(Configuration)、包集合(Package)、库(Library)5个部分组成。
各组成部分的作用是:(1) 实体用于描述所设计的系统的外部接口信号。
(2) 构造体用于描述系统内部的结构和行为。
(3) 配置用于从库中选取不同单元(器件)来组成系统设计的不同版本。
(4) 包集合存放各设计模块都能共享的数据类型、常数和子程序等。
(5) 库存放已经编译了的实体、构造体、包集合和配置。
库可由系统工程师生成或由ASIC芯片商提供,以便在设计中共享。
2.1.3 VHDL系统优势(1) 与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。
强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。
(2) VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。
(3) VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。
符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。
(4) 对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。
(5) VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。
2.2 MAX+PLUSⅡ2.2.1 软件简介MAX+PLUSⅡ(Multiple Array and Programming Logic User System)开发工具是Altera公司推出的一种EDA工具,具有灵活高效、使用便捷和易学易用等特点。
Altera公司在推出各种CPLD的同时,也在不断地升级相应的开发工具软件,已从早起的第一代A+PLUS、第二代MAX+PLUS发展到第三代MAX+PLUSⅡ和第四代Quartus。
使用MAX+PLUSⅡ软件,设计者无需精通器件内部的复杂结构,只需用业已熟悉的设计输入工具,如硬件描述语言、原理图等进行输入即可,MAX+PLUSⅡ就会自动将设计转换成目标文件下载到器件中去。
MAX+PLUSⅡ开发系统具有以下特点(1) 多平台。
MAX+PLUSⅡ软件可以在基于PC机的操作系统如Windows95、Windows98、Windows2000、Windows NT下运行,也可以在Sun SPAC station 等工作站上运行。
(2) 开放的界面。
MAX+PLUSⅡ提供了与其他设计输入、综合和校验工具的接口,借口符合EDIF 200/300、LPM、VHDL、Verilog-HDL等标准。
目前MAX+PLUS Ⅱ所支持的主流第三方EDA工具主要有Synopsys、Viewlogic、Mentor、Graphics、Cadence、OrCAD、Xilinx等公司提供的工具。
(3) 模块组合式工具软件。
MAX+PLUSⅡ具有一个完整的可编程逻辑设计环境,包括设计输入、设计处理、设计校验和下载编程4个模块,设计者可以按设计流程选择工作模块。
(4) 与结构无关。
MAX+PLUSⅡ开发系统的核心——Compiler(编译器)能够自动完成逻辑综合和优化,它支持Altera的Classic、MAX7000、FLEX8000和FLEX10K等可编程器件系列,提供一个与结构无关的PLD开发环境。