Я пытаюсь работать с примером заявления WAIT ON. Каждый раз, когда я пытаюсь скомпилировать свой код, компилятор Quartus II дает мне следующее сообщение об ошибке.VHDL - WAIT ON <signal> statement
Ошибка (10533): VHDL Подождите Заявление об ошибке на T1.vhd (23): Подождите заявление должно содержать положение условие с ключевым словом ПОКА
модель архитектуры не ниже. Его функция не важна только по той причине, почему компилятор запрашивает инструкцию UNTIL. Все примеры, которые я видел, интернет и книги показывают его использование в качестве таковых ниже:
ARCHITECTURE dflow OF T1 IS
SIGNAL middle : std_logic;
BEGIN
P1 : PROCESS IS
BEGIN
IF CLK = '1' THEN
middle <= input;
END IF;
WAIT ON CLK;
END PROCESS P1;
OUTPUT <= MIDDLE;
END ARCHITECTURE dflow;
Best Regard D
Синтез позволяет ограничивать диапазон конструкций VHDL, которые он принимает. В этом случае, 'wait until rising_edge (clk);', вероятно, принято, что подразумевается сообщением об ошибке. Учтите, что 'wait on' проблематично, если для этого требуется обнаружение обоих краев тактовых импульсов, обычное аппаратное обеспечение FPGA не может это поддерживать. Если вы хотите использовать 'WAIT ON' ... имитировать. –
@BrianDrummond 'wait on clk' эквивалентен' wait до clk'event' и, следовательно, неоднозначен в контексте синтеза? –