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

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

3天内不再提示

FPGA的设计中的时钟使能电路

454398 ? 来源:博客园 ? 作者:fpga_hjh ? 2020-11-10 13:53 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

时钟使能电路是同步设计的重要基本电路,在很多设计中,虽然内部不同模块的处理速度不同,但是由于这些时钟是同源的,可以将它们转化为单一的时钟电路处理。在FPGA的设计中,分频时钟和源时钟的skew不容易控制,难以保证分频时钟和源时钟同相。故此推荐采用使用时钟使能的方法,通过使用时钟使能可以避免时钟“满天飞”的情况,进而避免了不必要的亚稳态发生,在降低设计复杂度的同时也提高了设计的可靠性。

我们可以利用带有使能端的D触发器来实现时钟使能的功能。

在上图中clk1x是CLK的四分频后产生的时钟,clk1x_en是与clk1x同频的时钟使能信号,用clk1x_en作为DFF的使能端,D端的数据只有在clk1x_en有效地时候才能打入D触发器,从而在不引入新时钟的前提,完成了下图电路一致的逻辑功能。

在某系统中,前级数据输入位宽为8,而后级的数据输出位宽32,我们需要将8bit的数据转换成32bit的数据,因此后级处理的时钟频率为前级的1/4,若不使用时钟时能,则就要将前级时钟进行4分频来作为后级处理的时钟,这种设计方法会引入新的时钟域,为了避免这种情况,我们采用了时钟时能的方法来减少设计的复杂度。

module gray
(
    input clk,
    input rst_n,
    input [7:0] data_in,
    output reg [31:0] data_out,
    output reg clk1x_en
);

reg [1:0] cnt;
reg [31:0] shift_reg;

always @ (posedge clk,negedge rst_n)
begin
    if(!rst_n)
        cnt <= 2'b0;
     else
        cnt <= cnt +1'b1;
end 

