南昌航空大学实验报告
年 月 日
课程名称: EDA技术实验 课程名称: 4位十进制频率计设计 班级:_09083114___姓名: 同组人:___________________________ 指导老师评定:___________________________签名:________________________
一、实验目的
1、设计4位十进制频率计,理解用VHDL表达和设计电路的方法; 2、掌握4位十进制频率计的分析和测试方法; 3、学习较复杂的数组系统设计方法。
二、实验原理
根据频率的定义和频率测量的基本原理,测定信号的频率必须有一个脉宽为1秒的对输入信号脉冲计数允许的信号;1秒计数结束后,计数值锁入锁存器的锁存信号和为下一测频计数周期作准备的计数器清0信号。这3个信号可以由一个测频控制信号发生器产生,它的设计要求是,TESTCTL的计数使能信号CNT_EN能产生一个1秒脉宽的周期信号,并对频率计的每一计数器CNT10的ENA使能端进行同步控制。当CNT_EN高电平时,允许计数;低电平时停止计数,并保持其所计的脉冲数。在停止计数期间,首先需要产生一个锁存信号LOAD,在该信号上升沿时,将计数器在前1秒钟的计数值锁存进各锁存器REG4B中,并由外部的7段译码器译出,显示计数值。设置锁存器的好处是,显示的数据稳定,不会由于周期性的清零信号而不断闪烁。锁存信号之后,必须有一清零信号RST_CNT对计数器进行清零,为下1秒钟的计数操作作准备。其工作时序波形如图5-1所示。
三、实验内容
在Quartus II上完成4位计数器、测频控制器的设计以及4位锁存器的设计,根据这三个设计完成4位十进制频率计的设计并验证。编译、综合和适配频率计顶层设计文件,并编程下载进目标器件中。建议选实验电路模式0,4个数码管显示测频输出;待测频率输入FIN由clock0输入,频率可选4Hz、256Hz……或更
高;1Hz测频控制信号F1HZ可由clock2输入。
图5-1 4位十进制频率计顶层文件原理图
1、测频计设计;
VHDL语言描述为: LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY test IS PORT(CLKK:IN STD_LOGIC;--1Hz CNT_EN,RST_CNT,LOAD:OUT STD_LOGIC); END test;
ARCHITECTURE behav OF test IS SIGNAL DIV2CLK:STD_LOGIC; BEGIN
PROCESS(CLKK) BEGIN
IF CLKK'EVENT AND CLKK='1' THEN DIV2CLK<=NOT DIV2CLK; END IF;
END PROCESS;
PrOCESS (CLKK,DIV2CLK) BEGIN
IF CLKK='0'AND Div2CLK='0' THEN RST_CNT<='1'; ELSE RST_CNT <='0'; END IF;
END PROCESS;
LOAD <=NOT DIV2CLK; CNT_EN<=DIV2CLK; END behav;
仿真波形如图5-2所示:
图5-2 频率计测频控制器TESTCTL测控时序图
2、十位计数器设计
VHDL语言描述为: LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY cnt4 IS PORT( CLK:IN STD_LOGIC; RST,ENA:IN STD_LOGIC; COUT:OUT STD_LOGIC; OUTY:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ); END cnt4;
ARCHITECTURE behv OF cnt4 IS BEGIN
PROCESS(RST,ENA,CLK)
VARIABLE CQI:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF RST='1' THEN CQI:=(OTHERS =>'0'); ELSIF CLK'EVENT AND CLK='1' THEN IF ENA='1' THEN
IF CQI<9 THEN CQI:=CQI+1;
ELSE CQI:=(OTHERS=>'0'); END IF; END IF; END IF; IF CQI=9 THEN COUT<='1'; ELSE COUT<='0'; END IF; OUTY<=CQI; END PROCESS; END behv;
波形图如图5-3所示:
图5-3 十进制波形图
3、4位锁存器设计
VHDL语言描述为: LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY reg4 IS PORT( LOAD:IN STD_LOGIC; DIN: IN STD_LOGIC_VECTOR(3 DOWNTO 0); DOUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END reg4;
ARCHITECTURE behav OF reg4 IS BEGIN PROCESS(LOAD,DIN) BEGIN IF LOAD'EVENT AND LOAD='1'THEN DOUT<=DIN; END IF;
END PROCESS; END behav;
仿真波形如图5-4所示:
图5-4 4位锁存器仿真波形
4、4位十进制频率计波形仿真如图5-5所示;
图5-5 4位十进制频率计仿真波形
四、实验小结
通过本次实验,学会了4位十进制频率计的设计,理解了用VHDL表达和设计电路的方法,进一步熟悉了VHDL设计技术。
因篇幅问题不能全部显示,请点此查看更多更全内容