Проблема вождения бидир порт тестбенч verilog
Я уже посмотрел этот пост, и я все еще немного растерялся (и не уверен, что он отвечает на мой вопрос): Двунаправленный порт в 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;