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

    文章

    1712

    浏览量

    131260
  • RTL
    RTL
    +关注

    关注

    1

    文章

    385

    浏览量

    59653

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

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

收藏 人收藏

    评论

    相关推荐

    怎么判断同步清零和异步清零

    异步清零都是对寄存器或计数器进行清零操作的方式,它们的主要区别在于清零信号的触发方式。 同步清零:同步清零是指在时钟信号的控制下,将寄存器或计数器的值清零。在
    的头像 发表于 07-23 11:11 1377次阅读

    同步电路和异步电路怎么判断正负极

    统一的时钟信号进行工作,各个部分的输出与输入之间存在固定的时序关系。同步电路通常用于数据传输、存储器、处理器等高速电子系统异步电路(Asynchronous Circuit)是指
    的头像 发表于 07-22 17:37 311次阅读

    FPGA同步复位异步复位

    FPGA(Field-Programmable Gate Array,现场可编程门阵列)复位操作是设计过程不可或缺的一环,它负责将电路恢复到初始状态,以确保系统的正确启动和稳定运行。在FPGA设计
    的头像 发表于 07-17 11:12 1191次阅读

    L431采用PLL异步时钟复位后ADC采样值发生偏差的原因?

    前提:可以确认的是外部条件没有变化。 问题:开机后不复位的情况下,ADC_DMA读取值几乎相同,而每次重新复位后,ADC_DMA读出来的值差别较大。在采用ADC同步时钟
    发表于 03-08 07:32

    什么是复位同步电路 reset synchronizer?

    复位同步电路 reset synchronizer 其实只在复位信号 release 的时候派上用场。复位结束后,这个电路其实就没用了。 但这个电路的
    的头像 发表于 02-19 09:21 1265次阅读
    什么是<b class='flag-5'>复位</b><b class='flag-5'>同步</b>电路 reset synchronizer?

    异步复位异步释放会有什么问题?FPGA异步复位为什么要同步释放呢?

    一般来说,复位信号有效后会保持比较长一段时间,确保 register 被复位完成。但是复位信号释放时,因为其和时钟
    的头像 发表于 01-24 09:32 1635次阅读
    <b class='flag-5'>异步</b><b class='flag-5'>复位</b><b class='flag-5'>异步</b><b class='flag-5'>释放</b>会有什么问题?FPGA<b class='flag-5'>异步</b><b class='flag-5'>复位</b>为什么要<b class='flag-5'>同步</b><b class='flag-5'>释放</b>呢?

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

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

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

    异步电路时钟同步处理方法  时钟同步异步电路
    的头像 发表于 01-16 14:42 1026次阅读

    时钟的解决方案

    在很久之前便陆续谈过亚稳态,FIFO,复位的设计。本次亦安做一个简单的总结,从宏观上给大家展示跨时钟的解决方案。
    的头像 发表于 01-08 09:42 827次阅读
    跨<b class='flag-5'>时钟</b><b class='flag-5'>域</b>的解决方案

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

    有一个有趣的现象,众多数字设计特别是与FPGA设计相关的教科书都特别强调整个设计最好采用唯一的时钟
    的头像 发表于 12-22 09:04 1390次阅读
    FPGA设计技巧—<b class='flag-5'>多时钟</b><b class='flag-5'>域</b>和<b class='flag-5'>异步</b>信号处理解决方案

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

    复位消抖之后的下一件事,[异步复位]()同步撤离。这句话什么意思呢?
    的头像 发表于 12-04 13:57 4489次阅读
    <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>撤离呢?

    同步异步通信协议介绍

    同步异步传输归结为时钟是外部的(同步)还是内部的(异步)。异步协议的一些例子包括UART、US
    发表于 11-27 15:39 1540次阅读
    <b class='flag-5'>同步</b>和<b class='flag-5'>异步</b>通信协议介绍

    IC设计:ram的应用-异步时钟位宽转换

    在进行模块设计时,我们经常需要进行数据位宽的转换,常见的两种转换场景有同步时钟位宽转换和异步时钟
    的头像 发表于 11-23 16:41 766次阅读
    IC设计:ram的应用-<b class='flag-5'>异步</b><b class='flag-5'>时钟</b><b class='flag-5'>域</b>位宽转换

    什么是同步逻辑和异步逻辑?同步电路与异步电路有何区别?

    统一的时钟信号的驱动下进行操作,而异步逻辑是指电路的各个组件根据输入信号的条件自主进行操作,不受统一的时钟信号控制。 同步逻辑和
    的头像 发表于 11-17 14:16 2175次阅读

    信号协议同步传输和异步传输有什么区别

    在信号协议,有非常多的种类,如UART,I2C,SPI,PCIe等等,它们有自己的一套制定规则,但是在协议制定,一定需要在同步异步中选择其中一项作为传输规则。 所以这其中的
    的头像 发表于 11-07 14:50 1175次阅读
    信号协议<b class='flag-5'>中</b><b class='flag-5'>同步</b>传输和<b class='flag-5'>异步</b>传输有什么区别