当前位置:首页 > (强烈推荐)基于FPGA的等精度数字频率计设计毕业论文
在数码管上显示的相对应的阿拉伯数字,便于读取测量的结果。
为了实现系统功能,测频控制信号发生器testctl、计数器Cnt10、锁存器reg32b存在一个工作时序的问题,设计时需要综合考虑。
8位数字频率计的顶层框图(endfreq.bdf),设计实现包括信号源模块(F1MHZ、CNT)、频率计模块(FREQ)和显示模块(display)三大模块。下面分别介绍三个模块的结构和实现方法。
3.2 信号源模块
信号源是为了产生1MHz 的门控信号和待测的定频信号,而对输入系统时钟clk(50MHz)进行分频的模块,设计源代码PIN1MHZ.VHD 对输入系统时钟clk(50MHz)进行分频产生1MHz 信号。
PIN1MHZ的封装图如3.2所示,图中CLKIN为接入的100MHZ信号,图中CLKOUT为接到CNT的CLK的1MHZ的信号。
图3.2 PIN1MHZ封装图
PIN1MHZ的工作时序仿真图如图3.3所示。
图3.3信号源模块仿真图
从PIN1MHZ的工作时序仿真图可以看出:由系统时钟提供的100MHz的输入信号,经过信号源模块,通过100分频产生1MHZ的时钟信号,达到了设计所需的预期效果。
3.3 分频器
此程序要求将1MHZ的输入频率分别进行21分频(产生500KHZ的输出
频freq500k)、23分频(产生125 KHZ的输出频率freq125k)、25 分频(产生31250HZ的输出频freq31250)、27分频(产生7812HZ的输出频率freq7812)、29分频(产生1953HZ的输出频率freq1953)、211分频(产生488HZ的输出频率freq488)、213分频(产生1HZ的输出频率freq1)。
CNT的封装图如图3.4,图中CLK为PIN1MHZ输入的1MHZ信号,freq1为输出给控制信号发生器的1HZ信号,7812HZ的输出频率freq7812被作为显示模块的时钟输入,freq 488、freq1953、freq31250、freq125K、freq500K作为待测信号。
cntclkfreq1freq488freq1953freq7812freq31250freq125kfreq500kinst 图3.4CNT封装图
CNT的工作时序仿真图如图3.5所示。
图3.5 CNT的时序仿真图
当1MHZ频率波形输入后,分别产生了设计所需要的500KHZ的输出频freq500k,125 KHZ的输出频率freq125k,31250HZ的输出频freq31250,7812HZ的输出频率freq7812,1953HZ的输出频率freq1953,488HZ的输出频率freq488,1HZ的输出频率freq1。
3.4 测频控制信号产生器
控制模块的作用是产生测频所需要的各种控制信号。控制信号的标准输入时钟为1HZ,每两个时钟周期进行一次频率测量。该模块产生的3个控制信号,分别为TSTEN,LOAD,CLR_CNT.CLR_CNT信号用于在每次测量开始时,对计数器进行复位,以清除上次测量的结果,该复位信号高电平有效,持续半个时钟周期的时间。TSTEN为计数允许信号,在TSTEN信号的上升沿时刻计数模块开始对输入信号的频率进行测量,测量时间恰为一个时钟周期(正好为单位时间1s),在此时间里被测信号的脉冲数进行计数,即为信号的频率。然后将值锁存,并送到数码管显示出来。设置锁存器的好处是使显示的数据稳定,不会由于周期性的清零信号而不断闪烁。在每一次测量开始时,都必须重新对计数器清0[7]。
测频控制产生器如图3.6,图中CLK接CNT的FREQ1的1HZ的信号,TSTEN为计数允许信号,接计数器CNT10的ENA,CLR_CNT信号用于在每次测量开始时,对计数器进行复位,接计数器CNT10的CLR,LOAD接锁存器的LOAD。
图3.6 TESTCTL的封装图
测频控制信号发生器TESTCTL的工作时序图,控制模块的几个控制信号的时序关系图如图3.7所示。
图3.7 TESTCTL的时序仿真图
从图中可看出,计数使能信号TSTEN在1s的高电平后,利用其反相值的上跳沿产生一个锁存信号LOAD,随后产生清0信号上跳沿CLR_CNT。为了产生这个时序图需首先建立一个由D触发器构成的二分频器,在每次时钟CLK上升沿到来时令其翻转。其中,控制信号时钟clk的频率取1HZ,而信号TSTEN的脉宽恰好为1s,可以用作闸门信号。此时,根据测频的时序要求,可得出信号LOAD和CLR_CNT的逻辑描述。由图可知,在计数完成后,计数使能信号TETEN在1s的高电平后,利用其反相值的上跳沿产生一个锁存信号LOAD,0.5s后,CLR_CNT产生一个请零信号上跳沿。
3.5 锁存器
锁存器模块也是必不可少的,测量模块测量完成后,在load信号的上升沿时刻将测量值锁存到寄存器中,然后输出到显示模块。锁存器是起数据保持的作用,它将会把数据保存到下次触发或复位。主要是主从触发器组成的。用于存储数据来进行交换,使数据稳定下来保持一段时间不变化,直到新的数据将其替换。
锁存器REG32B的封装如图3.8,图中LOAD接控制测频产生器TESTCTL的LOAD,而DIN[31..0]接计数器CNT10的CQ[3..0],DOUT[31..0]接显示器display的in端。
共分享92篇相关文档