simulink HDLcoder INport, Outportをparameter宣言で定義する方法
Afficher commentaires plus anciens
下記hdl(verilog)のような入力、出力のビット幅をparameter宣言で定義できる、simulinkモデルの定義方法を教えてください。
--- 例 ---
module trial ( in_a, in_b, out_c, out_d ); parameter I_DATA_WIDTH = 16; parameter O_DATA_WIDTH = 32;
input [I_DATA_WIDTH-1:0] in_a, in_b;
output [O_DATA_WIDTH-1:0] out_c, out_d;
・
・
・
----
Réponses (5)
Kei Otsuka
le 14 Fév 2018
Modifié(e) : Kei Otsuka
le 15 Fév 2018
パラメータの定数宣言(Verilogのparameter宣言、VHDLのgeneric宣言)ですが、R2016bから使えるようになっています。 パラメータを指定する方法は3つありまして、
#1, モデル参照時にモデル変数として指定
#2, マスクパラメータとして指定
#3, BlackBox利用時にGenericListとして指定
などの方法があります。 #1, モデル変数を利用した場合について、サンプルモデルを添付しましたので参考にして頂ければと思います。
参照されるモデルではGainブロックとConstantブロックが使われていまして、ゲイン及び定数値がモデル変数で与えられている例になります。

コード生成を行うとモデル変数に該当する部分はparameter宣言を使って生成されます。
// <S2>/Model
myDUT_myDUT #(.cParam(100),
.gParam(3)
)
u_Model (.clk(clk),
.reset(reset),
.enb(clk_enable),
.In1(In1), // sfix16_En15
.Out1(Model_out1) // sfix33_En16
);
assign Out1 = Model_out1;
Yasuo Otomo
le 14 Fév 2018
0 votes
1 commentaire
Kei Otsuka
le 14 Fév 2018
17a用にエクスポートしたモデルを添付しました。
次回以降質問をされる際には、お使いのツールのバージョンなどの情報を予め記載して頂くと良いと思います。MATLAB Answersで早く的確な回答を得るためのポイントが こちら に記載されておりますので、是非一度ご一読ください。
Yasuo Otomo
le 15 Fév 2018
0 votes
1 commentaire
Kei Otsuka
le 15 Fév 2018
"入出力信号のビット幅に対して生成HDLにparameter宣言が使われて、それ以降、その信号に関係するHDL記述に対してもparameter宣言が引き継がれて、HDL生成されるか”
についてソリューションがあるか考えてみましたが、Simulinkはブロック毎にデータ型継承のルールを指定可能なため、parameter宣言で型を引き継いでいくのは難しそうです。
Simulinkモデルをマスタとして扱い、データ型に大きな変更が生じた場合は都度コード生成することで対応するというのは難しいでしょうか? (Simulink + HDL Coderの利点でもあります)
Yasuo Otomo
le 15 Fév 2018
0 votes
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!