Здравствуйте, меня интересует почему не работает следующий код:
Код
case cmd is
when C_ADD => q <= (f_op + s_op);
when C_SUB => q <= (f_op - s_op);
when others => null;
end case;
Но при этом если переписать под if-else, то будет работать.
Код
if (cmd = C_ADD) then
q <= (f_op + s_op);
elsif (cmd = C_SUB) then
q <= (f_op - s_op);
end if;
А самое интересное то, что при компиляции ошибок нет, но в ModelSim он отказывается симулировать схему, а именно загружать файл симуляции (не знаю как его правильно назывют - al_vhd_tst, который по тестбенчу работает), пишет:
# ** Error: (vsim-3173) Entity '/home/user/Development/freyacpu/cpu/simulation/modelsim/rtl_work.alu' has no architecture.
# Load interrupted
# Error loading design
И список сигналов соответственно не открывается. С if-else всё работает.
Возможно это одна из не синтезируемых конструкций? Прошу помощи у опытных людей!
Сообщение отредактировал unixwz - Jan 30 2017, 10:52