Main Content

RTL 設計法のガイドライン

HDL Coder™ は、次の RTL 設計法ガイドラインに準拠し、これらのルールにモデリング構造が違反しないかチェックします。HDL Coder は、HDL コーディング標準レポートにルール違反の可能性がある箇所をレポートします。違反を防ぐには、ルールの推奨事項を参照してください。

3.A ファンクション ライブラリ作成のガイドライン

3.A.C 信号、端子制約 - I

ルール/重要度メッセージ問題推奨事項
3.A.C.1
警告

Verilog: モジュールに定義するポート宣言、ポート リスト、インスタンス呼び出しのポート リストの記述順序を統一する。ポートを定義する際の間違いが減り、見たときにわかりやすくなる。

HDL Coder は、モジュールのポート宣言を保持し、元の Simulink® DUT における出現順にポート接続をインスタンス化します。

対処不要です。

3.A.C.4a
メッセージ

Verilog/VHDL: 入出力、宣言文は 1 行に 1 信号を定義し、コメントを付加する

HDL Coder はこのルールに準拠しています。

対処不要です。

3.A.D 信号、端子制約 - II

ルール/重要度メッセージ問題推奨事項
3.A.D.4–5
警告

Verilog/VHDL: 1 行に複数の実行文を記述しない。

生成された HDL コードに、1 行に複数の実行文が記述されているか、N 文字を超える行があります。元の設計に N 文字を超える名前や識別子が含まれています。

設計に含まれる N 文字を超える名前を短くしてください。

この N の値をカスタマイズするには、HDL コーディング標準のカスタマイズ オブジェクトの LineLength プロパティを使用します。

HDL Coder は、HDL コードの構文が壊れない程度に、設計内の長い行を折り畳みます。

Verilog/VHDL: 1 行の最大文字数は N 以下とする。

3.A.F 一般的な使用の制約

ルール/重要度メッセージ問題推奨事項
3.A.F.1
リファレンス

Verilog: if generate を利用してパラメーター記述をする。

HDL Coder は、生成された HDL コードで if-generate ステートメントを生成しませんが、for-generate ステートメントを生成できます。

対処不要です。

3.B ファンクション ライブラリの使用方法のガイドライン

3.B.B パラメーター、定数の制約

ルール/重要度メッセージ問題推奨事項
3.B.B.2b-4
メッセージ

Verilog: 設計全体に関するグローバル パラメーターは別ファイルで定義する。`include で指定するファイル名は相対パス (../include/common.h) とする。

HDL Coder は HDL コードではマクロを生成しません。

対処不要です。

3.B.B.5–7
メッセージ

Verilog: テキスト マクロは入れ子にしない。設計プロジェクト全体で使用するのは parameter のみ。`define を使用しない。

HDL Coder は HDL コードではマクロを生成しません。

対処不要です。

3.B.C 端子制約

ルール/重要度メッセージ問題推奨事項
3.B.C.1
メッセージ

Verilog/VHDL: コンポーネント接続はポート順接続ではなくポート名接続を使用する。

このルールに準拠するため、HDL Coder はポートの関連を保持します。

対処不要です。

3.B.C.2
メッセージ

Verilog: 下位階層のすべてのパラメーターを指定することができる。

このルールに準拠するため、HDL Coder は型およびビット幅を強制的に一致させます。

対処不要です。

3.B.C.3
メッセージ

VHDL: VHDL'93 からサポートされているダイレクト インスタンシエーションは使用しない。

HDL Coder は設計ではダイレクト インスタンシエーションを使用しません。生成された HDL コードは汎用であり、再利用可能です。

対処不要です。

3.B.D generic 制約

ルール/重要度メッセージ問題推奨事項
3.B.D.1
エラー

Verilog/VHDL: RTL 記述で、ジェネリック変数は integer のみを使用する。

生成された HDL コードに非整数データ型が含まれています。

設計で浮動小数点データ型を使用している場合、それらを HDL Coder ネイティブ浮動小数点ライブラリにマッピングして、生成されたコードで浮動小数点データ型が使用されないようにすることができます。

あるいは、浮動小数点データ型を使用しないように、設計を変更してください。

このルール チェックを無効にするには、HDL コーディング標準のカスタマイズ オブジェクトの NonIntegerTypes プロパティを使用します。

3.B.D.3
エラー

Verilog: defparam 文は使用しない。

HDL Coder はこのルールに準拠しています。

対処不要です。

3.C テスト容易化設計のガイドライン

3.C.A クロック制約 - I

ルール/重要度メッセージ問題推奨事項
3.C.A.1–4
エラー

Verilog/VHDL: クロックとFF のリセットは、LSI 外部入力端子から直接制御可能にする。

生成された HDL コードでは、外部入力端子からクロックを制御できます。Triggered Subsystem で TriggerAsClock を有効にしている場合、トリガー信号は外部端子から制御できるクロック信号になります。

Simulink でモデル化するリセット信号については、生成された VHDL コードに 1 つの Load ポートを設定でき、これが生成されたコードの基本入力となります。

このルール違反を回避するには、TriggerAsClock を無効にします。

3.C.B ブラック ボックス制約

ルール/重要度メッセージ問題推奨事項
3.C.B.3
エラー

Verilog/VHDL: ブラック ボックスの出力を、クロック端子、リセット端子、トライステートのイネーブル端子に接続しない。

HDL Coder は、クロック バンドルをエンティティまたはブラックボックスに接続し変更しないため、生成されたコードはこのルールに準拠します。

対処不要です。

3.C.C クロック制約 - II

ルール/重要度メッセージ問題推奨事項
3.C.C.1
エラー

Verilog/VHDL: フリップフロップの D 入力にクロックを接続しない。

HDL Coder はクロックをデータとして使用しません。

対処不要です。

3.C.F クロック制約 - III

ルール/重要度メッセージ問題推奨事項
3.C.F.2
エラー

Verilog/VHDL: クロック ラインとリセット ラインを混在させない。

HDL Coder は、クロック バンドルをエンティティまたはブラックボックスに接続し変更しないため、生成されたコードはこのルールに準拠します。

対処不要です。

参考

プロパティ

関連する例

詳細