在同等驱动强度下,两个驱动源驱动的wire型和tri型变量的真值表如下。
驱动源 | 0 | 1 | X | Z |
---|---|---|---|---|
0 | 0 | X | X | 0 |
1 | X | 1 | X | 1 |
X | X | X | X | X |
Z | 0 | 1 | X | Z |
如果某时刻Inout端口有输入,又同时将该端口作为输出端口,则会容易产生冲突。需在使用时避免同一时刻同时作为输入输出的情况。真值表中可见,当其中一驱动源为阻塞状态Z时,变量值就由另一驱动源决定。
典型使用方法如下:
inout data; // inout端口
reg out; // 需要输出的数据
reg flag; // 方向标志位
assign data = flag? out:1'bz; // flag为1时作为输出端口并输出out,为0时阻塞作为输入端口