HDL Coderで生成したVHDL内で不要なリセット信号が自動で追加される
11 ビュー (過去 30 日間)
古いコメントを表示
HDL Coderの「HDLコードを生成」機能を使い、SimulinkモデルからVHDLを生成しました。その際、VHDL内に意図しない不要なリセット信号が自動で追加されるため、これを防止する方法があればご教示いただきたく。
【現象】
①コンフィギュレーションパラメーター⇒HDLコード生成⇒グローバル設定⇒クロック設定にて「リセットの入力端子」にRESETXを設定
②VHDLを生成
③生成されたVHDLを確認すると、entity部に意図しない(設定していない)resetx_1というリセット信号が追加されていました。また、architecture部のsignalにもresetx_2やresetx_3のような連番の信号名も追加されていました。以下に当該箇所の抜粋します。
ENTITY TEST IS
PORT( CLKS : IN std_logic;
RESETX : IN std_logic;
resetx_1 : IN std_logic; -- ufix1
--省略
);
END TEST;
ARCHITECTURE rtl OF TEST IS
-- Signals
SIGNAL resetx_2 : std_logic; -- ufix1
SIGNAL resetx_3 : std_logic; -- ufix1
--省略
BEGIN
resetx_2 <= resetx_1;
RelEQ1_out1 <= '1' WHEN resetx_2 = '0' ELSE
'0';
END rtl;
1 件のコメント
採用された回答
拓哉
2025 年 10 月 15 日
2 件のコメント
Hiro Kawai
2025 年 10 月 16 日
モデルのアップロード有難うございます。確認させて頂きましたが、結論としてはツールの振る舞いとしては正常であると言えます。
頂いたモデルには、resetxというInportがあることを確認しました。これがリセット信号となって欲しい、という意図かと思いますが、リセット信号は通常、別途自動的に生成されます。
(参考) https://jp.mathworks.com/help/hdlcoder/gs/clocks-and-sample-time-relationship-in-hdl-coder.html (Simulinkモデルとクロックの関係)
今回はresetxというInportに対して、_1というサフィックスを自動的に加えられた形で下記が生成されています。
resetx_1 : IN std_logic; -- ufix1
理由としては、リセットの入力端子名がRESETX (大文字小文字の違いはあれど同じ文字列) となっているためです。HDL Coderが自動でサフィックス (_1) を加えています。
(↓こちらのRESETXのことです。試しに、RESETNなど別の文字列にしてもらえれば、サフィックスは付与されません)
>①コンフィギュレーションパラメーター⇒HDLコード生成⇒グローバル設定⇒クロック設定にて「リセット>の入力端子」にRESETXを設定
もし、グローバルリセットを生成したくない場合は、設定ウインドウの
HDLコード生成→グローバル設定→追加設定→端子 (タブ) → グローバルリセットの最小化
のチェックをOnにして下さい。
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!