реклама на сайте
подробности

 
 
> Почему не работает case, но работает if-else
unixwz
сообщение Jan 30 2017, 10:51
Сообщение #1





Группа: Участник
Сообщений: 8
Регистрация: 25-01-17
Из: Russia
Пользователь №: 95 152



Здравствуйте, меня интересует почему не работает следующий код:
Код
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
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 22:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.01386 секунд с 7
ELECTRONIX ©2004-2016