在Fitter的默认策略里,同步撤离后的异步复位信号会再次进入一个全局缓冲,这样到寄存器时钟端的路径经过了【一个】全局缓冲,而到寄存器复位端的路径经过了【两个】全局缓冲。对Stratix III C2/C4器件,复位比时钟慢2.4ns/3ns,直接将它们的fMAX限制在400MHz/333MHz。
Recovery Slack: -1.4ns (Stratix III C2器件,1ns时钟周期,Slow 85C)
LZ近期在Stratix III -3器件上的一个设计有四千多个寄存器,在常温下同时跑750MHz,还有大量的异步复位。那么LZ是怎么做到的呢?请慢慢看。。。
低性能实现方法二:开启物理综合中的“自动异步复位流水线处理”
Quartus针对这个问题,专门做了一个物理综合引擎即“Automatic Asynchronous Signal Pipelining”,开启之后异步复位不走全局缓冲,而是变成了本地的一颗流水线树。但这个方法有三个缺陷:1.占用大量的LUT和本地走线资源,拖慢综合速度。2.流水线树本身的时序仍有可能成为瓶颈。3.这个算法在实际综合中常由于各种原因不被“激活”。
Recovery Slack: -0.46ns (Stratix III C2器件,1ns时钟周期,Slow 85C)