0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

小数分频器的设计

CHANBAEK 来源:Andy的ICer之路 作者:AndyICer 2023-03-23 15:08 次阅读

前面分别介绍了偶数和奇数分频(即整数分频),接下来本文介绍小数分频。

对于要求相位以及占空比严格的小数分频,建议采用模拟电路实现。 而使用数字电路实现只能保证尽量均匀,在长时间内进行分频 。

在讨论小数分频之前,先问一个问题:设计中是否真的需要50%占空比的时钟

在回答这个问题之前,可以先回顾之前我们写过的RTL设计,可以看一下之前的RTL设计代码中always块是不是大部分都是@(posedge clk)。 对于绝大多数的触发器,其实只需要用到时钟的上升沿触发,很少用到下降沿。 在这种情况下,只要上升沿和时钟频率有关系,什么时候来下降沿不重要! 所以50%的占空比不是必须的 。

因此在小数分频器中我们关注的是如何得到一个尽量均匀的分频信号,而不是得到一个绝对50%占空比的分频信号。

下面以4.5倍的分频(非50%占空比)作为例子介绍,即每9个参考时钟包含2个对称脉冲。 下面是4.5分频的设计步骤。

①:使用复位值为000000001的9位移位寄存器,可以在每个时钟上升沿使移位寄存器循环左移一位。

②:要产生第一个脉冲,必须使在半周期时移动第一位并将第一位与第二位进行或操作。

③:要产生第二个脉冲,第5位和第6位必须在半周期时移动并与原始第6位进行或操作。

注意:所有这些移位都是用来保证输出波形不含毛刺的必要条件。

上面产生的时钟占空比为40%,并且输出的时钟完全不含毛刺。

always@(posedge clk or negedge rst_n)
  if(!rst_n)
    cnt[9:1] <= 9'b000000001;
  else
    cnt[9:1] <= cnt[9:1] << 1;
    
    
always@(negedge clk or negedge rst_n)
  if(!rst_n)begin
    count1 <= 1'b0;
    count5 <= 1'b0;
    count6 <= 1'b0;
  end
  else begin
    count1 <= cnt[1];
    count5 <= cnt[5];
    count6 <= cnt[6];  
  end

assign clkout = (cnt[6] | count5 | count6) | 
                (cnt[0] | cnt[1] |count1);

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 脉冲
    +关注

    关注

    20

    文章

    884

    浏览量

    95518
  • 分频器
    +关注

    关注

    43

    文章

    447

    浏览量

    49802
  • 时钟
    +关注

    关注

    10

    文章

    1720

    浏览量

    131339
  • RTL
    RTL
    +关注

    关注

    1

    文章

    385

    浏览量

    59692
  • 小数分频
    +关注

    关注

    0

    文章

    7

    浏览量

    6676
收藏 人收藏

    评论

    相关推荐

    基于FPGA的双模前置小数分频器的设计

             频率合成技术是现代通讯系统的重要组成部分,他将一个高稳定和高准确度的基准频率,经过四则运算,产生同样稳定度和基准度的
    发表于 11-08 17:58 1838次阅读
    基于FPGA的双模前置<b class='flag-5'>小数分频器</b>的设计

    FPGA众多分频资料,不容错过

    `基于FPGA+的任意小数分频器的设计基于FPGA的多种分频设计与实现基于FPGA的小数分频器的实用Verilog 实现基于FPGA 的通用分频用Verilog+HDL实现基于FPGA
    发表于 02-03 15:02

    低通滤波的FPGA设计及仿真

    主要任务:1.熟悉低通滤波的原理及应用2.熟悉FPGA的硬件描述3.FPGA如何实现小数分频器4.用MATLAB对低通滤波的验证预期成果或目标:FPGA对低通滤波的Verilog
    发表于 04-04 22:16

    请问AD9361中ADC、DAC采样时钟的可设置的最小分辨率是多少?

    AD9361中ADC、DAC采样时钟可通过小数分频器设置,其可设置的最小分辨率是多少?与输入参考时钟频率是什么关系?
    发表于 08-06 09:26

    FPGA的小数分频器的实现,并行快速FIR滤波的FPGA实现.pdf

    发表于 09-17 10:45

    如何在保证相位噪声性能的基础上改善整数边界杂散达10dB?

    小数分频器整数边界杂散问题的提出小数分频器整数边界杂散的优化设计
    发表于 04-19 08:32

    基于FPGA的小数分频器如何去实现?

    双模前置小数分频原理是什么?如何对小数分频器进行仿真测试?
    发表于 04-29 07:29

    任意分频系数小数分频器相关文档及源代码

    任意分频系数小数分频器相关文档及源代码
    发表于 08-03 09:49 75次下载
    任意<b class='flag-5'>分频</b>系数<b class='flag-5'>小数分频器</b>相关文档及源代码

    FPGA实现小数分频器

    介绍了一种基于FPGA的双模前置小数分频器分频原理及电路设计,并用VHDL编程实现分频器的仿真.
    发表于 11-29 16:43 48次下载
    FPGA实现<b class='flag-5'>小数分频器</b>

    △∑小数频率合成器中的小数分频器设计

    △∑小数频率合成器中的小数分频器设计设计方案、技术指标、调试等。
    发表于 05-24 10:03 9次下载

    实现任意整数分频的原理与方法讲解

    分频器是一种基本电路,通常用来对某个给定频率进行分频,得到所需的频率。整数分频器的实现非常简单,可采用标准的计数,也可以采用可编逻辑器件设计实现。但在某些场合下,时钟源与所需的频率不
    的头像 发表于 11-20 07:05 7240次阅读

    如何使用FPGA进行任意小数分频器的设计

    论文分析了双模前置小数分频器分频原理和电路实现。结合脉冲删除技术,提出了一种适于硬件电路实现的任意小数分频的设计方案 ,用 VerilogHDL语 言编程 ,在 QuartusII下对 此方案进 行 了仿 真 ,并用 Cycl
    发表于 08-02 08:00 5次下载
    如何使用FPGA进行任意<b class='flag-5'>小数分频器</b>的设计

    具有小数分频器的CDCM6208 2:8时钟生成器/抖动消除数据表

    电子发烧友网站提供《具有小数分频器的CDCM6208 2:8时钟生成器/抖动消除数据表.pdf》资料免费下载
    发表于 08-20 09:07 0次下载
    具有<b class='flag-5'>小数分频器</b>的CDCM6208 2:8时钟生成器/抖动消除<b class='flag-5'>器</b>数据表

    CDCM6208V1F具有小数分频器的2:8时钟生成器/抖动消除数据表

    电子发烧友网站提供《CDCM6208V1F具有小数分频器的2:8时钟生成器/抖动消除数据表.pdf》资料免费下载
    发表于 08-20 09:13 0次下载
    CDCM6208V1F具有<b class='flag-5'>小数分频器</b>的2:8时钟生成器/抖动消除<b class='flag-5'>器</b>数据表

    CDCM6208V2G具有小数分频器的2:8时钟发生/抖动消除数据表

    电子发烧友网站提供《CDCM6208V2G具有小数分频器的2:8时钟发生/抖动消除数据表.pdf》资料免费下载
    发表于 08-20 09:14 0次下载
    CDCM6208V2G具有<b class='flag-5'>小数分频器</b>的2:8时钟发生<b class='flag-5'>器</b>/抖动消除<b class='flag-5'>器</b>数据表