KUMICO

COLUMN

[FPGA開発工程のちょっとしたこだわり]論理シミュレーション工程のおさえておくべき基本

KUMICOをご覧の皆さまこんにちは!
さて、今回も“初めてFPGA開発をします!”という新人さんに向けて、
前回の掲載「RTLコーディングの基本」に引き続き、
今回は論理シミュレーション工程について私のちょっとしたこだわりや、
予め気を付けた方がいいよ、という内容をお話しようと思います。

★論理シミュレーションとは

論理シミュレーションとは前工程でVHDLやVerilog-HDL等を使用してコーディングした論理回路の機能や、タイミングが正しく生成されているか、論理シミュレーターを使用して確認する検証作業です。
近年はFPGAデバイスの性能向上により、大規模な論理回路をコーディングする機会も増えており、アサーション検証などの高度な手法を用いてシミュレーションを効率化させる方法も沢山ありますが、今回はシンプルな例をお話します。

① シミュレーション項目作成

まずは、コーディングした論理回路が“この条件の時”、 “どういう結果になるべきなのか”をシミュレーション項目に挙げていきます。
特に“この条件の時”にはさまざまな観点があると思います。
例えば、回路が正常状態の時、エラー状態の時、エラー復帰後、カウンタ回路が上限に達する状態、など、いかに条件と観点を項目として挙げられるかが胆になります。

図1また、シミュレーション項目の記載内容は、第三者が検証した場合でも同じ検証方法、同じ結果を判断できる内容でなければなりません。
例えば、「Aが入力された時、Qが出力すること」というあやふやな項目があった場合、下記に示すどちらの結果でもOKになってしまいますよね。

図2「Aが1パルス入力された時、次のクロックでQを1パルス出力すること」という項目にすれば、誰が検証しても同じ結果を得ることができます。
このように条件と結果を具体的に記載する必要があります。

② テストベンチ作成

シミュレーション項目作成が終わったら、項目に挙げた内容をどのような方法で検証すべきかを考えます。
そこで登場するのがテストベンチです。

図3まずは、ホワイトボックス検証、ブラックボックス検証について触れておきます。
ホワイトボックス検証は、論理回路の入出力信号と、内部にある全ての機能(論理)を検証する方法です。
これは設計者目線の検証方法です。基本、皆様にはホワイトボックス検証を推奨します。

図4一方、ブラックボックス検証は、論理回路の入出力信号のみを検証し、内部にある機能(論理)はブラックボックスとして扱う方法です。(出力が正しいなら内部の機能(論理)も正しいだろうという考え方です)
これは皆様がコーディングした論理回路を利用する側に立った検証方法です。

さて、シミュレーション項目に挙げた“条件”を与える為に、入力モデルを作成します。
これはSystem Verilog言語などで作成することが多いです。 余談ですが、昔入力データをインクリメントデータにしていたら、ランダムデータにしろって よく注意されました・・・

そして、“結果”を確認する為の出力チェックモデルを作成します。
結果確認は、シミュレーター上で波形目視する方法もありますが、波形目視は時間がかかり、見落としなども発生します。
また、再検証する場合など、また一から波形目視しなければなりません。
そこで、結果確認を効率的に行うためにアサーション検証を用いることが需要です。
アサーションはさまざまな手法、テクニックがあるのでここでは触れませんが、結果確認を効率化する方法を意識して出力チェックモデルを検討して下さい。

③ シミュレーション

テストベンチ作成の後は、シミュレーターを用いて論理シミュレーションの開始です。
作成した論理回路がシミュレーション項目通りになっているかを確認しましょう。

ここでちょっとしたこだわりをご紹介します!
私が使用しているシミュレーターは、波形表示するとBackgroundが黒色で表示されるのですが、
以下のようにBackgroundを白色に変更しています。
何故かと言いますと、波形結果を報告書に纏めるときなど、Backgroundが白色だとコメントを入れても見やすいからです。また、印刷した場合Backgroundが黒色だと大量のインクを消費するので、インク代対策にもなります!

図5

★次回

今回は「論理シミュレーション工程」について、ちょっとしたこだわりや、注意すべき点をお話しました。
一つでもお役に立つ内容があったら嬉しいです。

次回は、「論理合成」についてお話しようと思います。

▼FPGA開発に欠かせないFPGAボードはこちら▼
FPGAボード特集

<記者プロフィール>

ザミ
2002年から約15年間FPGA開発業務に従事。
その後、海外ベンダーのFPGAボード販売/FAEを担当している。
趣味はブラックバス釣り。フィッシュオン王禅寺でニジマス70匹/3Hゲットして浮かれ気分中。

個別相談も承っております。下記よりお申し込みください。

個別相談会申し込み

シリーズ記事

関連記事

OTHER COLUMN

MORE  

まこちゃんブログ

NEWS

MORE  

PARTNER

  • Intel
  • Xilinx

お探しの組み込み製品はキーワードで検索!