基于EDA与VHDL语言的8位数字频率计的课程设计报告

时间:2024.4.21

数字频率计的设计

频率计测量频率的原理图如下:

基于EDA与VHDL语言的8位数字频率计的课程设计报告

图 1 频率计测量频率的原理图

3.2、频率计测量周期的原理

3.2.1、频率计测量周期的原理

频率计测量周期需要设计整形电路使被测周期性信号整形成脉冲,然后设计计数器对基准信号在被测信号一个周期内重复变化的次数进行计数,计数器计出的数字经锁存器锁存后送往译码驱动显示电路用数码管将数字显示出来,需要设计控制电路产生允许计数的使能信号、计数器的清零信号和锁存器的锁存信号使电路正常工作,再设计一个量程自动转换电路使测量范围更广。

3.2.2、频率计测量周期的原理图

频率计测量周期的原理图如下:

1

图 2频率计测量周期的原理图

4、频率计测量频率的层次化设计方案

4.1、8位十进制计数器模块

8位十进制计数器模块包含8个级联十进制计数器,用来对施加到时钟脉冲输入端的待测信号产生的脉冲进行计数,十进制计数器具有集束使能、清零控制和进位扩展输出的功能。使能信号和清零信号由闸门控制模块的控制信号发生器所产生来对8个级联十进制计数器周期性的计数进行控制。

4.1.1、十进制计数器元件的设计

十进制计数器的程序如下:

2

基于EDA与VHDL语言的8位数字频率计的课程设计报告

程序 1十进制计数器的程序

在源程序中COUT是计数器进位输出;DOUT[3..0]是计数器的状态输出;CLK是始终输入端;RST是复位控制输入端,当RST=0时,DOUT[3..0]=0;EN是使能控制输入端,当EN=1时,计数器计数,当EN=0时,计数器保持状态不变。编译成功后进行仿真,其仿真波形如图3所示。

基于EDA与VHDL语言的8位数字频率计的课程设计报告

图 3十进制计数器的仿真波形图

在项目编译仿真成功后,将设计的十进制计数器电路设置成可调用的元件CNT10.sym,用于以下的顶层设计,如图4所示。

3

基于EDA与VHDL语言的8位数字频率计的课程设计报告

图 4十进制计数器元件CNT10.sym

4.1.2、8位十进制计数器的顶层设计

新建一个原理图编辑窗,从当前的工程目录中凋出8个十进制计数器元件CNT10.sym,并按如图5所示的8位十进制计数器的顶层原理图完成电路连接。

基于EDA与VHDL语言的8位数字频率计的课程设计报告

图 5 8位十进制计数器的顶层原理图

将以上设计的8位十进制计数器设置成可调用的元件8_CNT10.sym,以备高层设计中使用,其元件符号图如图6所示。

4

基于EDA与VHDL语言的8位数字频率计的课程设计报告

图 6 8位十进制计数器元件8_CNT10.sym

4.2、控制模块设计

频率计电路工作时先要产生一个计数允许信号(即闸门信号),闸门信号的宽度为单位时间,如1S。在闸门信号有效时间内,对被测信号计数,即为信号的频率。该频率计电路的精度取决于闸门信号T。

本设计中选取的基准信号频率为750KHz,为了得到1s高电平的周期性闸门信号,本设计采用对频率为750KHz基准信号先进行75分频,再进行3个10分频,最后进行11分频,再用非门对分频出的信号进行取非变换,这样得到的门闸信号高电平为1秒钟。

1)75进制计数器的程序如下:

5

基于EDA与VHDL语言的8位数字频率计的课程设计报告

程序 2 75进制计数器的程序

编译成功后生成元件CNT75.sym如图7所示。

基于EDA与VHDL语言的8位数字频率计的课程设计报告

图 7 75进制计数器元件图CNT75.sym

将生成的75进制计数器、10进制计数器和非门连接来得到1S高电平门闸

6

基于EDA与VHDL语言的8位数字频率计的课程设计报告

信号,如图8所示:

基于EDA与VHDL语言的8位数字频率计的课程设计报告

图 8 由10、75进制计数器和非门连接得到门闸信号

将其电路图进行仿真,其仿真波形如图9所示:

