Verilog HDL如何在测试文件tb中给inout类型的变量赋值并设置时延
首先要明白的一点,双向端口inout类型只能是线网型wire数据,那么就只能用连续赋值语句assign进行赋值。就是一个端口同时做输入和 输出。 inout 在具体实现上一般用三态门来实现。三态门的第三个状态就是高阻’Z’。当 inout 端口不输出时,将三态门置高阻。
在我测试文件中data为inout类型的数据,我希望从data输入的数据保持一段时间再变化,共有4个不同数据。但是当我用一般的时延语句进行赋值的时候,仿真波形并不是预想的结果。错误示范如下:
wr为写信号,低电平有效。
可以看到后三位的数据由于发生了变化所以是未知的,用x表示。
修改之后
modulesim仿真波形如下: