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

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

3天内不再提示

简谈同步复位和异步复位

FPGA学习交流 来源:互联网 作者:佚名 2018-05-17 09:30 次阅读

大家好,谈到同步复位和异步复位,那咱们就不得不来聊一聊复位这个词了。在数字逻辑电路设计中,电路通过复位来启动,复位犹如数字电路的“起搏器”。那在设计中,主要会出现以下三种类型的,一是无复位:天生就强壮着,上电就启动;二是异步复位:好心人路过,随便踢了一脚,起搏了,这完全没有心理准备,随时都有可能复活啊;三是同步复位:专业救援队,手按住胸口,不起博按住不放啊。直到听到“砰砰”声才离开,非常关键,必须要按住一会会。
那下面咱们就来详细聊聊这三种类型。
一、无复位
没见过这样写代码的,竟然没有复位,老师都说数字电路离不开复位的,没有复位,寄存器怎么赋初值啊?没有确定的初值,这电路怎么工作呢?
其实,不用担心,FPGA上电之后,寄存器初始值默认为“0”,当然,也可以人为的赋初值。下面为无复位的代码举例:
104054d6666wljwcjqffmx.png

reg [7:0] a;

always @(posedge clk)
begin
a <= b;
end

如果没有复位信号,省了很多资源,编译和布线时间也缩短不少,如果规模很大,对提高设计整体性能也是有帮助的。但是在数字电路设计中,我们很少不用复位电路。到是我们经常利用FPGA这个特性,自己产生内部复位电路。

二、异步复位
异步复位电路描述:在always语句中添加复位信号在敏感量列表中,即可实现异步复位。下面为异步复位的代码举例以及电路图举例:
105435yrkuiwzz83nnkr3c.png

reg [7:0] a;

always @(posedge clk, posedge rst_n)
begin
if(rst_n)
begin
a <= 8’h0;
end
else
begin
a <= b;
end
end

104752rabtta4tq485hwtq.png

异步复位的缺点:
异步复位对复位信号要求很严格的,不然随便一个毛刺就会把电路给复位掉的。
另外,异步复位信号依赖于FPGA内部的传导延时,因此,在微小的电压或温度差异下,设计都有可能输出错误,设计的可移植性也很差。上面不是说了嘛,这随便一脚提过来,有时候能感觉到,有时候感觉不到啊。冬天穿个大棉袄,就得使个大劲才能提醒。
正因为对不同寄存器延迟是不同的,所以容易引发间断性设计问题。怎么理解呢?
如图所示,2 bit的移位寄存器组成一个环,复位后,左边寄存器清零,右边寄存器置位,而且都在同一上升沿触发,所以,如果左边寄存器上升沿来的时候,复位信号已经释放掉了,但是右边寄存器还处于复位状态,这个时候数据就错误。

异步复位的优点:
异步复位不依赖于时钟。所以如果时钟是外部输入的,而且时钟有可能丢失,例如处于省电模式时,只能使用异步复位。
另外一个优势是设计更快的物理实现。相对于同步复位,异步复位有更宽松的时序约束。从而布局布线工具使用更少的时间便可达到约束条件。

三、同步复位
同步复位就是非常专业,不留一点马虎,和他的名字一样,只在时钟的有效沿发生,所以一个有效的同步信号,至少要维持一个时钟周期(把你叫不醒,是不会停的)。由于仅仅在时钟的有效沿有效,所以可以滤除复位信号上的毛刺,电路可靠性好很多。下面为同步复位的代码举例:
105712tswlw6a6qseuue6f.png

reg [7:0] a;

always @(posedge clk)
begin
if(rst_n)
begin
a <= 8’h0;
end
else
begin
a <= b;
end
end


所以,总结一下。其优点是“弥补了异步复位的所有缺点”,其缺点是“没有异步复位的优点“”。这个总结够简单吧。

总结

我们熟悉了3种复位方式,了解了他们的脾气,那就总结一下,在我们平时设计中如何使用他们。

尽量用同步复位,如果你的规模不是特别大,虽然占有布线资源多一点,但是对系统可靠性还是有帮助的。

