Main Content

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

テストベンチとしてのSimulink

テストベンチのコシミュレーション中の通信

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

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

次の図に示すように、 Simulinkモデル内の複数の協調シミュレーション ブロックは、一意の TCP/IP ソケット ポートを使用して、HDL シミュレーターの複数のインスタンスのサービスを要求できます。

HDL シミュレーターをSimulinkアプリケーションにリンクすると、シミュレーターはサーバーとして機能します。HDL Verifier™通信インターフェイスを使用して、 HDL Cosimulationブロックは、HDL シミュレーターでのシミュレーション中に HDL モデルに入力信号を適用したり、HDL モデルから出力信号を読み取ったりすることで、ハードウェア コンポーネントを協調シミュレーションします。

メモ

Vivado®ユーザー: Simulink は単一プロセスとして協調シミュレーションを実行するため、HDL サーバーと通信する必要はありません。

この図は、 Simulink HDL Cosimulation モデルを示しています。接続は共有メモリを使用しています。

HDL Cosimulationブロックは、HDL でコーディングされたマンチェスター受信機をモデル化します。モデル内の他のブロックとサブシステムには次のものがあります。

  • Frequency Error Rangeブロック、 Frequency Error Sliderブロック、 Phase Eventブロック

  • マンチェスターエンコーダサブシステム

  • データ整列サブシステム

  • 同相/直交 (I/Q) キャプチャ サブシステム

  • Error Rate CalculationソフトウェアのCommunications Toolbox™ ブロック

  • Bit Errors ブロック

  • Data Scope ブロック

  • Constellation DiagramソフトウェアのCommunications Toolbox ブロック

Simulinkソフトウェアの使用を開始する方法については、 Simulinkのオンライン ヘルプまたはドキュメントを参照してください。

Simulink が協調シミュレーション信号を駆動する方法

HDL Cosimulationブロックの出力端子を HDL モデル階層内の任意の信号にバインドできますが、信号を入力端子に接続する場合は注意が必要です。バインドしている信号に他のドライバーが含まれていないことを確認したいと考えています。存在する場合は、解決されたロジック タイプを使用します。そうしないと、予期しない結果が生じる可能性があります。

複数のドライバーを持つ信号を使用する必要があり、それが解決されている場合 (たとえば、 VHDL®タイプSTD_LOGIC)、 Simulink は、信号のSimulinkサンプル レートで定義された各タイム ステップで分解能関数を適用します。他のドライバーによっては、 Simulink値が適用される場合と適用されない場合があります。さらに、 Simulink は、サンプル時間の間に発生する信号の変化を制御できません。

メモ

コシミュレーションで使用される信号に読み取り/書き込みアクセス権があることを確認します。HDL シミュレーターを通じて読み取り/書き込みアクセスを確認できます。詳細については、HDL シミュレーターのドキュメントを参照してください。

このルールは、 PortsClocks、およびSimulationペイン上のすべての信号、および他の方法でモデルに追加された信号に適用されます。 。

テストベンチ協調シミュレーション中のマルチレート信号

HDL Verifierソフトウェアは、単一のHDL Cosimulationブロック内で、マルチレート信号、つまりさまざまなレートでサンプリングまたは更新される信号の使用をサポートします。HDL Cosimulationブロックは、各信号のデータをその信号の Simulinkサンプル レートで交換します。入力信号の場合、 HDL Cosimulationブロックはすべての信号レートを受け入れ、尊重します。

HDL Cosimulationブロックを使用すると、出力端子ごとに独立したサンプル時間を指定することもできます。各出力ポートのサンプル時間を明示的に設定するか、デフォルトを受け入れる必要があります。この設定を使用すると、 Simulink がHDL シミュレータから対応する信号を読み取って出力ポートを更新する速度を制御できます。

連続時報

Simulink Zero-Order Holdブロックを使用して、HDL Cosimulationブロックにドライブされる連続信号にゼロ次ホールド (ZOH) を適用します。

テストベンチ シミュレーション用の HDL コシミュレーション ブロックの機能

HDL Verifier HDL Cosimulationブロックは、HDL シミュレーターで同時にシミュレーションしているハードウェア コンポーネントをSimulinkモデルの残りの部分にリンクします。

Simulinkと HDL シミュレーターをリンクするには、次の 2 つの方法があります。

  • 単一のHDL Cosimulationブロックとして、より大きなシステム指向のSimulinkモデルのフレームワークに適合します。

  • Simulinkモデルは、それぞれが特定のハードウェア コンポーネントを表すHDL Cosimulationブロックのコレクションで構成されます。

ブロック マスクには、ポートと信号の情報の入力、通信モードの設定、クロックの追加 (Xcelium™およびModelSim®のみ)、シミュレーション前およびシミュレーション後の Tcl コマンドを指定するためのパネルが含まれています。 (XceliumおよびModelSimのみ)、タイミング関係を定義します。

VHDLまたはVerilog®でモデルのコンポーネントの 1 つをコーディングし、HDL シミュレーター環境でシミュレートした後、HDL 表現をSimulinkに統合します。 $ をHDL Cosimulationブロックとしてモデル化します。サポートされている HDL シミュレーターごとに 1 つのブロックがあります。これらのブロックは、 Simulinkブロック ライブラリ内のHDL Verifierライブラリにあります。例として、 Mentor Graphics® ModelSimで使用するブロックを次の図に示します。

HDL Cosimulationブロックを構成するには、ブロックパラメーターダイアログ ボックスでパラメーターの値を指定します。HDL Cosimulationブロックパラメーターダイアログ ボックスは、次の情報を指定するタブ付きペインで構成されます。

  • ポートペイン:HDL デザインの信号 (内部信号を含む)、および出力サンプル時間に対応するブロック入力ポートと出力ポート。

  • 接続ペイン:シミュレータ間でデータを交換するために使用される通信のタイプと関連設定。

  • タイムスケールペイン:Simulinkソフトウェアと HDL シミュレーターの間のタイミング関係。

  • 時計ペイン (XceliumおよびModelSimのみ):モデルに適用するオプションの立ち上がりエッジおよび立ち下がりエッジ クロック。

  • シミュレーション ペイン (XceliumおよびModelSimのみ):シミュレーションの前後に実行する Tcl コマンド。

これらの各ペインの詳細については、 HDL Cosimulationリファレンス ページを参照してください。