Просто, что было бы неправильно с этой строкой?Назначение VHDL, когда ... else отображает синтаксическую ошибку
zero <= '1' when alu_out = "00000000" else '0';
Это в процессе. zero
- std_logic
и alu_out
- std_logic_vector(7 downto 0)
. Оба определены в объекте, и назначение выполняется в архитектуре. Ошибка:
Error (10500): VHDL syntax error at alu.vhd(27) near text "when"; expecting ";"
Спасибо! Я немного переписал код, чтобы я мог переместить назначение из процесса, и это работает. Использование Quartus II 13.0.1. Я не знаю, какие версии VHDL поддерживаются. Во всяком случае, ваше предложение звучит хорошо, и проблема решена, поэтому я приму этот ответ. – Johan
Я думаю, что Altera Quartus II ver. 13 также имел некоторый уровень поддержки VHDL-2008, поэтому вы можете попытаться включить его. См. Добавленный показатель того, как включить его в Quartus Prime ver. 15.1, что аналогично доказательству вер. 13,1. –