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

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

3天内不再提示

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

冬至子 来源:FPGA探索者 作者:FPGA探索者 2023-06-26 16:39 次阅读

(1)异步复位同步释放的优势

图片

(2)D 触发器搭建电路

使用 2 个带异步复位的寄存器,D端输入逻辑 1(VCC)。

当异步复位无效(rst_async_n = 1)时,同步后的复位信号 rst_sync_n 也为 1;

当异步复位有效(rst_async_n = 0)时,同步后的复位信号 rst_sync_n 立刻为 0,即实现了“异步复位”,但是会在时钟上升沿来临时恢复为 1,实现“同步释放”;

(以下图片来自Altera FPGA

图片

第一级触发器的输入 D 接电源,即高电平1’b1。

第一级触发器的输出,很可能存在亚稳态,使用两级触发器做同步。

(3)Verilog 代码

reg rst_n_1 = 1'b1;
reg rst_n_2 = 1'b1;
always @ (posedge clk or negedge rst_async_n) 
begin 
if( !rst_async_n ) begin 
rst_n_1 <= 1'b0;
rst_n_2 <= 1'b0;
end 
else begin 
rst_n_1 <= 1'b1;
rst_n_2 <= rst_n_1;
end 
end 


assign rst_sync_n = rst_n_2;

总结

图片

针对 Altera 的 FPGA ,没有做其他资源消耗时的具体考证,仅从上述来看,确实能够节省一些资源。

针对 Xilinx 的 FPGA

(1)对于同一个触发器逻辑,因为同时支持异步和同步复位,所以异步复位并不会节省资源;

(2)对于其他的资源,比如 DSP48 等,同步复位更加节省资源。

首先,对于 DSP48,其内部还带有一些寄存器(只支持同步复位),如果使用异步复位,则会额外使用外部 Slice 中带异步复位的寄存器,而使用同步复位时,可以利用 DSP48 内部的寄存器;

Xilinx 的 FPGA,对于 DSP48、BRAM 资源,使用同步复位比异步复位更节省资源。

对于【高电平复位】,使用异步复位同步释放,则第一个寄存器的 D 输入是 0,这里使用了 4 个触发器打拍同步。

(参考 Xilinx 白皮书 WP272,【FPGA探索者】公众号回复【wp272】获取)。

图片

异步复位同步释放,既能很快的检测到复位信号,不需要复位保持超过一个时钟周期,又能解决释放时的亚稳态问题(降低亚稳态发生的概率)。

图片

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

    关注

    30

    文章

    5037

    浏览量

    117763
  • D触发器
    +关注

    关注

    2

    文章

    147

    浏览量

    47385
  • Vcc
    Vcc
    +关注

    关注

    2

    文章

    288

    浏览量

    34943
  • 异步复位
    +关注

    关注

    0

    文章

    45

    浏览量

    13251
  • FPGA开发板
    +关注

    关注

    10

    文章

    119

    浏览量

    31329
收藏 人收藏

    评论

    相关推荐

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

    针对异步复位同步释放,一直没搞明白在使用同步化以后的复位信号时,到底是使用
    发表于 06-21 09:59 817次阅读
    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外部进来的信号,我们通常采用“异步复位同步释放的策略”,具体电路如下图所示。
    的头像 发表于 07-20 09:04 1289次阅读
    <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>的策略

    同步复位sync和异步复位async

    库内的DFF都只有异步复位端口,所以,倘若采用同步复位的话,综合器就会在寄存器的数据输入端口插入组合逻辑,这样就会耗费较多的逻辑资源。1)复位
    发表于 11-14 16:03

    verilog 异步复位同步释放

    fpga 的 异步复位同步释放代码如下module asy_rst(clk,rst_n,asy_rst);input clk;input rst_n;output asy_rst;re
    发表于 05-28 13:02

    同步复位异步复位同步释放的对比疑问

    在网上了解到fpga的同步复位异步复位都会存在不足,因此有人提出异步复位
    发表于 04-16 22:17

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

    异步复位同步释放的理解目录目录同步复位异步
    发表于 01-17 07:01

    关于异步复位同步释放理解与分析

    是指复位信号是异步有效的,即复位的发生与clk无关。后半句“同步释放”是指复位信号的撤除也与cl
    发表于 11-30 08:58 2.4w次阅读
    关于<b class='flag-5'>异步</b><b class='flag-5'>复位</b><b class='flag-5'>同步</b><b class='flag-5'>释放</b>理解与分析

    FPGA设计中的异步复位同步释放问题

    异步复位同步释放 首先要说一下同步复位异步
    发表于 06-07 02:46 2006次阅读

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

    问:如何区分同步复位异步复位?可以理解为同步复位是作用于状态,然后通过状态来驱动电路
    的头像 发表于 06-11 15:15 6475次阅读

    异步复位同步释放的基本原理与代码举例

    异步复位同步释放是指复位信号是异步有效的,即复位的发
    的头像 发表于 11-20 07:06 3762次阅读

    详细讲解同步后的复位同步复位还是异步复位

    针对异步复位同步释放,一直没搞明白在使用同步化以后的复位信号时,到底是使用
    的头像 发表于 04-27 18:12 4249次阅读
    详细讲解<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】异步复位同步释放的理解

    异步复位同步释放的理解目录目录 同步复位异步
    发表于 01-17 12:53 4次下载
    【FPGA】<b class='flag-5'>异步</b><b class='flag-5'>复位</b>,<b class='flag-5'>同步</b><b class='flag-5'>释放</b>的理解

    同步复位异步复位的区别

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

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

    异步复位同步释放:rst_synchronizer.v
    的头像 发表于 08-21 09:27 574次阅读
    浅析<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学习-异步复位同步释放

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