1. ASIC
1.A 以前, 对于TTL和NMOS来说下拉驱动器都比它们的上拉驱动器强得多。 即使在现在,许多CMOS器件也具有比上拉更强的下拉功能。
1.B 低电平有效相对静态功率较小,而且反应速度快
1.C 使用低电平有效的一个小优点是只需要一个上拉电阻,而高电平有效则需要一个小的上拉电阻和一个较大的下拉电阻。 因此低电平有效可以节约一个晶体管。
1.D 上电时,复位保持在低电平更容易,而如果复位为高电平有效,系统会不稳定,直到复位阈值达到'1'。
2. FPGA
2.A 首先是最简单的回答, 因为xilinx用高电平复位如图
xilinx推荐用高电平复位
xilinx的这个回答很不亲民,“如果用低电平复位会增加LUT的使用来用作反相器”。 可是如果它的寄存器设计成低电平复位,那样不就不需要这个反向器了么。究其深层次的原因, 我们发现;
2.B 全局复位通常具有高扇出,因为它需要传播到设计中的每个触发器。这会消耗大量的路由资源,并可能对设备利用率和时序性能产生负面影响。而且全局复位会与设计中的其他网络竞争相同的路由资源。因此,FPGA设计师们提出了不依赖于完全全局复位的其他复位机制。
配置FPGA时,每个单元(包括触发器和Block RAM)都会初始化。因此,FPGA配置与全局复位具有相同的效果,因为它设置了每个存储的初始状态FPGA中的元素处于已知状态。借个图说话:
配置后的FPGA初始化
可以看出全局置位复位(GSR)信号是一种特殊的预置复位信号,可在配置FPGA时将设计保持在初始状态。配置完成后,GSR将被释放,所有触发器和其他资源现在都具有INIT值。除了在配置过程中操作它之外,用户设计还可以重用GSR端口来访问GSR网络。
但是这个回答仍不够完备,为啥不能用GSR高电平做配置,而低电平配合低电平寄存器来做复位呢;
2.C 看FPGA器件手册的时候一定会看到“支持x路时钟信号”。就像之前说过的一样, 像时钟,复位和使能信号都是具有高扇出,而且要求低偏差(low skew)的信号。 因此像它们的布线资源也是比较特殊的(一般叫做全局布线资源、 时钟布线资源或者low skew网络)。对于FPGA来说并不是哪一条网络连接所有时钟,另一条连接所有复位, 而是在全局网络中任何一条net都可以连接到时钟,复位和使能。 因此同一条net可以既连接寄存器A的时钟又连接寄存器B的复位同时还连接到寄存器C的使能。 如果使用复位低电平有效的话, 如果不做处理那么就要求B时钟下降沿有效而且C低电平使能,这样至少有一个要多加入一级反相器。
事实上,就算采用低电平复位有效的结构,设计综合软件的程序员也是可以解决的。 但是程序员不愿意啊。 因为在程序中概念的一致性是很重要的, 要么复位和使能高电平同时时钟上升沿, 要么低电平配合下降沿。不然要多加一级判断看系统信号是否为复位,然后取反。 而用户又喜欢常用上升沿驱动寄存器,所以FPGA多用高电平复位了。
结论: ASIC用低电平复位是由于硬件和物理方面的考量, 而FPGA用高电平复位就完全是程序员的任性了:)
为啥fpga设计用高复位asic设计用低复位呢? - 王狗蛋的回答 - 知乎 https://www.zhihu.com/question/286722289/answer/451862645