HDL 詳細設計および検証

DO-254のガイドラインに沿ってHDL設計と検証を行うのは厳密な作業で、HDL設計ツールやシミュレータにも特別な機能と高性能が求められます。Active-HDL™とRiviera-PRO™は、グラフィカル・デザイン・エントリ、検証、管理・文書化機能などを装備した柔軟でシームレスな設計検証プラットフォームです。

HDLのグラフィカル・エントリ:ブロック・ダイアグラム・エディタとステート・マシン・エディタ

ブロック・ダイアグラム・エディタはVHDL/Verilog/EDIFデザインをグラフィカルに入力できるツールです。HDLデザインの大部分が構造化されていれば、ソースコードで入力するより、ブロック・ダイアグラムとして記述する方が簡単なことが多いです。

ステート・ダイアグラム・エディタは同期マシンや非同期マシンのステート・ダイアグラムをグラフィカルに編集できるツールです。ステート・ダイアグラムは、従来の順序回路のモデリングに代わる記述方法です。HDLコードを手入力する代わりに、論理ブロックをグラフィカルなステート・ダイアグラムとして記述できます。

HDLコード・トゥ・グラフィックス・コンバータ

コード・トゥ・グラフィックス・コンバータはVHDL/Verilogソースコードをブロック・ダイアグラムやステート・ダイアグラムに自動変換するツールです。VHDL/Verilog/EDIFのソース・ファイルを解析して、発見されたエンティティやモジュール、セルの数に応じてブロック・ダイアグラム・ファイルに変換します。このブロック・ダイアグラム・ファイルは自動でデザインに取り込むことができます。

VHDL 2008シミュレーション

VHDL 2008言語規格を最大限サポートしています。最新規格であるIEEE Std 1076-2008(VHDL 2008の名前で知られる)は、長く待望されていた改善点や新機能を持った言語規格です。よく使われるタイプが1つの規格で定義され、演算子も改善・拡張されて、if文とcase文と組み合わせprocess(all)文も改善されています。また、「if...generate」文も改良され、新たに「case...generate」文や、ポートマップの式、出力からの読み込み、外部名、ソースコードの暗号化、アサーション、VHPIなどがサポートされました。互換性を保つためにシミュレータは必要に応じてVHDL 2002モードや93モードに切り換えることもできます。利便性を高めるため、シミュレータではスピードを上げるためにシミュレーションを最適化したり、IEEE規格を厳格に守って徹底的にデバッギングしたりと、オプションを色々選べます。

HDLデバッギングとポスト・シミュレーション・デバッギング

エラーのデバッグやデザインのビヘイビアを検証する機能をたくさん持ったツールです。インタラクティブ・デバッギング機能には、HDLシンタックス・チェック、ソースコード・トレース(トレース情報、トレースオーバー、トレースアウト、トレースオーバー遷移)、ブレークポイント挿入、ブロック・ダイアグラムのグラフィカル・デバッギング、ステート・ダイアグラムのグラフィカル・デバッギングなどがあります。リスト(デルタ)ビューワ、ウォッチ・ウィンドウ、プロセス・ウィンドウ、波形ウィンドウ、データフロー・ウィンドウ、コールスタック・ウィンドウなど、ウィンドウを複数開いてシミュレーション結果を確認することもできます。

ポスト・シミュレーション・デバッグはシミュレーション・プロジェクトを「オフライン」モード(シミュレータと接続しない状態)でデバッグできるという、非常に便利な機能です。エンジニアは通常のシミュレーションを1回実行してポスト・シミュレーション・データを収集したら、ポスト・シミュレーション・モードで必要なだけ繰り返しデバッグすることができます。それだけでなく、シミュレーション結果やポスト・シミュレーション・ファイルを共有して別のコンピュータに持って行ったりすることもできます。

信号トレース・数値表示機能付属のRTLビューワ

アクティブなデザインの接続を探索して、シミュレーション中にインスタンスやコンカレント文、信号、ネット、レジスタなどの間のデータ・フローを解析できるツールです。ツールのビューとしては階層/フラット/グレーのデータ・フロー・ダイアグラムがあり、プロジェクト内部を伝搬するイベントをトレースしたり予期しない出力値を発生させる可能性のある部分を検出したりするのに特に役立ちます。

波形ビューワ・エディタと未知値のトレース

