Main Content

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

Simulink HDL コシミュレーションを始める

Simulink® 環境で Cosimulation Wizard を使用して HDL Verifier™ アプリケーションをセットアップします。

コシミュレーション ウィザードは、MATLAB® または Simulink® とハードウェア記述言語 (HDL) シミュレータ間のコシミュレーションを設定するプロセスをガイドするグラフィカル ユーザー インターフェイス (GUI) です。

この例では、Simulink と HDL シミュレータを使用して、Verilog で記述されたレイズド コサイン フィルターの設計を検証します。レイズドコサインフィルタは、デジタル通信システムのパルス整形フィルタとしてよく使用されます。変調パルスの入力に対して符号間干渉 (ISI) は発生しません。

このレイズド コサイン フィルタの機能を検証するために、Simulink テストベンチが提供されています。このテストベンチは、テスト対象の HDL 設計 (DUT) への入力を生成し、入力と出力の両方の波形をプロットします。

コシミュレーション ウィザードは、このレイズド コサイン フィルターの提供された Verilog ファイルを入力として受け取ります。また、各ステップでコシミュレーションを設定するために必要なユーザー入力も収集します。例の最後に、コシミュレーション ウィザードは、Simulink モデルの HDL 設計を表す Simulink ブロック、HDL 設計をコンパイルする MATLAB スクリプト、およびコシミュレーション用に HDL シミュレーターを起動する MATLAB スクリプトを生成します。シミュレーション中、この HDL フィルターの入力波形と出力波形を Simulink で確認できます。

要件と前提条件

この例では、レジスタ転送レベル (RTL) 設計を検証するために、Simulink とこれらの HDL シミュレーターのいずれかが必要です。

  • Xilinx® の Vivado® シミュレータ

  • Mentor Graphics® の ModelSim® または Questa®

  • Cadence® の Xcelium®

協調シミュレーションウィザードを起動

モデルから Cosimulation Wizard を起動するには、Simulink ツールストリップの Apps タブを選択し、HDL Verifier をクリックします。このアクションにより、HDL Verifier タブが Simulink ツールストリップに追加されます。次に、モードセクションで、HDL コシミュレーションを選択します。Cosim ブロックの生成 セクションで HDL ファイルのインポート をクリックします。

コシミュレーションウィザードを使用して HDL コシミュレーションブロックを構成する

コシミュレーション タイプ ページで、次の手順を実行します。

1.a)。ModelSim または Questa を使用している場合は、HDL シミュレータ オプションを ModelSim のままにしておきます。

b)。Xcelium を使用している場合は、HDL シミュレータ オプションを Xcelium に変更します。

c)。Vivado シミュレータを使用している場合は、HDL シミュレータ オプションを Vivado Simulator に変更します。

2. HDL シミュレータ実行ファイルがシステム パスに表示される場合は、デフォルト オプション システム パス上の HDL シミュレータ実行ファイルを使用する オプションのままにします。これらの実行可能ファイルがパス上に表示されない場合は、参照 ボタンをクリックして、これらの実行可能ファイルの場所を指定します。

次へ をクリックして、HDL ファイル ページに進みます。

HDL ファイル ページで、次の手順を実行します。

  1. 追加 をクリックし、Verilog の場合は rcostflt_rtl.v、VHDL の場合は rcosflt_rtl.vhd を選択します。

  2. ファイル リスト内のファイルを確認し、ファイルの種類が期待どおりに識別されていることを確認します。

次へ をクリックして、HDL コンパイル ページに進みます。

HDL コンパイル ページで、コシミュレーション ウィザードはコンパイル コマンド ウィンドウにデフォルトのコマンドを一覧表示します。このチュートリアルではこれらのコマンドを変更する必要はありません。

独自のコードを使用して Cosimulation Wizard を実行する場合、このウィンドウでコンパイル コマンドを追加または変更できます。

次の図は、ModelSim のコンパイル コマンドを示しています。

次へ をクリックして、HDL モジュール ペインに進みます。これにより、コンパイルがトリガーされます。MATLAB コンソールにコンパイル ログが表示されます。コンパイル中にエラーが発生した場合、そのエラーはステータス領域に表示されます。

