在Verilog中经常会遇到pullup、pulldown和assign (strength0, strength1),那么它们究竟有什么区别?
它们之间的区别主要是语法和驱动强度。
pullup、pulldown看做是门级原语,assign语句看做是RTL。
SystemVerilog接口不允许门级原语。如果是用来写ip,应该使用assign语句。
一些工具,像静态时序分析,期望用门级原语建模,而不是RTL,这时应该使用pullup、pulldown来代替。
pullup、pulldown默认的驱动强度是pull,assign语句默认的驱动强度是strong。