Я имитирую 16-битный список соединений MIPS в Icarus Verilog. Это ошибка, я получаю в тестбенчеМоделирование Icarus Verilog: выражение индекса области не является постоянным: i
mips_16_core_top_tb_0.v:144: error: Scope index expression is not constant: i
mips_16_core_top_tb_0.v:144: error: Unable to bind wire/reg/memory `uut.register_file_inst.reg_array[i]' in `mips_16_core_top_tb_0_v.display_all_regs'
Related code :
task display_all_regs;
begin
$display("display_all_regs:");
$display("------------------------------");
$display("R0\tR1\tR2\tR3\tR4\tR5\tR6\tR7");
for(i=0; i<8; i=i+1)
$write("%d\t",uut.register_file_inst.reg_array[i]); <--- error points to this line
$display("\n------------------------------");
end
endtask
Я получаю эту же ошибку, когда я тоже моделировать RTL, но я все еще получаю файл VCD сбрасывал out.In случай списка соединений, я даже не получить VCD файл сгенерирован. Был бы рад услышать ваши мысли.
Как определить 'reg_array'? Пожалуйста, определите «целое число i;» внутри задачи. Там могут быть конфликтующие драйверы с одним и тем же «я». – Greg
попытался добавить целое число i; он говорит синтаксическую ошибку в строке integer i; Ошибка mips_16_core_top_tb_0.v: 140: ошибка синтаксиса mips_16_core_top_tb_0.v: 140: ошибка: неверно сформированное заявление – user2548629
Переместить 'целого числа я,' 'перед тем begin'. Вы не можете прикрепить файл здесь напрямую. Вы можете загрузить его на сайт совместного доступа к файлам с открытым доступом (или своим личным сайтом) и предоставить ссылку. – Greg