eda 4位十进制频率计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.3 系统的主要功能
在1秒钟的时间间隔内对输入时钟信号的时钟上升沿进行计数,计数1秒钟该时钟有多少个时钟周期,即得到时钟频率。
1.4 系统的使用原理
根据频率的定义和频率测量的基本原理,测定信号的频率必须有一个脉宽为1 秒的对输入信号脉冲计数允许的信号;1秒计数结束后,计数值锁入锁存器的锁存信号和为下一测频计数周期作准备的计数器清零信号。这清零个信号可以由一个测频控制信号发生器(CONTROL)产生,它的设计要求是,CONTROL的计数使能信号CNT_EN能产生一个1秒脉宽的周期信号,并对频率计的每一计数器frequency的ENA使能端进行同步控制。当CNT_EN高电平时,允许计数;低电平时停止计数,并保持其所计的脉冲数。在停止计数期间,首先需要一个锁存信号LOAD的上跳沿将计数器在前1秒钟的计数值锁存进各锁存器REG4B中,并由外部的7段译码器译出,显示计数值。设置锁存器的好处是,显示的数据稳定,不会由于周期性的清零信号而不断闪烁。锁存信号之后,必须有一清零信号RST_CNT对计数器进行清零,为下1秒钟的计数操作作准备。
OUTY<=q1;
END PROCESS;
END behave;
2.5.3 波形图
2.5.4 原理图
2.6 4位锁存器的设计
为了数据显示稳定,不会因周期性清零而闪烁,设计一4位锁存器,对输出数据锁存。
2.6.1 设计流程图
2.6.2 VHDL程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY FREQ IS
PORT(FIN: IN STD_LOGIC;--待测频率
F1: IN STD_LOGIC;--测频控制信号
DOUT0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);--输出计数值
DOUT1: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);--输出计数值
(5) 将设计内容进行硬件配置,Βιβλιοθήκη BaiduGW48实验箱上进行调试。
(6) 撰写课程设计报告、答辩并提交报告。
1 前言
1.1 概念
本系统为《4位十进制频率计设计》。系统任务描述:在1秒钟的时间间隔内对输入时钟信号的时钟上升沿进行计数,计数1秒钟该时钟有多少个时钟周期,即得到时钟频率。
1.2 系统要求及意义
设计一4位加法十进制计数器进行计数,有一4位计数值输出端,计数到10则有1位计数溢出,输出至溢出端。该溢出端可连至另一4位加法十进制计数器的输入端进行计数,以此类推,由4个加法计数器级联,它们的计数值组成了频率计4位计数值,经锁存器连至数码管显示。
IF ENA='1' THEN--同步使能端为1,让信号从0--9进行计数
q1<=q1+1;
IF q1="0000" THEN
COUT<='0';
ELSIF q1="1001" THEN--超出9时进位
q1<="0000";
COUT<='1';--进位1
END IF;
END IF;
END IF;
END IF;
2 系统的VHDL设计
2.1 设计内容:
设计一4位十进制频率计,对输入信号的频率进行测量,将测量频率值经由数码管显示。
(1)设计含异步清零和同步时钟使能的4位10进制加法计数器,有一输入端CLK,清零复位端RST,使能端ENA,4位加法计数输出端OUTY和1位溢出端COUT。
(2)为了数据显示稳定,不会因周期性清零而闪烁,设计一4位锁存器,对输出数据锁存。
END reg4b;
ARCHITECTURE behave OF reg4b IS
BEGIN
PROCESS (LOAD)
BEGIN
IF LOAD'EVENT AND LOAD='1' THEN--在LOAD上升沿时锁存输出
DOUT<=DIN;
END IF;
END PROCESS;
END behave;
学号:XXXXXX
XX大学
EDA技术
课程设计报告
题目:4位十进制频率计设计
学生:XXX
学院(系):信息科学与工程学院专业班级:电子XXX
指导教师:XXXX
EDA课程设计任务书
一、设计题目4位十进制频率计设计
二、设计背景
在1秒钟的时间间隔内对输入时钟信号的时钟上升沿进行计数,计数1秒钟该时钟有多少个时钟周期,即得到时钟频率。设计一4位加法十进制计数器进行计数,有一4位计数值输出端,计数到10则有1位计数溢出,输出至溢出端。该溢出端可连至另一4位加法十进制计数器的输入端进行计数,以此类推,由4个加法计数器级联,它们的计数值组成了频率计4位计数值,经锁存器连至数码管显示。
SIGNAL q1:STD_LOGIC_VECTOR(3 DOWNTO 0);--定义4位信号q1
BEGIN
PROCESS (CLK)
BEGIN
IF (RST='1')THEN--异步清零
q1<="0000";
ELSE
IF (CLK 'EVENT AND CLK='1')THEN--在时钟信号CLK的上升沿
DOUT2: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);--输出计数值
DOUT3: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);--输出计数值
COUTT: OUT STD_LOGIC);
END FREQ;
ARCHITECTURE behave OF FREQ IS
3)设计内容下载至目标芯片,在EDA的GW48型实验箱进行功能验证。
4)谈谈该课题的课程设计中遇到的问题,获得哪些技能和体会,以及建设性意见。
四、设计步骤和安排:
(1)题目安排;图书馆查相关资料;
(2)设计原理研究,总体设计;
(3)各主要模块的VHDL设计。各模块的设计仿真分析。
(4) 完成系统顶层文件设计,系统总体功能的仿真分析。
LOAD:OUT STD_LOGIC;--输出锁存信号
RST_CNT:OUT STD_LOGIC);--计数器清零
END control;
ARCHITECTURE behave OF control IS
SIGNAL tmp:INTEGER RANGE 0 TO 1;
BEGIN
PROCESS (CLK,CNT_EN)
BEGIN
IF (CLK'EVENT AND CLK='1')THEN--1HZ时钟2分频
IF tmp=1 THEN
tmp<=0;
CNT_EN<='1';
ELSE
tmp<=tmp+1;
CNT_EN<='0';
END IF;
END IF;
LOAD<=NOT CNT_EN;
IF CLK='0' AND CNT_EN='0' THEN--产生计数器清零信号
END COMPONENT;
COMPONENT REG4B
PORT(LOAD:IN STD_LOGIC;--控制端,置1时锁存输出
DIN:IN STD_LOGIC_VECTOR(3 DOWNTO 0);--输入的计数值
DOUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));--输出的计数值
(3)设计一测频控制器,产生1s的计数允许信号,1S结束后产生计数值锁入锁存器的锁存信号和为下一测频计数周期作准备的计数器清零信号。1HZ测频控制信号作为其输入。
要求:
1)根据系统设计要求,采用自顶向下的方法,划分系统主要模块,画出整体设计原理框图。
2)根据工作原理、用硬件描述语言对设计内容实现,列出设计程序清单,给出仿真波形图和调试中存在问题及解决方法。
RST_CNT<='1';
ELSE
RST_CNT<='0';
END IF;
END PROCESS;
END behave;
2.7.3 波形图
2.7.4 原理图
2.8 4位十进制频率计例化语句顶层文件VHDL程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
COMPONENT FREQUENCY
PORT(CLK:IN STD_LOGIC;--时钟信号
RST:IN STD_LOGIC;--清零信号
ENA:IN STD_LOGIC;--计数使能信号
COUT:OUT STD_LOGIC;--溢出端
OUTY:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));--计数结果
三、设计内容及要求
设计内容:
设计一4位十进制频率计,对输入信号的频率进行测量,将测量频率值经由数码管显示。
(1)设计含异步清零和同步时钟使能的4位10进制加法计数器,有一输入端CLK,清零复位端RST,使能端ENA,4位加法计数输出端OUTY和1位溢出端COUT。
(2)为了数据显示稳定,不会因周期性清零而闪烁,设计一4位锁存器,对输出数据锁存。
u1:FREQUENCY PORT MAP(CLK=>FIN,RST=>b,ENA=>a,COUT=>d,OUTY=>g);
u2:FREQUENCY PORT MAP(CLK=>d,RST=>b,ENA=>a,COUT=>e,OUTY=>h);
RST:IN STD_LOGIC;--清零信号
ENA:IN STD_LOGIC;--计数使能信号
COUT:OUT STD_LOGIC;--溢出端
OUTY:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));--计数结果
END frequency;
ARCHITECTURE behave OF frequency IS
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY reg4b IS
PORT(LOAD:IN STD_LOGIC;--控制端,置1时锁存输出
DIN:IN STD_LOGIC_VECTOR(3 DOWNTO 0);--输入的计数值
DOUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));--输出的计数值
2.5.1 设计流程图
2.5.2 VHDL程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY frequency IS
PORT(CLK:IN STD_LOGIC;--时钟信号
COMPONENT CONTROL
PORT(CLK:IN STD_LOGIC;--测频控制信号(选取1HZ)
CNT_EN:BUFFER STD_LOGIC;--计数器时钟使能
LOAD:OUT STD_LOGIC;--输出锁存信号
RST_CNT:OUT STD_LOGIC);--计数器清零
END COMPONENT;
2.6.3 波形图
2.6.4 原理图
2.7 测频控制器的设计
设计一测频控制器,产生1s的计数允许信号,1S结束后产生计数值锁入锁存器的锁存信号和为下一测频计数周期作准备的计数器清零信号。1HZ测频控制信号作为其输入。
2.7.1 设计流程图
2.7.2 VHDL程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
(3)设计一测频控制器,产生1s的计数允许信号,1S结束后产生计数值锁入锁存器的锁存信号和为下一测频计数周期作准备的计数器清零信号。1HZ测频控制信号作为其输入。
2.2 系统的设计流程图
2.3 系统顶层原理图
2.4 系统的工作框图
2.5 4位10进制加法计数器的设计
设计含异步清零和同步时钟使能的4位10进制加法计数器,有一输入端CLK,清零复位端RST,使能端ENA,4位加法计数输出端OUTY和1位溢出端COUT。
END COMPONENT;
SIGNAL a,b,c,d,e,f:STD_LOGIC;--定义信号a,b,c,d,e,f
SIGNAL g,h,i,j:STD_LOGIC_VECTOR(3 DOWNTO 0);--定义4位的信号ghij
BEGIN--下面就是有原先设计的模块构成顶层文件
u0:CONTROL PORT MAP(CLK=>F1,CNT_EN=>a,RST_CNT=>b,LOAD=>c);
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY control IS
PORT(CLK:IN STD_LOGIC;--测频控制信号(验证时取1HZ)
CNT_EN:BUFFER STD_LOGIC;--计数器时钟使能
相关文档
最新文档