テストベクタの入力


シミュレーションを行う場合、回路の入力信号に対して時間的に変化する信号 を与える必要があります。各入力信号の値に応じて出力が正しく動作するかど うかうチェックするわけです。これからチェックする回路は以下のような動作 をするはずです。

timing.gif (5.6KB)

では、入力信号はどのようにして与えるのでしょうか。今回使用するシミュレー タはハードウェア記述言語によって与えます。使用するハードウェア記述言語 は Verilog-XL というもので、LSI設計にも広く用いられています。非常に複 雑な回路記述も行えますが、ここではテストベクタを記述するのに必要最小限 な要点のみを解説します。

では、テストベクタの入力をしてみましょう。シミュレータのコントロールウィ ンドウのメニューから、"Stimulus -> Verilog" を選択します。初めての場合以下 のウィンドウが現れますが,これはYesを押します。

no_testfixture.gif (2KB)

すると、以下のようなStimulus Optionsウィンドウが現れます。

stimulus_options.gif (4.9KB)

ここで、"testfixture.verilog"はテストベクタを定義するための雛型ファイ ルです。まずこれを以下のように"testfixture.test"としてApplyを押してコ ピーします

testfixture_copy.gif (8.7KB)

次に、"testfixture.test"を編集します。以下のように設定し OK を押します。

testfixture_edit.gif (5.9KB)

ファイルの初期内容は以下のようになっています。

testfixture_default.gif (1.5KB)

これを以下のように編集します。 Web Browser から Cut & Paste して構いませんが、何をしているかは理解するように。


// Verilog stimulus file.
// Please do not create a module in this file.


// Default verilog stimulus.
integer i;

initial
begin
   CLOCK = 1'b1;
   for( i=0 ; i<60 ; i=i+1 )
      CLOCK = #50 ~CLOCK;
   $finish;
end

initial
begin
   CLOCK_E = 1'b1;
   CLOCK_E = #1075 1'b0;
   CLOCK_E = #200  1'b1;
end

initial
begin
   RESET = 1'b0;
   RESET = #175 1'b1;
   RESET = #375 1'b0;
   RESET = #225 1'b1;
end

この記述により、このページの最初に示した波形と同じ入力波形を作成するこ とができます。


クロックの定義:クロックは以下の記述により、時間0で"H"、以降50単位時間 毎に"L"と"H"を繰り返します。ここでいうユーザ単位のデフォルト値は "ns" です。ですから、この記述により 10MHz のクロックを生成していることにな ります。
integer i;

initial
begin
   CLOCK = 1'b1;
   for( i=0 ; i<60 ; i=i+1 )
      CLOCK = #50 !CLOCK;
end

RESET、CLOCK_Eの定義:RESETを例に説明しましょう。時間0で"L"にした後、 ユーザ単位175後に"H"、375後に"L"、225後に"H"とします。したがって、175, 550、775ユーザ単位時に各々変化することになります。
initial
begin
   RESET = 1'b0;
   RESET = #175 1'b1;
   RESET = #375 1'b0;
   RESET = #225 1'b1;
end

入力が終ったらエディタをセーブしてください。このとき、Verilog-XL の文 法がチェックされます。文法が間違っていた場合、再度エディタが再度立ち上 がりますから修正してください。

最後に、編集したテストベクタを使用できるように、"testfixture.test" を 選択して Mode を Select にした後 OK を押します。

testfixture_select.gif (5.2KB)


次は シミュレーション です。


| Back | CAD Home |

My mail address is kuga@cs.kumamoto-u.ac.jp .
Last modified on .