初めてでも使えるVerilog HDL文法ガイド ―― 文法ガイド編
tag: 半導体 ディジタル・デザイン
技術解説 2009年7月13日
回路記述やテストベンチでよく用いるものについて,Verilog HDLの文法の要約を示します.簡略化して表現したものもあります.また,省略できる項目には[ ]を付けました. (編集部)
1.基本項目
1.1 識別子
● 通常の識別子
- 英字またはアンダ・スコア( _ )で始まる文字列.
- 文字列中には,英字,数字,アンダ・スコア( _ ),ドル記号($)を含むことができる.
- 大文字と小文字を区別する.
《記述例》
正しい識別子 cnt4,_reset,TEN$,INPUT
(大文字なので予約語のinputとは区別できる)
誤った識別子 74LS00(先頭が数字),$test(先頭が$),xor(予約語)
● エスケープされた識別子
- バック・スラッシュ( \ )で始まる文字列(日本語環境では¥で始まる文字列).
- 任意の印字可能なASCII文字を含むことができる.
- ホワイト・スペース(スペース,タブ,改行)が識別子の区切りとなる.
《記述例》
¥cnt4_reg[3] , ¥74LS04 , ¥/*Hello,HDL-World*/
↑ ↑ ↑
スペース スペース スペース
1.2 コメント,フォーマット
● コメント
- // で始まり,行末までの1行
- /* ~ */ で囲まれた複数行
《記述例》
// 入力はreg宣言
/* データ処理部
by Dr. Kobanovski */
● ソース・フォーマット
ソース・ファイルはフリー・フォーマットであり,空白,タブ,改行など自由に挿入できる.
1.3 論理値
- 0,1,X,zの4値
- x(または大文字のX): 不定値
- z(または大文字のZ): ハイ・インピーダンス
数値表現の中での?はzと同義.
1.4 数値表現
size'base value の形で表現する.
size : 定数のビット幅を示す10進数値.
'base : 基数を示す文字.d,h,o,bがあり,それぞれdecimal(10進),hexadecimal(16進),octal(8
進),binary(2進).
符号付き数値に場合には,それぞれsd,sh,so,sbを使う.
以上は大文字でも可.
value: 定数値.各基数で許される値のほかに,x,zが記述できる.
区切りのために_(アンダ・スコア)を使用できる.
ビット幅を省略すると32ビット幅,さらに基数も省略すると32ビット幅の10進数となる.