Main Content

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

Simulinkコシミュレーションセッションを実行する

Simulink モデル構成パラメータを設定する

1 つ以上の HDL Verifier™ コシミュレーション ブロックを含む Simulink® モデルを作成する場合、HDL モデリングのニーズに最も合うように特定の Simulink パラメータ設定を調整することが必要な場合があります。たとえば、[モデル構成パラメータ] ダイアログ ボックスの Solver ペインで Stop time パラメータの値を調整する必要がある場合があります。

パラメータを個別に調整することも、DSP System Toolbox™ Simulink モデル テンプレートを使用して、デジタル信号処理モデリングの推奨設定で Simulink 環境を自動的に構成することもできます。

パラメーター既定の設定
'SingleTaskRateTransMsg''error'
'Solver''fixedstepdiscrete'
'EnableMultiTasking''off'
'StartTime''0.0'
'StopTime''inf'
'FixedStep''auto'
'SaveTime''off'
'SaveOutput''off'
'AlgebraicLoopMsg''error'

SaveTimeSaveOutput のデフォルト設定により、シミュレーションのパフォーマンスが向上します。

DSP System Toolbox Simulink モデル テンプレートの詳細については、DSP System Toolbox ドキュメントを参照してください。

利用可能なソケットポート番号を決定する

使用可能なソケット番号を確認するには、MATLAB® コマンド プロンプトに次のように入力します。

getAvailableSocketPort

接続ステータスを確認する

接続ステータスを確認するには、[Modeling] タブの [Compile] セクションで、[Update Model] をクリックします。接続にエラーがある場合は、Simulink から通知されます。

MATLAB コマンド pingHdlSim を使用して接続ステータスを確認することもできます。-1 が返された場合、HDL シミュレータとの接続がありません。

協調シミュレーションモデルの実行とテスト

一般的に、コシミュレーションの最後の段階は、モデルを実行してテストすることです。協調シミュレーション セッション中または協調シミュレーション セッション間でモデルを変更する場合は、いくつかの手順に注意する必要があります。コシミュレーションは、次の 3 つの方法のいずれかで実行できます。

Simulink と HDL シミュレータ GUI を使用したコシミュレーション

HDL シミュレーターを起動し、HDL 設計をロードします。テストベンチのコシミュレーションの場合は、まず HDL シミュレータでシミュレーションを開始します。次に、Simulink の Simulation タブで、Run をクリックします。Simulink がモデルを実行し、検出されたエラーを表示します。HDL シミュレータと Simulink GUI を交互に使用して、コシミュレーションの結果を監視できます。

コンポーネントのコシミュレーションの場合は、まず Simulink でシミュレーションを開始し、次に HDL シミュレータでシミュレーションを開始します。

HDL Verifier HDL シミュレータ起動コマンドの実行モード パラメータのプロパティ値として「GUI」を指定できますが、HDL Verifier では GUI の使用がデフォルト モードであるため、指定する必要はありません。

コマンドライン インターフェイス (CLI) を使用した Simulink とのコシミュレーション

コマンドライン インターフェイスを使用してコシミュレーション セッションを実行すると、コシミュレーション中に HDL シミュレーターと対話できるため、デバッグに役立ちます。

CLI を使用するには、HDL Verifier HDL シミュレータ起動コマンドの実行モード パラメータのプロパティ値として "CLI" を指定します。

注意

コマンドプロンプトに「quit -f」と入力してターミナルウィンドウを閉じます。右上隅の「X」をクリックしてターミナル ウィンドウを閉じないでください。これにより、システムからメモリタイプのエラーが発行されます。これは HDL Verifier のバグではなく、このコンテキストでの HDL シミュレータの動作方法です。

HDL シミュレーターで CTRL+C と入力してシミュレーションを中断して終了できますが、この操作によってもメモリ タイプ エラーが表示されます。

 nclaunch (Cadence Xcelium) で CLI モードを指定します

 vsim (Mentor Graphics ModelSim) で CLI モードを指定します

バッチモードを使用したSimulinkとのコシミュレーション

コシミュレーション セッションをバッチ モードで実行すると、プロセスをバックグラウンドで維持でき、GUI を解除することでメモリの需要が軽減されます。