规模很大的时候,可以考虑混和复位方式,在什么场合呢?比如说设计中有多个IP核和功能模块,要求有不同的复位方式,这个时候就要求混和复位方式,另外,还有电路延迟,大型电路中两个模块之间信号延迟可能超过10ns,如果时钟周期为3ns,需要3个时钟周期才能通过,所以,大型设计中完全同步是非常不容易的。如图所示为一个复杂的混和复位树。各种复位都用上了。
105713yi9j99nsxk1k9cfg.png

各位,加油,共同进步!

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

    关注

    1603

    文章

    21326

    浏览量

    593242
  • 同步复位
    +关注

    关注

    0

    文章

    25

    浏览量

    10667
收藏 人收藏

    评论

    相关推荐

    SOC设计中的同步复位异步复位有哪些应用呢?

    在SOC设计中,复位电路是一个关键部分,它确保了芯片中各个模块在初始化和运行时能够处于一致的状态。
    的头像 发表于 08-27 14:47 1057次阅读

    同步复位异步复位

    ` ​大家好,谈到同步复位异步复位,那咱们就不得不来聊一聊复位这个词了。在数字逻辑电路设计中,电路通过
    发表于 01-30 11:01

    同步复位异步复位

    发表于 07-23 10:58

    同步复位异步复位

    One cannot begin to consider a discussion of reset usage and styles without first saluting the most common resetusage of all. This undesired reset occurs almost daily in systems that have been tested, verified, manufactured, andintegrated i
    发表于 05-27 08:36 67次下载
    <b class='flag-5'>同步</b><b class='flag-5'>复位</b>与<b class='flag-5'>异步</b><b class='flag-5'>复位</b>

    FPGA开发技巧之同步复位异步复位的理解

    前两天和师兄讨论了一下design rule其中提到了同步异步复位的比较这个常见问题,据说也是IC公司经常问到的一面试题。
    发表于 02-11 05:56 1823次阅读

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

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

    Xilinx FPGA的同步复位异步复位

    对于xilinx 7系列的FPGA而言,flip-flop支持高有效的异步复/置位和同步复位/置位。对普通逻辑设计,同步复位
    发表于 07-13 09:31 6160次阅读

    解析IC设计中同步复位异步复位的差异

    异步复位是不受时钟影响的,在一个芯片系统初始化(或者说上电)的时候需要这么一个全局的信号来对整个芯片进行整体的复位,到一个初始的确定状态。
    的头像 发表于 01-04 08:59 6331次阅读

    同步复位异步复位电路简介

    同步复位异步复位都是状态机的常用复位机制,图1中的复位电路结合了各自的优点。
    的头像 发表于 08-12 15:20 6970次阅读
    <b class='flag-5'>同步</b><b class='flag-5'>复位</b>和<b class='flag-5'>异步</b><b class='flag-5'>复位</b>电路简介

    IC设计中同步复位异步复位的区别

    1、什么是同步逻辑和异步逻辑,同步电路和异步电路的区别是什么? 同步逻辑是时钟之间有固定的因果关系。异步
    的头像 发表于 11-09 14:58 9287次阅读

    【FPGA】异步复位同步释放的理解

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

    复位电路的同步复位异步复位讲解

    为确保系统上电后有一个明确、稳定的初始状态,或系统运行状态紊乱时可以恢复到正常的初始状态,数字系统设计中一定要有复位电路的设计。复位电路异常可能会导致整个系统的功能异常,所以在一定程度上来讲,复位电路的重要性也不亚于时钟电路。
    的头像 发表于 03-28 13:54 5773次阅读
    <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>讲解

    同步复位异步复位讲解

     本文主要是提供了 ASIC 设计中关于复位技术相关的概念和设计。
    的头像 发表于 06-21 11:55 5913次阅读
    <b class='flag-5'>同步</b><b class='flag-5'>复位</b>和<b class='flag-5'>异步</b><b class='flag-5'>复位</b>讲解

    同步复位异步复位的区别

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

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

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