工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> VHDL

VHDL でループと終了を使用する方法

前のチュートリアルでは、 wait for を使用して時間を遅らせる方法を学びました 声明。また、プロセス ループについても学びました。そのままにしておくと、プロセス「スレッド」がプロセス内で永久にループすることがわかりました。

しかし、プロセスの最初に一度だけ何かをしたい場合はどうすればよいでしょうか?そして、最後に他のコードをループしますか? loop を使用して、VHDL の最も単純な種類のループを作成できます。

このブログ投稿は、基本的な 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 ns のシミュレーション時間で発生したことがわかります。前のチュートリアルで学んだように、wait 以外はすべて ステートメントはゼロ時間を消費します。

テイクアウト

次のチュートリアルに進む »


VHDL

  1. VHDL のプロセスでプロシージャを使用する方法
  2. VHDL で不純な関数を使用する方法
  3. VHDL で関数を使用する方法
  4. VHDL でプロシージャを使用する方法
  5. VHDL でタイマーを作成する方法
  6. VHDL で定数とジェネリック マップを使用する方法
  7. VHDL でポート マップのインスタンス化を使用する方法
  8. VHDL で Case-When ステートメントを使用する方法
  9. VHDL シミュレーターとエディターを無料でインストールする方法
  10. PIC18マイクロコントローラー:その概要と使用方法
  11. 参照指定子とは何ですか?アセンブリでどのように使用しますか?