このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
テストベンチとしてのSimulink
テストベンチコシミュレーション中の通信
HDL シミュレータを Simulink® アプリケーションにリンクすると、次の図に示すように、シミュレータはサーバーとして機能します。
この場合、HDL シミュレーターは、Simulink モデル内のコシミュレーション ブロックから受信したシミュレーション要求に応答します。Simulink からコシミュレーション セッションを開始します。セッションが開始されると、Simulink と HDL シミュレーターを使用してシミュレーションの進行状況と結果を監視できます。たとえば、波形ウィンドウに信号を追加して、シミュレーションのタイミング図を監視することができます。
次の図に示すように、Simulink モデル内の複数のコシミュレーション ブロックは、固有の TCP/IP ソケット ポートを使用して、HDL シミュレーターの複数のインスタンスのサービスを要求できます。
HDL シミュレータを Simulink アプリケーションにリンクすると、シミュレータはサーバーとして機能します。HDL Verifier™ 通信インターフェースを使用して、HDL Cosimulation ブロックは、HDL シミュレーターでシミュレーション中の HDL モデルに入力信号を適用し、そこから出力信号を読み取ることで、ハードウェア コンポーネントをコシミュレーションします。
メモ
Vivado® ユーザー: Simulink はコシミュレーションを単一のプロセスとして実行するので、HDL サーバーと通信する必要はありません。
この図は、HDL Cosimulation ブロックを含むサンプルの Simulink モデルを示しています。接続は共有メモリを使用しています。
HDL Cosimulation ブロックは、HDL でコーディングされたマンチェスター レシーバーをモデル化します。モデル内のその他のブロックとサブシステムには次のものが含まれます。
Frequency Error Range ブロック、Frequency Error Slider ブロック、および Phase Event ブロック
マンチェスターエンコーダサブシステム
データアライメントサブシステム
同相/直交(I/Q)キャプチャサブシステム
Communications Toolbox™ ソフトウェアの Error Rate Calculation ブロック
Bit Errors ブロック
Data Scope ブロック
Communications Toolbox ソフトウェアの Constellation Diagram ブロック
Simulink ソフトウェアの使用開始については、Simulink のオンライン ヘルプまたはドキュメントを参照してください。
Simulink がコシミュレーション信号を駆動する方法
HDL Cosimulation ブロックの出力ポートを HDL モデル階層内の任意の信号にバインドできますが、信号を入力ポートに接続するときは注意が必要です。バインド先のシグナルに他のドライバーがないことを確認します。そうなる場合は、解決されたロジック タイプを使用してください。そうしないと、予期しない結果が発生する可能性があります。
複数のドライバーを持ち、解決されている信号 (たとえば、VHDL® タイプ STD_LOGIC
である信号) を使用する必要があるときは、Simulink は信号の Simulink サンプル レートによって定義される各時間ステップで解決関数を適用します。他のドライバーによっては、Simulink 値が適用される場合と適用されない場合があります。さらに、Simulink はサンプル時間の間に発生する信号の変化を制御できません。
メモ
コシミュレーションで使用される信号に読み取り/書き込みアクセス権があることを確認します。HDL シミュレータを使用して読み取り/書き込みアクセスを確認できます。詳細については、HDL シミュレータのドキュメントを参照してください。
このルールは、Ports、Clocks、および Simulation ペイン上のすべての信号と、他の方法でモデルに追加された信号に適用されます。
テストベンチコシミュレーション中のマルチレート信号
HDL Verifier ソフトウェアは、単一の HDL Cosimulation ブロック内で、異なるレートでサンプリングまたは更新される信号であるマルチレート信号の使用をサポートします。HDL Cosimulation ブロックは、各信号の Simulink サンプル レートで各信号のデータを交換します。入力信号の場合、HDL Cosimulation ブロックはすべての信号レートを受け入れて尊重します。
HDL Cosimulation ブロックでは、各出力ポートに独立したサンプル時間を指定することもできます。各出力ポートのサンプル時間を明示的に設定するか、デフォルトを受け入れる必要があります。この設定を使用すると、HDL シミュレータから対応する信号を読み取ることで、Simulink が出力ポートを更新する速度を制御できます。
連続時間信号
Simulink Zero-Order Hold ブロックを使用して、HDL Cosimulation ブロックに入力される連続信号にゼロ次ホールド (ZOH) を適用します。
テストベンチシミュレーション用の HDL コシミュレーションブロック機能
HDL Verifier HDL Cosimulation ブロックは、HDL シミュレーターで同時にシミュレーションされているハードウェア コンポーネントを Simulink モデルの残りの部分にリンクします。
Simulink と HDL シミュレーターをリンクするには、次の 2 つの方法があります。
より大きなシステム指向の Simulink モデルのフレームワークに適合した単一の HDL Cosimulation ブロックとして。
Simulink モデルは、それぞれが特定のハードウェア コンポーネントを表す HDL Cosimulation ブロックのコレクションで構成されます。
ブロック マスクには、ポートと信号の情報の入力、通信モードの設定、クロックの追加 (Xcelium™ と ModelSim® のみ)、シミュレーション前とシミュレーション後の Tcl コマンドの指定 (Xcelium と ModelSim のみ)、およびタイミング関係の定義を行うためのパネルが含まれています。
モデルのコンポーネントの 1 つを VHDL または Verilog® でコーディングし、HDL シミュレーター環境でシミュレートした後、HDL 表現を HDL Cosimulation ブロックとして Simulink モデルに統合します。サポートされている HDL シミュレータごとに 1 つのブロックがあります。これらのブロックは、HDL Verifier ブロック ライブラリ内の Simulink ライブラリにあります。例として、Mentor Graphics® ModelSim で使用するブロックを次の図に示します。
ブロック パラメータ ダイアログ ボックスでパラメータの値を指定して、HDL Cosimulation ブロックを構成します。HDL Cosimulation ブロック パラメータ ダイアログ ボックスは、次の情報を指定するタブ付きペインで構成されています。
ポート ペイン:HDL 設計の内部信号を含む信号と出力サンプル時間に対応するブロック入力ポートと出力ポート。
接続ペイン:シミュレータ間でデータを交換するために使用される通信のタイプと関連設定。
タイムスケール ペイン:Simulink ソフトウェアと HDL シミュレータ間のタイミング関係。
時計パネル (Xcelium および ModelSim のみ):モデルに適用するオプションの立ち上がりエッジ クロックと立ち下がりエッジ クロック。
シミュレーション ペイン (Xcelium および ModelSim のみ):シミュレーションの前後に実行する Tcl コマンド。
これらの各ペインの詳細については、HDL Cosimulation リファレンス ページを参照してください。