...

Verilog-AMS入門講座

by user

on
Category: Documents
63

views

Report

Comments

Transcript

Verilog-AMS入門講座
Verilog-AMS
入門講座
桜井 至
第2 回
Verilog-AMS 言語の基本構文
アナログ/ミックスト・シグナル対応のハードウェア記述言語である
「Verilog-AMS」の入門講座の第 2 回をお届けします.今回は,
Verilog-AMS 言語の基本構文のうち,モジュール,パラメータ,変数,アナログ手続き的ブロック文などについて説明します.
Verilog-AMS は,従来のVerilog-HDL を拡張した言語仕様であるため,既存のディジタル設計用の構文も含まれています.
本講座では,ディジタル設計用の構文の説明は最小限にとどめ,アナログ設計用の構文を中心に解説します.
(編集部)
前回は,ディジタル回路だけでなくアナログ回路の構造や
数,16 進数,8 進数,2 進数,および実数を表現できます.
動作の記述を可能とするハードウェア記述言語の基本概念,
アナログ値では,整数
(integer)
と実数
(real)
を用いることが
および HDL を利用したミックスト・シグナル設計のフロー,
できます.
Verilog-AMS のサンプル回路の記述例を紹介しました.ま
た,基礎知識としてCMOS トランジスタの基本原理を解説し
ディジタル値のベクタは,以下のように表します.
サイズ'基数 値
ました.
今回より,Verilog-AMS 言語のより詳細な構文を紹介し
ここで,サイズはベクタの幅を示します.基数については,
10 進数がd,16 進数がh,8 進数がo,2 進数がb になります.
ます.なお,Verilog-AMS の構文は,従来のディジタル設
実数は,小数点形式または指数形式で表現します.以下に記
計用言語としてのVerilog-HDL とアナログ設計用言語として
述例を示します.
のVerilog-A を合わせたものです.そこで本講座では,従来
4'b1001
―― ベクタ幅 4の2 進数
のVerilog-HDL を,ディジタル設計用であることを強調する
16'h7a5f
―― ベクタ幅 16の16 進数
意味で
「Verilog-D」
と呼ぶことにします.
16'b1001_0111_0011_1011 ―― ベクタ幅 16の2 進数
1.字句に関する規約
Verilog-AMS の記述は,Verilog-D と同様にフリー・フォ
697
―― 整数
2.0e9
―― 指数形式
(実数)
3.1415
―― 小数点形式
(実数)
ーマットです.つまり,字句の句切りや記述の見やすさのた
めに,改行,スペース,タブを自由に用いることができます.
●識別子
まずVerilog-AMS を記述するための字句の規約に触れます.
識別子はモジュール名,信号名,パラメータ名などの識別
のために使用します.使用可能な文字は,以下の4 種類です.
●コメント
コメントの表記には,1 行のコメントと複数行に渡るコメ
ントの2 種類があります.1 行のコメントは // で始まります
(その行が終了するまで,コメントとして扱われる).一方,
複数行に渡るコメントでは, /*と */ で囲まれた部分がコメ
ントとして扱われますが,ネストすることはできません.コメ
ントを効果的に用いることで,記述が見やすくなります.
英字
(a ∼ z,A ∼ Z)
数字
(0 ∼ 9)
$
アンダ・スコア
(_)
ただし,最初の文字は英字かアンダ・スコアでなければなり
ません.
大文字と小文字は区別されます.たとえばclock とCLOCK
は,異なった識別子として認識されます.すべてのキーワード
●定数
定数は,代入式やパラメータで使用します.定数にはディ
ジタル値とアナログ値があります.ディジタル値では,10 進
148 Design Wave Magazine 1999 December
(予約語)
は小文字で定義されており,キーワードと同じスペル
の大文字による文字列は識別子として使用できます.
エスケープ文字である\
(バック・スラッシュ)
を使うと,任
Verilog-AMS 入門講座
意のASCII 文字から成る識別子を作成できます.アスタリス
ク
(*)
や正符号(+)
を含む識別子を作成するには,識別子名
の最初の文字にエスケープ文字を使用します.以下に記述例
を示します.
\(a+b)*c
\*error/warning*
\bus1+bus2
いずれも数式ではなく識別子として認識されます.
●文字列
文字列は,""(2 重引用符)
で囲まれた文字の並びで表しま
〔リスト1〕モジュールの基本構造
module (ポート・リスト);
>ポート定義
>ネット宣言(ディジタル)
>ディスプリン定義(アナログ)
>パラメータ宣言
>変数宣言
>ブランチ宣言(アナログ)
> always / initial ブロック(ディジタル)
> analog ブロック(アナログ)
>コンポーネント・インスタンス
>プリミティブ(ディジタル)
endmodule
す.ただし,必ず1 行以内に収まる必要があります.文字列
(n は文字数)
のパラメータまたはレジスタ
は,8 × n ビット幅
を宣言することで保持することができます.以下に記述例を
示します.
"Hello World"
"** Error **"
$display($time,, "DATA = %b ", DATA);
3 行目の例では,DATA = %b が文字列として認識されます.
● module 文と endmodule 文
モジュール定義はmodule 文で始まり,endmodule 文で
終わります.module 構文は,次のようなものです.
module モジュール名
(ポート・リスト)
;
モジュール本体
endmodule
module 文の次にモジュールの名前を指定します.ポー
2.モジュール
Verilog-AMS の設計データは複数の構文から構成されてい
ます.そのなかで,設計回路を定義するのがモジュール
(module)
です.モジュールは,デザイン名,入出力ポート,
ト・リストはオプションで,モジュールへの入力,出力また
は入出力のポート名を指定します.一つの設計ファイルには,
Verilog-AMS の複数のモジュールを含めることができます.
すべての回路は最上位
(トップ・レベル)
のモジュールから
データ・タイプなどのインターフェース部分と,回路機能を構造
始まります.最上位モジュールでは,通常,外部に接続する
記述または動作記述によって定義した機能部分で構成されます.
ポート・リストをもちません.
構造記述では,他のモジュールやプリミティブを下位階層
ブロックや論理ゲートとしてインスタンス化し,それらの接
続を定義します.動作記述では,Verilog-D のディジタル構
文または Verilog-A のアナログ構文を用いて回路機能を定
義します.
●ポート定義
ポート・リストで定義した信号に対して,入力
(input),
出力
(output),双方向
(inout)
を宣言します.
ディジタル・ポートに接続された信号は,論理値として1,
Verilog-AMS では,同一モジュール内にアナログ動作とデ
0,x
(不定)
,z
(ハイ・インピーダンス)
のいずれかの論理値
ィジタル動作の両方を混在して記述できます.その場合,ア
をもちます.また,ベクタのポートでは,ポート定義の際に
ナログ動作はanalog 手続き的ブロック,ディジタル動作は
ビット幅を指定します.
initial 手続き的ブロックおよびalways 手続き的ブロッ
アナログ・ポートに接続された信号は,ディスプリン
クに記述します.Verilog-AMS のanalog ブロックでは,連
(d i s c i p l i n e )で定義された特性をもちます.たとえば,
続的な時間によるアナログ動作を定義します.一方,initial
electrical ディスプリンで指定された信号は,電位と電流の
ブロックとalways ブロックでは,イベントに基づいたディ
特性をもちます.
ジタル動作を記述します.
ここでは,モジュール構文と,モジュール内に含まれる構
●データ・タイプ宣言
(ディジタル)
文をリスト1 の項目に従って,簡単に紹介します.以下でア
Verilog-D の重要なデータ・タイプは,ネット
(wire)
とレ
ナログやディジタルと明記していない部分は,両者に共通で
ジスタ
(reg)
です.ネットは,モジュールやゲート同士を接
あることを意味します.なお,ここではディジタル構文の詳
続する物理的な接続状態を示し,ゲートや継続代入文によっ
細には触れません.
てドライブされます.ドライブされていないときは,ハイ・イ
Design Wave Magazine 1999 December 149
Fly UP