波形

シュミレーションの仕方


XILINX Foundation1.5 のシュミレータの簡単な使い方です。

シュミレーションで何をするのか

入力シグナルを手作業で作って回路に与えてやり、時間の経過とともに、出力シグナルや、指定した回路の途中に出力されるシグナルがどう変化するかを確認して、設計した回路の正当性を検証します。
また同時に、かなり正確に内部の各モジュールの動作時間も確認する事ができます。

概略手順

まず、add Signalで、見たい入出力信号を加える。
CLK(クロック)は、StimulusのFormulaで、L1H1と与える。(繰り返される)
ボタン類は、FormulaでLやHを指定してもいいし、Editで直接波形を入力できる。

Add Signal

Logic Simulatorを上げたらば、左の空白の部分にマウスを持って行き、右クリックでAdd Signalsを選択。入力したいシグナル、出力を確認したいシグナルを選択する。例えば、サンプル・コードのシミュレーションをする場合には、以下を選択するとよい。
★注意)
サンプル・コードでは、約1秒間に1回の状態変化をカウンターでカウントして行っているため、そのままのコードでシミュレータで追跡するためには莫大な時間を要します。シミュレーションする場合だけ、カウンター長を24ビットから、直後にコメントアウトされている4ビットに変更して、シュミレーションを行って下さい。
  • CLK (Input)
  • CLOCK(Output)
  • RESET(Input)
  • ENAQBLE(Input)
  • LEDS7,LEDS0 (Output)

Stimulasの設定

入力シグナルに、波形を与えるためには、まず波形を与える入力シグナルを左クリックで選択して(水色になる)、左から2番目の場所で、右クリックで「Add Stimulators」を選んでキーボードを表示させ、適当なキーを選んだ後に、
「Formula」で波形の入力画面へ行き、CLKはC1、以外はF1を選ぶ。
キーボードの選択では、CLKはC1とし、ボタンはSとかEとか適当でよい。
「Formula」入力では、C1またはF1をダブル・クリックして下部のEdit Formularに信号繰り返しパターンを入れる。入力可能なのは、LかHか2進数
L1H1とすると、LとHが交互に出る事になり、SystemClockの動作となる。
入力完了後は、「Accept」して抜ける。

シュミレーションの実行

すべての入力波形を入力し終わったらば、足跡マークで規定の時間分、時を進める。この進める時間は変更できる。10MHzは恐ろしく速いので、右上部のボタンで「Zoom In」して動作をよく見た方がよい。動作が速すぎてグレー表示されていたSystem Clockもズームインしていくと、表示されるようになる。
再実行は、「ON」マーク。
LEDS7,LEDS0のようなベクタデータは16進で表示される。

そのほか

そのほかにも、波形を右クリックして、手入力で入力波形を編集したり、すべての手順をスクリプトに記述するなどの、いろいろな機能がありますので時間があれば試してください。
★ただし、若干バグっぽい動作もするので、うまく動作(特に波形の入力)ができない時は、一旦やめて入力をし直す必要があります。

スクリプトに関する補足

ここで紹介した上記の方法は、Script Wizardを使用せずに直接Waveform Viewerに入力してデバッグする方法です。Synthesizeの度に、Waveform ViewerのAdd Signals>Signal Selectionのメニューに、(LEDS7,LEDS0) 等と出てくるので、直接信号を加えます。

繰り返しシミュレーションを行う場合に便利な、Script Wizardでスクリプトを作成する場合、テキストに従ってScript Wizardを使い、以下のようにします。

Vecotrsのところは、LEDS7 (Hex) と CLOCK (Binary)
Stimulatorsのところは、
CLK (Bin) type="Clock", value=0 1 (間にスペースが入る)
RESET (Bin) type="Aldec Waveform",value=H
ENABLE (Bin) type="Aldec Waveform",value=H

で、私がデバッグに使ったのと同じ信号を見ることができます。

IC シュミレーションのサンプルを後で置く予定


トップ アイコン
トップ


波形