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

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

3天内不再提示

RTL中多时钟域的异步复位同步释放

FPGA开源工作室 来源:CSDN 作者:Snipermeng 2021-05-08 09:59 次阅读

1 多时钟域的异步复位同步释放

当外部输入的复位信号只有一个,但是时钟域有多个时,使用每个时钟搭建自己的复位同步器即可,如下所示。

pIYBAGCV8QWANuz2AACK8JPO7Pg061.jpg

verilog代码如下:

module CLOCK_RESET( input rst_n, input aclk, input bclk, input cclk, output reg arst_n, output reg brst_n, output reg crst_n );

reg arst_n0,arst_n1;reg brst_n0,brst_n1;reg crst_n0,crst_n1;

always @(posedge aclk or negedge rst_n) if(rst_n==0) begin arst_n0《=1‘b1; arst_n1《=1’b0; arst_n《=1‘b0; end else begin arst_n《=arst_n1; arst_n1《=arst_n0; end always @(posedge bclk or negedge rst_n) if(rst_n==0) begin brst_n0《=1’b1; brst_n1《=1‘b0; brst_n《=1’b0; end else begin brst_n《=brst_n1; brst_n1《=brst_n0; end always @(posedge cclk or negedge rst_n) if(rst_n==0) begin crst_n0《=1‘b1; crst_n1《=1’b0; crst_n《=1‘b0; end else begin crst_n《=crst_n1; crst_n1《=crst_n0; end endmodule

2 多时钟域的按顺序复位释放

当多个时钟域之间对复位释放的时间有顺序要求时,将复位同步器级联起来就可以构成多个时钟域按顺序的复位释放(实际上就是延迟两拍)。

verilog代码:

module CLOCK_RESET( input rst_n, input aclk, input bclk, input cclk, output reg arst_n, output reg brst_n, output reg crst_n );

reg arst_n0,arst_n1;reg brst_n0,brst_n1;reg crst_n0,crst_n1;

always @(posedge aclk or negedge rst_n) if(rst_n==0) begin arst_n0《=1’b1; arst_n1《=1‘b0; arst_n《=1’b0; end else begin arst_n《=arst_n1; arst_n1《=arst_n0; end always @(posedge bclk or negedge rst_n) if(rst_n==0) begin brst_n1《=1‘b0; brst_n《=1’b0; end else begin brst_n《=brst_n1; brst_n1《=arst_n; end always @(posedge cclk or negedge rst_n) if(rst_n==0) begin crst_n1《=1‘b0; crst_n《=1’b0; end else begin crst_n《=crst_n1; crst_n1《=brst_n; end endmodule

原文标题:RTL设计- 多时钟域按顺序复位释放

文章出处:【微信公众号:FPGA开源工作室】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

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

    关注

    10

    文章

    1479

    浏览量

    130295
  • RTL
    RTL
    +关注

    关注

    1

    文章

    377

    浏览量

    59041

原文标题:RTL设计- 多时钟域按顺序复位释放

