Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

hdlcoder.CodingStandard

HDL コーディング標準のカスタマイズ オブジェクトを作成

説明

cso = hdlcoder.CodingStandard(standardName) は、コーディング標準レポートのルールや外観のカスタマイズに使用できる HDL コーディング標準のカスタマイズ オブジェクトを作成します。

コーディング標準レポートのルールや外観をカスタマイズしない場合は、HDL コーディング標準のカスタマイズ オブジェクトを作成する必要はありません。

すべて折りたたむ

HDL コーディング標準のカスタマイズ オブジェクトの作成

コーディング標準のカスタマイズ オブジェクト "cso" を作成します。

cso = hdlcoder.CodingStandard('Industry');

コーディング標準のオプションのカスタマイズ

  • コーディング標準レポートに受け渡しルールを表示しない。

  • if-else の入れ子の最大深さを 2 に設定する。

  • 行の長さのチェックを無効にする。

cso.ShowPassingRules.enable = false;
cso.IfElseNesting.depth = 2;
cso.LineLength.enable = false;

HDL の codegen コンフィギュレーションとコーディング標準のカスタマイズ オブジェクトの作成

hdlcfg = coder.config('hdl');

コーディング標準とコーディング標準のカスタマイズ オブジェクトを指定します。

hdlcfg.HDLCodingStandard = 'Industry';
hdlcfg.HDLCodingStandardCustomizations = cso;

一時フォルダーの作成と MATLAB ファイルのコピー

この例では、設計関数は mlhdlc_dti.m、テスト ベンチ関数は mlhdlc_dti_tb.m です。

mlhdlc_demo_dir = fullfile(matlabroot, 'toolbox', 'hdlcoder', ...
                                 'hdlcoderdemos', 'matlabhdlcoderdemos');
mlhdlc_temp_dir = [tempdir 'mlhdlc_sfir'];

cd(tempdir);
[~, ~, ~] = rmdir(mlhdlc_temp_dir, 's');
mkdir(mlhdlc_temp_dir);
cd(mlhdlc_temp_dir);

copyfile(fullfile(mlhdlc_demo_dir, 'mlhdlc_dti.m'), mlhdlc_temp_dir);
copyfile(fullfile(mlhdlc_demo_dir, 'mlhdlc_dti_tb.m'), mlhdlc_temp_dir);

HDL コードとテスト ベンチの生成

テスト ベンチ関数の名前を指定します。

hdlcfg.TestBenchName = 'mlhdlc_dti_tb';

設計の HDL コードを生成し、カスタマイズした HDL コーディング標準のルールに従ってコードをチェックします。

codegen -config hdlcfg mlhdlc_dti
### Begin VHDL Code Generation
### Working on mlhdlc_dti as <a href="matlab:edit('/tmp/Bdoc22a_1859087_173611/mlhdlc_sfir/codegen/mlhdlc_dti/hdlsrc/mlhdlc_dti.vhd')">mlhdlc_dti.vhd</a>.
### Generating Resource Utilization Report <a href="matlab:web('/tmp/Bdoc22a_1859087_173611/mlhdlc_sfir/codegen/mlhdlc_dti/hdlsrc/resource_report.html')">resource_report.html</a>.
### Industry Compliance report with 0 errors, 1 warnings, 4 messages.
### Generating Industry Compliance Report <a href="matlab:web('/tmp/Bdoc22a_1859087_173611/mlhdlc_sfir/codegen/mlhdlc_dti/hdlsrc/mlhdlc_dti_Industry_report.html')">mlhdlc_dti_Industry_report.html</a>
### Generating HDL Conformance Report <a href="matlab:web('/tmp/Bdoc22a_1859087_173611/mlhdlc_sfir/codegen/mlhdlc_dti/hdlsrc/mlhdlc_dti_hdl_conformance_report.html')">mlhdlc_dti_hdl_conformance_report.html</a>.
### HDL Conformance check complete with 0 errors, 26 warnings, and 0 messages.
Code generation successful.

HDL コーディング標準のカスタマイズ オブジェクトの作成

  • sfir_fixed モデルを読み込む

  • コーディング標準のカスタマイズ オブジェクト "cso" を作成する

load_system('sfir_fixed')
cso = hdlcoder.CodingStandard('Industry');

コーディング標準のオプションのカスタマイズ

  • レポートに受け渡しルールを表示しない。

  • 行の最大長を 80 文字に設定する。

  • モジュール、インスタンス、エンティティの名前の長さが 5 ~ 50 文字であることをチェックする。

cso.ShowPassingRules.enable = false;
cso.LineLength.length = 80;
cso.ModuleInstanceEntityNameLength.length = [5 50];

設計の HDL コードの生成

HDL コードを生成し、カスタマイズした HDL コーディング標準のルールに従ってチェックします。DUT サブシステムは symmetric_fir です。

makehdl('sfir_fixed/symmetric_fir','HDLCodingStandard','Industry',...
        'HDLCodingStandardCustomizations',cso, 'TargetDirectory', 'C:/coding_standard/hdlsrc')
### Generating HDL for 'sfir_fixed/symmetric_fir'.
### Starting HDL check.
### Begin VHDL Code Generation for 'sfir_fixed'.
### Working on sfir_fixed/symmetric_fir as C:\coding_standard\hdlsrc\sfir_fixed\symmetric_fir.vhd.
### Industry Compliance report with 4 errors, 77 warnings, 6 messages.
### Generating Industry Compliance Report <a href="matlab:web('C:\coding_standard\hdlsrc\sfir_fixed\symmetric_fir_Industry_report.html')">symmetric_fir_Industry_report.html</a>
### Creating HDL Code Generation Check Report file://C:\coding_standard\hdlsrc\sfir_fixed\symmetric_fir_report.html
### HDL check for 'sfir_fixed' complete with 0 errors, 0 warnings, and 0 messages.
### HDL code generation complete.

入力引数

すべて折りたたむ

カスタマイズする HDL コーディング標準を指定します。standardName の値は HDLCodingStandard プロパティの値と一致しなければなりません。

例: 'Industry'

出力引数

すべて折りたたむ

HDL コーディング標準のカスタマイズ。HDL コーディング標準のカスタマイズ オブジェクトとして返されます。

バージョン履歴

R2014b で導入