请问异步复位和同步复位的优缺点各是?
会增加逻辑
相当于在d端搞了一堆东西
同步复位的优点:
1). 抗干扰性高,可以剔除复位信号中周期短于时钟周期的毛刺;
2). 有利于静态时序分析工具的分析;
3). 有利于基于周期的仿真工具的仿真。
同步复位缺点:
1). 占用更多的逻辑资源;
2). 对复位信号的脉冲宽度有要求,必须大于指定的时钟周期,由于线路上的延迟,可能需要多个时钟周期的复位脉冲宽度,且很难保证复位信号到达各个寄存器的时序;
3). 同步复位依赖于时钟,如果电路中的时钟信号出现问题,无法完成复位。
1). 无需额外的逻辑资源,实现简单,而且CPLD有针对复位信号的全局不限资源,可以保证复位管脚到各个寄存器的clock skew最小(注意不是到各个寄存器的延迟最小);
2). 复位信号不依赖于时钟。
同步复位缺点:
1). 复位信号容易受到外界的干扰;
2). 复位信号释放的随机性,可能导致时序违规,使电路处于亚稳态,如下图。
不知道我这样的解释够全面嘛,建议你采用异步复位同步释放的原理实现复位的问题。希望可以帮到你
3楼正解。
个人感觉,
同步复位最大的问题就是时钟的依赖性。在有门控时钟的设计中用同步复位,要特别小心,搞不好芯片就不工作了。
异步复位虽然缺点比较多,但都有很好的解决方法。
异步复位的解决方式是不是也是一定程度上依赖于时钟的?
异步复位省逻辑、对时序好;同步复位方便实现复位值可变。
恩,你说得很对。看来同步释放是个不错的选择。但是我又感觉同步释放的D触发器会不会驱动能力不够呢
驱动能力不够
这。
驱动的问题交给后端吧
对于一句“交给后端”,前端人员真是深藏功与名
同步复位也同样会出现removal和recovery的问题,不管是同步复位和异步复位,对复位信号做同步释放都是最安全的,除非你的复位信号已经是产生在你用的时钟域下了,个人感觉从功能上考虑同步异步都一样,没有特别的优缺点差别,从其他角度上考虑(比如抗干扰、可测性等等)就得看设计上遇到的实际情况了。
同步复位也同样会出现removal和recovery的问题?=========
同步复位不会有这样的问题
好吧,这个我没说清楚,复位信号的亚稳态问题是和触发器结构有关系的,对于FPGA的工艺库来说,带有同步复位的触发器确实会有问题,关于这个在网上也是有很多资料的。但是我不太了解ASIC std cell lib中的触发器是什么结构,也许在asic角度来说同步复位是完全安全的。
异步复位 同步释放
