from CSDN:https://blog.csdn.net/a419116194/article/details/103238872
from 知乎用户“王狗蛋”回答“为啥fpga设计用高复位asic设计用低复位呢?“
一般推荐使用低电平有效,因为低电平时电路的阻抗低,噪声造成的电平变化小,也就是说,抗干扰能力更强。换句话说:低电平有效时干扰把它变成高电平,比高电平有效时干扰把它变成低电平要困难。就是因为低电平阻抗低,所以说低电平有效抗干扰能力强。
在数字系统中,比较容易出现在低电平上叠加一个噪声正脉冲。如果采用高电平有效的方式,就可能在无效的低电平上,出现高电平噪声,从而使某个信号在不应当有效的时候,出现有效的高电平。所以在数字系统中,大多数信号的有效电平为低电平。
对于复位信号的有效电平选择,Asic设计常用低电平有效,FPGA设计常用高电平有效。
Asic设计的原因可能是:
- 以前, 对于TTL和NMOS来说下拉驱动器都比它们的上拉驱动器强得多。 即使在现在,许多CMOS器件也具有比上拉更强的下拉功能;
- 低电平有效相对静态功率较小,而且反应速度快;
- 使用低电平有效的一个小优点是只需要一个上拉电阻,而高电平有效则需要一个小的上拉电阻和一个较大的下拉电阻。 因此低电平有效可以节约一个晶体管;
- 上电时,复位保持在低电平更容易,而如果复位为高电平有效,系统会不稳定,直到复位阈值达到'1'。
FPGA设计的原因可能是:
- Xilinx推荐用高电平复位
-
全局复位通常具有高扇出,因为它需要传播到设计中的每个触发器。这会消耗大量的路由资源,并可能对设备利用率和时序性能产生负面影响。而且全局复位会与设计中的其他网络竞争相同的路由资源。因此,FPGA设计师们提出了不依赖于完全全局复位的其他复位机制。
配置FPGA时,每个单元(包括触发器和Block RAM)都会初始化。因此,FPGA配置与全局复位具有相同的效果,因为它设置了每个存储的初始状态FPGA中的元素处于已知状态。如图:
-
看FPGA器件手册的时候一定会看到“支持x路时钟信号”。就像之前说过的一样, 像时钟,复位和使能信号都是具有高扇出,而且要求低偏差(low skew)的信号。 因此像它们的布线资源也是比较特殊的(一般叫做全局布线资源、 时钟布线资源或者low skew网络)。对于FPGA来说并不是哪一条网络连接所有时钟,另一条连接所有复位, 而是在全局网络中任何一条net都可以连接到时钟,复位和使能。 因此同一条net可以既连接寄存器A的时钟又连接寄存器B的复位同时还连接到寄存器C的使能。 如果使用复位低电平有效的话, 如果不做处理那么就要求B时钟下降沿有效而且C低电平使能,这样至少有一个要多加入一级反相器。
事实上,就算采用低电平复位有效的结构,设计综合软件的程序员也是可以解决的。 但是程序员不愿意啊。 因为在程序中概念的一致性是很重要的, 要么复位和使能高电平同时时钟上升沿, 要么低电平配合下降沿。不然要多加一级判断看系统信号是否为复位,然后取反。 而用户又喜欢常用上升沿驱动寄存器,所以FPGA多用高电平复位了。