Как использовать цикл и выход в VHDL
В предыдущем уроке мы научились задерживать время с помощью wait for. утверждение. Мы также узнали о цикле процесса. Теперь мы знаем, что если мы позволим этому, процесс «поток» навсегда зациклится внутри процесса.
Но что, если мы хотим сделать что-то только один раз в начале процесса? А затем в конце зациклиться на каком-то другом коде? Простейший цикл в VHDL можно создать с помощью loop заявление.
Эта запись в блоге является частью серии учебных пособий по основам VHDL.
Синтаксис простого цикла:
loop
end loop; Такой цикл будет продолжаться бесконечно или до тех пор, пока exit; встречается. exit можно использовать для выхода из любого цикла.
Упражнение
В этом видеоуроке вы узнаете, как создать простой цикл и как выйти из него:
Окончательный код, который мы создали в этом руководстве:
entity T03_LoopTb is
end entity;
architecture sim of T03_LoopTb is
begin
process is
begin
report "Hello!";
loop
report "Peekaboo!";
exit;
end loop;
report "Goodbye!";
wait;
end process;
end architecture;
Вывод в консоль симулятора, когда мы нажали кнопку запуска в ModelSim:
VSIM 2> run # ** Note: Hello! # Time: 0 ns Iteration: 0 Instance: /t03_looptb # ** Note: Peekaboo! # Time: 0 ns Iteration: 0 Instance: /t03_looptb # ** Note: Goodbye! # Time: 0 ns Iteration: 0 Instance: /t03_looptb
Анализ
При запуске финального кода в симуляторе мы увидели, что первый «Hello!» был напечатан на консоли ModelSim. Затем «Пикабу!» между loop; и end loop; был напечатан. На следующей строке программа попала в exit; оператора, что приводит к выходу программы из цикла. Наконец, «До свидания!» был напечатан. После этого больше ничего не происходит, потому что программа навсегда приостановлена на wait; заявление.
Мы можем видеть из временных меток распечаток, что все произошло во время моделирования 0 нс. Как мы узнали из предыдущего урока, все, кроме wait инструкции занимают нулевое время.
Вывод
loopоператор реализует бесконечный циклexitзаявление вырвется из любого петля
Перейти к следующему руководству »
VHDL
- Как использовать процедуру в процессе в VHDL
- Как использовать нечистую функцию в VHDL
- Как использовать функцию в VHDL
- Как использовать процедуру в VHDL
- Как создать таймер в VHDL
- Как использовать константы и общую карту в VHDL
- Как использовать создание экземпляра карты портов в VHDL
- Как бесплатно установить симулятор и редактор VHDL
- Микроконтроллер PIC18:что это такое и как его использовать
- Что такое позиционное обозначение и как мы его используем в ассемблере?