Из testbench мне нужно испортить дизайн шины. Я использую случайную переменную, чтобы выбрать немного места (bit_sel), заставляя бит в проводной системе verilog
bit_sel = $urandom_range(0,MAX_LENGTH-1);
автобус находится где-то глубоко внутри RTL шириной MAXLENGTH.
wire [MAX_LENGTH-1:0] BUS_TO_BE_FORCED;
В TB я использую следующую строку, чтобы повредить шину.
force TOP.DUT.....BUS_TO_BE_FORCED[bit_sel] = ~TOP.DUT.....BUS_TO_BE_FORCED[bit_sel];
Но я получаю ошибку компиляции. Каков наилучший способ сделать это. Я хочу перевернуть только один бит.
я думал то же самое, но мой MAX_LENGTH находится в 100-х и у меня есть несколько автобусов, как это. Я попробовал сгенерировать оператор. Но генерация не работает внутри процедурного блока. – user2268152