基于
硬件
逻辑
语言
数字频率计
设计
金诗雨
5 0 M i c r o c o n t r o l l e r s&E m b e d d e d S y s t e m s 2 0 2 3年第4期w w w.m e s n e t.c o m.c n 基于硬件逻辑语言的数字频率计设计金诗雨,杨晓宇,于馨淼,郑馥钰,胡明月,王颖(大连理工大学 城市学院,大连 1 1 6 1 0 0)摘要:针对目前在航空航天、电子技术、测控等技术领域遇到的问题,数字频率计能够准确、快速地捕捉到信号频率的变化。本文重点介绍了如何运用E D A技术来实现数字频率计的设计,采用基础开发软件并采用V e r i l o g HD L语言进行编译,W a v e f o r m进行了波形图仿真,最后设计了顶层文件图。关键词:E D A;V e r i l o g HD L;Q u a r t u s I I中图分类号:T P 3 1 文献标识码:AD e s i g n o f D i g i t a l F r e q u e n c y M e t e r B a s e d o n H a r d w a r e L o g i c L a n g u a g eJ i n S h i y u,Y a n g X i a o y u,Y u X i n m i a o,Z h e n g F u y u,H u M i n g y u e,W a n g Y i n g(C i t y I n s t i t u t e,D a l i a n U n i v e r s i t y o f T e c h n o l o g y,D a l i a n 1 1 6 1 0 0,C h i n a)A b s t r a c t:F o c u s i n g o n s o l v i n g t h e p r o b l e m s e n c o u n t e r e d i n t h e t e c h n i c a l f i e l d s o f a e r o s p a c e,e l e c t r o n i c t e c h n o l o g y,m e a s u r e m e n t a n d c o n-t r o l,e t c.,t h e d i g i t a l f r e q u e n c y m e t e r c a n a c c u r a t e l y a n d q u i c k l y c a p t u r e t h e c h a n g e o f s i g n a l f r e q u e n c y.T h e r e f o r e,t h i s a r t i c l e f o c u s e s o n t h e u s e o f E D A t e c h n o l o g y t o r e a l i z e t h e d e s i g n o f d i g i t a l f r e q u e n c y m e t e r,u s i n g b a s i c d e v e l o p m e n t s o f t w a r e a n d u s i n g V e r i l o g HD L l a n-g u a g e t o c o m p i l e,w a v e f o r m c a r r i e d o u t w a v e f o r m s i m u l a t i o n,a n d f i n a l l y d e s i g n e d t h e t o p-l e v e l f i l e d i a g r a m.K e y w o r d s:E D A;V e r i l o g HD L;Q u a r t u s I I0 引 言数字频率计是一套采用模拟数字电路系统制作设计成的一套能同时实现对周期行数变化进行信号频率测量计算的仪器。近年来,由于大规模数字电路设计的飞速发展和高性能集成电路器件的逐渐普及,计数器技术得到广泛应用。利用数字式频率计数测量得出的统计结果将具有计算精度高、显示图像醒目直观、速度快等优点。1 系统设计1.1 数字频率计的实现原理及方法数字频率信号计量法通过计数器技术快速精确计算在每一秒范围内输入的频率信号中的数字周期的个数,系统原理框图如图1所示。系统包括一个数字时钟测频计算器和控制运算的数字信号发生器、一个数字锁存器和数字译码器、一个由一组8个十进制计数器组成的计数器。1.2 产品功能数字频率计主要用于控制测量正弦波、三角波、方波和其他任何一种有一个固定频率值的信号波形,测量的信号波形宽度范围为1 H z 1 0 0 MH z,并且这些信号波的图1 系统原理框图调制幅度值一般大多设定为约0.55 V。在E D A软件平台运用V e r i l o g HD L语言进行编译,进行波形图仿真以及绘制顶层文件原理图。2 硬件设计系统包括5个基本控制模块:分频器模块、具有测频及控制功能的脉冲发生器模块、计数器模块、锁存器模块和七段式译码器模块。下面主要介绍脉冲发生器模块、锁存器模块以及计数器模块。敬请登录网站在线投稿(t o u g a o.m e s n e t.c o m.c n)2 0 2 3年第4期 5 1 2.1 脉冲发生器模块脉冲发生器模块用来控制或计算每秒产生的待受测频率信号脉冲周期的个数,这就要求脉冲发生器模块上的周期计数使能端控制信号T S T E N能产生每秒一个脉冲的周期信号,并要求对其中包含每一个脉冲周期计数器的模块C N T 1 0的每两个周期E NA周期计数的使能端进行同步计数控制。若计数器的T S T E N为高电平值,则允许它继续进行计数;若为低电平,则要停止为其继续计数,并且保持其所计的数。在停止计数操作期间,首先需要有一个锁存信号L OA D的上升沿将计数器在前1 s的计数值锁存进锁存器R E G中,可以通过计算机连接外部电路的液晶显示器来进行稳定连续的计数器显示。设置锁存器信号的好处之一是显示在计数器中的数据变得更加清晰、稳定,不会由于计数器周期性振荡产生计数器自动清零的图2 T E S T C T L模块图错误信号而造成数据不断变化闪烁。锁存信号之后,必须要有一个清零信号C L R_C N T对计数器进行清零,为完成计数器下一秒的计数或清零 等 操 作 而 做 好 准备。图2为T E S T C T L模块图。2.2 R E G模块若已有3 2位的B C D码存在于此模块电路中的输入端口,那么在停止计数时,利用锁存信号L OA D的上升沿把最新的频率测量值锁存到内部,并由R E G上的输出端口输出,然后信号再经由实验板上的一个七段式译码器转译成能保证同时在上述两个数码管芯片电路上显示输入和输出时信号输出的两个相应电平的数值。由于该平台上只有7个数码管带有七段译码器,而最高位的数码管并没有带译码器,因此设计时将一个七段式译码器E n c o d e加到了锁存器的高4位输出端上。图3为R E G模块图。2.3 C N T 1 0模块计数器一般有两种基本计数触发控制方式:同步计数器触发控制方式和异步计数控制触发方式。反复实验之后,本文采用8位十进制计数器之间级联方式实现在8位频率计数器中的同步计数触发功能。之所以选择8位显示而不是4位,是从布线设计和实际工程使用角度综合考虑。此十进制计数器的最大优点是在它前端有另一个具有时钟计数使能的输入端E NA,用于锁定被计数的值。若为高电平状态,则只允许被计数,若为低电平,则禁止被计数。图4为C N T 1 0模块图。图3 R E G模块图图4 C N T 1 0模块图3 软件设计由于信号是开发板自带5 0 MH z信号分频得到,本实验先通过2 4 9 9 9 9 9 9分频模块得到一个高低电平各为0.5 s、周期 为1 s的c l k i n,然 后 再 设 计 一 个 标 志 位,若c l k i n信号为高电平,则标志位为0 1(用来当一个闸门使用),此时测量此期间的输入信号有几个上升沿,c l k i n信号出现上升沿并且为0时,将测量出的上升沿数量输出给译码器且将用来测量信号频率值的信号量置0,方便下次计数。原理是利用计频法来测量信号频率值(在一个特定信号周期内,通过测量输入信号有多少个上升沿),这里以1 s为周期,这样测量出1 s内有几个上升沿就可以得到输入信号的频率值。最后再通过显示模块将设置好的频率显示出来。4 顶层原理图顶层文件原理图中最主要的部分共包含了以下5个特定功能模块,依次为:测频器及控制模块的信号发生器模块T E S T C T L、分 频 器 模 块D I V 2、锁 存 寄 存 器 模 块R E G、七段译码器模块E N C O D E和8位十进制计数模块C N T 1 0。T E S T C T L模块功能:测频控制模块的输出包括计数器的使能端、清零端以及数据锁存器的锁存信号,分别控制计数器的计数和清零。当锁存信号为高电平时,计数器的计数结果被锁存并输出到显示模块显示。D I V 2模块功能:对时钟输入信号进行二分跳频,当时钟信号C L K上升沿和下降沿到来时,其值自动翻转。其中,若控制闸门信号时钟C L K的时钟频率可以取到1 H z,则闸门信号时钟T E T E N的时钟脉宽数就可以为1 s,可以直接被用来作为控制闸门信号。R E G模块功能:当L O D A信号发生上跳时,将输入端的8位B C D码送到输出端。E N C O D E模块功能:将每一个4位的二进制B C D码抽译成每一个都能同时被多个数码管显示出来的一个7位二进制码。C N T 1 0模块功能:E NA为计数器输入高电平信号时输入的计数,C L K值为计数器输入的时钟变量,C L R值为5 2 M i c r o c o n t r o l l e r s&E m b e d d e d S y s t e m s 2 0 2 3年第4期w w w.m e s n e t.c o m.c n 计数器输出高电平信号时计数器清零,当计数器计到9时,C A R R Y_OUT值即自动显示为计数器输入高电平。5 波形仿真图5为T E S T C T L模 块 仿 真 图。输 入 信 号:1 H z标准输入信号的C L K D I V 2。输出信号:T S T E N,计数器的自动使能计数信号;C L R_C N T,计数器输出的自动清零计数信号;L OA D,锁存计数信号。仿真时将输入信号C L K-D I V 2赋值1 0.0 n s为1拍的输入信号。图5 T E S T C T L模块仿真图 图6为C N T 1 0模块仿真图。时钟输入信号:E NA,时钟输入的使能信号;C L R,时钟输出的清零信号;C L K,时钟输入的触发信号。时钟输出信号:C Q【3.0】,输出8 4 2 1 B C D码;C A R R Y_OUT,输出计数器进位信号。图6 C N T 1 0模块仿真图 敬请登录网站在线投稿(t o u g a o.m e s n e t.c o m.c n)2 0 2 3年第4期 5 3 仿真时将输入信号C L K赋值以1 0 n s为1拍的高电平,C L R在大约1 0 0 n s时赋值为高电平,E N A在大约2 0 n s时赋值为高电平。6 下载验证在完成所有模块的仿真后,运用B l o c k D i a g r a m将所有模块连接起来并绘制顶层文件图,之后将软件与硬件结合,将结果下载到开发板中验证。图7为下载验证图。图7 下载验证图7 结 语本实验将测频模块、分频模块、数码管显示模块分别编译好后生成b l o c k文件,最后用一个顶层模块把3个子模块连接到一起。总体设计思路就是先测频模块测得频率值,然后通过进制转换模式转换为十进制数,最后再输入给显示模块显示出该频率值。