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

VHDL で While ループを使用する方法

前のチュートリアルでは、For ループを使用して整数範囲を反復処理する方法を学びました。しかし、固定の整数範囲だけでなく、ループをより詳細に制御したい場合はどうすればよいでしょうか?これには While ループを使用できます。

While ループは、テスト対象の式が true と評価される限り、囲まれたコードを反復し続けます。 .したがって、While ループは、事前に必要な反復回数が正確にわからない状況に適しています。

このブログ投稿は、基本的な VHDL チュートリアル シリーズの一部です。

While ループの構文は次のとおりです。

while <condition> loop
end loop;

<condition> ブール値の true です または false . true と評価される式にすることもできます または false .条件はループの反復ごとに評価され、条件が true の場合にのみループが続行されます .

true である式の例 i の場合 は 10 未満です:

i < 10

true である式の例 i の場合 は 10 ではありません:

i /= 10

true である式の例 i の場合 0 以上 2 8 未満 =256:

i >= 0 and i < 2**8;

関係演算子:

= 等しい
/= 等しくない
< 未満
<= 以下
> より大きい
>= 以上

論理演算子:

しない a a の場合は true は偽です
a そして b a の場合は true そしてb 本当です
a または b a の場合は true または b 本当です
a ナンド b a の場合は true または b 偽です
a b a の場合は true そしてb 偽です
a xor b a のうちの 1 つである場合は true または b 本当です
a xnor b a の場合は true そしてb 等しい

エクササイズ

このビデオ チュートリアルでは、変数を使用して While ループを制御する方法を学びます。

このチュートリアルで作成した最終的なコード:

entity T05_WhileLoopTb is
end entity;

architecture sim of T05_WhileLoopTb is
begin

    process is
        variable i : integer := 0;
    begin

        while i < 10 loop
            report "i=" & integer'image(i);
            i := i + 2;
        end loop;
        wait;

    end process;

end architecture;

ModelSim で実行ボタンを押したときのシミュレータ コンソールへの出力:

VSIM 2> run
# ** Note: i=0
#    Time: 0 ns  Iteration: 0  Instance: /t05_whilelooptb
# ** Note: i=2
#    Time: 0 ns  Iteration: 0  Instance: /t05_whilelooptb
# ** Note: i=4
#    Time: 0 ns  Iteration: 0  Instance: /t05_whilelooptb
# ** Note: i=6
#    Time: 0 ns  Iteration: 0  Instance: /t05_whilelooptb
# ** Note: i=8
#    Time: 0 ns  Iteration: 0  Instance: /t05_whilelooptb

分析

整数変数 i を作成しました i である限り true になる式を While ループで使用しました。 i をインクリメントしていたため、10 未満です。 各繰り返しで 2 ずつ、出力された最後の数字は 8 でした。

次の繰り返しでは、i < 10 false と評価される 10 は 10 未満ではないためです。ループが終了した後、プログラムは wait; にヒットしました。 無限に一時停止しました。

テイクアウト

基本的な VHDL クイズに答える – パート 1 »
または
次のチュートリアルに進む »


VHDL

  1. モリブデンはどのように使用しますか?
  2. VHDL で文字列のリストを作成する方法
  3. VHDL テストベンチでシミュレーションを停止する方法
  4. VHDL で PWM コントローラーを作成する方法
  5. VHDL で乱数を生成する方法
  6. VHDL のプロセスでプロシージャを使用する方法
  7. VHDL で不純な関数を使用する方法
  8. VHDL で関数を使用する方法
  9. VHDL で有限ステート マシンを作成する方法
  10. VHDL でプロシージャを使用する方法
  11. カッターグラインダーの使い方