シミュレーション オプション ペインで、次の手順を実行します。

ModelSim または Xcelium

  1. 協調シミュレーションの HDL モジュール/エンティティの名前を指定します。ドロップダウンリストからrcosflt_rtlを選択します。このモジュールは、コシミュレーションに使用する Verilog/VHDL モジュールです。ドロップダウン リストに rcosflt_rtl が表示されない場合は、ファイル名を手動で入力できます。

  2. 接続方法では、ファイアウォール ポリシーで TCP/IP ソケット通信が許可されていない場合は、Shared Memory を選択します。

パラメータ ファイル セクションを空白のままにすると、ウィザードはデフォルト値を含むパラメータ ファイルを作成します。ファイルを編集して、デフォルトのパラメータ値を上書きできます。

Vivado シミュレータ

  1. デフォルトでは、モジュールの名前は rcosflt_rtl に設定されています。このモジュールは、コシミュレーションに使用する Verilog/VHDL モジュールです。

  2. この例では、デバッグ内部信号offに設定し、HDL 時間精度1psに設定します。

次へ をクリックして、Simulink ポート ペインに進みます。コシミュレーション ウィザードは、指定された HDL モジュールとシミュレーション オプションを使用して、バックグラウンド コンソールで HDL シミュレーターを起動します。ウィザードが HDL シミュレータを起動すると、ウィザードは Verilog/VHDL モジュール rcosflt_rtl の入力ポートと出力ポートを設定し、次のステップで表示します。

ポート タイプの指定 ステップでは、コシミュレーション ウィザードに、rcostflt_rtl の入力ポートと出力ポートをそれぞれ含む 2 つのテーブルが表示されます。

コシミュレーション ウィザードは、各ポートのポート タイプを識別しようとします。ウィザードがポートを誤って識別した場合は、これらのテーブルを使用してポート タイプを変更できます。

  1. 入力ポートは、ClockResetInputUnused から選択できます。HDL Verifier は、コシミュレーション中に Inputs から Simulink とマークされた入力ポートのみを接続します。

  2. HDL Verifier は、コシミュレーション中に Output とマークされた出力ポートを Simulink に接続します。ウィザードと Simulink は、コシミュレーション中に Unused とマークされた出力ポートを無視します。

  3. Clock および Reset として識別される信号のパラメータは、後の手順で変更できます。

デフォルトのポート タイプを受け入れ、次へ をクリックして、出力ポートの詳細ページに進みます。

出力ポートの詳細ページで、次の手順を実行します。

  1. バックプロパゲーションを介して継承するには、filter_out から -1 のサンプル時間を設定します。

  2. Verilog コードから、Cosimulation Wizard が出力を sfix34_En29 形式で表していることがわかります。次のフィールドを変更します。

  • データ型を Fixedpoint に変更

  • Signed にサイン

  • 分数の長さを 29 にする

次へ をクリックして、クロック/リセットの詳細ページに進みます。

クロック/リセットページで、次の手順を実行します。

ModelSim または Xcelium

  1. HDL 時間単位を ns に設定します。

  2. クロック周期を 20 に設定します。

  3. アクティブ エッジを Rising のままにするか、設定します。

  4. リセット初期値を 1 のままにするか、1 に設定します。

  5. リセット信号の持続時間を 15 に設定します。

Vivado シミュレータ

  1. HDL 時間単位を ps に設定します。

  2. クロック周期を 20 に設定します。

  3. アクティブ エッジを Rising のままにするか、設定します。

  4. リセット初期値を 1 のままにするか、1 に設定します。

  5. リセット信号の持続時間を 15 に設定します。

次へ をクリックして、開始時間の調整ページに進みます。

開始時間アライメント ページには、クロック信号とリセット信号の波形のプロットが表示されます。コシミュレーション ウィザードは、コシミュレーションを開始する HDL 時間を赤い線で表示します。開始時間は、Simulink が HDL シミュレータから最初の入力サンプルを取得する時間でもあります。

