我试图编写一个测试平台来测试具有双向I / O的移位寄存器。不过,我遇到了来自I / O的信号争用问题。我已经设置了移位寄存器模块,如下所示:
inout [7:0] IO; // bidirectional IO
reg [7:0] Q; // internal register
assign IO = Q;
因此,我可以改变Q' Q'改变' IO。'
测试平台:
wire [7:0] io;
reg [7:0] q;
assign io = q;
再次,我改为' q'改变' io'在测试平台中,反过来驱动IO' IO'在移位寄存器模块中。我首先将所有信号初始化为默认值,然后写入' q'并开始转移。一切都很好,直到我第二次写到' q' - 在这一点上,我得到了一些不在乎的关注。我已经尝试了三态' q'一旦移位寄存器锁存了' io'电线,但这仍然让我有些不在乎......
我对Verilog很陌生并没有使用过' inout'之前。我假设'分配io = q'根本不是驱动实例化移位寄存器IO的方法,但我不知道如何驱动电线。
谢谢!