发布时间 : 星期五 文章八位十进制分频器实验报告更新完毕开始阅读df97961afad6195f312ba66d
重庆交通大学
信息科学与工程学院 综
合
性
实
验报告
姓 名: 赵娅琳 学 号 10950214
班 级: 通信工程专业2010级 2班
实验项目名称: 8位16进制频率及设计
实验项目性质: 设计性
实验所属课程: 数字设计基础
实验室(中心): 现代电子实验中心
指 导 教 师 : 李 艾 星
实验完成时间: 2012 年 6 月 18 日
教师评阅意见:
签名: 年 月 日 实验成绩: 一、课题任务与要求
1、验证8位16进制频率计的程序;
2、根据8位16进制频率计的程序设计8位10进制频率计;
二、设计系统的概述
频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率,通常情况下计算每秒内待测的脉冲个数,此时闸门时间为1秒,闸门时间也可以大于或小于1秒。频率信号易于传输,抗干扰性强,可以获得较好的测量精度。
数字频率计的关键组成部分包括一个测频控制信号发生器、一个计数器和一个锁存器,另外包括脉冲发生器、姨妈驱动电路和显示电路。
工作过程:系统正常工作时,脉冲信号发生器输入1HZ的标准信号,经过测频控制信号发生器的处理,2分频后即可产生一个脉宽为1秒的时钟信号,以此作为计数闸门信号。测量信号时,将被测信号通过计数器作为时钟。当技术闸门信号高平有效时,计数器开始计数,并将计数结果送入锁存器中。设置锁存器的好处是现实的数据稳定,不会由于周期的清零信号而不断闪烁。最后将所存的数值由外部的译码器并在数码管上显示。
三、单元电路的设计与分析(重点描述自己设计部分)
1、八位十进制计数顶层模块设计
(1)、此模块是元件例化语句将各个元件(测频控制模块、十进制计数模块、测频锁存器模块)连接形成一个整体,完成最终频率计所期望的功能。
(2)、具体程序如下。
library ieee; --频率计顶层文件 library ieee;
use ieee.std_logic_1164.all;
entity freqtest is --定义逻辑电路的端口 port(clk1hz,fsin:in std_logic;
dout:out std_logic_vector(31 downto 0)); end freqtest;
architecture behv of freqtest is --说明语句 component cnt10_8 --元件说明语句 port(rst,fx,ena:in std_logic;
d:out std_logic_vector(31 downto 0)); end component; component reg32b port(lk:in std_logic;
din:in std_logic_vector(31 downto 0); dout:out std_logic_vector(31 downto 0)); end component; component ftctrl port (clkk:in std_logic; cnt_en :out std_logic; rst_cnt:out std_logic; load:out std_logic); end component;
signal tsten1:std_logic; --信号量定义说明语句 signal clr_cnt1:std_logic; signal load1:std_logic;
signal dto1:std_logic_vector(31 downto 0); signal carry_out1:std_logic_vector(6 downto 0); begin --功能描述语句
u1:ftctrl port map(clkk=>clk1hz,cnt_en=>tsten1,rst_cnt=>clr_cnt1,load=>load1); u2:reg32b port map(lk=>load1,din=>dto1,dout=>dout);
u3:cnt10_8 port map(fx=>fsin,rst=>clr_cnt1,ena=>tsten1,d=>dto1); end behv;
(3)、顶层文件的模块图
2、测频控制模块
(1)、此模块主要是由时钟输入、计数器使能、计数器清零、输出所存构成、其具体的实现是由一个1秒的输入信号脉冲计数允许的信号,1秒计数器结束后,计数值被锁入锁存器,计数器清零,为下一测频计数周期做好准备。
(2)、具体程序如下。
LIBRARY IEEE; --测频控制电路 USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY FTCTRL IS --定义逻辑电路的端口 PORT (CLKK:IN STD_LOGIC; --1Hz
CNT_EN:OUT STD_LOGIC; --计数器时钟使能 RST_CNT:OUT STD_LOGIC; --计数器清零 Load:OUT STD_LOGIC);--输出锁存信号 END FTCTRL;
ARCHITECTURE behav OF FTCTRL IS --说明语句 SIGNAL Div2CLK:STD_LOGIC;
BEGIN --功能描述语句 PROCESS(CLKK) BEGIN
IF CLKK'EVENT AND CLKK='1' THEN --1Hz时钟2分频 Div2CLK <= NOT Div2CLK; END IF; END PROCESS;
PROCESS(CLKK,Div2CLK) BEGIN
IF CLKK='0' AND Div2CLK='0' THEN RST_CNT<='1'; --产生计数器清零信号
ELSE RST_CNT <='0'; END IF; END PROCESS; Load <= NOT Div2CLK; CNT_EN <= Div2CLK; END behav;