メインコンテンツ

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

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™)

  • launchVCS (VCS®)

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

次の図は、コンポーネント シミュレーション セッション中に MATLAB コンポーネント関数が 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 ブロックを作成するコシミュレーション Wizard 機能が含まれています。詳細については、協調シミュレーション用の HDL コードのインポートの準備を参照してください。

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

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

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

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

すべての HDL Verifier MATLAB 関数と HDL Cosimulation ブロックは、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 ビット