数字频率计的设计

上传人:公**** 文档编号:561978290 上传时间:2023-03-23 格式:DOC 页数:7 大小:318KB
返回 下载 相关 举报
数字频率计的设计_第1页
第1页 / 共7页
数字频率计的设计_第2页
第2页 / 共7页
数字频率计的设计_第3页
第3页 / 共7页
数字频率计的设计_第4页
第4页 / 共7页
数字频率计的设计_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《数字频率计的设计》由会员分享,可在线阅读,更多相关《数字频率计的设计(7页珍藏版)》请在金锄头文库上搜索。

1、实验四 数字频率计的设计实验学时:2学时实验类型:设计实验要求:必做一、实验目的1.掌握VHDL语言的基本结构。2.掌握VHDL层次化的设计方法。3.掌握VHDL基本逻辑电路的综合设计应用。二、实验原理图1是8位十进制数字频率计的电路逻辑图,它由一个测频控制信号发生器TESTCTL、8个有时钟使能的十进制计数器CNT10、一个32位锁存器REG32B组成。以下分别叙述频率计各逻辑模块的功能与设计方法。 图18位十进制数字频率计逻辑图1) 测频控制信号发生器设计频率测量的基本原理是计算每秒钟内待测信号的脉冲个数。这就要求TESTCTL的计数使能信号TSTEN能产生一个1秒脉宽的周期信号,并对频率

2、计的每一计数器CNT10的ENA使能端进行同步控制。当TSTEN高电平时,允许计数;低电平时,停止计数,并保持其所计的数。在停止计数期间,首先需要一个锁存信号LOAD的上跳沿将计数器在前1秒钟的计数值锁存进32位锁存器REG32B中,并由外部的7段译码器译出并稳定显示。锁存信号之后,必须有一清零信号CLR_CNT对计数器进行清零,为下1秒钟的计数操作作准备。测频控制信号发生器的工作时序如图2所示。为了产生这个时序图,需首先建立一个由D触发器构成的二分频器,在每次时钟CLK上沿到来时其值翻转。其中控制信号时钟CLK的频率取1 Hz,而信号TSTEN的脉宽恰好为1 s,可以用作闸门信号。此时,根据

3、测频的时序要求,可得出信号LOAD和CLR_CNT的逻辑描述。由图1可见,在计数完成后,即计数使能信号TSTEN在1 s的高电平后,利用其反相值的上跳沿产生一个锁存信号LOAD,0.5 s后,CLR_CNT产生一个清零信号上跳沿。高质量的测频控制信号发生器的设计十分重要,设计中要对其进行仔细的实时仿真(TIMING SIMULATION),防止可能产生的毛刺。图2 测频控制信号发生器工作时序2) 寄存器REG32B设计设置锁存器的好处是,显示的数据稳定,不会由于周期性的清零信号而不断闪烁。若已有32位BCD码存在于此模块的输入口,在信号LOAD的上升沿后即被锁存到寄存器REG32B的内部,并由

4、REG32B的输出端输出,然后由实验板上的7段译码器译成能在数码管上显示输出的相对应的数值。3) 十进制计数器CNT10的设计如图1所示,此十进制计数器的特殊之处是,有一时钟使能输入端ENA,用于锁定计数值。当高电平时计数允许,低电平时禁止计数。三、实验内容设计并调试好一个8位十进制数字频率计。要求编写上述8位十进制数字频率计逻辑图中的各个模块的VHDL语言程序,并完成8位十进制数字频率计的顶层设计,然后利用开发工具软件对其进行编译和仿真,最后通过实验开发系统对其进行硬件验证。四、实验步骤1.根据测频控制信号发生器的基本原理编写TESTCTL模块的VHDL程序,并对其进行编译和仿真,初步验证设

5、计的正确性。2.编写十进制计数器CNT10模块的VHDL程序,并对其进行编译和仿真,初步验证设计的正确性。3.编写寄存器REG32B模块的VHDL程序,并对其进行编译和仿真,初步验证设计的正确性。4.完成8位十进制数字频率计的顶层设计,并对其进行编译和仿真,初步验证设计的正确性。5.利用开发工具软件,选择所用可编程逻辑器件,并对8位十进制数字频率计进行管脚配置。6.通过下载电缆将编译后的*.pof文件下载到目标器件之中,并利用实验开发装置对其进行硬件验证。五、实验组织运行要求本实验要求设计一个8位十进制数字频率计,应采用集中授课的方式,首先对8位十进制数字频率计的设计原理和设计思路进行讲授,然

