基于vhdl频率计毕业论文(编辑修改稿)内容摘要:

CNTER=0000000000000000000000000。 CNTEER=NOT CNTEER。 ELSE CNTER=CNTER+1。 END IF。 END IF。 END PROCESS。 CLK500=CNTEER。 END ART。 CLKGEN模块的源程序为:LIBRARY IEEE。 USE。 USE。 ENTITY CLKGEN ISPORT( CLK :IN STD_LOGIC。 NEWCLK: OUT STD_LOGIC)。 END CLKGEN。 ARCHITECTURE ART OF CLKGEN IS SIGNAL CNTER:STD_LOGIC_VECTOR(24 DOWNTO 0)。 SIGNAL CNTEER:STD_LOGIC。 BEGIN PROCESS(CLK) BEGIN IF (CLK39。 EVENT AND CLK=39。 139。 ) THEN IF CNTER=249 THEN CNTER=0000000000000000000000000。 CNTEER=NOT CNTEER。 ELSE CNTER=CNTER+1。 END IF。 END IF。 END PROCESS。 NEWCLK=CNTEER。 END ART。 :仿真分析:输入信号CLK 的频率为10MHZ,输出信号CLK500的频率为500HZ。 图2. 4CLKGEN 分频模块仿真波形仿真分析:输入信号CLK的频率为500HZ,输出NEWCLK的频率为1HZ。 测频时序控制电路模块,CLK为由基准脉冲信号产生模块产生的频率为1HZ的标准时钟信号NEWCLK,测频时,将频率为1HZ的标准时钟信号NEWCLK送入控制电路输入端CLK,输出端包括一个计数使能输出端TSTEN,一个是清零信号输入端CLR_CNT和一个数据锁存输出端LOAD。 使能信号TSTEN对频率计中10个十进制计数器的使能端ENA进行同步控制,当TSTEN为高电平时允许计数,低电平时停止计数,停止计数期间,测频时序控制模块TESTCTL的锁存信号LOAD端输出上升沿,将计数值锁存到REG40B锁存器中。 测频控制模块TESTCTL的CLR_CNT端产生一个上升沿,对计数器进行清零。 为下一秒的计数操作做准备。 为了实现系统功能,测频时序控制模块TESTCTL,计数器CNT10,以及锁存器REG40B存在一个工作时序的问题,设计时需要综合考虑。 ,首先要有一个D触发器构成二分频器,在每次时钟CLK上升沿到来使其值翻转。 触发器的输出高电平正好是1S,即测频时序控制模块TESTCTL的TSTEN端时钟脉冲信号的脉宽为1S,并对频率计的每一计数器CNT10的ENA使能端进行同步控制。 而LOAD信号正好是TSTEN端信号的翻转。 在计数结束后半个CLK周期,CLK与TSTEN都为低电平,这时CLR_CNT产生一个上升沿作为清零信号。 测频时序控制电路模块源程序:LIBRARY IEEE。 USE。 USE。 ENTITY TESTCTL IS PORT(CLK:IN STD_LOGIC。 TSTEN:OUT STD_LOGIC。 CLR_CNT:OUT STD_LOGIC。 LOAD: OUT STD_LOGIC)。 END TESTCTL。 ARCHITECTURE ART OF TESTCTL ISSIGNAL Div2CLK:STD_LOGIC。 BEGINPROCESS(CLK)BEGIN IF CLK39。 EVENT AND CLK=39。 139。 THEN Div2CLK=NOT Div2CLK。 END IF。 END PROCESS。 PROCESS(CLK,Div2CLK)BEGIN IF CLK=39。 039。 AND Div2CLK=39。 039。 THEN CLR_CNT=39。 139。 ELSE CLR_CNT=39。 039。 END IF。 END PROCESS。 LOAD=NOT Div2clk。 TSTEN=Div2CLK。 END ART。 该计数模块主要有10个十进制计数器CNT10级联而成,具有复位和使能控制功能,主要是在阀门时间内对被测信号FSIN频率进行计数。 测频时, 测频时序控制电路模块TESTCTL的TSTEN端时钟脉冲信号的脉宽为1S,TSTEN高电平期间允许各个计数器工作,低电平期间停止计数并保持计数值。 测频控制模块TESTCTL的CLR_CNT端产生一个上升沿,并对频率计的每一计数器CNT10的CLR端进行同步控制,对计数器进行清零。 当测频时序控制模块TESTCTL的锁存信号LOAD端输出上升沿时,将计数值DIN(39 DOWNTO 0),使低位计数器CNT10的CARRY_OUT端与高位计数器CNT10的输入时钟位CLK相连。 首个计数器CNT10的CLK端外接被测信号FSIN,该计数模块的输出信号为有低位到高位的10组4位二进制表示的十进制数,用来分别表示被测信号的个、十、百、千等位的数值。 位数越高频率测量的范围也越宽,此测量范围由计数电路内部的十进制计数器的个数来决定。 元件符号图 ,CARRY_OUT 是计数器进位输出;COUNT10(3 DOWNTO 0)是计数器的状态输出;CLK是时钟输入端;ENA是使能控制输入端,当ENA=1时,计数器计数,当ENA=0时,计数器保持状态不变。 具有同步使能端的十进制计数器源程序为: LIBRARY IEEE。 USE。 USE。 ENTITY CNT10 IS PORT( CLK:IN STD_LOGIC。 计数时钟信号 CLR:IN STD_LOGIC。 清零信号 ENA:IN STD_LOGIC。 计数使能信号 COUNT10:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0)。 4位计数结果输出 CARRY_OUT:OUT STD_LOGIC 计数进位 )。 END CNT10。 ARCHITECTURE ART OF CNT10 IS SIGNAL CQI: STD_LOGIC_VECTOR(3 DOWNTO 0)。 BEGIN PROCESS(CLK,CLR,ENA) BEGIN IF CLR=39。 139。 THEN CQI=0000。 计数器异步清零 ELSIF CLK39。 EVENT AND CLK=39。 139。 THEN IF ENA=39。 139。 THEN IF CQI=1001THEN CQI=0000。 等于9,则计数器清零 ELSE CQI=CQI+39。 139。 END IF。 END IF。 END IF。 END PROCESS。 PROCESS(CQI) BEGIN IF CQI=1001THEN CARRY_OUT=39。 139。 进位输出 ELSE CARRY_OUT=39。 039。 END IF。 END PROCESS。 COUNT10=CQI。 END ART。 仿真分析:在使能端ENA高电平期间,清零信号CLR为低电平时,CNT10计数器以十进制计数,计数到9后,进位CARRY_OUT输出为高电平,在下一个时钟信号CLK上升沿到来时,计数器清零。 在使能端ENA为低电平时,计数器不能启动。 当清零信号CLR为高电平时,计数器清零。 锁存器模块 ,主要作用为锁存计数器的计数值。 设置锁存器可以使数据显示稳定可靠,不会由于周期性的清零信号而使数码管不断闪烁。 测频时序控制模块TESTCTL的锁存信号LOAD端输出上升沿,将计数值锁存到REG40B锁存器中,并由REG40B的输出端输出。 锁存器模块的源程序:LIBRARY IEEE。 USE。 ENTITY REG40B ISPORT( LOAD :IN STD_LOGIC。 锁存信号时钟 DIN: IN STD_LOGIC_VECTOR(39 DOWNTO 0)。 锁存器输入信号 DOUT: OUT STD_LOGIC_VECTOR(39 DOWNTO 0) 锁存器输出信号 )。 END REG40B。 ARCHITECTURE ART OF REG40B ISBEGINPROCESS(LOAD,DIN)BEGINIF LOAD39。 EVENT AND LOAD=39。 139。 THEN DOUT=DIN。 LOAD上升沿到来后END IF。 锁存END PROCESS。 END ART。 波形仿真REG40B波形仿真分析:输入信号DIN为40位数据0000 0000 0000 0000 0000 0000 0000 0000 0001 1000,测频时序控制模块TESTCTL的锁存信号LOAD端输出上升沿时,将计数值锁存到REG40B锁存器中,输出信号DOUT为40位数据0000 0000 0000 0000 0000 0000 0000 0000 0001 1000.数字逻辑系统中常用的显示器件是数码管,每一个字段都是一个发光二极管,因而也称之为LED数码管或LED显示器。 LED数码管用七段发光二极管(带小数点时为8段)来显示数字,每一段都是一个发光二极管,一般把所有段的相同的一端相连,连接到地(共阴极接法)或者是连接到电源(共阳极接法)。 共阴极LED数码管的公共端连接到地,另一端分别接一个限流电阻后再接到控制电路的信号端,当信号端为高电平时,该段即被点亮,否则不亮。 共阳极接法则相反,公共端连接到电源,另一端分别接一个限流电阻后再接到控制电路的信号端,只有信号端为低电平时才被点亮,否则不亮。 在数字逻辑电路中,数码管可以用TTL或CMOS集成电路来直接驱动,其驱动方式有BCD码驱动和直接驱动。 BCD码驱动方式是用74LS48(共阳极七段显示驱动器)、74LS49(共阴极七段显示驱动器)译码驱动电路来控制数码管显示。 直接驱动方式是直接对数码管相应的字段给出驱动电平,以显示电平。 74LS48是一种实现码型转换的译码芯片。 码型转化就是将一种编码的输入转换为另一种编码输出。 74LS48就是将BCD码转换成为7段数码管显示编码。 它是共阴极驱动芯片,也就是在输出高电平时,该芯片具有较强的电流输出能力。 七段显示译码模块将锁存器送过来的4位BCD数字符译成七段码。 频率测量中,共要10个七段显示译码模块BCD。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。