Проблема вождения бидир порт тестбенч 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;

0 ответов

Другие вопросы по тегам