メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

HDL インポートでサポートされている Verilog 構造

R2026a

合成可能な Verilog® コードを Simulink® モデリング環境にインポートするには、importhdl 関数を使用します。HDL コードで使用されている構造が HDL インポートでサポートされていることを確認します。

以下の表には、HDL コードをインポートするときに使用できる、サポートされている Verilog 構造がリストされています。サポートされていない構造を使用する場合、入力 HDL ファイルの解析時に HDL インポートがエラーを生成します。Verilog HDL インポートでは、HDL コード内の特定の構造の存在を無視できる場合があります。詳細については、表のコメント セクションを参照してください。

モジュール定義とインスタンス化

Verilog 構造サポートコメント
ライブラリ宣言いいえ–
コンフィギュレーション宣言いいえ–
モジュール宣言はい複数のサンプルレートと複数のクロック入力はサポートされません。
モジュールのパラメーター端子リストはい–
端子宣言はいINOUT 端子はサポートされません。
端子を使用しないモジュールいいえ–
ローカル パラメーター宣言はい–
パラメーター宣言はい最大サイズが 64 ビットのパラメーターと定数を使用できます。既定では、パラメーター サイズは 32 ビットです。
モジュールのインスタンス化はい
  • インスタンス化されたモジュールの接続されていない端子は、Verilog コードをインポートするときに削除されます。

  • 再帰的なモジュールのインスタンス化はサポートされません。

    代わりに、最上位モジュールは、再帰的サブフォルダーで定義されているモジュールをインスタンス化すると、importhdl はすべての Verilog ファイルを解析します。たとえば、この Figure では、importhdl は、DFF.v でインスタンス化される DFF_Instantiation.v および TFF_Instantiation.v の両方を解析できます。

    Folder structure containing subfolders.

データ型とベクトル

Verilog 構造サポートコメント
ネット宣言 (Wire、Supply0、Supply1)はい–
実数宣言いいえ–
文字列宣言いいえ–
ベクトル宣言はい–
配列のサポートと配列のインデックス付けはい–
reg 宣言はい–
整数宣言はい–

識別子とコメント

Verilog 構造サポートコメント
字句トークン (空白、演算子、コメント)はい–
識別子 (単純、エスケープ)はい–
システム関数 ($signed、$unsigned)はい–
属性インスタンスいいえHDL インポートはこれらの構造を無視します。
コメントいいえHDL インポートはこれらの構造を無視します。
数値 (10 進数、バイナリ、16 進数、8 進数)はい–
コンパイラ命令 (`define、`undef、`ifndef、`else if)はい–

代入

Verilog 構造サポートコメント
連続代入はい–
ブロッキング代入はい--
非ブロッキング代入はい–
手続き的代入 (Always ブロック)はい–

演算子

Verilog 構造サポートコメント
算術演算子 (+、-、*、**、/、<<<、>>>)はい–
論理演算子 (<<、>>、!、&&、| |、==、!=)はい–
関係演算子 (>、<、>=、<=、==、!=) はい–
ビット演算子 (~、&、|、^、~^、^~)はい–
単項演算子 (+、-)はい限られたデータ型でサポート
べき乗演算子はい限られたデータ型でサポート
条件演算子 (?:)はい–
連結はい–
ビット選択はい–
簡約演算子 (&、~&、|、~|、^、~^、または ^~)はい–

各種演算子の使用方法を示す例については、さまざまな演算子に対応する Verilog コードからの Simulink モデルの生成を参照してください。

条件付きステートメントとループ ステートメント

Verilog 構造サポートコメント
If-else ステートメントはい–
条件演算子 (?:)はい–
For ループはい–
loop generate 文はいfor-generate、case-generate、if-generate などの loop generate 文がサポートされます。
conditional generate 文いいえ–
generate 領域いいえ–
genvar 宣言いいえ–
Case ステートメントはいcasex ステートメントと casez ステートメントもサポートされます。

手続きブロックとイベント

Verilog 構造サポートコメント
タスク宣言いいえ–
初期構造 (ROM モデリング)いいえ–
連続ブロックはい–
ブロック宣言はい–
イベント制御ステートメントはい–
関数呼び出しはいHDL インポートは再帰的な関数呼び出しをサポートしません。
タスク イネーブルいいえ–
Always 文はい–
関数宣言はい–

その他の構造

Verilog 構造サポートコメント
ゲートのインスタンス化いいえ–
specparamいいえ–
specify ブロックいいえ–
セマンティック検証 (未使用の端子、正しいモジュールのインスタンス化)はい–
クロック バンドルの特定はい複数のサンプルレートと複数のクロック信号はサポートされていません。
レジスタ推定はい–
Compare to Constant ブロック推定はい–
Gain ブロック推定はい–
RAM 推定はい–
ROM 推定いいえ–
カウンター推定いいえ–
駆動強度いいえ–

制限と考慮事項

Verilog インポートでは以下はサポートされません。

  • 読み取り専用フォルダーからの Verilog ファイルのインポート。

  • 関数 importhdl に入力した HDL コードを解析する、読み取り専用ファイル システム内での前処理ファイルの生成。

  • 属性インスタンスとコメント。これらは無視されます。

  • #25 などの (#) 遅延値。この値は無視されます。

  • 列挙データ型。

  • 1 より多いクロック信号。

  • マルチレート モジュール。

  • 再帰モジュールのインスタンス化。

  • 1024 を超える入力を指定した Multiport Switch 推定。Verilog コードから推定される Multiport Switch ブロックに対して 1024 を超える入力を指定すると、Verilog インポートでエラーが発生します。このエラーが生成されるのは、ブロックに対する 1024 を超える入力が Simulink モデリング環境でサポートされないためです。

  • Verilog コードからの ROM 検出。

  • サポートされていないデータフロー モデリング パターンを使用する HDL ファイルのインポート。サポートされない Verilog データフロー パターンを参照してください。

参考

関数

トピック