HDL Coderで生成した​VHDL内で不要なリ​セット信号が自動で追​加される

11 ビュー (過去 30 日間)
拓哉
拓哉 2025 年 10 月 2 日
コメント済み: 拓哉 2025 年 11 月 4 日 8:12
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 件のコメント
Hiro Kawai
Hiro Kawai 2025 年 10 月 6 日
投稿頂き有難うございます。
こちらで再現が出来ないため、Simulinkのモデルを共有頂くことは可能でしょうか?

サインインしてコメントする。

採用された回答

拓哉
拓哉 2025 年 10 月 15 日
kawaiさん
ご確認ありがとうございます。
元のモデルから,必要最小限で類似の事象を再現できるモデル(RESETX_debug.slx)を作成しましたので,共有します。
また,モデルを作成する過程で,原因になり得そうな箇所が見つかりましたので,情報共有させていただきます。
【原因になり得そうな箇所】
  1. 信号配線の整理のために(リセット信号を離れたサブブロックにばらまくために),RESETXをfrom/gotoブロックでサブブロック内の各所に分岐させていました。⇒当初これが原因かと疑い,from/gotoブロックを使わずに,リセット信号を各サブブロックに直結・分岐しましたが,相変わらずresetx_1は自動で生成されていました。
  2. DataCaptureでキャプチャする際,RESETX信号にresetxという名称を付け,テストポイントを設定していました。⇒これにより,architecture部のsignalにもresetx_2やresetx_3のような連番の信号名が追加されました。
  2 件のコメント
Hiro Kawai
Hiro Kawai 2025 年 10 月 16 日
モデルのアップロード有難うございます。確認させて頂きましたが、結論としてはツールの振る舞いとしては正常であると言えます。
頂いたモデルには、resetxというInportがあることを確認しました。これがリセット信号となって欲しい、という意図かと思いますが、リセット信号は通常、別途自動的に生成されます。
今回はresetxというInportに対して、_1というサフィックスを自動的に加えられた形で下記が生成されています。
resetx_1 : IN std_logic; -- ufix1
理由としては、リセットの入力端子名がRESETX (大文字小文字の違いはあれど同じ文字列) となっているためです。HDL Coderが自動でサフィックス (_1) を加えています。
(↓こちらのRESETXのことです。試しに、RESETNなど別の文字列にしてもらえれば、サフィックスは付与されません)
>①コンフィギュレーションパラメーター⇒HDLコード生成⇒グローバル設定⇒クロック設定にて「リセット>の入力端子」にRESETXを設定
もし、グローバルリセットを生成したくない場合は、設定ウインドウの
 HDLコード生成→グローバル設定→追加設定→端子 (タブ) → グローバルリセットの最小化
のチェックをOnにして下さい。
拓哉
拓哉 2025 年 11 月 4 日 8:12
kawaiさん
ご回答ありがとうございます。また、お返事遅くなりまして申し訳ありません。
ツール動作は正常であり、今回の事象はインポートにリセット信号が含まれていることによるものと理解できました。
ご教示いただいたように、以下2点実施したところ、想定していた生成コードになることを確認できました。①コンフィギュレーションパラメーター⇒クロック設定にて「リセット>の入力端子」にRESETN等の別の文字列を設定
②グローバルリセットの最小化のチェックをOn
大変助かりました。重ねて感謝申し上げます。

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeCode Generation についてさらに検索

製品


リリース

R2024b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!