FPGA | 异步复位同步释放的理解

上接:

FPGA | 深入理解复位

FPGA | 深入理解复位(补充)

在****FPGA | 深入理解复位****一篇中对复位的实现方式进行了理解,但对于异步复位同步释放依旧存在一些疑问。

  1. 什么情况下使用异步复位同步释放?
    由于异步复位节省资源,所以在同步系统中,使用异步复位,做同步释放处理是一个很好的选择。

  2. 如果没有前面两级触发器会出现什么情况?
    首先,我们知道D触发器会因为输入端建立、保持时间的时序违例导致触发器输出Q端口产生亚稳态。对于异步复位而言同样有类似的情况,由于解复位阶段(复位撤离)是异步的,如果不满足复位恢复时间或者复位解除时间,触发器的输出同样可能变成亚稳态。复位阶段虽然同样是异步的,但我的理解是由于复位的优先级高,电路进入复位状态,但解复位失败又会导致复位状态丢失。

  3. 复位信号存在亚稳态会怎么样?
    亚稳态出现的问题或者麻烦是在信号变化的时候,不能保证第一拍采样的值是确定的。
    对于系统而言,系统希望知道在某一时刻的后的输入信号是已知状态的稳定值。
    最好是系统一起复位释放,但是时钟域不同,不可能保证系统一起复位释放。一般来说,系统复位释放的顺序,是需要保证的。否则系统就是不安全的。

  4. 如果使用一级触发器会怎么样?
    一级触发器的输出出现亚稳态的可能性是比较大的。当第一级触发器异步输入后,允许输出出现的亚稳态时间可以长达一个周期,在这个周期内亚稳态特性减弱。在第二个时钟沿到来时,第二级触发器采样。此时第二级的输出是稳定且已被同步的。只是用一级触发器可能会出现保持时间不够而出现亚稳态的情况。

  5. 两级触发器是如何降低亚稳态概率的?

    异步复位的两种时序违例其实就是复位信号传过去的0和D端口传过去的D在争抢到达Q的资格,而在这里后级寄存器的D在复位撤销后的第一个时钟上升沿时希望传输的是0,和复位信号希望输的0一致,而且输出Q也已经是0了,所以此时的后级寄存器中的电路节点没有需要进行电平反转的地方,没有动态功耗。从更底层的角度来说就是所有的mos管的开关状态都不会发生变化,没有哪一个节点的电容需要进行充放电,也就没有机会出现亚稳态。

    所以只有前级寄存器这种复位想要传0而D想要传1的才会出现亚稳态。当然两级触发器也只是大大降低亚稳态出现的概率不能完全消除。

  6. 第一级触发器的数据端口是1’b1,而不是rst_async_n?
    复位是高扇出信号,使用1’b1可以减小复位信号的扇出数,1’b1意思是直接接电源,节省资源,这样可以使电路性能更好。

参考:

FPGA数字IC笔试面试005——复位原则、异步复位同步释放

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值