QEMUとRiviera-PROによるコ・シミュレーション 現在のSoC FPGAは、システム、ソフトウェア、およびハードウェアの各エンジニアに新たな検証課題を提示しています。HW/SW統合に関する一般的な問題は増え続けていますが、多くの企業はまだテストベッドでシステム検証を実行しています。テストベッドで問題を発見るのは遅すぎることが多く、プロジェクトの遅延の原因になります。シミュレーションは、その使いやすさと高度なデバッグ機能から、長年にわたり半導体の事実上の機能検証手法として利用されてきました。FPGAアーキテクチャが、マルチコア、オペレーティングシステム、ソフトウェア/ドライバ、プログラマブルロジックを備えたSoCアーキテクチャに変化するにつれて、システムレベルのシミュレーションの必要性はかつてないほど重要になってきています。 さまざまなユーザー要求や環境に対応するために、アルデックはQEMUとRiviera-PRO間のZynq7000およびZynqMPSoCシステムのHW/SWコ・シミュレーション用のいくつかのオプションを提供します: リモートポート IPCを経由したLibSystemCTLM-SoCライブラリの使用 アルデックのQEMUブリッジとAXI BFMの使用 LibSystemCTLM-SoCライブラリによるリモートポート IPC経由のコ・シミュレーション QEMUで実行されるソフトウェアアプリケーション/ドライバを使用したHDLコードのシステム統合とコ・シミュレーションは、Riviera-PRO HDLシミュレータで実行するSystemCからのライブラリ (LibSysytemCTLM-SoC) のフルコンパイルによって簡素化されます。LibSysytemCTLM-SoCはリモートポートを利用してRiviera-PROとQEMUを接続し、SystemCのTLMトランザクションをAXIに、またはその逆に変換して、コ・シミュレーション用の高速なインタフェースを提供します。 図 1: リモートポート IPCを経由したLibSystemCTLM-SoCライブラリの使用 Riviera-PRO、Xilinx libSystemCTLM-SoCライブラリ、Xilinx QEMUの組み合わせで、IRQを使用したPS検証全体をサポート BFM、TLM、ブリッジなどの追加要素の使用は必要ない QEMUとRiviera-PROの通信はライブラリの形で統合 システム統合をサポートするための手作業による変更は不要 LibSysytemCTLM-SoCライブラリは、Transfer Level Modeling(TLM)を使用したリモートプロトコルをサポートしています。このトランザクションアキュレートのインタフェースにより、プログラマブルロジック(PL)システムとプロセッシングシステム(PS)間の完全なSoCコ・シミュレーションが可能になります。 ステムのコ・ソリューションは、システムを2つのパートに分割します。PSはQEMUでエミュレートし、PLはRiviera-PROシミュレータでシミュレーションします。すべてのトラフィックと同期データはライブラリによってサポートされています。AXI, GPIO, HPなどのすべてのPSトランザクションインタフェースは検証可能です。Riviera-PROでトランザクションの使用に関する詳細については、Riviera-PRO トランザクションのドキュメントを参照してください。LibSysytemCTLM-SoCライブラリのレコーダは、PSインタフェースをASDB (Aldec Simulation Database) 形式に記録する役割を果たします。 ハードウェアエンジニア(Riviera-PROを使用)は、HDLコードにブレークポイントを設定し、データフローを調べ、さらにはQEMUで実行中のソフトウェアアプリケーションによって実行されるコードカバレッジとパスを分析することができます。ソフトウェアエンジニア(QEMUを使用)は、GNU Debugger(GDB)を使用して、カーネルとドライバの両方をインスツルメンテーションし、ブレークポイントを使用してコードをステップスルーすることができます。 アルデックのQEMUブリッジとAXI BFMを用いたコ・シミュレーション アルデックのQEMUブリッジとAXI BFMを使用してコ・シミュレーションを行う方法もあります。QEMUブリッジはPS(QEMU)とPL側の通信を提供し、ユーザはAXI BFMを使用してAXIベースのトランザクションをシミュレートすることができます。 QEMU ブリッジは、Riviera-PROとQEMUを接続しSystemC TLMトランザクションをAXIに、またはその逆に変換するコ・シミュレーション用の高速なインタフェースを提供します。 図 2: アルデックのQEMU ブリッジとAXI BFMを使用 AXIベースデザインのRTLシミュレーション用にアルデックが開発したAXIバスファンクショナルデル (BFMs) がRiviera-PROで利用できます。BFMは暗号化されたVerilogとSystemVerilogのモジュールとして提供されます。ユーザのテストベンチはアルデックが提供するVerilogまたはSystem VerilogのタスクAPIを使用してBFMをテストすることができます。アルデックのAXI BFMがサポートするBFMは次の通りです:AXI 3 Master, AXI 3 Slave, AXI 4 Master, AXI 4 Slave, AXI 4 Lite Master, AXI 4 Lite Slave, AXI 4 Stream Master, AXI 4 Stream Slave 各BFMを使用すると、組込みAXIトランザクションレコーダをオンにして、AXIトランザクションをASDB (Aldec Simulation Database) 形式に記録することが可能です。Riviera-PROでトランザクションの使用に関する詳細については、Riviera-PRO トランザクションを参照してください。