




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、南昌大学实验报告13学生姓名: 学 号: 专业班级:中兴 101班实验类型:口验证 口综合 设计 口创新 实验日期:2012年12月14日 成绩:实验六数字频率计的设计、实验目的1)设计具有较高测量精度的频率计;2)进一步学习quatusii的使用3)学会看 rtl viewer。4)熟悉实验设备和软件,掌握实验操作。二、实验内容与要求本实验要完成的任务就是设计一个频率计,系统时钟选择核心板上的50m的时钟,闸门时间为 1s(通过对系统时钟进行分频得到),在闸门为高电平期间,对输入的频率进行计数,当闸门变低的时候,记录当前的频率值, 并将频率计数器清零, 频率的显示每过2秒刷新一次。被测频率通
2、过一个拨动开关 来选择是使用系统中的数字时钟源模块的时钟信号还是从外部通过系统的输入输出模块的输入端输入 一个数字信号进行频率测量。当拨动开关为高电平时,测量从外部输入的数字信号,否则测量系统数字 时钟信号模块的数字信号。三、实验仪器pc机、quartus ii 软件、eda实验箱 四、实验思路数字频率计工作原理概述数字频率计的设计原理实际上是测量单位时间内的周期数。这种方法免去了实测以前的预测,同时 节省了划分频段的时间,克服了原来高频段采用测频模式而低频段采用测周期模式的测量方法存在换挡 速度慢的缺点。采用一个标准的基准时钟,在单位时间(1s)里对被测信号的脉冲数进行计数,即为信号的频率。
3、由于闸门的起始和结束时刻对于信号来说是随机的,将会有一个脉冲周期的量化误差。进一步分析测量准确度:设待测信号脉冲周期为tx,频率为fx,当测量时间为 t=1s时,测量准确度为& =tx/t=1/fx。由此可知直接测频法的测量准确度与信号的频率有关:当待测信号频率较高时,测量准确度也较高,反之 测量准确度也较低。因此直接测频法只适合测量频率较高的信号,不能满足在整个测量频段内的测量精度保持不变的要求。为克服低频段测量的不准确问题,采用门控信号和被测信号对计数器的使能信号进行双重控制,大大提高了准确度。当门控信号为1时,使能信号并不为1,只有被测信号的上升沿到来时,使能端才开始发送有效信号,两个计
4、数器同时开始计数。当门控信号变为。时,使能信号并不是立即改变,而是当被测信号的下一个上升沿到来时才变为0,计数器停止计数。因此测量的误差最多为一个标准时钟周期。当采用100mhz的信号作为标准信号时,误差最大为 0.01 s。计算每秒钟内待测信号脉冲个数。这就要求计数使能信号tsten能产生一个1秒脉宽的周期信号,并对频率计的每一计数器 cnt10的ena使能端进行同步控制。当 tste时高电平时,允许计数;低电平 时,停止计数,并保持其所计的数。在停止计数期间,首先需要一个锁存信号load的上跳沿将计数器在前1秒钟的计数值锁存进 32位锁存器reg32bk并由外部的译码器译出并稳定显示。锁存
5、信号之后,必须由清零信号 clr_cnt寸计数器进行清零,为下一秒钟的计数操作做准备。当系统正常工作时,脉冲发生器提供的1 hz的输入信号,经过测频控制信号发生器进行信号的变换,产生计数信号,被测信号通过信号整形电路产生同频率的矩形波,送入计数模块,计数模块对输入 的矩形波进行计数,将计数结果送入锁存器中,保证系统可以稳定显示数据,显示译码驱动电路将二进 制表示的计数结果转换成相应的能够在数码显示管上可以显示的十进制结果。在数码显示管上可以看到计数结果。系统的总体设计当系统正常工作时,由系统时钟提供的50mhz的输入信号,经过分频模块,产生 1hz及1khz的时钟信号,其中1hz的输出频率被作
6、为控制模块的时钟输入,1khz的输出频率被作为显示模块的时钟输入,由控制模块产生的计数使能信号tsten和清零信号clr对计数模块进行控制,而由其产生的锁存信号10ad对锁存模块进行控制, 一旦计数使能信号为高电平,并且时钟上升沿到来, 计数器便开始正常计数,清零信号到来则计数清零,而当锁存信号为高电平时,数据便被锁存器锁存,然后将锁存的数据输出到 显示模块显示出来,数据锁存保证系统可以稳定显示数据,显示译码驱动电路将二进制表示的计数结果 转换成相应的能够在数码显示管上可以显示的十进制结果。在数码显示管上可以看到计数结果。数字频率计的原理框图如图 1所示。主要由5个模块组成,分别是:信号源模块
7、、控制模块、测频信号选择计 数模块、锁存器模块和显示器模块。外部时钟测频信号选撵被测信号50m系统时钟1hz闸门信善显示扫描信号控制信号产生允许计数a清零信号锁存信号十进制计数32位k锁存器显示译码器图1数字频率计的原理框图根据数字频率计的系统原理, cnt控制信号发生器。tstctl的计数使能信号tsten能产生一个1 s 宽的周期信号,并对频琴计的每一计数器 cnt10的ena使能端进行同步控制: 当tsten高电平时允许计 数、低电节时停止计数。reg32b为锁存器。在信号load的上升沿时,立即对模块的输入口的数据锁存到 reg32b的内部,并 由reg32b的输出端输出,然后,七段译
8、码器可以译码输出。在这里使用了锁存器,好处是可以稳定显 示数据,不会由于周期性的清零信号而不断闪烁。cnt10为十进制计数器。有一时钟使能输入端ena用于锁定计数值。当高电平时允许计数,低电平时禁止计数。将八个十进制计数器cnt10级联起来实现8位十进制计数功能。disply 为七段译码显示驱动电路,可以将频率计数的结果译成能在数码管上显示的相对应的阿拉伯数字,便于读取测量的结果。为了实现系统功能,测频控制信号发生器testctl 、计数器cnt10、锁存器reg32b存在一个工作时序的问题,设计时需要综合考虑。8位数字频率计的顶层框图(endfreq.bdf ),设计实现包括信号源模块(f1
9、mhz cnt、频率计模块 (freq和显示模块(display )三大模块。五.原理图输入法设计(小时进制转换参考百度文库上的程序,其余独立完成)1 .建立文件夹建立自己的文件夹(目录),如c:myeda ,进入 windows操作系统quartus ii不能识别中文,文件及文件夹名不能用中文。2 .原理图设计输入打开 quartus ii ,选菜单 file 一new,选择 device design file-block diagram- schematic file 项。点击“ok在主界面中将打开 “block editor窗口。(1)分频器模块:(实体名为clkout )分频器是为了
10、产生 1hz的门控信号和1khz的数码管扫描信号, 而对输入系统时钟 clk (50mh3 进行分频的模块,设计源代码 clkout.vhd对输入系统时钟clk (50mhz进行分频产生1hz信号及 1khz信号。clkout 的封装图如1所示,图中 clk50m为接入的50mhz言号,图中 clk1khz为接到teltcl的 clk的1hz的信号,clk1hz为接到 display 的clk的1khz的信号。图2 clkout 封装图clkout的工作时序仿真图如图3所示。master tme gar:elksdi clklkhz elklhz17.35 ns * | -j pointer-
11、 1.03 ms interval1.03 ms stat:end,v&sit 35a ia 0a 0图3分频模块仿真图从clkout的工作时序仿真图可以看出:由系统时钟提供的50mhz的输入信号,经过分频模块,通过两个分频产生 1hz及1khz的时钟信号,达到了设计所需的预期效果。具体程序如下:- 时间:2012年11月01号- -版本:7.2- -功能:分频器(100分频)分频模块 div源代码div.vhd如下:- 分频程序,从 10khz中得到1hz的计数频率,10000分频-title:频率计闸门信号、显示扫描信号产生-library ieee;use ieee.std_logic_
12、1164.all;use ieee.std_logic_unsigned.all;entity clkout isport ( clk50m : in std_logic; -50m 系统时钟输入clk1khz : out std_logic; -1khz 显示扫描时钟输出clk1hz : out std_logic);-1hz 闸门信号产生 end clkout;architecture a of clkout isbeginprocess(clk50m)-产生显示扫描时钟1khzvariable cnttemp : integer range 0 to 99999;beginif clk5
13、0m=1 and clk50mevent thenif cnttemp=99999 then cnttemp:=0; elseif cnttemp50000 then clk1khz=1;else clk1khz=0;end if;cnttemp:=cnttemp+1;end if;end if;end process;process(clk50m)-产生显示扫描时钟1khzvariable cnt : integer range 0 to 49999999; beginif clk50m=1 and clk50mevent thenif cnt=49999999 then cnt:=0; e
14、lseif cnt25000000 then clk1hz=1;else clk1hz i pointer:403.74 m5interval:40874 ms167.77 ms 335.54 kz 503 2s71.09 n: 838,86 串 1.0l ;fl 0 nsl_tsten图5 testctl的时序仿真图从图中可看出,计数使能信号tstene 1s的高电平后,利用其反相值的上跳沿产生一个锁存信号load随后产生清0信号上跳沿clr_cnt为了产生这个时序图需首先建立一个由d触发器构成的二分频器,在每次时钟clk上升沿到来时令其翻转。其中,控制信号时钟clk的频率取1hz,而信号t
15、sten的脉宽恰好为1s,可以用作闸门信号。此时,根据测频的时序要求,可得出信号load和clr_cnt勺逻辑描述。由图可知,在计数完成后,计数使能信号tetens 1s的高电平后,利用其反相值的上跳沿产生一个锁存信号load,0.5s后,clr_cnp生一个清零信号上跳沿。具体程序如下:- -时间:2012年12月1号- -版本:7.2- -功能:数字频率计控制信号产生- teltcl-title:数字频率计控制信号产生-library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity teltcl
16、 isport ( clk: in std_logic; -1 hz 测频控制时钟tsten:out std_logic;计数器时钟使能clr_cnt: out std_logic;-计数器清零load: out std_logic);-输出锁存信号end teltcl;architecture art of teltcl issignal div2clk :std_logic;signal clr :std_logic;signal loadcnt :std_logic;beginprocess ( clk ) isbeginif clkevent and clk= 1-1 hz 时钟二分频
17、then div2clk=not div2clk;end if ;end process;process ( clk,div2clk )beginif clk= 0 and div2clk = 0 then产生计数器清零信号clr= 1;else clr= 0;end if;end process;load=not div2clk; tsten=div2clk;clr_cnt=clr;end architecture art;(3)十进制计数器:(实体名为cnt10计数器模块是由8个带有异步清零端,进位信号输出的模为10的计数模块级连而成。 通过分频 进行元件例化实现。此十进制计数器的特殊之处
18、是,有一时钟使能输入端ena用于锁定计数器。当高电平计数允许,低电平时计数禁止。计数器模块用于对输入信号的脉冲进行计数,该模块必须 有计数允许、异步清零等端口,以便于控制模块对其进行控制。cnt10的封装如图 6,其中clr为复位接 testctl勺clr_cn端,enag testctl勺tsten, cq3.0接锁存器的 dout31.0端。cnt10clkcq3.0-clr carry_out ena inst 图6 cnt10的封装图 有时钟使能的十进制计数器cnt10的工作时序仿真如图 7。此程序模块实现的功能是带使能端的10进制计数。程序要求只有当使能端信号为高电平时计数器才能正常
19、工作,每个时钟的上升沿到来时计数器加1,因为这里要实现的是 10进制计数,所以当计数到10时计数器清零,同时产生进位信号,这里的进位信号仅为一个脉冲信号,一旦计数从10变为1,脉冲信号立即变为低电平。同时该计数器也应带有清零信号,一旦清零信号为高电平,计 数器立即清零。具体程序如下:-时间:2012年12月1号-版本:7.2-功能:十进制计数器cnt10-title:频率计有时钟使能的十进制计数器产生-library ieee;use ieee.std_logic_1164.all;entity cnt10 isport (clk:in std_logic;-计数时钟信号clr:in std_
20、logic;清零信号ena:in std_logic;-计数使能信号cq :out integer range 0 to 15;-4 位计数结果输出carry_out:out std_logic);-计数进位end cnt10;architecture art of cnt10 issignal cqi :integer range 0 to 15;beginprocess(clk,ena) isbeginif clr= 1 then cqi= 0;一计数器异步清零elsif clkevent and clk= 1 thenif ena= 1 thenif cqi=10 then cqi=1;
21、else cqi=cqi+1;end if;-等于9,则计数器清零end if;end if;end process;process (cqi) isbeginif cqi=10 then carry_out= 1;一 进位输出else carry_out= 0;end if;end process;cq=cqi;end art;(4)二选一被测频率选择模块(实体名:mu%二选一被测频率选择模块如图8所示,其中:输入管脚:clkin1设定为外部时钟输入;clkin2设定为数字信号源输入;key设定为数字信号源输入输出管脚:fin被测频率输出,当key为1时,选择外部时钟输入;选择0时为数字信号
22、源输入;图8- -时间:2012年12月1号- -版本:7.2- -功能:二选一被测频率选择library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity mux isport( clkin1: in std_logic;-设定为外部时钟输入-设定为数字信号源输入-设定为数字信号源输入-被测频率输出clkin2: in std_logic;key: in std_logic;fin: out std_logic);end mux;archit
23、ecture behave of mux isbeginprocess(key,clkin1,clkin2) beginif key=1 thenfin=clkin1;elsefin=clkin2;end if;end process;end behave;(5)显示模块(实体名: display )led有段码和位码之分,所谓段码就是让led显示出八位数据,一般情况下要通过一个译码电路,将车入的4位2进制数转换为与 led显示对应的8位段码。位码也就是 led的显示使能端,对 于共阴级的led而言,低电平使能,在本设计中设计了一个3位的循环计数器,将计数结果输入到译码器,译码结果输出即可依次
24、使能每个led例如:要让8个led同时工作显示数据,就是要不停的循环扫描每一个 led,并在使能每一个 led的同时,输入所需显示的数据对应的8位段码。虽然8个led是依次显示,但是受视觉分辨率的影响,看到的现象是 8个led同时工作。display 模 块的顶层图如下所示。cnt计数产生扫描信号(位码),led模块用于查表产生 led段码输出。 图9位display 的封装图。图中in0in7 接锁存器的 dout31.0端。display 工作时序图如下图。用8个led将待测频率显示出来,将通过十进制计数器的时钟信号10clk输出为时钟信号计数译码后的显示驱动端,在八段led译码为对应的八
25、段二进制编码,并由数码显示器显示出来。图中为相应二进制编码与相对应的屏显数字。显示电路图11 display硬件结构图此部分如图,图中主要由 07循环累加器、3-8译码器、bcd-7段显示译码器、8选1多路数据 开关和8个led显示器组成的扫描数码显示器。-时间:2012年12月1号-版本:7.2-功能:数字频率计显示译码输出display-title:数字频率计显示译码输出-library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity display isport(in7,in6,in5,in4
26、,in3,in2,in1,in0:in std_logic_vector(3 downto 0);lout7:out std_logic_vector(6 downto 0);sel:out std_logic_vector(2 downto 0);clk:in std_logic);end display;architecture phtao of display issignal s:std_logic_vector(2 downto 0);signal lout4:std_logic_vector(3 downto 0);beginprocess (clk)beginif (clkeve
27、nt and clk=1)then if (s=111) thens=000;else s=s+1;end if;end if;sellout4lout4lout4lout4lout4lout4lout4lout4lout4lout7lout7lout7lout7lout7lout7lout7lout7lout7lout7lout7lout7=xxxxxxx;end case;end process;end phtao;( 6)锁存器模块(实体名: reg32b )锁存器模块也是必不可少的, 测量模块测量完成后, 在 load 信号的上升沿时刻将测量值锁存到寄存器中,然后输出到显示模块。锁存器
28、是起数据保持的作用,它将会把数据保存到下次触发或复位。主要是主从触发器组成的。用于存储数据来进行交换,使数据稳定下来保持一段时间不变化,直到新的数据将其替换。锁存器 reg32b勺封装如图12,图中load控制测频产生器 testctl的load而din31.0 接计数器 cnt10的 cq3.0 , dout31.0接显示器 display 的 in 端。reg32bloaddout31.0-din31.0inst图12 reg32b的封装图32位锁存器reg32b勺工作时序图如下图。namev与6(j ps 20. 0 ns 40. 0 ns 60. 0 nw b0. 0100. 0 ns
29、11111so. cns*loadi :11|ls diffh 0(jqoogqo。x叩。口叫上凡四里口野三工口史口四卬:s douth 0(oqooooooxoooooapixmastei time ear:90 0 ns“卜:pointer:1.94 ns interval:图13 reg32b的时序仿真图本程序是用来实现锁存器模块的功能,但它的程序相当简单,在锁存信号10ad的上升沿到来时,锁存器将测量值锁存到寄存器,然后输出到显示模块。但从仿真图中可以明显的看出,锁存输出并 不是立即进行的,而是经历了一个短暂的延时,这是由于硬件引起的。-时间:2012年12月1号-版本:7.2-功能:
30、数字频率计32位锁存器reg32b-title:数字频率计32位锁存器-library ieee;use ieee.std_logic_1164.all;entity reg32b isport(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 isbeginprocess ( load, din ) isbeginif load event and load=
31、1then doutdevice-family:| cyclone ii-t arget devicel auto device xe-lecfed tiy the frtteik s peczrific device se-lec ted in vail-able rfevncesi listav-ailoble deviw?-n drneep2c35fs4c61.ep2c3sf4s4c71ep2c35f484c81.ef2t3sf4fi4l81.ep2c35fs72c61.ef2c3sfe72c71ep2c35f672c81.fipwqsfgna1* i-comparniom device
32、 一hordcopp ii:17 i irnail ith g 口 lr alhd l411let6 _e 6 g 6 6 6 -h 11111111 布设之烧正泛短r? 00 : 333 3 3 .7 3333333a引脚锁定,package:pin muirit:speed grade:审 shaw ddv-ancccl devicesi hardlcopy compatible onlyu.r i/. | mmfniail. embtfdl. | fll _2 222555c-2 2 2 2 7 7 7 733334 4 4a4b3q4d 83840 483s4d 433840 483s
33、40 483840 义目的an4 4 4 4 4 4 4 d 7cltc7cl7070707cl7rl参照下载实验板引脚号说明书,选择适当的引脚xii;- 叵1 匚aitegory: | |pin凶 叵 this categarv displays all pin aseignments for the target devicb family. pin asagnments aseign node and entities to pins or regions or ehe device.3orm*tl315edit:x” l&som1tolkatonyu 弓口,i/o standardge
34、neral functonppedai functionf1.dk50mp1n_al343.3-vlvttll1-1jzlr*to xl iir 12ldkn2-tj_c1z13-v lmttldedkabed clockclk lo/lvdsclksn j 3adknipinjib2133ylmlcdumn i/olvds 1514i-kjepjn.hs5.3-vlvttlcdumi i/o5。ie dag 0mavlvntcjimi l/ovus 75 口6trie dag :p1njf1443,vlvttlccjutm i/o.廿n与u7坦飒团pin j1513-vlvtucolumn go8jdecag 国pin_ets43.3-v lelcolum /_ vu )9hcag4pdmjis43.3-v lelcdiutfi i/o1 wncftlri10今帕邮1国p1n_f17鼻3mmcdurnn f/0tvdssgn112佗划6p1m_e1841.3-vlvmcolum i/o一匕 lj m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 循环经济模式下轴皮退役部件多材料分选与再生利用技术瓶颈突破
- 建筑节能改造中防火泥厚度优化与热工性能的耦合关系
- 应急响应机制下IC卡系统故障切换与多部门联动的预案体系
- 工业级茚酮纯度检测技术标准缺失对应用端的影响
- 新能源汽车销售团队培训与激励机制
- 第二节 客观的历史与历史的“重现”教学设计-2025-2026学年高中历史北师大版2010选修5探索历史的奥秘-北师大版2010
- 9.1溶液的形成说课稿-2023-2024学年九年级化学人教版下册 -
- 霍尔开关知识题库及答案
- 第五单元名著导读《昆虫记》说课稿-2024-2025学年统编版语文八年级上册
- 第9课 混合声音更达意说课稿-2023-2024学年小学信息技术(信息科技)五年级下册人教·陕师大版
- PEP小学英语五年级上册第四单元全国优质课赛课一等奖《思维导图在小学英语复习课的应用》精品课件
- 主编-孙晓岭组织行为学-课件
- 新闻传播中的媒介素养课件
- 超疏水材料课件
- 中医刮痧法诊疗操作评分标准
- 《师范生教师职业能力证书》样式及说明
- 学校体育学(第三版)ppt全套教学课件
- 住建部《建筑业10项新技术(2017版)》解读培训课件
- Q∕GDW 12154-2021 电力安全工器具试验检测中心建设规范
- 胸痛中心各项管理制度汇编(2022年)
- 网站安全隐患处置结果反馈表(共1页)
评论
0/150
提交评论