シミュレーション


Verilogシミュレータによりシミュレーションを行いますが、今回は直接 verilog コマンドを入力することで実行します。
verilog counter_topt.stim counter_topt.v
波形の表示方法は論理シミュレーションの場合と同様ですが、波形表示プログ ラム(simvision)を直接起動します。
simvision
simvision を起動後は、以下のような画面が現れます。

ここで開くのは、"counter/"ディレクトリ以下にある"xnfout.run/waves.sim/"というディレクトリ内に生成された"waves.trn"というファイルです。開くと以下のように表示されます。

Scope Treeに"test"が表示されているので、これをダブルクリックします。 すると、その下に"top"という項目が表示されますので、これをクリックします。 右側に観測可能な信号が表示されます。信号の一番上をマウスでクリックしそのまま下にドラッグすると、信号全てを選択できます。 この状態で右クリックをし、"Send to new Waveform Window"をクリックする、もしくはツールバーのをクリックします。


これ以降は機能シミュレーションのときと同様にして、波形を表示させてみて ください。以下のように、見ためは同じ結果が得られるはずです。上が実配線 遅延シミュレーションの結果、下が配線遅延を含まない場合の結果です。

しかしながら、上の2つの波形を良く見てみましょう。上段の波形において、 カーソルのある位置では"QO[3:0]"の出力が"0"になっています。この部分を拡 大してみると、以下のようになっています。

このように、919.7nsから919.9nsの時間にかけて"QO[3:0]"の値が"0"になって いることがわかります。また、クロックの立ち上がりが900.0nsであることか ら、クロックが立ち上がってから"QO[3:0]"の出力が確定するまでに19.9nsは かかることになります。

下の波形ではどうでしょうか?

このように、出力が一次的に"0"のようになることは内容です。しかも、クロッ クが立ち上がってから、出力が確定するまでの時間は3nsしかありません。こ の3nsというのは実はフリップフロップと出力バッファの遅延時間なのです。 使用している部品ライブラリには予め遅延が定義されているので、部品のみの ディレイを含んだシミュレーションは可能です。しかしながら、配置・配線を 行うと、実に19.9nsが配線による遅れとなるわけです。この遅れにより、カウ ンタの最大動作周波数が決定されてしまいます。


以上で、実配線遅延シミュレーションは終了です。最後に実際のFPGA上で 動作確認をしましょう。


| Back | CAD Home |

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