基于EDA与VHDL语言的8位数字频率计的课程设计报告

图 9 电路仿真图

对照其仿真波形,其输出门闸信号高电平为1S,符合设计,将其电路生成

7

如下元件图,以便顶层调用。如图10所示。

基于EDA与VHDL语言的8位数字频率计的课程设计报告

图10 750KHz元件图

2)控制信号发生器模块

该模块主要根据输入高电平的1S闸门信号,产生计数允许信号EN,该信号的高电平的持续时间即计数允许时间,与输入的门闸控制时钟脉冲周期相同;产生清零信号RST,在计数使能前对计数器先清零;产生存储信号LOAD,在计数结束后,利用上升沿把最新的频率测量值保存在显示寄存器中。

为了产生清零信号RST,使能信EN和存储信号LOAD。不失一般性,控制信号发生器用74161构成4分频计数器,用一个与非门,一个或非门和一个异或门实现3种译码状态,与闸门模块如图11所示连接。

基于EDA与VHDL语言的8位数字频率计的课程设计报告

图 11控制信号发生器模块连接图

编译成功后进行仿真,其仿真波形如图12所示。

基于EDA与VHDL语言的8位数字频率计的课程设计报告

图 12控制信号发生器模块仿真波形图

该功能正确无误后生成的元件符号图如图13所示。

8

图 13 750KHz控制模块元件图

5、频率计测量频率的顶层设计和仿真

在成功完成底层单元电路模块设计仿真后,可根据第3章的测频原理图,把上面的各个模块按照图14连接起来。

基于EDA与VHDL语言的8位数字频率计的课程设计报告

图 14频率计主体电路顶层原理图

对上面的测频总电路图进行仿真,其波形图如图15。

基于EDA与VHDL语言的8位数字频率计的课程设计报告

图 15频率计主体电路仿真波形图

其仿真波形正确无误。

9

基于EDA与VHDL语言的8位数字频率计的课程设计报告


第二篇:8位十进制频率计_EDA课程设计报告


EDA课程设计报告

名 称: 8位十进制频率计

学 号:

姓 名:

年级专业: 2011级电子信息工程

学 院: 物电学院

指导老师:

日 期: 20xx年6月2日

安徽师范大学物理与电子信息学院

College of Physics and Electronic Information, Anhui Normal University

1

目 录

一、设计目的···········································2

二、设计要求···········································2

三、设计思路···········································3

四、设计原理···········································3

五、设计仿真···········································3

六、实验现象···········································4

七、设计源码···········································4

八、总结···············································9 参考书目···············································9

引言

数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件教多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。随着现场可编程阵列FPGA的应用,以EDA工具作为开发手段,运用VHDL等硬件描述语言语言,将使整个系统大大简化,提高了系统的整体性能和可靠性。

一、课程设计目的

1)巩固和加深对“EDA技术”、“数字电子技术”的基本知识的理解,提高综

合运用本课程所学知识的能力。

2)培养学生根据课题需要选学参考书籍、查阅手册、图表和文献资料的自

学能力。通过独立思考,深入钻研相关问题,学会自己分析解决问题的方法。

3)培养硬件设计、软件设计及系统软、硬件调试的基本思路、方法和技巧,

并能熟练使用当前较流行的一些有关电路设计与分析的软件和硬件。

二、课程设计要求

1)脉冲信号的频率就是在单位时间内所产生的脉冲个数,其表达式为,f为被 2

测信号的频率,N为计数器所累积的脉冲个数,T为产生N个脉冲所需的时间。所以,在1秒时间内计数器所记录的结果,就是被测信号的频率。

2)被测频率信号取自实验箱晶体振荡器输出信号,加到主控室的输入端。

3)再取晶体振荡器的另一标准频率信号,经分频后产生各种时基脉冲:1ms,

10ms,0.1s,1s等,时基信号的选择可以控制,即量程可以改变。

4)时基信号经控制电路产生闸门信号至主控门,只有在闸门信号采样期间内(时基信号的一个周期),输入信号才通过主控门。

5)f=N/T,改变时基信号的周期T,即可得到不同的测频范围。

6)当主控门关闭时,计数器停止计数,显示器显示记录结果,此时控制电路

输出一个置零信号,将计数器和所有触发器复位,为新一次采样做好准备

