
本文首先介绍了各种分频器的实现原理,并在FPGA开发平台上,通过将VHDL文本输入和原理图输入相结合,编程给出了仿真结果. 最后8位数控分频器的设计,通过对各种分频的分析和层次化设计思想的运用,对基于FPGA的通用数控分频器进行了全面设计. 通过调整可控端口,可以实现不同倍频和占空比的分频.
1. 简介
分频器是数字系统中非常重要的模块之一,并且广泛用于各种控制电路中. 实际上,设计人员通常需要通过分频技术传递标准频率源,以满足不同的需求. 常见的分频形式是: 偶数分频,奇数分频,半整数分频,分数分频和分数分频. 在某些严格的情况下,还有占空比要求. 不等占空比的偶数分频器和奇数分频器更易于实现,但要实现占空比为50%的半整数分频器和奇数分频器则更加困难.
本文首先介绍了各种分频器的实现原理,并结合VHDL硬件描述语言对其进行了仿真. 最后,提出了一种可控的通用分频器设计方法,可以实现任意分频. 资源消耗低,具有可编程优势.
2. 偶数分频器
偶数分频器相对简单,即使用计数器对需要分频的原始时钟信号进行计数.
例如: 除以M = 2N(N为自然数),当计数值为0〜k-1时,输出高电平;当计数值为k-1〜2N-1时,输出低电平同时复位计数值,使该周期可以实现任何占空比的偶数分频,其中M和k为预设数,可以根据分频倍数和占空比的要求进行设置. 如图1所示,当k = N时,可以实现占空比为50%的偶数分频.


图1占空比为50%的4分频仿真结果
3. 奇数分频器
具有任意占空比的奇数占空比分频器的实现类似于偶数分频器的原理. 但是,采用上述相同方法无法实现占空比为50%的奇数分频.
这是一种常见的实现方法.
实现原理: 两个不同的边沿触发器(一个在上升沿,一个在下降沿)用于实现. 细节在于实现1/2个原始时钟周期的时差.
如图2所示,当执行M = 2N + 1频分时,k1是在clk的上升沿变化的信号8位数控分频器的设计,计数周期为M. 当计数器值为0〜N时,k1保留低,当计数值为N + 1〜2N时,k1保持高.


图2占空比为50%的5分频仿真结果
k2与k1相同,唯一的区别是k2在clk的下降沿发生变化. 最后,可以对k2和k1进行或运算,以获得占空比为50%的任何奇数分频器.
4. 半整数分频器
半整数分频器的原理如图3 [3]所示. 它主要包括三个部分: 模块化M计数器,XOR模块和2个分频模块. 设计思路是: 由XOR门和2分频模块形成一个改变输入频率的脉冲加法电路,即在M-0.5个输入信号周期内产生M个计数脉冲,其中一个周期为计数脉冲改变这是一个包含两个脉冲的周期. 更改的具体实现是将原始时钟信号与2分频模块的输出进行异或.

图3半整数分频器原理

此外,不难发现该原理图还可实现50%占空比的2M-1倍的奇数分频. 当M = 3时,仿真结果如图4所示. 原理图的输出端口q除以5,占空比为50%,输出端口C除以2.5.

图4半整数分频器仿真结果
5. NC通用分频器的实现
综上所述,通过使用模N计数器,脉冲加法电路和控制模块,可以实现占空比可调的通用分频器. 可以在特定的设计过程中使用分层设计方法. 首先,设计通用分频器的组件,然后通过组件实例化的方法调用每个组件,以实现通用分频器.

图5通用分频器原理图

位置:
模块N计数器可以通过两种方式实现:
一种方法是调用LM库中的参数化计数器模块LPM_COUNTER,根据向导设置参数,Quartus II将生成相应的参数模块. vdh计数文本. 为了能够调用计数文本,最后需要使用VHDL语言为计数文本设计一个实例化程序并将其设置为顶级文件. 第二种是使用VHDL描述语言.
二分法模块是通过使用D触发器实现的,也就是说,将D触发器的输出信号Q作为输入信号进行反馈,并使用模N计数器的输出信号的最高位作为D触发器的时钟信号.
顶部如图5所示. 其中a为分频模式选择,当a = 00时,执行偶数分频;当a = 01时,占空比不是50%的奇数除法;当a = 10时,占空比为50%奇数除法. 屏幕;当a = 11时,执行半整数分频[2]. 端口M的功能是控制分频数. 端口K的功能是在除以偶数(M = 2N)和奇数(M = 2N + 1)时调整占空比. 当k = N时,占空比为50%.
6. 结论
该设计的最终目的是实现分频器的性和实用性. 在本设计中,控制端口M,K和计数器N的位宽均采用参数化设计思想,用户需要根据需要进行略微修改,可以满足不同的分频要求,并达到一定的通用性. 范围.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/dianqi/article-237009-1.html
哪里可以看到
中国可以在附近海