このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
基本的なコーディング方法
HDL Coder™ は以下の命名規則および基本的なコーディング ガイドラインに従い、これらのルールに違反するモデル構造をチェックします。HDL Coder は、HDL コーディング標準レポートに、ルール違反の可能性がある箇所をレポートします。違反を防ぐには、ルールの推奨事項を参照してください。
1.A 一般的な命名規則
1.A.A 設計と最上位レベルの命名規則
ルール/重要度 | メッセージ | 問題 | 推奨事項 |
---|---|---|---|
1.A.A.1 警告 |
| 既定では、HDL Coder は同じモジュール名およびファイル名をもつコードを生成します。サブシステムに | サブシステムに |
| ソース ファイル名は、一定の推奨命名規則およびファイル拡張子を使用しなければなりません。 | HDL ワークフロー アドバイザーの [VHDL ファイルの拡張子] オプションを使用するか、コマンド ラインから | |
1.A.A.2 メッセージ | Verilog/VHDL: 使用文字は英数字と '_'、最初の文字は英字のみ // で囲んだエスケープ文字を使用しない。 | 設計内の名前が文字以外で始まるか、数字、文字またはアンダースコア以外の文字が含まれている。 | 設計内の名前がアルファベットの文字 ( |
1.A.A.3 メッセージ | Verilog/VHDL: Verilog(IEEE1364) のキーワード、SystemVerilog(v3.1a)、VHDL(IEEE1076.X) のキーワードは使用しない。 | 設計内の名前に Verilog®、SystemVerilog または VHDL® のキーワードがある。 | 設計を更新し、Verilog、SystemVerilog または VHDL のキーワードが含まれないようにします。 このルール チェックを無効にするには、HDL コーディング標準のカスタマイズ オブジェクトの |
1.A.A.3vb メッセージ | VHDL: VHDL の標準の名前は使用しない。 | HDL Coder は、標準の VHDL 名は使用しません。 | 対処不要です。 |
1.A.A.4 エラー |
| 設計内の 1 つ以上の名前が標準の命名規則を使用していません。 | 設計内の名前がアルファベットの文字 ( |
1.A.A.5 エラー |
| 設計の同じ範囲内に、 大文字小文字の違いを除いて同一の名前が 2 つ以上ある。 たとえば、 | 同じ範囲内の 2 つの名前で大文字と小文字のみが異なることのないように、設計内の名前を更新します。 このルール チェックを無効にするには、HDL コーディング標準のカスタマイズ オブジェクトの |
1.A.A.6 警告 |
| HDL Coder は、Verilog と VHDL について、本ルールに準拠したコードを生成します。 | 対処不要です。 |
| |||
1.A.A.9 警告 | Verilog/VHDL: 最上位のモジュール名、ポート名は 16 文字以内で大文字/小文字を混在させない。 | 生成されたコード内の最上位モジュール、エンティティまたは端子の名前が 16 文字を超えているか、大文字小文字が混在している。 | 設計内の指摘された名前を 16 文字以下ですべての文字が小文字のみになるように更新します。すべての文字は、大文字のみまたは小文字のみでなければなりません。 このルールをカスタマイズするには、HDL コーディング標準のカスタマイズ オブジェクトの |
1.A.B モジュールの命名規則
ルール/重要度 | メッセージ | 問題 | 推奨事項 |
---|---|---|---|
1.A.B.1–1b エラー |
| 生成されたコード内のモジュール、インスタンスまたはエンティティの名前が 2 文字に満たないか、32 文字を超えている。 | 設計内の指摘された名前を 2 文字以上 32 文字以下になるように更新します。 このルールをカスタマイズするには、HDL コーディング標準のカスタマイズ オブジェクトの |
|
1.A.C 信号の命名規則
ルール/重要度 | メッセージ | 問題 | 推奨事項 |
---|---|---|---|
1.A.C.3 エラー |
| 生成されたコード内の信号、端子、パラメーター、定義または関数の名前が 2 文字に満たないか、40 文字を超えている。 | 設計内の関数名またはサブシステム名を 2 文字以上 40 文字以下になるように更新します。 このルールをカスタマイズするには、HDL コーディング標準のカスタマイズ オブジェクトの |
|
1.A.D ファイル、パッケージ、パラメーターの命名規則
ルール/重要度 | メッセージ | 問題 | 推奨事項 |
---|---|---|---|
1.A.D.1 警告 |
| 生成された include ファイルでは、これらの拡張子はテストベンチと一致しています。 | 対処不要です。 |
| 既定では、生成されたパッケージ ファイルの接尾辞は | [コンフィギュレーション パラメーター] ダイアログ ボックスの [HDL コード生成] 、 [グローバル設定] 、 [一般] ペインで、[パッケージの接尾辞] を | |
1.A.D.4 警告 |
| HDL Coder は Verilog コード内でマクロを生成しません。また、VHDL コード内の定数を再定義しません。 | 対処不要です。 |
| |||
1.A.D.9 警告 |
| HDL Coder は、生成コード内に 32 ビットより大きいビット幅を指定しません。 | 対処不要です。 |
| 最上位モジュールでジェネリックが使用されている場合、または、設計内にマスク パラメーターが含まれており | 設計内にマスク パラメーターが含まれている場合は、 |
1.A.E レジスタとクロックの命名規則
ルール/重要度 | メッセージ | 問題 | 推奨事項 |
---|---|---|---|
1.A.E.2 警告 |
| クロック信号、リセット信号、およびイネーブル信号が推奨される命名規則を使用していません。 | [コンフィギュレーション パラメーター] ダイアログ ボックスの [HDL コード生成] 、 [グローバル設定] ペインで、[クロックの入力端子]、[リセットの入力端子]、[クロック イネーブルの入力端子] オプションを使用して、クロック信号、リセット信号、およびイネーブル信号の名前をそれぞれ更新します。次の命名規則に従います。
|
1.A.F アーキテクチャの命名規則
ルール/重要度 | メッセージ | 問題 | 推奨事項 |
---|---|---|---|
1.A.F.1 警告 |
| 生成された VHDL コードのアーキテクチャ名に RTL が含まれていません。 | [HDL コード生成] 、 [グローバル設定] 、 [一般] タブで、RTL を含むアーキテクチャ名を使用するよう [VHDL アーキテクチャ名] を更新します。 |
1.A.F.4 警告 |
| 既定で、HDL Coder はエンティティ記述と VHDL コードのアーキテクチャ記述を同一ファイルで行います。
| HDL Coder がエンティティ記述と VHDL コードのアーキテクチャ記述を同一ファイルで行うよう、 |
1.B クロックおよびリセットの一般的なガイドライン
1.B.A クロック制約
ルール/重要度 | メッセージ | 問題 | 推奨事項 |
---|---|---|---|
1.B.A.1 メッセージ |
| 設計に 1 より多いクロック エッジが使用されているか、1 より多いクロック信号が含まれています。 [ClockInputs] プロパティが | 単一のクロック信号を使用するよう、設計を変更します。[HDL コード生成] 、 [グローバル設定] パネルで、[クロックの入力] を |
1.B.A.2 エラー |
| HDL Coder はラッチを作成しないため、このルールに準拠しています。 | 対処不要です。 |
1.B.A.3 エラー |
| HDL Coder は、組み合わせ回路のフィードバックは使用しません。 | 対処不要です。 |
1.C 初期リセットのガイドライン
1.C.A フリップフロップのクロック制約
ルール/重要度 | メッセージ | 問題 | 推奨事項 |
---|---|---|---|
1.C.A.3 警告 |
| HDL Coder は、非同期リセット信号を非リセット信号または同期リセット信号として使用しません。 | 対処不要です。 |
1.C.A.6 エラー |
| HDL Coder は DUT の外にリセット制御ロジックを追加します。そのため、非同期リセット信号と同期リセット信号の両方は生成しません。 | 対処不要です。 |
1.C.A.7 警告 |
| HDL Coder は、非同期セット信号と非同期リセット信号の両方をもつコードを生成しません。 | 対処不要です。 |
1.C.B リセット規則
ルール/重要度 | メッセージ | 問題 | 推奨事項 |
---|---|---|---|
1.C.B.1a メッセージ |
| HDL Coder は、非同期セット信号または非同期リセット信号をゲート構成しません。 | 対処不要です。 |
1.C.B.1b メッセージ |
| DUT にはリセットのインスタンス化が含まれないため、生成されたコードはこのルールに準拠しています。 | 対処不要です。 |
1.C.B.2 警告 |
| HDL Coder は、フリップフロップの非同期リセット入力に初期リセット信号のみを使用します。 | 対処不要です。 |
1.D クロックのガイドライン
1.D.A クロック パッケージング制約
ルール/重要度 | メッセージ | 問題 | 推奨事項 |
---|---|---|---|
1.D.A.1 警告 |
| DUT にはクロックのインスタンス化が含まれないため、HDL Coder が生成するコードはこのルールに準拠しています。 | 対処不要です。 |
1.D.C クロック ゲーティング制約
ルール/重要度 | メッセージ | 問題 | 推奨事項 |
---|---|---|---|
1.D.C.2–4 メッセージ |
| HDL Coder は、フリップフロップの出力を他のフリップフロップのクロックとして使用しません。また、フリップフロップ クロック信号を非クロック信号として使用しません。 | 対処不要です。 |
1.D.C.6 メッセージ |
| Simulink® モデルに、立ち上がりトリガーと立ち下がりトリガーをもつ Triggered Subsystem ブロックが使用されており、 |
|
1.D.D クロック階層制約
ルール/重要度 | メッセージ | 問題 | 推奨事項 |
---|---|---|---|
1.D.D.2 メッセージ |
| Simulink モデルが複数のクロック信号を使用しています。 | 単一のクロック信号を使用するよう、設計を変更します。[HDL コード生成] 、 [グローバル設定] パネルで、[クロックの入力] を |
1.F 階層設計のガイドライン
1.F.A 基本ブロック サイズのガイドライン
ルール/重要度 | メッセージ | 問題 | 推奨事項 |
---|---|---|---|
1.F.A.4 エラー |
| HDL Coder は、DUT、RAM、タイミング コントローラーに別のモジュールを生成するため、このルールに準拠しています。 | 対処不要です。 |