在同等驱动强度下,两个驱动源驱动的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时阻塞作为输入端口
本文探讨了在驱动源冲突情况下,wire型和tri型变量的真值表,并提供典型使用方法,强调避免输入输出同时进行以防止逻辑错误。讲解了如何通过方向标志位管理I/O端口的输入输出转换。
1557

被折叠的 条评论
为什么被折叠?



