Article header bolg  2

シェフの気まぐれテストベンチ~時間短縮のマル秘レシピ~

こんにちは。めんどくさがり屋の頭領です。業務を短縮できないか裏ワザに対するアンテナをはっています。

Quartus® Prime を使って回路をデザインした後は、 ModelSim® などの HDL シミュレータで RTL シミュレーションをするのが常套手段。
しかし、シミュレーションを実行するには test bench file というものが必要になる。テストベンチって何だ??

テストベンチは一言で言うと、「 Verilog HDL もしくは VHDL を使って対象の回路に入力信号を与え、出力される信号を観察する」というもの。
プロジェクト内では回路の最上位に位置するが、あくまでテストベンチなので論理合成の対象とならない。
しかし、 HDL を使っての記述では、クロックやリセット信号を含むすべての入力信号に値を設定する必要があるので、1から全部書くのはちょっと面倒。

そんなめんどくさがり屋に朗報!通りすがりのある優しい先輩が「裏ワザ」を教えてくれたのだ!今日はそれをご紹介!!

材料は…回路デザインファイルのみ!( Verilog HDL もしくは VHDL )
道具はパソコンと Quartus Prime を用意。

Article header library 118749 pic01  2

今回は裏ワザ調理法の紹介の為、シンプルなデザインを使用。では、調理開始!!

1. 最上位階層のデザインを「 Analysis & Synthesis 」して論理合成

2. Processing > Start > Start Test Bench Template Writer を実行する

Article header library 118749 pic02  2

3. 完了したら、メッセージバーに 「完了したら、Messages ウィンドウに 「Quartus Prime EDA Netlist Writer was successful.」 と表示されているのを確認する

Article header library 118749 pic03  2

たったこれだけ!! 3分クッキングよりも早くできちゃった!!
※論理合成及びテストベンチ生成にかかる時間はお客様のデザインによります。

出来上がったテストベンチファイルはプロジェクトのフォルダ /simulation/modelsim に入っている。File > Open でファイルを開くときに、右下にある拡張子フィルタを使うと便利。

Article header library 118749 pic04  2

いざ完成したファイルをお披露目…あ、あれ!?
この前作った時とデザインに違和感が…記述が何か違う…あ!!

Article header library 118749 pic05  2

VHDL のテストベンチファイルじゃん…自分のデザインは Verilog HDL で作ったのに。なぜこうなったんだ…あ。

新人エンジニアの頭領には、この現象の原因がどこにあるのか、何となく想像出来た。
なぜなら、度重なるケアレスミスから、「何かが起きたら設定を見直す」習慣が身に付いていたからだ。

Article header library 118749 pic06  2

Assignments > Settings > EDA Tool Settings を開き、 Simulation Tool の Format(s) がデフォルト設定の「 VHDL 」のままだったのだ。
そこで「 Verilog HDL 」に設定変更し、再度「 Start Test Bench Template Writer 」を実行。そして、 /simulation/modelsim フォルダを開くと…

Article header library 118749 pic07  3

.vt のファイルが生成されている。これが Verilog HDL のテストベンチファイルだ!
(ちなみに、 .vht ファイルは頭領が間違えて生成した VHDL のテストベンチファイル)

これを開くと…なんと!最上位階層のデザインからテストベンチに必要な情報を抜粋し、自動的に反映されているではないか!

Article header library 118749 pic08  1

このように、自分が作ったデザインの入出力がポート接続されてあるので、あとは入力信号をどういうものにするのかを記述すれば良い状態になっている。つまり、テストパターンを入力するのみの状態である。
今回はシンプルな Verilog HDL ファイルに対してのみだったが、論理合成さえ出来ていればもっと複雑なデザインのテストベンチも生成できる。
つまり、デザインが大きければ大きいほど楽が出来るということだ!

納期に追われるエンジニアにとって、時間短縮出来るこの機能はうってつけ!これからも色んな機能を知って、仕事の効率化を追及していこう!
やっぱり「面倒くさがり屋」って楽するために色々な手段を考えるから、業務改善を常に考えていて・・・と、自分を正当化する頭領だった。

関連情報

翔け新人!エンジニア奮闘記とは?

マクニカのエンジニアが新人時代に研修中に感じた疑問、制作実習での奮闘、発生したトラブルを解決するまでのフローなど紹介します。個性あふれる新人たちが奮闘から会得した実用的なノウハウを業務にご活用ください。

関連タグ