バッチ モードを使用するには、HDL Verifier HDL シミュレータ起動コマンドの実行モード パラメータのプロパティ値として "Batch" を指定します。バッチ モードを指定して HDL Verifier HDL シミュレータ起動コマンドを発行した後、Simulink でシミュレーションを開始します。シミュレーションが完了する前に HDL シミュレータを停止するには、breakHdlSim コマンドを発行します。

 nclaunch (Cadence Xcelium) でバッチモードを指定します

 vsim (Mentor Graphics ModelSim) でバッチモードを指定します

テストコシミュレーション

協調シミュレーション中にクロックをリセットする場合は、次のいずれかの方法で行うことができます。

  • HDLシミュレータのコマンドプロンプトでHDLシミュレータforceコマンドを入力する

  • HDL Verifier コシミュレーション ブロック パラメータ ダイアログ ボックスの Simulation ペインの Post- simulation command テキスト フィールドに HDL シミュレータ force コマンドを指定します。

クロック、リセット、およびイネーブル信号も参照してください。

HDL コシミュレーション ブロック パラメータを含む Simulink モデルの一部を変更した場合は、その変更を反映するようにモデルを更新します。この更新は、次のいずれかの方法で実行できます。

  • シミュレーションの再実行

  • Modeling タブの Compile セクションで、Update Model をクリックします。

Tcl スクリプトからパラメータを設定する

シミュレーション前またはシミュレーション後に HDL シミュレータで実行する Tcl コマンドをリストする Tcl スクリプトを作成できます。

ModelSim ユーザー向け Tcl スクリプト

Tcl コマンドをリストする ModelSim DO ファイルを作成し、次のように ModelSim do コマンドでそのファイルを指定できます。

do mycosimstartup.do

または

do mycosimcleanup.do

シミュレーション後の Tcl コマンドまたは DO ファイルに quit -f コマンドを含めると、コシミュレーション セッションの終了時に ModelSim を強制的にシャットダウンできます。シミュレーション後のすべての Tcl コマンドを単一のコシミュレーション ブロックに指定し、コマンドまたは DO ファイルの最後に quit を配置します。

quit を除き、指定するコマンドまたは DO ファイルには、ModelSim プロジェクトをロードしたりシミュレータの状態を変更したりするコマンドを含めることはできません。たとえば、startstoprestart などのコマンドを含めることはできません。

Xcelium™ ユーザー向け Tcl スクリプト

Tcl コマンドをリストする HDL シミュレータ Tcl スクリプトを作成し、次のように HDL シミュレータ source コマンドでそのファイルを指定できます。

source mycosimstartup.script_extension

または

source mycosimcleanup.script_extension

シミュレーション後の Tcl スクリプトに exit コマンドを含めると、コシミュレーション セッションの終了時に HDL シミュレータを強制的にシャットダウンできます。シミュレーション後のすべての Tcl コマンドを単一のコシミュレーション ブロックに指定し、コマンドまたは Tcl スクリプトの最後に exit を配置します。

exit を除き、指定するコマンドまたは Tcl スクリプトには、HDL シミュレータ プロジェクトをロードしたりシミュレータの状態を変更したりするコマンドを含めることはできません。たとえば、runstopreset などのコマンドを含めることはできません。

この例は、-gui 引数が hdlsimmatlab または hdlsimulink と共に使用された場合の Tcl スクリプトを示しています。

after 1000 {xmsim -submit exit}

この例は、-tcl 引数が hdlsimmatlab または hdlsimulink とともに使用された場合に使用する Tcl 終了スクリプトを示しています。

after 1000 {exit}

テストベンチコシミュレーションとHDL Verifier HDLコシミュレーションブロックを使用してHDLシミュレーションの競合状態を回避する

HDL シミュレータでは、HDL コシミュレーション ブロックで定義されたクロック信号 (立ち上がりエッジまたは立ち下がりエッジ) が、これらのクロックによって駆動されるデータ入力に対して適用される順序を制御することはできません。データとクロックのアクティブ エッジの関係を慎重に検証すると、異なるコシミュレーション結果を生み出す可能性のある競合状態を回避できます。HDL シミュレータにおける競合状態を参照してください。