三、课程设计思路

频率测量的基本原理是计算每秒钟内待测信号的脉冲个数。这就要求TESTCTL的计数使能信号TSTEN能产生一个1秒脉宽的周期信号,并对频率计的每一计数器CNT10的ENA使能端进行同步控制。当TSTEN高电平时,允许计数;低电平时,停止计数,并保持其所计的数。在停止计数期间,首先需要一个锁存信号LOAD的上跳沿将计数器在前1秒钟的计数值锁存进32位锁存器REG32B中,并由外部的7段译码器译出并稳定显示。锁存信号之后,必须有一清零信号CLR_CNT对计数器进行清零,为下1秒钟的计数操作作准备。

寄存器REG32B设计要求是:若已有32位BCD码存在于此模块的输入口,在信号LOAD的上升沿后即被锁存到寄存器REG32B内部,并由REG32B的输出端输出,然后由7段译码器译者成能在数码管上显示输出的相应数值。

计数器CNT10设计要求:有一时钟使能输入端,用于锁定计数值。当高电平时计数允许,低电平时禁止计数。

这次设计能通过实验箱下载验证,将第一全局时钟CLK接实验箱1Hz频率信号,第二全局时钟CLK2作为待测频率输入,输出接6个数码管显示所测的频率值。

四、课程设计原理

在电子技术中,频率是最基本得参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此,频率的测量就显得更为重要。测量频率的方法有很多种,其中电子计数器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。

数字式频率计的测量原理有两类:一是直接测频法,即在一定闸门时间内测量被测信号的脉冲个数;二是间接测频法即周期法,如周期测频法。直接测频法适用于高频信号的频率测量,通常采用计数器、数据锁存器及控制电路实现,并通过改变计数器阀门的时间长短在达到不同的测量精度;间接测频法适用于低频信号的频率测量。

本次设计中使用的就是直接测频法,即用计数器在计算机1S内输入信号周期的个数,其测频范围为1Hz~999999Hz。

五、设计电路的顶层结构及仿真图

这次设计有三个模块组成,测频控制信号发生器TESTCTL八个有时钟时能功能的十进制计数器CNT10和一个32位锁存器REG32B,如图:

3

顶层结构图

8位十进制频率计EDA课程设计报告

测频控制信号发生器TESTCTL仿真效果图

六、实验现象

从时钟源TJ4~TJ6输入一方波信号,数码管则将显示该信号的频率值,输入信号频率范围为1Hz~100MHz,频率高时有误差。另外,可从GCLK2端输入外部数字信号,进行测量。

七、设计源码

十进制计数器CNT10程序:

library ieee;

use ieee.std_logic_1164.all;

8位十进制频率计EDA课程设计报告

4

entity cnt10 is

port(clk: in std_logic;

clr: in std_logic;

ena: in std_logic;

cq : out integer range 0 to 9;

carry_out: out std_logic);

end cnt10;

architecture behav of cnt10 is

signal cqi: integer range 0 to 9;

begin

process(clr,clk,ena)

begin

if(clr='1') then

cqi<=0;

