- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4位十进制频率计设4位十进制频率计设计
南昌航空大学实验报告
年 月 日
课程名称: EDA技术实验 课程名称: 4位十进制频率计设计
班级:__姓名: 同组人:___________________________
指导老师评定:___________________________签名:________________________
实验目的
设计4位十进制频率计,理解用VHDL表达和设计电路的方法;
掌握4位十进制频率计的分析和测试方法;
学习较复杂的数组系统设计方法。
实验原理
根据频率的定义和频率测量的基本原理,测定信号的频率必须有一个脉宽为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 CLKKEVENT AND CLKK=1 THEN DIV2CLK=NOT DIV2CLK;
END IF;
END PROCESS;
PrOCESS (CLKK,DIV2CLK)
BEGIN
IF CLKK=0AND 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测控时序图
十位计数器设计
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 CLKEVENT AND CLK=1 THEN
IF ENA=1 THEN
IF CQI9 THEN CQI:=CQI+1;
ELSE CQI:=(OTHERS=0);
END IF;
END IF;
END IF;
IF C
文档评论(0)