開始時間の調整ページで、調整を設定します。私たちのクロックのアクティブ エッジは立ち上がりエッジです。したがって、ModelSim または Xcelium では 20 ns (Vivado シミュレータでは 20 ps) の時点で、レイズド コサイン フィルタの登録された出力は安定します。競合状態は存在せず、コシミュレーションを開始するためのデフォルトの HDL 時間は、このシミュレーションに必要なものです。開始時間を変更する必要はありません。

次へ をクリックして、ブロック生成に進みます。

HDL コシミュレーション ブロックを生成する前に、コシミュレーション ウィザードを終了する前にタイムスケールを決定するオプションがあります。あるいは、後でタイムスケールを計算するように HDL Verifier に指示することもできます。検証ソフトウェアによるタイムスケールの計算は、生成された HDL コシミュレーション ブロックのすべての入力/出力ポートを接続してシミュレーションを開始した後に行われます。

ブロック生成ページで、次の手順を実行します。

ModelSim または Xcelium

シミュレーション開始時にタイムスケールを自動的に決定するを選択したままにします (デフォルト)。後で、シミュレーションを開始する前に、計算されたタイムスケールを表示し、その値を変更する機会があります。

Vivado シミュレータ

シミュレーション開始時にタイムスケールを自動的に決定するのチェックを外し、HDL シミュレーターで Simulink の 1 秒が 2e-11 s に相当 するようにタイムスケールを設定します。

コシミュレーション ウィザード セッションを完了するには、[完了] をクリックします。

HDL設計を検証するためのテストベンチを作成する

この例では、Simulink テストベンチ モデル rcosflt_tb が提供されています。コシミュレーション ウィザードで [完了] をクリックすると、Simulink によってモデル キャンバスの中央に次の項目が挿入されます。

  • HDLコシミュレーションブロック

  • HDL デザインを再コンパイルするためのブロック (ブロックをダブルクリックすると起動されるスクリプトへのリンクが含まれています)

  • HDL シミュレータを起動するブロック (ブロックをダブルクリックすると起動されるスクリプトへのリンクが含まれています) (Modelsim および Xcelium のみ)

HDL コシミュレーション ブロックを配置して、定数ブロックと変換ブロックが HDL コシミュレーション ブロックへの入力として並び、バスが出力として並ぶようにします。ブロックを結線します。モデルは次の図のようになります。

コシミュレーションを実行してHDL設計を検証する

ModelSim または Xcelium

  1. Launch HDL Simulator というラベルの付いたブロックをダブルクリックして、HDL シミュレーターを起動します。

  2. HDL シミュレータの準備ができたら、Simulink に戻ってシミュレーションを開始します。

  3. タイムスケールを決定します。コシミュレーション ウィザードの最後のページで、シミュレーション開始時にタイムスケールを自動的に決定する オプションを選択したことを思い出してください。これを実行すると、HDL Verifier はシミュレーションを開始する代わりに、タイムスケールの詳細グラフィカル インターフェイスを起動します。HDL シミュレータと Simulink は両方とも filter_in ポートと filter_out ポートを 1 秒間隔でサンプリングします。ただし、HDL シミュレータでのサンプル時間はクロック周期 (20 ns) と同じである必要があります。/rcosflt_rtl/clk の Simulink サンプル時間を 1 (秒) に変更し、Enter を押します。その後、ウィザードはテーブルを更新します。次の図は新しいタイムスケールを示しています。Simulink の 1 秒は、HDL シミュレータの 2e-008 秒に相当します。

OK をクリックして、タイムスケールの詳細ダイアログを閉じます。Simulink シミュレーションを再起動し、テスト ベンチ モデルのスコープからの結果を確認します。

Vivado シミュレータ

Simulink ツールストリップの シミュレーション タブで、実行 をクリックしてシミュレーションを開始します。Simulink ブロックは共有 DLL を使用して単一のプロセスを実行するため、HDL シミュレーションには個別のプロセスはありません。

スコープには、レイズド コサイン フィルターへの入力の遅延バージョンとそのフィルターの出力の両方が表示されます。このフィルタ出力を直接サンプリングすると、シンボル間干渉は発生しません。

参考