elsif(clk'event and clk='1') then

if(ena='1') then

if(cqi=9) then

cqi<=0;

carry_out<='1';

else

cqi<=cqi+1;

carry_out<='0';

end if;

end if;

end if;

end process;

cq<=cqi;

end behav;

作用:实现十进制计数功能。当第一个CNT10计数输出CQ=9时,下一秒时钟上升沿到来时,将产生一个CARRY_OUT信号作为下一个CNT10的时钟信号,同时CQ清零。依次递推到8个CNT10。

32位锁存器REG32B程序:

library ieee;

use ieee.std_logic_1164.all;

entity reg32b is

port( load : in std_logic;

rst: 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 is

5

signal data:std_logic_vector(31 downto 0);

begin

process(rst,load)

begin

if rst='1' then

data<=(others=>'0');

elsif(load'event and load='1') then

data<=din;

end if;

dout<=data;

end process;

end behav;

实现方式:复位信号RST为高电平时复位,为低电平时LOAD信号上升沿到来时将对输入到内部的CNT10计数信号进行锁存。

作用:锁存信号,并将结果输出给SELTIME。

测频控制信号发生器TESTCTL程序:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity testctl is

port(

clk : in std_logic;

tsten : out std_logic;

clr_cnt : out std_logic;

load : out std_logic);

end testctl;

architecture behav of testctl is

signal div2clk : std_logic;

begin

process(clk)

begin

if(clk'event and clk='1') then

div2clk<=not div2clk;

end if;

end process;

process(clk,div2clk)

begin

if(clk='0' and div2clk='0') then

clr_cnt<='1';

else

clr_cnt<='0';

6

end if;

end process;

load<=not div2clk;

tsten<=div2clk;

end behav;

作用:对8个CNT10产生同步使能信号TSTEN;产生一个清零信号CLR_CNT,计数完成时对8个CNT10清零;产生一个锁存信号LOAD对锁存器RED32B,对CNT10产生的信号进行锁存。

数码管译码显示DELED的程序:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY DELED IS

PORT(

S: IN STD_LOGIC_VECTOR(3 DOWNTO 0);

A,B,C,D,E,F,G,H: OUT STD_LOGIC);

END DELED;

ARCHITECTURE BEHAV OF DELED IS

SIGNAL DATA:STD_LOGIC_VECTOR(3 DOWNTO 0);

SIGNAL DOUT:STD_LOGIC_VECTOR(7 DOWNTO 0);

BEGIN

DATA<=S;

PROCESS(DATA)

BEGIN

CASE DATA IS

WHEN "0000"=>DOUT<="00111111";

WHEN "0001"=>DOUT<="00000110";

WHEN "0010"=>DOUT<="01011011";

WHEN "0011"=>DOUT<="01001111";

WHEN "0100"=>DOUT<="01100110";

WHEN "0101"=>DOUT<="01101101";

WHEN "0110"=>DOUT<="01111101";

WHEN "0111"=>DOUT<="00000111";

WHEN "1000"=>DOUT<="01111111";

WHEN "1001"=>DOUT<="01101111";

WHEN "1010"=>DOUT<="01110111";

WHEN "1011"=>DOUT<="01111100";

WHEN "1100"=>DOUT<="00111001";

WHEN "1101"=>DOUT<="01011110";

WHEN "1110"=>DOUT<="01111001";

WHEN "1111"=>DOUT<="01110001";

WHEN OTHERS=>DOUT<="00000000";

7

END CASE;

END PROCESS;

H<=DOUT(7);

G<=DOUT(6);

F<=DOUT(5);

E<=DOUT(4);

D<=DOUT(3);

C<=DOUT(2);

B<=DOUT(1);

A<=DOUT(0);

END BEHAV;

作用:将实验结果使用数码管直观的显示出来。

数码管扫描SELTTIME的程序:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity seltime is

port(

clk : in std_logic;

din : in std_logic_vector(31 downto 0); daout: out std_logic_vector(3 downto 0); sel : out std_logic_vector(2 downto 0)); end seltime;

architecture behav of seltime is

signal sec : std_logic_vector(2 downto 0);

begin

process(clk)

begin

if(clk'event and clk='1') then

if(sec="111") then

sec<="000";

else

sec<=sec+1;

end if;

end if;

end process;

process(sec,din(31 downto 0))

begin

case sec is

when "000"=>daout<=din(3 downto 0);

8

when "001"=>daout<=din(7 downto 4);

when "010"=>daout<=din(11 downto 8);

when "011"=>daout<=din(15 downto 12);

when "100"=>daout<=din(19 downto 16);

when "101"=>daout<=din(23 downto 20);

when "110"=>daout<=din(27 downto 24);

when "111"=>daout<=din(31 downto 28);

when others=>null;

end case;

end process;

sel<=sec;

end behav;

作用:锁存信号输出给DIN[31..0],然后由SELTIME进行扫描输出,当SEL为”000”时选通第一个CNT10,输出到DELED进行译码输出。依次类推。

八、设计总结

EDA课程设计很快就结束了,虽然在之前的学习过程中还存在着没有弄懂的问题,但是通过这次设计,进一步加深了对EDA的了解,让我对它有了更加浓厚的兴趣。

EDA设计我感觉程序调试、试验软件、硬件熟悉最重要。在编完各模块程序之后,编译查错最初有十几个错误,有输入错误、语法错误。一遍一遍的编译查错,直到没有错误。必须注意工程名和实体名一致,不然一般会出错。在没有错误之后可以进行波型仿真。若与理想的不同,再查看程序,有无原理上的编辑错误或没有查出的输入错误。

参考书目:潘松,《EDA技术使用教程》,北京,科学出版社,2006; 9

更多相关推荐:
数字频率计课程设计报告

赣南师院物理与电子信息学院数字电路课程设计报告书姓名班级学号时间数字频率计的设计一设计任务和要求1能够测量正弦波三角波锯齿波矩形波等周期性信号的频率2数字显示位数2位数字显示3频率测量范围1HZ99HZ4输入信...

简易数字频率计课程设计报告 .

目录第一章概述11数字频率计功能及特点12数字频率计应用意义第二章设计方案21设计指标与要求22设计原理23方案论证第三章数字频率计分析及参数设计31电路基本原理32时基电路设计33闸门电路设计34控制电路设计...

简易数字频率计课程设计报告

摘要在电子技术中频率是最基本的参数之一并且与许多电参量的测量方案测量结果都有十分密切的关系因此频率的测量显得更为重要测量频率的方法有多种其中电子计数器测量频率具有精度高使用方便测量迅速以及便于实现测量过程自动化...

单片机课程设计报告数字频率计详细程序

单片机课程设计报告题目数字频率计院系电子工程与自动化学院专业自动化学生姓名学号指导教师20xx年1月15日1摘要该系统以STC89S51单片机为核心应用单片机的运算和控制功能并采用LCD显示器实时地将所测频率显...

数字电路课程设计——数字频率计设计报告

I在电子技术中频率是一个重要参量应用计数法原理制成的数字式频率测量仪器具有精确度高测频范围宽便于实现测量过程自动化等一系列突出特点所以数字式频率测量计简称数字式频率计已成为目前测量频率的主要仪器总体方案设计图1...

《EDA技术》数字频率计课程设计报告报

EDA技术课程设计报告题目数字频率计专业电子信息工程班级0702姓名指导教师高金定二0一0年6月24日020xx32820xx328摘要数字频率计是直接用十进制数字来显示被测信号频率的一种测量装置它不仅可以测量...

单片机课程设计报告_数字频率计

20xx20xx学年第2学期单片机应用技术课程设计报告题目数字变频计专业电气工程及其自动化班级11级电气工程及其自动化1班姓名程汪锁指导教师臧大进宋鸿儒成绩电气工程学院20xx年4月20日1课程设计任务书学生班...

数字电路课程设计——数字频率计设计报告

数字频率计摘要本文介绍了一种基于TTL系列芯片的简易数字频率计数字频率计应用所学的数字电路知识进行设计电路由放大整形电路时基电路逻辑控制电路计数锁存电路及译码显示电路组成能够较精准的测量幅值在02V5V的正弦波...

数字电路课程设计—数字频率计设计报告

课题数字频率计摘要本文介绍了一种基于TTL系列芯片的简易数字频率计数字频率计应用所学的数字电路知识进行设计电路由放大整形电路时基电路逻辑控制电路计数锁存电路及译码显示电路组成能够较精准的测量幅值在02V5V的正...

数电课程设计数字频率计

河南城建学院本科课程设计报告河南城建学院电子技术基础课程设计报告题目数字频率计姓名学号专业班级指导教师所在院系电气与电子工程系20xx年6月18号至6月21号1河南城建学院本科课程设计报告指导教师评语成绩2河南...

数字频率计开题报告

武汉大学珞珈学院本科生毕业论文设计开题报告毕业论文设计题目数字频率计系统设计系电子信息科学系学号20xx05060姓名一论文选题的目的和意义数字频率计是计算机通讯设备音频视频等科研生产领域不可缺少的测量仪器并且...

《基于VHDL数字频率计的设计》开题报告+(1) (2)

商洛学院本科毕业设计论文开题报告题目学院名称物理与电子信息工程系专业班级电子信息工程10级2班学生姓名吕超学号10037318指导教师刘萌填表时间20xx年3月10日填表说明1开题报告作为毕业设计论文答辩委员会...

数字频率计课程设计报告(20篇)