5.1.1 カウンタ

RTL プロジェクト

"RTL_counter.vtakprj" (/samples/altera/counter/)
を開いてみてください。

RTL ソースは、8ビットカウンタです。

テストベンチは、以下です。

Quartus の設定


New Project with Quartusで作成します。


Simulation は、カスタムVerilogを選択します。

合成対象の "counter.v" を選択します。

デバイスの選択は自由です。.(Cyclone,Stratix, Stratix2,Cyclone2)

最終的に次のようになります。.

設定が終わったので、合成です。

コンパイル完了後、次のようなファイルが生成されているはずです。
*.vo は、ゲートシミュレーション用のファイルです。
*.sdo は、遅延時間のファイルで、" $sdf_annotate(... )" で*.vo ファイルが読み込みます。

合成が完了したので、ゲートシミュレーション用のプロジェクトを作成します。

ゲートシミュレーションプロジェクトは、SDFを読み込む関係で、*.vo ファイルの位置に作ります。.

合成したファイルをAddします。.

テストベンチをaddします。

プリミティブライブラリファイルをAddします。(ここでは、Cycloneです。.)

最終的にプロジェクトは、次のようになります。Save Projectするのを忘れないでください。

ゲートシミュレーション

Load Verilog Project "couter_gateprj", Go.
次のようなエラーが出ます。Power On時にFFは、0に初期化されるということでしょう。.

ゲートシミュレーションでは、遅延している様子がわかります。下図の場合、RTLでは、0nsだった遅延が5.3nsになっているということです。ただし、この遅延は、パターンによって変わることに注意してください。

ビットごとに見ると遅延がビットで違う様子が分かります。

SDF ファイルでは、遅延値がMIN/TYP/MAXの3種類あります。XILINXとAlteraに関しては、今のところ、全て同じ値なので、どれを選んでも同じですが、プロジェクト設定ー>SDFで、TYP を選択しておきましょう。。

次は