Main Content

このページは機械翻訳を使用して翻訳されました。元の英語を参照するには、ここをクリックします。

HDL コシミュレーション

MATLAB または Simulink を使用した HDL 協調シミュレーション

HDL Verifier™ ソフトウェアは、MATLAB® 関数、MATLAB System object™、および Simulink® ブロックのライブラリで構成されており、これらすべてが HDL シミュレータと MATLAB または Simulink 間の通信リンクを確立します。

HDL Verifier ソフトウェアは、次のプロセスで利用可能なツールを統合することで、FPGA および ASIC の開発を効率化します。

  1. ハードウェア設計リファレンスモデルの仕様開発

  2. 参照モデルに基づいて HDL でハードウェア設計を実装する

  3. リファレンスデザインとの比較による設計の検証

次の図は、HDL シミュレーターと MathWorks® 製品がこのハードウェア設計シナリオにどのように適合するかを示しています。

図が示すように、HDL Verifier ソフトウェアは、従来は個別に使用されていたツールを接続して、設計プロセスの特定のステップを実行します。これらのツールを接続すると、実装と元の仕様を直接共同シミュレーションできるため、検証が簡素化されます。この共同シミュレーションにより、大幅な時間の節約と、手動の比較および検査に伴うエラーの排除が実現します。

前述の設計シナリオに加えて、HDL Verifier ソフトウェアを使用すると、次の方法でツールを操作できます。

  • MATLAB または Simulink を使用して、HDL コードのテスト信号とソフトウェア テスト ベンチを作成します。

  • MATLAB または Simulink を使用して HDL シミュレーションの動作モデルを提供します。

  • MATLAB 分析および視覚化機能を使用して、HDL 実装をリアルタイムで把握します。

  • Simulink を使用して、従来の HDL 記述をシステムレベルのビューに変換します。

メモ

HDL Verifier ソフトウェアを使用すると、SystemVerilog、SystemC、またはその両方を使用してモジュールを MATLAB または Simulink と協調シミュレーションできます。SystemC の周囲に簡単なラッパーを記述し、SystemVerilog コシミュレーション接続がリンク コシミュレーション インターフェイスでサポートされているデータ型のポートまたは信号に接続されていることを確認します。

コシミュレーションの仕組みの詳細については、次のセクションを参照してください。

MATLAB と HDL シミュレータとのリンク

MATLAB とリンクすると、次の図に示すように、HDL シミュレーターはクライアントとして機能します。

このシナリオでは、MATLAB サーバー関数は、HDL シミュレータ セッションから受信するサービス要求を待機します。リクエストを受信すると、サーバーは通信リンクを確立し、HDL シミュレーターでシミュレーション中の HDL モジュール (VHDL® または Verilog® でコーディング) のデータの計算、検証、または視覚化を行う指定された MATLAB 関数を呼び出します。

サーバーが実行中になったら、HDL シミュレータを起動して設定するか、提供されている HDL Verifier 関数を使用して MATLAB を使用することができます。

  • nclaunch (Xcelium™)

  • vsim (ModelSim®)

次の図は、テストベンチ シミュレーション セッション中に MATLAB テストベンチ関数がどのようにラップアラウンドして HDL シミュレータと通信するかを示しています。

次の図は、コンポーネント シミュレーション セッション中に MATLAB コンポーネント関数が HDL シミュレータによってラップされ、HDL シミュレータと通信する方法を示しています。

特定のテストベンチまたはコンポーネント セッションを開始するときに、次の情報を識別するパラメータを指定します。

  • MATLAB サーバーに接続するためのモードと、該当する場合は TCP/IP データ

  • HDLインスタンスに関連付けられ、HDLインスタンスに代わって実行されるMATLAB関数

  • モジュールのMATLAB関数がいつ呼び出されるかを指定するタイミング仕様およびその他の制御データ

Simulink と HDL シミュレータとのリンク

Simulink とリンクすると、次の図に示すように、HDL シミュレータがサーバーとして機能します。

この場合、HDL シミュレーターは、Simulink モデル内のコシミュレーション ブロックから受信したシミュレーション要求に応答します。Simulink からコシミュレーション セッションを開始します。セッションが開始されると、Simulink と HDL シミュレーターを使用してシミュレーションの進行状況と結果を監視できます。たとえば、HDL シミュレータの Wave ウィンドウに信号を追加して、シミュレーションのタイミング図を監視することができます。

