Подайте внутренние сигналы в Verilog из системы Verilog TestBench - PullRequest
0 голосов
/ 23 октября 2019

Как вы можете управлять внутренними сигналами verilog-кода DUT из testbench?

Рассмотрите следующий пример:

module dut(input bit clk); 
    logic [7:0] data;
endmodule : dut

module top; 
    bit clk;
    dut dut1(.*); 
    assign dut.data = '0; // this doesn't work.
endmodule 

1 Ответ

0 голосов
/ 23 октября 2019

Перекрестные ссылки на модули работают. Однако подвох заключается в том, что любой сигнал в DUT уже будет подан. Вам нужно переопределить этот драйвер. Сила и освобождение являются обычным способом сделать это, но вы также можете просто использовать более сильную силу драйвера.

Мощность по умолчанию - «Сильная», поэтому единственная вещь, которая сильнее, - это «снабжение».

Для вашего примера:

assign (supply0, supply1) data = '0;

Строго говоря, supply1 не нужен, поскольку вы едете только на ноль. Тем не менее, это исключает неожиданность, которую вы можете получить, если вам когда-нибудь понадобится изменить код на диск «1».

...