初めてでも使えるVHDL文法ガイド ―― 文法ガイド編
tag: 半導体 ディジタル・デザイン
技術解説 2009年8月10日
3. パッケージ
● パッケージ宣言
package < パッケージ名 > is
[ < パッケージ宣言アイテム > ]
end { < パッケージ名 > } ;
《 記述例 》 package MYPAC is function sel2to1( DL, DH : in std_logic_vector ; SEL : in std_logic ) return std_logic_vector ; end MYPAC ; |
● パッケージ宣言アイテム
< サブプログラム宣言 >
< タイプ宣言 >
< サブタイプ宣言 >
< 定数宣言 >
< 信号宣言 >
< ファイル宣言 >
< コンポーネント宣言 >
● サブプログラム宣言
procedure < 指示子 > ( < インターフェース・リスト > )
function < 指示子 > ( < インターフェース・リスト > ) return < タイプ名 >
● 指示子
< 名まえ > | " 文字列 "
注:"文字列"は,演算子などをファンクションで定義するときなどに用いる.
● パッケージ本体
package body < パッケージ名 > is
[ < パッケージ本体宣言アイテム > ]
end { < パッケージ名 > }
《 記述例 》 - セレクタ package body MYPAC is function sel2to1 ( DL, DH : in std_logic_vector ; SEL : in std_logic ) return std_logic_vector is variable temp : std_logic_vector ( DL ' range ) ; begin if SEL = ' 1 ' then temp : = DH ; else temp : = DL ; end if ; return temp ; end sel2to1 ; end MYPAC ; |
● パッケージ本体宣言アイテム
< サブプログラム宣言 >
< サブプログラム本体 >
< タイプ宣言 >
< サブタイプ宣言 >
< 定数宣言 >
< ファイル宣言 >
● サブプログラム本体
< サブプログラム宣言 > is
[ < サブプログラム宣言アイテム > ]
begin
[ < 順次処理文 > ]
end { procedure | function } { < 指示子 > }
● サブプログラム宣言アイテム
< サブプログラム宣言 >
< サブプログラム本体 >
< タイプ宣言 >
< サブタイプ宣言 >
< 定数宣言 >
< 変数宣言 >
< ファイル宣言 >
● インターフェース・リスト
< インターフェース宣言 > ; < インターフェース宣言 > ; … ;
< インターフェース宣言 >
● インターフェース宣言
{ constant } < 名まえ > , < 名まえ >,… : { in } < サブタイプ指示子 > { : = < 式 > }
{ signal } < 名まえ > , < 名まえ >,… : { < モード > }
< サブタイプ指示子 > { bus } { : = < 式 > }
{ variable } < 名まえ >, < 名まえ >,… : { < モード > } < サブタイプ指示子 > { : = < 式 >}
● モード
in | out | inout | buffer | linkage
● 結合リスト
{ < フォーマル部 > = > } < アクチュアル部 > , { < フォーマル部 > = > }
< アクチュアル部 >, …
● フォーマル部
< フォーマル指示子 >
< ファンクション名 > ( < フォーマル指示子 > )
● フォーマル指示子
< ジェネリック名 >
< ポート名 >
< パラメータ名 >
● アクチュアル部
< アクチュアル指示子 >
< ファンクション名 > ( < アクチュアル指示子 > )
● アクチュアル指示子
< 式 >
< 信号名 >
< 変数名 >
open