Simulink, HDL Coder, コーディング基準のレポート指摘について
Afficher commentaires plus anciens
『HDLコード生成』-『グローバル設定』-『コーディング基準』をNone → Industryに設定し、HDL生成実行した際のIndustry_reportにて、以下の指摘がありましたが、それぞれ(★)について、教えてください。 コーディング基準の設定画面キャプチャファイルを添付します。
CGSL-1.A.D.1|message|include ファイルは、RTL 記述に対しては ".h"、".vh"、".inc"、テストベンチに対しては ".h"、".inc"、".ht"、".tsk" とする。 Message||業界ルールでは、パッケージ ファイル名の接尾辞を '_pac' にする必要があります。ユーザー設定 '_pkg' をオーバーライドします。
★実行環境下には該当のパッケージファイルは存在せず、また、生成RTLをverilogとしており、何に対して指摘しているのでしょうか?
CGSL-1.A.E.2|message|クロック、リセットおよびイネーブルの各信号名は推奨された命名規則に従う。 Message||業界ルールでは、reset 信号名に 'rst_x' or 'reset_x' or 'rstx' or 'resetx' が含まれている必要があります。ユーザー設定 'CLR_X' をオーバーライドします。| Message||業界ルールでは、clock enable 信号名に en が含まれている必要があります。ユーザー設定 'CKE_I' をオーバーライドします。
★指摘の通り、リセット信号名が、CLR_Xからreset_xにオーバライトされてHDL生成されてしまいます。指摘はするが、リセット名はオーバライドせずにHDL生成する方法はありますでしょうか?
CGSL-2.A.F.2|warning|配列の LSB は 0 にする。 Warning|component|ベクトル型がモデル内に存在します。生成されたコードにおいて、ベクトルの LSB はゼロにはなりません。
★指摘箇所が具体的にモデルのどの場所に存在しているのかが、Industry_reportではわかりません。具体的にどの箇所のモデルを指摘しているのかが、わかるログなどはありますでしょうか?
■実行環境 (verコマンド実行結果) -------------------------------------------------------------------------------------------------- MATLAB バージョン: 9.2.0.556344 (R2017a) MATLAB ライセンス番号: DEMO オペレーティング システム: Microsoft Windows 8.1 Pro Version 6.3 (Build 9600) Java バージョン: Java 1.7.0_60-b19 with Oracle Corporation Java HotSpot™ 64-Bit Server VM mixed mode -------------------------------------------------------------------------------------------------- MATLAB バージョン 9.2 (R2017a) Simulink バージョン 8.9 (R2017a) Computer Vision System Toolbox バージョン 7.3 (R2017a) DSP System Toolbox バージョン 9.4 (R2017a) Fixed-Point Designer バージョン 5.4 (R2017a) HDL Coder バージョン 3.10 (R2017a) HDL Verifier バージョン 5.2 (R2017a) Image Processing Toolbox バージョン 10.0 (R2017a) MATLAB Coder バージョン 3.3 (R2017a) Signal Processing Toolbox バージョン 7.4 (R2017a) Trial>>
Réponse acceptée
Plus de réponses (1)
Yasuo Otomo
le 17 Fév 2018
0 votes
1 commentaire
Kei Otsuka
le 18 Fév 2018
手元にモデルが無いので何とも言えませんが、出力データ型がベクトルになっているブロックを探せば良いので、get_paramで簡単に出来そうです。
添付のモデルはDUTサブシステム内に出力データ型がベクトルになっているブロックが複数含まれますが、これを検索したい場合
%モデルオープン
open('sla_fir_filter_17a')
%DUTサブシステム内のブロック一覧取得
list = find_system('sla_fir_filter_17a/DUT','Type','Block')
%モデルコンパイル
sla_fir_filter_17a([],[],[],'compile');
%コンパイル後の各ポートの次元取得
ioDim = get_param(list,'CompiledPortDimensions');
ioSize = zeros(size(list));
for i = 1:size(list,1)
%各ブロックの出力ポートの次元合計
ioSize(i,1) = sum(ioDim{i}.Outport);
end
%次元が2より大きいポートを持つブロックを求める
idx = find(ioSize > 2);
%ブロック名表示
list{idx}
%コンパイル状態解除
sla_fir_filter_17a([],[],[],'term');
このように記述して実行頂ければ、出力にベクタ型を持つブロック名のリストが表示されます。
Catégories
En savoir plus sur コーディング標準 dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!