eda课程设计

发布 2022-09-30 19:28:28 阅读 2402

eda技术课程大作业。

设计题目: 数字频率计。

院系: 电子信息与电气工程学院。

学生姓名: 王振强。

学号: 200902100081

专业班级: 电气自动化技术。

年月日。1 总体设计思想。

1.1基本原理。

数字频率计是直接用十进制数字来显示被测信号频率的一种测量装置。它在测量其他物理量如转速、振动频率等方面获得广泛应用。本课程设计主要是完成一个频率范围是0999999hz的能测量方波信号的频率的频率计的设计。

所谓频率,就是周期性信号在单位时间(1s)里变化的次数。本频率计设计测量频率的基本原理是,首先让被测信号与标准信号一起通过一个闸门,然后用计数器计数信号脉冲的个数,把标准时间内的计数的结果,用锁存器锁存起来,最后用显示译码器,把锁存的结果用led数码显示管显示出来。

根据数字频率计的基本原理,本文设计方案的基本思想是分为五个模块来实现其功能,即整个数字频率计系统分为分频模块、控制模块、计数模块、译码模块和量程自动切换模块等几个单元,并且分别用vhdl对其进行编程,实现了闸门控制信号、计数电路、锁存电路、显示电路等。

本频率计设计还可以测量周期性信号,其基本原理与测量频率的基本原理基本一样,首先让被测信号与标准信号一起通过一个闸门,然后用计数器计数信号脉冲的个数,把被测信号一个周期内标准基准信号的脉冲计数的结果,用锁存器锁存起来,最后用显示译码器,把锁存的结果用led数码显示管显示出来,显示管的读数就是被测信号以标准信号的周期为单位乘积的周期。

1.2设计框图

1.3总体设计电路。

2、模块设计和相应模块程序及**。

2.1 4位十进制计数器模块。

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

1)十进制计数器元件的设计。

在源程序中cout是计数器进位输出;cq[3..0]是计数器的状态输出;clk是始终输入端;rst是复位控制输入端,当rst=1时,cq[3..0]=0;en是使能控制输入端,当en=1时,计数器计数,当en=0时,计数器保持状态不变。

编译成功后进行**,其**波形如下:

图3在项目编译**成功后,将设计的十进制计数器电路设置成可调用的元件用于以下的顶层设计。

图42)4位十进制计数器的顶层设计。

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

图5完成4位十进制计数器的原理图编辑以后,即可进行**测试和波形分析,其**输出波形如图所示,当rst=0、en=1是其计数值在0到9999之间循环变化,cout为计数进位输出信号,作为后面的量程自动切换模块的输入脉冲。

图6因此**结果正确无误,可将以上设计的4位十进制计数器设置成可调用的元件jishu10_以备高层设计中使用,其元件符号图如下图所示。

图72.2 控制模块设计。

1)闸门信号的设计。

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

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

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

library ieee;

use use

entity jishu75 is

port(clk,rst,en:in std_logic;

cq:out std_logic_vector(7 downto 0);

cout:out std_logic);

end jishu75;

architecture beh** of jishu75 is

beginprocess(clk,rst,en)

variable cqi:std_logic_vector(7 downto 0);

beginif rst='1' then cqi:=(others=>'0');

elsif clk'event and clk='1' then

if en='1' then

if cqi<74 then cqi:=cqi+1;

else cqi:=(others=>'0');

end if;

end if;

end if;

if cqi=74 then cout<='1';

else cout<='0';

end if;

cq<=cqi;

end process;

end beh**;

编译成功后生成元件图如下:

图82)11进制计数器的程序如下:

library ieee;

use use

entity jishu11 is

port(clk,rst,en:in std_logic;

cq:out std_logic_vector(3 downto 0);

cout:out std_logic);

end jishu11;

architecture beh** of jishu11 is

beginprocess(clk,rst,en)

variable cqi:std_logic_vector(3 downto 0);

beginif rst='1' then cqi:=(others=>'0');

elsif clk'event and clk='1' then

if en='1' then

if cqi<10 then cqi:=cqi+1;

else cqi:=(others=>'0');

end if;

end if;

end if;

if cqi=10 then cout<='1';

else cout<='0';

end if;

cq<=cqi;

end process;

end beh**;

编译成功后生成元件图如下:

图92).d触发器的设计。

其程序如下:

library ieee;

use entity reg_2 is

port(clk,d:in std_logic;

q:out std_logic);

end reg_2;

architecture beh** of reg_2 is

signal q1:std_logic;

begin

process(clk)

begin

if clk'event and clk='1' then

q1<=d;

end if;

end process;

q<=q1;

end beh**;

编译成功后生成如下元件图:

图10将生成的75进制计数器、11进制计数器、10进制计数器和非门按下图连接来得到1s高电平门闸信号。

图11将其电路图进行**,其**波形如下:

图12对照其**波形,其输出门闸信号高电平为1s,符合设计,将其电路生成如下元件图,以便顶层调用。

图132).控制信号发生器模块。

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

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

图14编译成功后进行**,其**波形如下:

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

图162.3 分频模块的设计。

当被测频率超出量程时,设计分频模块对被测频率进行分频衰减,单位上升,从而扩大测量频率的范围。

1).四选一数据选择器。

其**波形如下图:

图17其**波形真确无误后生成元件符号图如下图所示。

图182)分频电路的设计。

将生成的四选一数据选择、74139译码器、d触发器和3个十进制计数器按下图连接。

图19编译成功后进行**,起**波形如下图:

图20如图所示,此电路图实现了将被测信号进行分频功能,通过四选一数据选择器的控制按不同的ba二进制数值时输出被测信号的1分频、10分频、100分频、1000分频,通过二四译码器按不同的ba二进制数值时输出四个档次p0、p1、p2、p3,分别代表1hz、10hz、100hz、1000hz为单位,其功能正确无误后生成可调用的元件图如下:

图212.4 译码模块。

译码模块是对计数出的数进行译码显示出来,该部分由寄存器、动态扫描电路和译码驱动电路组成。

1).寄存器设计。

寄存器是在计数结束后,利用触发器的上升沿把最新的频率测量值保存起来,这样在计数过程中可不必一直看着数码管显示器,显示器将最终的频率读数定期进行更新,其输出将作为动态扫描电路的输入。4位寄存器的vhdl源程序如下。

library ieee;

use entity reg_4 is

port(load:in std_logic;

din:in std_logic_vector(3 downto 0);

dout:out std_logic_vector(3 downto 0));

EDA课程设计

题目一 数字钟设计 学号1 15 一 实验目的。学习并掌握数字钟的原理 设计方法。二 实验内容。计数始终由模60秒计数器 模60分计数器 模24小时计数器 报时模块 分 时设定模块及输出显示模块构成。可以采用同步计数器或异步计数器设计方法。三 实验要求。计时范围为0小时0分0秒至23小时59分59秒...

eda课程设计

哈尔滨工业大学 威海 信电学院电子信息工程。一 软硬件介绍。1软件部分介绍。1.1 quartus ii 是altera公司的综合性pld fpga开发软件,支持原理图 vhdl veriloghdl以及ahdl altera hardware description language 等多种设计输...

eda课程设计

目录。1 引言 2 1.1 课程设计的目的与任务 2 1.2 课程设计的内容 2 1.3课程设计仪器设备 2 1.4 课程设计的题目 2 1.5 方案的选择 2 2设计方案 3 2.1 设计原理 3 2.2各功能模块的原理及其源程序 3 2.2.1控制模块 3 2.2.2分频模块 4 2.2.3计时...