EDA选修课作业8位十进制频率计设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南京工程学院
选修课E D A设计
题目8位十进制频率计
院系通信工程学院
专业电子信息工程
班级
学生姓名
学号
一.设计的目的和要求
设计一个八位十进制的数字频率计:
(1)、能对方波测频率;
(2)、能用数码管显示。
选择芯片:EPM71258LC84_15
a)锁定引脚
b)编译
c)下载
d)试验箱配置
二.设计设备及器件
Max-plus2软件,EDA6000试验箱
三.基本原理
(1)、频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。通常情况下计算每秒内待测信号的脉冲个数,此时我们称闸门时间为2秒。闸门时间也可以大于或小于一秒。闸门时间越长,得到的频率值就越准确,但闸门时间越长则每次测量一次频率的间隔越长。闸门时间越短,测得频率值刷新就越快,但测得的频率精度就受影响。本次的课程设计设计的频率计是测频法设计的八位十进制频率计,他有一个测频控制信号发生器,八个有时钟使能的十进制计数器,一个锁存器组成。
四.程序流程
五、功能模块说明及总体设计
(1)测频率控制信号发生器测频率控制信号发生器测频率控制信号发生器测频率控制信号发生器测频测量的基本原理是计算每秒钟内待测信号的脉冲个数。这就要求测频率控制信号发生器的计数使能信号EN能产生一个1秒的脉宽的周期信号,并对频率计的每一个计数器CNT10的EN使能端进行同步测控。当TSTEN高电平时,允许计数;低电平时,停止计数,并保持其所计的数。在停止计数期间,首先需要一个所存信号LOAD的上升沿将计数器在前一秒中的计数值所存进锁存器中,并由外部的7段译码器译出并稳定显示。所存信号之后,必须有一个清零的信号对计数器进行清零,为下一秒的计数做准备.
(2)计数模块计数模块计数模块计数模块该十进制计数模块有八个一位十进制计数器组成,计数器的特殊之处是:有一个时钟使能输入端EN,用于锁定计数器。当高电平时计数允许,低电平时计数禁止。该测频的八位十进制频率计的计数模块,先通过VHDL语言编写一位十进制计数器,再将其元件例化后搭建一个八位十进制计数模块。(3)所存模块所存模块所存模块所存模块所存模块是由锁存器构成的,主要是数据的稳定显示,不会由于周期性的清零信号而不断的闪烁。在信号LOAD的上升沿后即被所存到寄存器的内部,并由锁存器的输出端输出,然后由实验板上的额7段译码器译成能在数码管上显示的相对应的数值
(4)数码管显示本文数码管采用动态显示方式,每一个时刻只能有一个数码管点亮。数码管的位选信号电路是MAX7000S芯片
六、实现的电路图
8位十进制频率计
七.仿真调试
附录程序代码
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY CNT10 IS
PORT (CLK:IN STD_LOGIC; --计数时钟信号
CLR:IN STD_LOGIC; --清零信号
ENA:IN STD_LOGIC; --计数使能信号
CQ:OUT INTEGER RANGE 0 TO 15; --4位计数结果输出
CARRY_OUT:OUT STD_LOGIC); --计数进位
END ENTITY CNT10;
ARCHITECTURE ART OF CNT10 IS
SIGNAL CQI :INTEGER RANGE 0 TO 15;
BEGIN
PROCESS(CLK,CLR,ENA)IS
BEGIN
IF CLR= '1' THEN CQI<= 0; --计数器异步清零ELSIF CLK'EVENT AND CLK= '1' THEN
IF ENA='1' THEN
IF CQI<9 THEN CQI<=CQI+1;
ELSE CQI<=0;
END IF; --等于9,则计数器清零
END IF;
END IF;
END PROCESS;
PROCESS (CQI) IS
BEGIN
IF CQI=9 THEN CARRY_OUT<= '1'; --进位输出
ELSE CARRY_OUT<= '0';END IF;
END PROCESS;
CQ<=CQI;
END ARCHITECTURE ART;
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY REG32B IS
PORT(LOAD:IN STD_LOGIC;
DIN:IN STD_LOGIC_VECTOR(31 DOWNTO 0);
DOUT:OUT STD_LOGIC_VECTOR(31 DOWNTO 0));
END ENTITY REG32B;
ARCHITECTURE ART OF REG32B IS
BEGIN
PROCESS ( LOAD, DIN ) IS
BEGIN
IF LOAD 'EVENT AND LOAD= '1' THEN DOUT<=DIN; --锁存输入数据END IF;
END PROCESS;
END ARCHITECTURE ART;
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY TESTCTL IS
PORT(CLK:IN STD_LOGIC; --1 Hz测频控制时钟
TSTEN:OUT STD_LOGIC; --计数器时钟使能
CLR_CNT:OUT STD_LOGIC; --计数器清零
LOAD:OUT STD_LOGIC); --输出锁存信号
END ENTITY TESTCTL;
ARCHITECTURE ART OF TESTCTL IS
SIGNAL DIV2CLK :STD_LOGIC;
BEGIN