Как использовать цикл и выход в 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:что это такое и как его использовать
- Что такое позиционное обозначение и как мы его используем в ассемблере?