文档详情

EDA8位16进制频率计.doc

发布:2025-05-23约8.36千字共11页下载文档
文本预览下载声明

教师评阅意见:

教师评阅意见:

签名:年月日

实验成绩:

一、课题任务与要求

实验目的:设计8位16进制频率计,学习较复杂的数字系统设计方法。

实验内容:

根据测频控制电路、32位锁存器、32位计数器所给出的VHDL程序,分析程序完成的功能。并利用QuartusII软件分别对其进行编译和仿真,在结合频率计顶层文件的程序完成频率计的完整设计和硬件实现,并给出其测频时序波形及其分析。选用电路模式5;8个数码管以十六进制显示测频输出;待测频输入FIN有clock0输入,频率可选4Hz、256Hz、3Hz….50MHz等;1Hz测频控制信号CLK1Hz可由clock2输入〔用跳线选1Hz〕。注意,这时8个数码管的测频显示值是16进制的。

将频率计改为8位10进制频率计,注意此时设计的计数器必须是8个4位的10进制计数器,而不是一个。此外注意在测频速度上给予优化。

二、设计系统的概述

根据频率的定义和频率测量的根本原理,测定信号的频率必须有一个脉宽为1秒的输入信号脉冲计数允许的信号;1秒计数结束后,计数值被锁入锁存器,计数器清0,为下一测频计数周期做好准备。测频控制信号可以由一个独立的发生器来产生。设计要求是:FTCTRL的计数使能信号CNT_EN能产生一个一秒脉宽的周期信号,并对频率计中的32位二进制计数器COUNTER32B的ENABL使能端进行同步控制。当CNT_EN高电平时允许计数;低电平时停止计数,并保持其所计的脉冲数。在停止计数期间,首先需要一个锁存器信号LOAD的上跳沿将计数器在 前一秒钟的计数值锁存进锁存器REG32B中,并由外部的16进制7段译码器译出,显示计数值。设置锁存器的好处是数据显示稳定,不会由于周期性的清零信号而不断的闪烁。锁存信号后,必须有一清零信号RST_CNT对计数器进行清零,为下一秒的计数操作准备。

8位16进制频率计设计

根据实验指导书上所给定的测频控制电路、32位锁存器、32位计数器以及频率计的顶层文件的实验程序,分别完成每个模块的编译和仿真,并最终完成频率计的完整设计。

8位10进制频率计设计

将频率计改为8为10进制频率计,需将32位计数器改成4位的十进制计数器,并且需要8个这样的计数器。

三、单元电路的设计与分析〔重点描述自己设计局部〕

1.8位十六进制频率计设计

测频控制电路程序:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYFTCTRLIS

PORT(CLKK:INSTD_LOGIC;--1Hz

CNT_EN:OUTSTD_LOGIC;--计数器时钟使能

RST_CNT:OUTSTD_LOGIC;--计数器清零

Load:OUTSTD_LOGIC);--输出锁存信号

ENDFTCTRL;

ARCHITECTUREbehavOFFTCTRLIS

SIGNALDiv2CLK:STD_LOGIC;

BEGIN

PROCESS(CLKK)

BEGIN

IFCLKKEVENTANDCLKK=1THEN--1Hz时钟2分频

Div2CLK=NOTDiv2CLK;

ENDIF;

ENDPROCESS;

PROCESS(CLKK,Div2CLK)

BEGIN

IFCLKK=0ANDDiv2CLK=0THENRST_CNT=1;--产生计数器清零信号

ELSERST_CNT=0;

ENDIF;

ENDPROCESS;

Load=NOTDiv2CLK;

CNT_EN=Div2CLK;

ENDbehav;

32位锁存器:

LIBRARYIEEE;--32位锁存器

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYREG32BIS

PORT(LK:INSTD_LOGIC;

DIN:INSTD_LOGIC_VECTOR(31DOWNTO0);

DOUT:OUTSTD_LOGIC_VECTOR(31DOWNTO0));

ENDREG32B;

ARCHITECTUREbehavOFREG32BIS

BEG

显示全部
相似文档