无法驾驶bidir port testbench verilog

时间:2016-11-14 07:14:47

标签: verilog fpga bidirectional test-bench

我已经查看了这篇文章,我仍然有点困惑(并且不确定它是否回答了我的问题):Bidirectional port in verilog testbench

我正在为i2c协议编写主代码,并且已经转向测试工作。我有一个输入端口(SDA),在大多数情况下,是写入数据(模块中给出的数据)。然后偶尔会从另一台设备读取信号。

在我的测试平台中,我需要将SDA驱动为高电平(好像是从其他设备获取输入)并将其用作输入。怎么去做呢?

主代码片段:

assign SDA =  (RST)? 1'b1 :
          (STATE_wack || STATE_data) ? 1'bz :
          (STATE_addr) ? addr[count] :
          (STATE_idle || STATE_rw || STATE_stop) ? 1'b1 :
          (STATE_start) ? 1'b0 : 1'bz;

测试平台的片段:

wire  SDA;
wire input_value;
reg output_value;
reg output_valid;

.
.
.

assign input_value = SDA;
assign SDA = (output_valid==1'b1)? output_value : 1'hz;

0 个答案:

没有答案