文章出处:【微信号:leezym0317,微信公众号:FPGA开源工作室】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    同步置数,异步置数,同步清零,异步清零的概念

    同步置数、异步置数、同步清零和异步清零是数字电路设计中常用的概念。 一、同步置数 同步置数是指在
    的头像 发表于 02-22 13:48 1389次阅读

    同步复位异步复位到底孰优孰劣呢?

    同步复位异步复位到底孰优孰劣呢? 同步复位异步
    的头像 发表于 01-16 16:25 293次阅读

    异步电路中的时钟同步处理方法

    异步电路中的时钟同步处理方法  时钟同步异步电路中是至关重要的,它确保了电路中的各个部件在正确
    的头像 发表于 01-16 14:42 311次阅读

    异步复位同步撤离是什么意思?如何做到异步复位同步撤离呢?

    复位消抖之后的下一件事,[异步复位]()同步撤离。这句话什么意思呢?
    的头像 发表于 12-04 13:57 1630次阅读
    <b class='flag-5'>异步</b><b class='flag-5'>复位</b><b class='flag-5'>同步</b>撤离是什么意思?如何做到<b class='flag-5'>异步</b><b class='flag-5'>复位</b><b class='flag-5'>同步</b>撤离呢?

    时钟域类型介绍 同步FIFO和异步FIFO的架构设计

    在《时钟复位》一文中已经解释了亚稳态的含义以及亚稳态存在的危害。在单时钟系统中,亚稳态出现的概率非常低,采用同步设计基本可以规避风险。但在实际应用中,一个系统往往包含多个
    的头像 发表于 09-19 09:32 935次阅读
    跨<b class='flag-5'>时钟</b>域类型介绍 <b class='flag-5'>同步</b>FIFO和<b class='flag-5'>异步</b>FIFO的架构设计

    异步时钟同步疑惑

    在SDRAM的代码,有的模块工作频率50MHz,有的100MHz,不同时钟间的数据同步太难理解了,请各位前辈指点。代码如下所示。//同步
    发表于 09-12 20:39

    FPGA学习-异步复位同步释放

    点击上方 蓝字 关注我们 系统的复位对于系统稳定工作至关重要,最佳的复位方式为:异步复位同步释放
    的头像 发表于 09-09 14:15 294次阅读
    FPGA学习-<b class='flag-5'>异步</b><b class='flag-5'>复位</b>,<b class='flag-5'>同步</b><b class='flag-5'>释放</b>

    浅析异步复位同步释放同步复位打拍模块

    异步复位同步释放:rst_synchronizer.v
    的头像 发表于 08-21 09:27 557次阅读
    浅析<b class='flag-5'>异步</b><b class='flag-5'>复位</b><b class='flag-5'>同步</b><b class='flag-5'>释放</b>与<b class='flag-5'>同步</b><b class='flag-5'>复位</b>打拍模块

    同步复位异步复位的区别

    请简述同步复位异步复位的区别,说明两种复位方式的优缺点,并解释“异步
    的头像 发表于 08-14 11:49 3912次阅读

    异步复位同步释放有多个时钟域时如何处理 异步复位同步释放的策略

    对于从FPGA外部进来的信号,我们通常采用“异步复位同步释放的策略”,具体电路如下图所示。
    的头像 发表于 07-20 09:04 1276次阅读
    <b class='flag-5'>异步</b><b class='flag-5'>复位</b><b class='flag-5'>同步</b><b class='flag-5'>释放</b>有多个<b class='flag-5'>时钟</b>域时如何处理 <b class='flag-5'>异步</b><b class='flag-5'>复位</b><b class='flag-5'>同步</b><b class='flag-5'>释放</b>的策略

    异步复位同步释放问题解析

    使用 2 个带异步复位的寄存器,D端输入逻辑 1(VCC)。
    的头像 发表于 06-26 16:39 921次阅读
    <b class='flag-5'>异步</b><b class='flag-5'>复位</b><b class='flag-5'>同步</b><b class='flag-5'>释放</b>问题解析

    Xilinx FPGA异步复位同步释放同步后的复位该当作同步复位还是异步复位

    针对异步复位同步释放,一直没搞明白在使用同步化以后的复位信号时,到底是使用
    发表于 06-21 09:59 774次阅读
    Xilinx FPGA<b class='flag-5'>异步</b><b class='flag-5'>复位</b><b class='flag-5'>同步</b><b class='flag-5'>释放</b>—<b class='flag-5'>同步</b>后的<b class='flag-5'>复位</b>该当作<b class='flag-5'>同步</b><b class='flag-5'>复位</b>还是<b class='flag-5'>异步</b><b class='flag-5'>复位</b>?

    高级FPGA设计技巧!多时钟异步信号处理解决方案

    ,以及为带门控时钟的低功耗ASIC进行原型验证。本章讨论一下在FPGA设计多时钟异步信号处理有关的问题和解决方案,并提供实践指导。 这
    发表于 06-02 14:26

    如何区分同步复位异步复位

    的原始状态(指所有需要管理的内部信号和外部信号)开始工作,而对这些原始状态的初始化,则是复位电路的职能。 3、激励和响应,应用于同步电路,相同时钟
    发表于 05-22 17:33

    FPGA中的异步复位or同步复位or异步复位同步释放

    在FPGA设计中,复位电路是非常重要的一部分,它能够确保系统从初始状态开始启动并保证正确运行。
    发表于 05-22 14:21 662次阅读
    FPGA中的<b class='flag-5'>异步</b><b class='flag-5'>复位</b>or<b class='flag-5'>同步</b><b class='flag-5'>复位</b>or<b class='flag-5'>异步</b><b class='flag-5'>复位</b><b class='flag-5'>同步</b><b class='flag-5'>释放</b>