HDL Cosimulation ブロックのブロック パラメータ ダイアログ ボックスを使用して、次の項目を設定できます。

  • HDL モジュールの信号 (内部信号を含む) に対応するブロック入力ポートと出力ポート。必要に応じて、個々のブロック出力ポートのサンプル時間と固定小数点データ型を指定できます。

  • シミュレーション ツール間でデータを交換するために使用される通信のタイプと通信設定。

  • モジュールに適用する立ち上がりエッジまたは立ち下がりエッジ クロック。各クロックの周期を個別に指定できます。

  • シミュレーションの前後に実行する Tcl コマンド。

HDL Verifier ソフトウェアは、HDL シミュレータにカスタマイズされた関数のセットを装備します。ModelSim の場合、関数 vsimulink を使用すると、Simulink とのコシミュレーション用の HDL モジュールのインスタンスを使用して HDL シミュレーターが実行されます。モジュールがロードされたら、Simulink からコシミュレーション セッションを開始できます。Xcelium ユーザーは、関数 hdlsimulink を使用して同じ操作を実行できます。

HDL Verifier ソフトウェアには、値変更ダンプ (VCD) ファイルを生成するためのブロックも含まれています。このブロックで生成された VCD ファイルを使用して、次のタスクを実行できます。

  • HDLシミュレーション環境でSimulinkシミュレーション波形を表示する

  • 同じまたは異なるシミュレーション環境を使用して、複数のシミュレーション実行の結果を比較する

  • シミュレーション後の分析ツールへの入力として使用

HDLコシミュレーションウィザード

HDL Verifier には、既存の HDL コードを使用してカスタマイズされた MATLAB 関数 (テスト ベンチまたはコンポーネント)、MATLAB System object、または Simulink HDL Cosimulation ブロックを作成する Cosimulation Wizard 機能が含まれています。詳細については、協調シミュレーション用の HDL コードのインポートの準備を参照してください。

HDLコシミュレーションのための通信

HDL シミュレータと MATLAB または Simulink 間のリンクに使用する通信モードは、アプリケーションがローカルの単一システム構成で実行されるか、ネットワーク構成で実行されるかによって異なります。これらの製品と MathWorks 製品が同じシステム上でローカルに実行でき、アプリケーションに必要な通信チャネルが 1 つだけの場合は、共有メモリと TCP/IP ソケット通信のどちらかを選択できます。共有メモリ通信は最適なパフォーマンスを提供し、通信のデフォルト モードです。

TCP/IP ソケット モードはより汎用性があります。単一システムおよびネットワーク構成に使用できます。このオプションは最大のスケーラビリティを提供します。TCP/IP ソケット通信の詳細については、TCP/IP ソケット ポート を参照してください。

ハードウェア記述言語 (HDL) のサポート

すべての HDL Verifier MATLAB 関数と HDL コシミュレーション ブロックは、Verilog モデルと VHDL モデルの両方に対して同じ言語透過的な機能セットを提供します。

HDL Verifier ソフトウェアは、混合言語 HDL モデル (Verilog と VHDL の両方のコンポーネントを含むモデル) もサポートしているため、VHDL 信号と Verilog 信号を同時にコシミュレーションできます。MATLAB と Simulink の両方のソフトウェアは、あらゆるレベルで異なる言語のコンポーネントにアクセスできます。

HDL コシミュレーション ワークフロー

HDL Verifier ユーザー ガイドには、次のワークフローでサポートされている HDL シミュレーターで検証ソフトウェアを使用する手順が記載されています。

  • MATLAB テストベンチ環境で HDL コンポーネントをシミュレートする

  • HDL コンポーネントを MATLAB コンポーネント関数に置き換える

  • Simulink テストベンチ環境で HDL コンポーネントをシミュレートする

  • HDL コンポーネントを Simulink アルゴリズムに置き換える

  • 後処理のためのSimulink信号状態遷移の記録

製品の機能とプラットフォームのサポート

製品の特徴必要な製品おすすめ商品サポートされているプラットフォーム
MATLAB と HDL シミュレータのコシミュレーション (関数)MATLABFixed-Point Designer™, Signal Processing Toolbox™Windows® 32 ビットおよび 64 ビット; Linux® 64 ビット
MATLAB と HDL シミュレータのコシミュレーション (System object)MATLAB および Fixed-Point DesignerCommunications Toolbox™, DSP System Toolbox™Windows 32 ビットおよび 64 ビット; Linux 64 ビット
Simulink と HDL シミュレータのコシミュレーションSimulink, Fixed-Point DesignerSignal Processing Toolbox, DSP System ToolboxWindows 32 ビットおよび 64 ビット; Linux 64 ビット