6、后在指导老师的监督和指导下,由学生自己动手,按实验要求完成任务,最后必须由指导老师检查实验结果后方可离开。(1)画出系统的原理框图,说明系统中各主要组成部分的功能。(2)编写各个VHDL源程序。(3)根据选用的软件编好用于系统仿真的测试文件。(4)根据选用的软件及EDA实验开发装置进行硬件验证的管脚锁定。(5)记录系统仿真、硬件验证结果。(6)记录实验过程中出现的问题及解决办法。六、实验条件1.计算机一台;2.Max+PlusII和Quartus II开发工具软件;3.EDA实验开发箱一台;4.编程器件:EP1K30TC1443。七、实验注意事项1.在文本输入方式下,利用VHDL语言进行设计时

7、,源程序文件名必须与实体名一致,否则编译会出错。2.学生必须严格按实验操作规程进行实验。3.利用实验开发箱进行硬件验证时,必须爱护实验开发装置。八、思考题1.如何利用D触发器设计一个二分频器?2.如何防止设计过程中可能产生的毛刺?九、实验报告要求实验结束后,学生应根据做实验情况,认真完成实验报告的书写。实验报告应包括实验目的、实验内容、仪器设备、实验原理、实验电路、程序清单、实验步骤、实验结果及分析和实验过程中出现的问题及解决方法等。十、实验程序参考1) 测频控制模块参考程序:- TESTCTL.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; USE

8、IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY TESTCTL IS PORT (CLK:IN STD_LOGIC; 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;BEGINPROCESS (CLK) ISBEGIN IF CLKEVENT AND CLK= 1 THEN DIV2CLK=NOT DIV2CLK;END IF;END PRO

9、CESS;PROCESS ( CLK,DIV2CLK ) ISBEGIN IF CLK= 0 AND DIV2CLK =0 THEN CLR_CNT=1; ELSE CLR_CNT=0; END IF;END PROCESS; LOAD=NOT DIV2CLK; TSTEN=DIV2CLK;END ARCHITECTURE ART;2)十进制参考程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 IS PORT (CLK: IN STD_LOGIC; CLR: IN ST

10、D_LOGIC; ENA: IN STD_LOGIC; CQ: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CARRY_OUT: OUT STD_LOGIC);END CNT10;ARCHITECTURE ART OF CNT10 ISSIGNAL CQI: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK, CLR, ENA)BEGIN IF CLR=1 THEN CQI=0000; ELSIF CLKEVENT AND CLK=1 THEN IF ENA=1 THEN IF CQI=1001 THEN CQI=0000;CA

11、RRY_OUT=1; ELSE CQI=CQI+1;CARRY_OUT=0; END IF; END IF; END IF;END PROCESS;CQ=CQI;END ART;3)寄存器设计-REG24.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG24 IS PORT(D:IN STD_LOGIC_VECTOR(23 DOWNTO 0); LOAD:IN STD_LOGIC; Q:OUT STD_LOGIC_VECTOR(23 DOWNTO 0);END ENTITY REG24;ARCHITECTURE ART OF REG2

12、4 IS BEGIN PROCESS(LOAD) IS BEGIN IF (LOADEVENT AND LOAD=1) THEN Q=D; END IF; END PROCESS;END ARCHITECTURE ART;4)基准时钟分频器设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;use ieee.std_logic_unsigned.all;ENTITY CLKF1Hz IS PORT(CLK4: IN STD_LOGIC; CLK: OUT Std_LOGIC);END CLKF1Hz;ARCHITECTURE ART OF CLKF1Hz IS

13、SIGNAL CNTER:integer range 1 to 6000000;BEGINPROCESS(CLK4)BEGIN IF (CLK4EVENT AND CLK4=1) THEN IF (CNTER=6000000) THEN CNTER=0; ELSE CNTER=CNTER+1; END IF; END IF;END PROCESS;PROCESS(CNTER)BEGIN IF (CNTER=3000000) THEN CLK=1; ELSIF (CNTER=6000000) THEN CLK=0; END IF;END PROCESS;END ART;1) 顶层模块设计LIBR

14、ARY IEEE;USE IEEE. STD_LOGIC_1164.ALL;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY pinlujidwHz IS PORT(FSIN:IN STD_LOGIC; CLKJZ:IN STD_LOGIC; CO:OUT STD_LOGIC; DOUT:OUT STD_LOGIC_VECTOR(23 DOWNTO 0);END pinlujidwHz;ARCHITECTURE ART OF pinlujidwHz IS COMPONENT CLKF1Hz PORT(CLK4: IN STD_LOGIC; CLK: OUT Std_LOGIC); END COMPONENT; COMPONENT TESTCTL PORT(CLK:IN STD

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号