初めてでも使えるVHDL文法ガイド ―― 文法ガイド編
tag: 半導体 ディジタル・デザイン
技術解説 2009年8月10日
IEEE Std 1076-1987(いわゆるVHDL87)に基づいて文法要約を示します.VHDLの文法体系は多岐にわたっているのですが,ここでは「設計や検証で使うもの」を中心にまとめました.実設計で必要のないものや代替手段のあるものは割愛しましたので,広範囲に知りたい方は,記述スタイル編に掲載した参考文献の文法書などを参照してください. (編集部)
本稿で使用する訳語は,日本電子機械工業会EDA特別委員会によるVHDL対訳表に沿いました.ただし一部の用語は,各種文献などで慣例的に用いられている訳語を利用しました.
文法表現のため,いくつかの記号を用いています.以下に説明します.
{ } … 省略可能な記述を示す.
[ ] … 複数使える記述を示す.
| … いずれかの要素を用いる.
< > … これでくくった項目は,別途定義してある項目を示す.ただし,自明なものは定義を省略した.
これら以外の記号は,文法上必要な記号です.
1.記述全体
● デザイン・ユニット
< コンテキスト節 > < ライブラリ・ユニット >
注:コンテキスト節は,ライブラリやパッケージの指定.
ライブラリ・ユニットは,entityやarchitectureなどの記述本体.
● コンテキスト節
library < ライブラリ名 >, < ライブラリ名 >,… ;
use < ライブラリ名 > . < パッケージ名 > . < アイテム > ;
注:ライブラリWORKとSTDは,すでに指定されているものとして扱われる.
《 記述例 》 library IEEE , MYLIB ; use IEEE.std_logic_unsigned.all ; use WORK.MYPAC.all ; |
● アイテム
< 名前 > | ' 文字 ' | " 文字列 " | all
注:パッケージ内の特定要素のみ指定できる.allはすべてを指定する.
● ライブラリ・ユニット
< エンティティ宣言 > | < パッケージ宣言 > | < コンフィグレーション宣言 >
< アーキテクチャ本体 > | < パッケージ本体 >
2.エンティティ
● エンティティ宣言
entity < エンティティ名 > is
{ port { < インターフェース・リスト > ) ; }
{ generic ( < インターフェース・リスト > ) ; }
end { < エンティティ名 > } ;
注:エンティティ内では,タイプや信号宣言,ステートメントの一部を記述できるが割愛した.
《 記述例 》 entity dec2to4 is port ( d : in std_logic_vector ( 1 downto 0 ) ; q : in std_logic_vector ( 3 downto 0 ) ) ; end ; |