![見出し画像](https://assets.st-note.com/production/uploads/images/150916981/rectangle_large_type_2_fcf9b1daf892c4e2c61880b7ed01ba17.png?width=1200)
QuartusⅡ v13.1の使い方3~シミュレーション編
ここでは、ALTERA社のQuartusⅡ v13.1の使い方についてご紹介します。同ツールを使えばVHDLやVerilogで記述した回路を論理合成したり、シミュレーションを行ったりすることで最終的にFPGA化することができます。今回紹介するバージョンは2024年8月時点において最新のバージョンではありませんが、シミュレーション時の入力パターンがグラフィカルに書けるなどのメリットがあるためQuartusⅡ v13.1をご紹介したいと思います。
テストパターンを作りシミュレーションを行う
コンパイル(論理合成等)が終わったら、シミュレーションを行って作った回路が思い通りに動いているかどうかを確認します。まずFile -> New -> Verification/Debugging Files ->University Program VWF を選択してOKを押します。これでテストパターン(シミュレーション)を作る画面を呼び出します。
![](https://assets.st-note.com/img/1723795761612-etaEprtFDS.png?width=1200)
以下の画面が新たに表示されると思います。
![](https://assets.st-note.com/img/1723796080600-dmUrE1ovdU.png?width=1200)
次に赤枠内で右クリックし、以下の子画面を出します。
![](https://assets.st-note.com/img/1723796303232-HSbAymZWhX.png?width=1200)
子画面の中でInsert Node or Bus… を選択します。
![](https://assets.st-note.com/img/1723796428568-Za99f8ue27.png?width=1200)
次に新に表示される子画面で Node Finder… を押します。
![](https://assets.st-note.com/img/1723796616842-fEC3IHkIo0.png?width=1200)
新たに以下の画面が表示されます。右上のListを押してください。
![](https://assets.st-note.com/img/1723796856540-BdPPmT2Dnv.png?width=1200)
左側に今回の回路の入力、出力信号名が表示されたと思います。ここで中央の赤枠を押します。
![](https://assets.st-note.com/img/1723797053239-mbDyP3jIkr.png?width=1200)
以下の画面が出たら(右側に今回シミュレーションで使う信号群が出ている)右上のOKを押します。
![](https://assets.st-note.com/img/1723797126311-DZBYM8ZSnA.png?width=1200)
以下の通り、子画面(Insert Node or Bus)中のOKを押します。
![](https://assets.st-note.com/img/1723797260429-vrlpeSJjLF.png?width=1200)
以下のテストパターン入力画面が表示されます。左側には信号名が入っていますね。
![](https://assets.st-note.com/img/1723797381574-mnJoHlTuQT.png?width=1200)
reset_nの信号名を左クリックしたまま、clkの上までドラッグして離します。(リセット信号を一番上にする場合)以下のような画面になります。
![](https://assets.st-note.com/img/1723797583281-1wMf1wYjGt.png?width=1200)
reset_n(リセット信号)をクリックし、
![](https://assets.st-note.com/img/1723797692025-bYOhZ8ukaz.png?width=1200)
赤枠を押します。すると、reset_n信号がLからHへ切り替わります。
![](https://assets.st-note.com/img/1723797793615-jScESwAUFF.png?width=1200)
次に信号名clkをクリックし、赤枠の時計ボタンを押します。
![](https://assets.st-note.com/img/1723797948486-1lONbxEeJ0.png?width=1200)
Clock の子画面が表示されたらOKを押します。
![](https://assets.st-note.com/img/1723798029719-ezIhDfePaS.png?width=1200)
すると、以下の様にclkの信号が入っていることが確認できると思います。
次に、画面を拡大してみましょう。 View -> Zoom In で拡大することができます。
![](https://assets.st-note.com/img/1723798130354-LaNh61VQer.png?width=1200)
以下の通り拡大できました。
![](https://assets.st-note.com/img/1723799232150-1sYdiTJR4b.png?width=1200)
次にd信号の80ns~120nsを左クリックしながらドラッグします。(80nsで左クリックしながら120nsまでドラッグして離します。
![](https://assets.st-note.com/img/1723799650599-cre8pIPkkQ.png?width=1200)
赤枠の1を押すと、選択した領域がHレベルに変わります。
![](https://assets.st-note.com/img/1723799784411-42vwpCJ593.png?width=1200)
さらに View -> Zoom In で拡大します。
![](https://assets.st-note.com/img/1723800157184-qEbUxEzCSt.png?width=1200)
次にreset_nの0ps~10nsをLにするため、以下の赤枠を左クリック&ドラッグしてください。(ちょっと難しいかもしれませんが何回かチャレンジしてください)
![](https://assets.st-note.com/img/1723800544033-85MouQNg7e.png?width=1200)
以下の様になりました(選択された状態)でしょうか。
![](https://assets.st-note.com/img/1723800690734-aa3DBQz5g6.png?width=1200)
赤枠を押してreset_nをLレベルにしてください。これでついにテストパターンの入力が全てできました。お疲れ様です。
![](https://assets.st-note.com/img/1723800866692-nnt7D8IL0g.png?width=1200)
View->Zoom out で以下の様にします。(だいたいこれぐらいのレンジでd信号の立ち上がりと立下り付近が分かる程度)
![](https://assets.st-note.com/img/1723801184296-JD6FREaoC4.png?width=1200)
作成したテストパターンを保存します。 File -> Save As …を選択します。
![](https://assets.st-note.com/img/1723805061252-GBeboB3oxn.png?width=1200)
ファイル名はそのままにして保存を押します。
![](https://assets.st-note.com/img/1723805187315-Y8jpkvYrkH.png?width=1200)
いよいよシミュレーションを開始します。赤枠を押します。
![](https://assets.st-note.com/img/1723805135440-ETWmtgeFka.png?width=1200)
新たな画面(シミュレーション済)が表示されます。
![](https://assets.st-note.com/img/1723805387499-GBY5j4dGyg.png?width=1200)
View -> Zoom In で以下の様に適度なレンジにします。
さあ、どうでしょう。
d信号の立ち上がりの後に来るclk信号の立ち上がりで出力qがHに遷移しています。また、d信号の立ち下がりの後に来るclk信号の立ち上がりで出力qがLに遷移しています。D型フリップフロップとして動作できていることが確認できました。
これでシミュレーションは終了です。なお、このシミュレーション結果はRead Onlyファイルとなっており保存することができません。(注意)
(再度シミュレーションをするときは、テストパターンの画面から再度シミュレーションを行ってください。)
![](https://assets.st-note.com/img/1723805519181-Ipv1oI4Wpw.png?width=1200)
おわりに
ここではシミュレーションの一連の手順をご紹介しました。最初は少し手間取るかもしれませんが、慣れてしまえば問題ないレベルだと思います。ありがとうございました。