always @ (posedge clk,negedge rst_n)
begin
    if(!rst_n)
        clk1x_en <= 1'b0;
    else if(cnt ==2'b01)
        clk1x_en <= 1'b1;
    else
        clk1x_en <= 1'b0;
end

always @ (posedge clk,negedge rst_n)
begin
    if(!rst_n)
        shift_reg <= 32'b0;
    else
        shift_reg <= {shift_reg[23:0],data_in};
end

always @ (posedge clk,negedge rst_n)
begin
    if(!rst_n)
        data_out<= 32'b0;
    else if(clk1x_en==1'b1)//仅在clk1x_en为1时才将shift_reg的值赋给data_out
        data_out<=shift_reg;
end 

endmodule 

编辑:hfy

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

    关注

    1646

    文章

    22096

    浏览量

    620591
  • D触发器
    +关注

    关注

    3

    文章

    176

    浏览量

    48924
  • 时钟电路
    +关注

    关注

    10

    文章

    243

    浏览量

    51484
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    瑞萨RA系列FSP库开发实战指南(29)CGC(时钟生成电路时钟控制

    Circuit,中文译为“时钟生成电路”,或者也可以叫它“时钟控制电路”。 13.1.1 时钟源 我们学过《数字逻辑
    的头像 发表于 08-05 14:02 ?2405次阅读
    瑞萨RA系列FSP库开发实战指南(29)CGC(<b class='flag-5'>时钟</b>生成<b class='flag-5'>电路</b>)<b class='flag-5'>时钟</b>控制

    PLL技术在FPGA的动态调频与展频功能应用

    随着现代电子系统的不断发展,时钟管理成为影响系统性能、稳定性和电磁兼容性(EMI)的关键因素之一。在FPGA设计,PLL因其高精度、灵活性和可编程性而得到广泛应用,本文将深入探讨PLL技术在
    的头像 发表于 06-20 11:51 ?1473次阅读
    PLL技术在<b class='flag-5'>FPGA</b><b class='flag-5'>中</b>的动态调频与展频功能应用

    Leadway电源模块的使信号是如何作用的

    在电机控制系统,Leadway电源模块的使信号(Enable Signal)是协调电源启停与电机驱动的核心控制逻辑之一。其作用不仅限于简单的通断控制,更涉及系统安全、能耗管理及多设备协同。
    发表于 05-15 09:38

    电容在时钟电路的应用有哪些

    时钟电路精密的运行体系,电容器扮演着不可或缺的角色。从净化信号到稳定传输,从调节频率到优化电源,电容以其独特的电气特性,在不同环节发挥关键作用。本文将深入解析电容在时钟
    的头像 发表于 05-05 15:55 ?463次阅读

    时钟电路的组成与设计要点介绍

    在数字电子系统的运行时钟电路掌控着各部件协同工作的节奏。它通常由时钟发生器、时钟分频器、时钟
    的头像 发表于 05-05 15:40 ?783次阅读

    FPGA时序约束之设置时钟

    Vivado时序分析工具默认会分析设计中所有时钟相关的时序路径,除非时序约束设置了时钟组或false路径。使用set_clock_groups命令可以使时序分析工具不分析
    的头像 发表于 04-23 09:50 ?573次阅读
    <b class='flag-5'>FPGA</b>时序约束之设置<b class='flag-5'>时钟</b>组

    stm32h7s78 rcc pll2时钟使失败的原因?

    调用了 systemclock update 函数,然后对 sdmmc 进行了初始化,看到在使 sdmmc 时钟时, pll2 相应的时钟输出位没有被成功置 1,但同样设置 ltdc
    发表于 03-14 10:33

    请问ADC32xx的时钟FPGA直接输出吗?

    大家好,我的ADC32XX 采样率为125M,将转换后的数据发送给FPGA,请问ADC32xx的时钟FPGA直接输出吗?FPGA IO口是3.3V的,如果是这样的话是不是得电平转换
    发表于 01-02 08:30

    FPGA给ADS826模数转换器提供60MHz的时钟,就会有很大噪声,怎么解决?

    AD时钟时放大器OPA690能够正常放大,当用FPGA给AD提供60MHz的时钟,就会有很大噪声,采集的数据也都是噪声,怎么解决?有没有推荐的ADS826采集电路的PCB布局布线?(附
    发表于 01-02 06:02

    FPGA驱动DAC5672输出1MHz正弦波,在实际电路却没有任何输出是怎么回事?

    我用FPGA驱动DAC5672输出1MHz正弦波,通过quartus的逻辑分析仪观察到正确的正弦输出,但在实际电路却没有任何输出,我
    发表于 12-31 07:20

    如果用FPGA采集AD1672,如何保障FPGA时钟同1672时钟一致?

    第一次用这种AD芯片,买了个开发板,发现,开发板母板上没有晶振。请教几个问题。 1。母板上用的时钟是SCLK作为源时钟吗? 2、如果用FPGA采集AD1672,如何保障FPGA
    发表于 12-24 06:17

    DAC5675用外部时钟,数据FPGA给,FPGA不用采集时钟不同步发数据可以吗?

    DAC5675用外部时钟,数据FPGA给,FPGA不用采集时钟不同步发数据可以吗
    发表于 11-25 06:36

    FPGA做深度学习走多远?

    出现时钟偏移,使 FPGA 无法正确同步,最终死机。 三、FPGA 内部状态方面 配置丢失:某些 FPGA 在电源不稳定的情况下可能会丢失配
    发表于 09-27 20:53

    如何处理时钟电路的常见故障

    处理时钟电路的常见故障是一个涉及多个步骤和细节的过程,需要仔细分析和逐步排查。时钟电路在电子设备扮演着至关重要的角色,负责提供稳定的
    的头像 发表于 09-09 16:49 ?3086次阅读

    FPGA如何消除时钟抖动

    FPGA(现场可编程门阵列)设计,消除时钟抖动是一个关键任务,因为时钟抖动会直接影响系统的时序性能、稳定性和可靠性。以下将详细阐述FPGA
    的头像 发表于 08-19 17:58 ?2969次阅读