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

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

3天内不再提示

verilog的时钟分频与时钟使能

FPGA设计论坛 来源:未知 2023-01-05 14:00 次阅读

时钟使能电路是同步设计的基本电路,在很多设计中,虽然内部不同模块的处理速度不同,但由于这些时钟是同源的,可以将它们转化为单一时钟处理;在ASIC中可以通过STA约束让分频始终和源时钟同相,但FPGA由于器件本身和工具的限制,分频时钟和源时钟的Skew不容易控制(使用锁相环分频是个例外),难以保证分频时钟和源时钟同相,因此推荐的方法是使用时钟使能,通过使用时钟使能可以避免时钟“满天飞”的情况,进而避免了不必要的亚稳态发生,在降低设计复杂度的同时也提高了设计的可靠性;

禁止用计数器分频后的信号做其它模块的时钟,而要用改成时钟使能的方式,否则这种时钟满天飞的方式对设计的可靠性极为不利,也大大增加了静态时序分析的复杂性;

带使能端的D触发器,比一般D触发器多了使能端,只有在使能信号EN有效时,数据才能从D端被打入D触发器,否则Q端输出不改变,我们可以用带使能端的D触发器来实现时钟使能的功能;

verilog模型举例

在某系统中,前级数据输入位宽为8位,而后级的数据输出位宽为32,我们需要将8bit数据转换为32bit,由于后级的处理位宽为前级的4倍,因此后级处理的时钟频率也将下降为前级的1/4,若不使用时钟使能,则要将前级的时钟进行4分频来作后级处理的时钟;这种设计方法会引入新的时钟域,处理上需要采取多时钟域处理的方式,因而在设计复杂度提高的同时系统的可靠性也将降低。为了避免以上问题,我们采用了时钟使能以减少设计复杂度;

  1. module clk_en(

  2. clk, rst, data_in, data_out

  3. );

  4. input clk;

  5. input rst;

  6. input [7:0] data_in;

  7. output [31:0] data_out;


  8. reg [31:0] data_out;

  9. reg [31:0] data_shift;

  10. reg [1:0] cnt;

  11. reg clken;//使能信号


  12. always @(posedge clk )

  13. begin

  14. if (rst)

  15. cnt <= 0;

  16. else

  17. cnt <= cnt + 1;

  18. end


  19. always @(posedge clk )

  20. begin

  21. if (rst)

  22. clken <= 0;

  23. else if (cnt == 2'b01)

  24. clken <= 1;//使能信号只在一个周期拉高

  25. else

  26. clken <= 0;

  27. end


  28. always @(posedge clk )

  29. begin

  30. if (rst)

  31. data_shift <= 0;

  32. else

  33. data_shift <= {data_shift[23:0],data_in};//移位

  34. end


  35. always @(posedge clk)

  36. begin

  37. if (rst)

  38. data_out <= 0;

  39. else if (clken == 1'b1)

  40. data_out <= data_shift;//只在一个周期输出

  41. end

  42. endmodule





精彩推荐



至芯科技12年不忘初心、再度起航12月17日北京中心FPGA工程师就业班开课、线上线下多维教学、欢迎咨询!
FIR滤波器和IIR滤波器的区别与联系
Vivado使用技巧-支持的Verilog语法
扫码加微信邀请您加入FPGA学习交流群




欢迎加入至芯科技FPGA微信学习交流群,这里有一群优秀的FPGA工程师、学生、老师、这里FPGA技术交流学习氛围浓厚、相互分享、相互帮助、叫上小伙伴一起加入吧!

点个在看你最好看





原文标题:verilog的时钟分频与时钟使能

文章出处:【微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

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

    关注

    1602

    文章

    21320

    浏览量

    593195

原文标题:verilog的时钟分频与时钟使能

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    AURIX如何配置模块的时钟分频

    如何配置模块的时钟分频
    发表于 02-05 06:01

    FPGA中时钟的用法

    生成时钟包括自动生成时钟(又称为自动衍生时钟)和用户生成时钟。自动生成时钟通常由PLL或MMCM生成,也可以由具有
    的头像 发表于 01-11 09:50 591次阅读
    FPGA中<b class='flag-5'>时钟</b>的用法

    【每周一练】盘古1K开发板 练习六:时钟分频器设计

    时钟再次翻转生成占空比非50%的奇数n分频四种。两个占空比非50%的n分频时钟进行逻辑运算(正周期多的相与,负周期多的相或),得到占空比为50%的奇数n
    发表于 12-24 18:10

    如何实现分频时钟的切换

    其实这个分频时钟切换很简单,根本不需要额外的切换电路。一个共用的计数器,加一点控制逻辑,就可以了,而且可以实现2到16任意整数分频率之间的无缝切换。
    的头像 发表于 12-14 15:28 313次阅读
    如何实现<b class='flag-5'>分频</b><b class='flag-5'>时钟</b>的切换

    adi_sport_ConfigClock的时钟分频系数和pcg clk的分频系数有什么关联?

    和adi_sport_ConfigFrameSync中的分频系数是多少? 2. adi_sport_ConfigClock这里的时钟分频系数和pcg clk的分频系数有什么关联,比如1
    发表于 11-28 07:27

    FPGA学习-分频器设计

    分频器设计 一:分频器概念 板载时钟往往 是 有限个( 50MHZ/100MHZ/24MHZ/60MHZ… ),如果在设计中需要其他时钟时,板载时钟
    的头像 发表于 11-03 15:55 567次阅读
    FPGA学习-<b class='flag-5'>分频</b>器设计

    什么是时钟芯片?时钟芯片的工作原理 时钟芯片的作用

    可以说是计算机运行的重要组成部分之一。 时钟芯片的工作原理: 时钟芯片是通过一系列简单的电路来实现的,它内部包含一个晶体振荡器,用来产生一个稳定的基准信号。这个基准信号通过分频器分成不同频率的信号输出到不同的电
    的头像 发表于 10-25 15:02 2897次阅读

    时钟电路有哪几种 时钟电路的工作原理及过程

    时钟分频电路通过将输入的高频时钟信号分频,生成较低频率的时钟信号。它通常基于计数器和逻辑门实现,用于将高频
    的头像 发表于 09-14 14:53 5908次阅读

    为什么单片机内置时钟源不经过pll也可以分频

    为什么单片机内置时钟源不经过pll也可以分频?  单片机内置时钟源不经过PLL也可以实现分频,原因在于单片机内置时钟源自带
    的头像 发表于 09-02 15:12 619次阅读

    利用FPGA的高频时钟扇出电路的分频和分配设计

    基于FPGA的高频时钟分频分频设计
    发表于 08-16 11:42 0次下载

    verilog实现简单分频器的方案

    偶数分频最为简单,很容易用模为N的计数器实现50%占空比的时钟信号,即每次计数满N(计到N-1)时输出时钟信号翻转。
    的头像 发表于 06-28 16:17 1134次阅读
    <b class='flag-5'>verilog</b>实现简单<b class='flag-5'>分频</b>器的方案

    基于FPGA的分频器设计

    板载晶振提供的时钟信号频率是固定的,不一定满足需求,因此需要对基准时钟进行分频。要得到更慢的时钟频率可以 分频 ,要得到更快的
    的头像 发表于 06-23 16:52 1285次阅读
    基于FPGA的<b class='flag-5'>分频</b>器设计

    如何改变spi的时钟频率?

    如何改变spi的时钟频率? 改变SPI的时钟频率需要以下步骤: 1. 选择合适的时钟源和分频器:SPI接口的时钟源可以是内部
    的头像 发表于 06-03 16:36 2338次阅读

    Verilog时钟分频知识总结

    采用触发器反向输出端连接到输入端的方式,可构成简单的 2 分频电路。
    的头像 发表于 05-30 17:21 1378次阅读
    <b class='flag-5'>Verilog</b><b class='flag-5'>时钟</b><b class='flag-5'>分频</b>知识总结

    SpinalHDL BlackBox时钟与复位

    在SpinalHDL中使用之前已有的Verilog等代码的时候需要将这些代码包在一个BlackBox里面,但是如果这些代码里面有时钟和复位,我们需要怎么将时钟和复位端口和SpinalHDL中已有的
    的头像 发表于 05-04 11:13 509次阅读
    SpinalHDL BlackBox<b class='flag-5'>时钟</b>与复位