初めてでも使えるVHDL文法ガイド ―― 文法ガイド編

小林 優

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

 

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日