ModelSimで動作シミュレーション

事前準備

まず、トップレベルデザインのVerilog-HDLが必要になります。

回路図がトップレベルデザインだった場合には、次の手順でVerilog-HDLに変換します。

File->Create/Update->Create HDL Design File from Current File...

ここで、"Create HDL Design File for Current File"ダイアログが表示されますので、

Verlilog HDLを選択してOKボタンを押下します。

シミュレータ起動

次に、シミュレータを起動します。

Tools->Run Simulation Tool->RTL Simulation

ModelSim ALTERA STARTER EDITION 10.0cが起動します。

シミュレーション対象ファイルの指定

File->New->Library...を選択します。

"Create New Library"ダイアログが表示されますので、"a new library and a logical mapping to it"が

選択されていることを確認します。Library Name, Library Physical Nameは共に"Work"が入っています。

このまま"OK"ボタンを押下します。

Library一覧にwork(empty)が追加されます。これをマウスでクリックして選択状態にします。

その後、Compile->Compile...を選択します。

Compile Source Filesウィンドウが開きますので、ターゲットのVerliog Fileをコンパイルします。

必要なVerliog Fileを選択します。sample1.v, compo1.vなど複数必要であれば、複数個コンパイルします。

コンパイルすると、Library一覧で選択されているworkにコンパイルしたものが追加されます。

必要なファイルをコンパイルしたら、Doneを押下します。

Library一覧のworkをクリックして表示を展開します。sample1, compo1がType Moduleで追加されています。

トップレベルデザインのsample1をダブルクリックします。

ウィンドウが開きますので、一番左の"sim-Default"という名称のWindowにあるsample1をマウスで右クリックします。ここでメニューが表示されますので、Add->To Wave->All items in regionを選択します。

これで、"Wave-Default"ウィンドウにトップレベルデザイン Verilog Fileで定義されている信号線が表示されます。

テストパターンの設定

テストパターンを設定します。

"Objects"ウィンドウの入力信号線"sysclk"を選択して右クリックします。

メニューが表示されたら、"Create Wave..."を選択して"Create Patten Wizard"を開きます。

次のように設定します。

Patterns:Clock

Signal Name: そのまま

Start Time: 0 (そのまま)

End Time: 1000000

Time Unit : PS (そのまま)

"Next"ボタン押下で、次の設定を行います。

Initial Value: 0 (または1)

Clock Period: 2

Time Unit: PS

Duty Cycle:50

これで、最高速でクロックが生成されます。

同様に必要な入力信号を設定します。

例)ゆっくりした入力を入れてみます。

"Objects"ウィンドウの入力信号線"sw0"を選択して右クリックします。

メニューが表示されたら、"Create Wave..."を選択して"Create Patten Wizard"を開きます。

次のように設定します。

Patterns:Clock

Signal Name: そのまま

Start Time: 0 (そのまま)

End Time: 1000000

Time Unit : PS (そのまま)

"Next"ボタン押下で、次の設定を行います。

Initial Value: 0 (または1)

Clock Period: 600

Time Unit: PS

Duty Cycle:50

また、"Create Wave..."を選択して"Create Pattern Wizard"で、いくつかのパターンを

選択できます。入力を固定したい場合は、"Constant"を選択します。

シミュレーションの実行

設定が終わったら、シミュレートします。

Simulate->Run->Run -All

これで入力に対して出力がどのようになるかを確認します。

参考になるページ

下記URLのチュートリアルがとてもわかりやすく解説しています。

http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=10&ved=0CIIBEBYwCQ&url=http%3A%2F%2Fwww.itiv.kit.edu%2Fdownloads%2Fse_tutor.pdf&ei=VxSpT8nkHYbBiQelzPieAw&usg=AFQjCNHNgPF2rIRfYMhjzVZE9BTUCQqaDA&sig2=ttNxLBt5oW0KYrEhGCNA4w

アクセスカウンター
アクセスカウンター