SoC之时钟分频(奇数偶数分频)

本文详细介绍了一种基于计数器的偶数和奇数分频器设计方法,通过调整参数N和计数器位宽,可以实现任意偶数和奇数的分频。对于偶数分频,只需计数到N/2-1,然后时钟翻转;对于奇数分频,采用上升沿和下降沿分别计数实现。通过修改N值和计数器位宽,可以灵活实现各种分频需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.偶分频模块设计

N= 时钟输入频率 / 时钟输出频率

N就是分频系数:

偶分频比较简单,假设为N(偶数)分频,只需计数到N/2-1,然后时钟翻转、计数清零,如此循环就可以得到N(偶)分频,可以通过改变参量N的值和计数变量cnt的位宽实现任意偶分频。可以通过修改N的值和计数器的位宽来实现其他偶数分频。

代码如下:

DUT:以4分频为例,

TB:

波形:

 

 

2.现占空比为50%的奇(N)分频 
实现奇数分频原理是分别用上升沿计数到(n-1)/2,时钟进行翻转,再计数到(N-1)进行翻转输出clk_out_p,再用下降沿沿计数到(n-1)/2,时钟进行翻转,再计数到(N-1)进行翻转输出clk_out_n,计将clk_out_p和clk_out_n相或(or)即可。可以通过修改N的值和计数器的位宽来实现其他奇数分频。

DUT:

 

 

TB:

波形:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值