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

プロシージャ ステートメント - VHDL の例

プロシージャは、サブプログラムと呼ばれる構造のグループの一部です。プロシージャは、コード全体で再利用される操作を実行するコードの小さなセクションです。これにより、コードがクリーンアップされ、再利用が可能になります。

プロシージャーは、入力を受け取り、出力を生成できます。通常、これらは関数よりも複雑になる可能性があります。プロシージャにシグナルを渡す必要はありません。以下の例には、標準論理ベクトルを 1 インクリメントし、その結果で信号を生成することを目的とするプロシージャ p_INCREMENT_SLV があります。

待機ステートメントの使用に関する追加の注意事項:
プロシージャを呼び出すプロセスにセンシティビティ リストがない限り、wait ステートメントをプロシージャで使用できます。以下の例では、手順に 1 ns の待機ステートメントが含まれており、これを示しています。これにより、手順はテストベンチ コードの作成に役立ちます。

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity example_procedure_simple is
end example_procedure_simple;

architecture behave of ex_procedure_simple is

  signal r_TEST : std_logic_vector(7 downto 0) := X"42";

  -- Purpose: Increments a std_logic_vector by 1
  procedure p_INCREMENT_SLV (
    signal r_IN  : in  std_logic_vector(7 downto 0);
    signal r_OUT : out std_logic_vector(7 downto 0)
    ) is
  begin
    r_OUT <= std_logic_vector(unsigned(r_IN) + 1);
    wait for 1 ns;                      -- Wait is OK here.
  end p_INCREMENT_SLV;

  
begin

  process is
  begin
    wait for 10 ns;
    p_INCREMENT_SLV(r_TEST, r_TEST);
    wait for 10 ns;
    p_INCREMENT_SLV(r_TEST, r_TEST);
    wait for 10 ns;
    p_INCREMENT_SLV(r_TEST, r_TEST);
    wait;
  end process;  
  
end behave;



最も人気のある Nandland ページ

VHDL

  1. チュートリアル - VHDL の紹介
  2. VHDL 変換の例
  3. レコード - VHDL の例
  4. VHDL での符号付きと符号なし
  5. 変数 - VHDL の例
  6. C# switch ステートメント
  7. C# break ステートメント
  8. C# 継続ステートメント
  9. VHDL で文字列のリストを作成する方法
  10. C++ Switch Case ステートメントと EXAMPLE
  11. 執筆手順:デジタル化することでシンプルかつ効率的