我正在学习Verilog。我不明白电线和电线之间的区别三网类型,魔杖和三网类型。我们究竟需要将网络指定为魔杖和三角形?
答案 0 :(得分:2)
wire
和tri
之间没有区别。他们是同义词。通常,惯例是在常规声明中使用wire
,在声明多个驱动的网络和tri
端口时使用inout
。 wand
/ triand
,wor
/ trior
也是如此。但是tri
的变体更多,如tri1
,tri0
。还有一个三态寄存器类型:trireg
。
出于实际目的,只有wire
和tri
是可综合的,其余的则不是。
常规wire / tri类型及其和/或版本之间的差异在于结果值分辨率,其中网络由多个驱动程序驱动。对于简单wire
,当它由具有不同值的多个信号驱动时,结果将为 X 。否则它将具有所有驱动程序的值。 and
版本将在它们之间执行& ,or
将执行 | 。
以下是由2个驱动程序驱动的三种网络类型的真值表:
线/三
0 1 x z
0 0 x x 0
1 x 1 x 1
x x x x x
z 0 1 x z
棒/三 -
0 1 x z
0 0 0 0 0
1 0 1 x 1
x 0 x x x
z 0 1 x z
窝/三 - 或
0 1 x z
0 0 1 x 0
1 1 1 1 1
x x 1 x x
z 0 1 x z