当前位置:网站首页>FPGA—奇偶数分频和小数分频代码例程
FPGA—奇偶数分频和小数分频代码例程
2022-07-29 05:25:00 【qq_46475176】
1. 偶数分频
偶数分频比较简单,只是注意时钟翻转的条件是(N/2)还是(N/2)-1,非阻塞赋值在下一个时钟才会更新值。
2. 奇数分频
奇数分频比偶数分频复杂一些,当不要求分频的占空比时,对输入时钟clk上升沿计数,可以设置两个计数的翻转点,一个是(N-1)/2,一个是(N-1),计数到(N-1)时输出时钟翻转且将计数器清零,假设计数器计数0~(N-1)/2区间输出低电平,则输出时钟的低电平有(N-1)/2 + 1个clk周期,高电平的计数是(N-1)/2+1 ~ (N-1),共(N-1)/2个clk周期,可见不是50%占空比。
当要求占空比为50%时,对输入时钟clk的上升沿和下降沿分别计数,根据两个计数器得到两个错位输出的时钟,将两个时钟做“或”运算,可以弥补相差的时钟,达到50%占空比。以7分频为例,代码如下:
module Odd_Divider(
inputclk,
inputrst_n,
outputclk_divider
);
reg [2:0] count_p; //上升沿计数
reg [2:0] count_n; //下降沿计数
reg clk_p; //上升沿分频
reg clk_n; //下降沿分频
//上升沿计数
always
边栏推荐
猜你喜欢
随机推荐
虹科Automation softPLC | 虹科KPA MoDK运行环境与搭建步骤(2)——MoDK运行环境搭建
计算机大厂面试题
Leetcode 83. delete duplicate elements in the sorting linked list
操作系统面试题
7110 digital trend 2 solution
虹科分享 | 带你全面了解“CAN总线错误”(三)——CAN节点状态与错误计数器
【Leetcode刷题】数组3——分治
EtherCAT主站掉线后,如何保证目标系统免受故障影响?
NoClassDefFoundError processing
Leetcode 9. palindromes
Leetcode 13. Roman numeral to integer
Vivado IP核之浮点数加减法 Floating-point
Leetcode 167. sum of two numbers II - input ordered array
PDO的使用
[beauty of software engineering - column notes] 19 | as a programmer, you should have product awareness
Official tutorial redshift 04 rendering parameters
UE4 天光和反射球的原理和区别
THINKPHP5 常见问题
Official tutorial redshift 08 light
多线程服务器编程