波形ビューワはシミュレーション結果をグラフィカルな波形で表示するツールです。シミュレーション中、シミュレーション・カーネルは選択された信号や静的変数(共用変数やプロセス内変数など)、ネット、レジスタなどの波形を波形ビューワ/エディタ・ウィンドウに出力します。波形はテストベクタとして次のシミュレーションで信号やネットに適用することもできます。波形は印刷したりPDFやHTMLにエクスポートしたりして文書化することも可能です。

未知値や未定義値("x", "w"など)はテスト・エンティティやモジュールの出力ポートで予期しない挙動を引き起こす場合があります。このツールは未知値が発生してからデザインを伝搬する前に検出してレポートできるコマンドライン・ユーティリティです。モニタリングしている信号に未知の値が代入されたらシミュレーションを停止することができます。コンソールにはメッセージと共に、未知の値が検出された信号や時間が表示されます。

アサーション・ベース検証

アサーションはデザイン内部のエラー検出と複雑なイベントの流れを検証・記述するのに活用します。アサーションは要求の検証に使えます。アサーションはパラメータ化した検証ルールと一緒に再利用可能なユニットにカプセル化できますので、ユーザ定義チェッカかまたはユニバーサル・プロトコルに特化した独自のチェッカとして設計で利用されます。

コード・カバレッジ、トグル・カバレッジ、パス・カバレッジ

コード・カバレッジは開発したソースコードがどれだけ要件を満たしているかをチェックするためのツールです。HDLの文がシミュレーション中にテストベンチからどの程度実行されたか、HDLデザイン内の要素がどの程度検証されたかをチェックします。コード・カバレッジはRTCA/DO-254 Appendix B 3.3.1に記載された最新の検証手法である要素解析もサポートしています。

トグル・カバレッジは信号の論理値の変化を通してデザインの挙動を測定するプログラムです。トグル・カバレッジが出すレポートからは、モニタした信号が初期化されたか、立ち上がりエッジや立ち下がりエッジを起こしたか、シミュレーション・セッション中の立ち上がり・立ち下がりエッジの数などが分かります。レポートからスティミュラスの品質を検証したりデザイン内で何もしない構造などを特定したりすることができます。シミュレーション中に初期化されない信号やテストベンチで適切に実行されない信号を簡単に特定できます。

パス・カバレッジはプログラムの実行に関する情報を集めてプログラムのシーケンス組み合わせ(プログラムのパス)がテストベンチですべて検証されているかどうか解析するデバッグ・ツールです。プログラムのパスは文が一定の順序で連続して実行されたその一連の流れです。ツールはシミュレーション中に一連の文が実行された順序や、検証された分岐や、検証された論理条件も情報として収集します。

ソース・リビジョン管理とデザイン文書化機能

ソース・リビジョン管理はデザインのソース・ファイルのバージョンやリビジョンをHDLシミュレータ環境から直接操作できるツールです。この環境では、デザインの変更を追跡したり一連のバージョン間の差分を見たりすることができます。また、ソース・リビジョン管理システムは設計者のグループが同じプロジェクトに参加できるようにすることで、チームワークを実現します。ファイルがレポジトリにアーカイブされると、他のチームメンバーもそのファイルを利用できるようになります。さらに、ファイルへの変更はすべてヒストリ付きで保存されるので、いつでもどのバージョンも復活させることができます。ソース・リビジョン管理のシステム・データベースで、グループのメンバーはプロジェクトの最新バージョンを確認して、変更を加えて、新しいバージョンとして保存することができます。

DO-254認証にはデザインの文書化が必要です。このツールには強力なドキュメンテーション機能が付いていて、ワークスペースやデザインをテキストやグラフィックにして、HTML形式やPDF形式のファイルを作成できます。デザイン・ファイルや波形、ブロック・ダイアグラム、添付ドキュメントなどのデザイン要素はすべてHTMLやPDFの文書にエクスポートできますが、その際色々なオプションで制御が可能です。生成されるドキュメントはつねにデザインの階層を保持しているので、複雑なデザインも楽にナビゲーションできます。ベクタ画像にエクスポートできるので、スケマティックの解像度をドキュメントの中でも維持することができます。

サード・パーティの合成ツールと配置配線ツールとの統合

Active-HDLのデザイン・フロー・マネージャはサード・パーティの合成ツールや配置配線ツールへのインタフェースを持っているので、FPGAデザイン・フロー全体で使える唯一のプラットフォームを構築することができます。

Ask Us a Question
x

Ask Us a Question

x
Captcha ImageReload Captcha
Incorrect data entered.
Thank you! Your question has been submitted. Please allow 1-3 business days for someone to respond to your question.
Internal error occurred. Your question was not submitted. Please contact us using Feedback form.