文档详情

位十进制频率计的设计.doc

发布:2017-03-27约3.27千字共6页下载文档
文本预览下载声明
4位十进制频率计的设计 实验目的: 设计一个4位十进制频率计,学习复杂数字系统的设计方法。 实验原理: 根据频率的定义和频率测量的基本原理,测定信号的频率必须有一个脉宽为1秒的脉冲计数允许信号,1秒计数结束后,计数值(即所测信号频率)锁入锁存器,并为下一次测频作准备,即将计数器清零。 试验内容: 1、根据频率计的工作原理,将电路划分成控制器、计数器、锁存器和LED显示几个模块, 控制器——产生1秒脉宽的计数允许信号、锁存信号和计数器清零信号 计数器——对输入信号的脉冲数进行累计 锁存器——锁存测得的频率值 LED显示——将频率值显示在数码管上 顶层文件框图如下: 2、用元件例化语句写出频率计的顶层文件。 -------------------------------------------------------------------------- 程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY FREQTEST IS PORT (CLK1HZ,FSIN:IN STD_LOGIC; D:OUT STD_LOGIC_VECTOR(15 DOWNTO 0)); END ENTITY FREQTEST; ARCHITECTURE FD1 OF FREQTEST IS COMPONENT COUTER16D IS PORT (FIN,ENABL,CLR:IN STD_LOGIC; DOUT:OUT STD_LOGIC_VECTOR(15 DOWNTO 0)); END COMPONENT; COMPONENT FTCTRL IS PORT (CLKK:IN STD_LOGIC; CNT_EN:OUT STD_LOGIC; RST_CNT:OUT STD_LOGIC; LOAD:OUT STD_LOGIC); END COMPONENT; COMPONENT REG16D IS PORT (LK:IN STD_LOGIC; DIN:IN STD_LOGIC_VECTOR(15 DOWNTO 0); DOUT:OUT STD_LOGIC_VECTOR(15 DOWNTO 0)); END COMPONENT; SIGNAL X,Y,Z:STD_LOGIC; SIGNAL E:STD_LOGIC_VECTOR(15 DOWNTO 0); BEGIN U1:COUTER16D PORT MAP(FIN=FSIN,ENABL=X,CLR=Y,DOUT=E); U2:FTCTRL PORT MAP(CLKK=CLK1HZ,CNT_EN=X,RST_CNT=Y,LOAD=Z); U3:REG16D PORT MAP(DIN=E,LK=Z,DOUT=D); --U4:DECL7S PORT MAP(A=O0,LED7S=DO0); --U5:DECL7S PORT MAP(A=O1,LED7S=DO1); --U6:DECL7S PORT MAP(A=O2,LED7S=DO2); --U7:DECL7S PORT MAP(A=O3,LED7S=DO3); END ARCHITECTURE FD1; 用VHDL硬件描述语言进行模块电路的设计。 各模块电路的VHDL描述:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT10 IS PORT (EN,CLK,RST:IN STD_LOGIC; CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT:OUT STD_LOGIC); END CNT10; ARCHITECTURE BEHAV OF CNT10 IS BEGIN PROCESS(CLK,EN) VARIABLE CQI :STD_LOGIC_VECTOR(3 DOWNTO 0):=0000; BEGIN IF (RST = 1) THEN CQI:=(OTHERS =0); ELSIF(CLKEVENT AND CLK = 1) THEN IF EN=1 THEN IF CQI9 THEN CQI:= CQI+1; ELSE CQI:=(OTHERS=0); END IF; END IF; END IF; IF CQI=9 THEN COUT=1; ELSE COUT =0; END IF; CQ = CQI; END PROCESS; END BEHAV; 16位锁存器: LIBRARY IEEE;
显示全部
相似文档