Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

RTL スタイル

レジスタに "rising_edge/falling_edge" スタイルを使用

生成コードで VHDL® の関数 rising_edge または falling_edge を使用してクロック遷移を検出するかどうかを指定します。

設定

既定の設定: オフ

オン

生成されたコードで VHDL の関数 rising_edge または falling_edge が使用されます。

たとえば、Unit Delay ブロックから生成された次のコードは、rising_edge を使用して正のクロック遷移を検出します。

Unit_Delay1_process : PROCESS (clk, reset)
  BEGIN
    IF reset = '1' THEN
      Unit_Delay1_out1 <= (OTHERS => '0');
    ELSIF rising_edge(clk) THEN
      IF clk_enable = '1' THEN
        Unit_Delay1_out1 <= signed(x_in);
      END IF;
    END IF; 
  END PROCESS Unit_Delay1_process;

オフ

生成されたコードで 'event 構文が使用されます。

たとえば、Unit Delay ブロックから生成される次のコードは、clk'event AND clk = '1' を使用して正のクロック遷移を検出します。

Unit_Delay1_process : PROCESS (clk, reset)
  BEGIN
    IF reset = '1' THEN
      Unit_Delay1_out1 <= (OTHERS => '0');
    ELSIF clk'event AND clk = '1' THEN
      IF clk_enable = '1' THEN
        Unit_Delay1_out1 <= signed(x_in);
      END IF;
    END IF; 
  END PROCESS Unit_Delay1_process;

依存関係

このオプションは、ターゲット言語が VHDL の場合に有効になります。

コマンド ライン情報

プロパティ: UseRisingEdge
型: 文字ベクトル
値: 'on' | 'off'
既定の設定: 'off'

このプロパティを設定するには、hdlset_param または makehdl を使用します。プロパティの値を表示するには、hdlget_param を使用します。

中間信号を最小にする

デバッグを可能にしたり、コード カバレッジに HDL コードを最適化するかどうかを指定します。

設定

既定の設定: オフ

オン

中間信号を最小にしてコード カバレッジ用に最適化します。たとえば、この設定が "オフ" で生成されたコードは次のようになります。

const3 <= to_signed(24, 7);
subtractor_sub_cast <= resize(const3, 8);
subtractor_sub_cast_1 <= resize(delayout, 8);
subtractor_sub_temp <= subtractor_sub_cast - subtractor_sub_cast_1;

この設定を [オン] にすると、HDL Coder™ は出力を次のように最適化します。

subtractor_sub_temp <= 24 - (resize(delayout, 8));

コード ジェネレーターは、中間信号の const3subtractor_sub_cast および subtractor_sub_cast_1 を削除します。

オフ

中間信号を維持することで、デバッグできるよう最適化します。

コマンド ライン情報

プロパティ: MinimizeIntermediateSignals
型: 文字ベクトル
値: 'on' | 'off'
既定の設定: 'off'

このプロパティを設定するには、hdlset_param または makehdl を使用します。プロパティの値を表示するには、hdlget_param を使用します。

ベクトル端子のスカラー化

VHDL コード内のベクトル端子をスカラー端子の構造体にフラット化します。

設定

既定の設定: オフ

オン

ベクトル端子のコードを生成する際にスカラー端子の構造体を生成します。

オフ

ベクトル端子のコードを生成する際に、ベクトル端子の型定義と端子宣言を生成します。

依存関係

このオプションは、ターゲット言語 ([言語] オプションで指定) が VHDL の場合に有効になります。

コマンド ライン情報

プロパティ: ScalarizePorts
型: 文字ベクトル
値: 'on' | 'off'
既定の設定: 'off'

このプロパティを設定するには、hdlset_param または makehdl を使用します。プロパティの値を表示するには、hdlget_param を使用します。

使用に関するメモ

ScalarizePorts プロパティを使用すると、HDL Coder がベクトル端子の VHDL コードを生成する方法を制御できます。

たとえば、次の図のサブシステム vsum について考えます。

既定では、ScalarizePorts 'off' です。コードは、次のようにベクトル端子 In1 の型定義と端子宣言を生成します。

PACKAGE simplevectorsum_pkg IS
  TYPE vector_of_std_logic_vector16 IS ARRAY (NATURAL RANGE <>) 
     OF std_logic_vector(15 DOWNTO 0);
  TYPE vector_of_signed16 IS ARRAY (NATURAL RANGE <>) OF signed(15 DOWNTO 0);
END simplevectorsum_pkg;
.
.
.
ENTITY vsum IS
  PORT( In1     :  IN    vector_of_std_logic_vector16(0 TO 9);  -- int16 [10]
        Out1    :  OUT   std_logic_vector(19 DOWNTO 0)  -- sfix20
        );
END vsum;

VHDL のデータ型ルールでは、この方法で宣言された 2 つの型は設計ユニット間で互換性がありません。そのため、生成された 2 つ以上の VHDL コード モジュールをつなぐ必要がある場合に問題が発生することがあります。

次の例で示すように、makehdl コマンドで ScalarizePorts を有効化することで、こうしたベクトル端子をスカラー端子の構造体にフラット化できます。

 makehdl(gcs,'ScalarizePorts','on')

生成される端子のリストを以下に示します。

ENTITY vsum IS
  PORT( In1_0                :   IN    std_logic_vector(15 DOWNTO 0);  -- int16
        In1_1                :   IN    std_logic_vector(15 DOWNTO 0);  -- int16
        In1_2                :   IN    std_logic_vector(15 DOWNTO 0);  -- int16
        In1_3                :   IN    std_logic_vector(15 DOWNTO 0);  -- int16
        In1_4                :   IN    std_logic_vector(15 DOWNTO 0);  -- int16
        In1_5                :   IN    std_logic_vector(15 DOWNTO 0);  -- int16
        In1_6                :   IN    std_logic_vector(15 DOWNTO 0);  -- int16
        In1_7                :   IN    std_logic_vector(15 DOWNTO 0);  -- int16
        In1_8                :   IN    std_logic_vector(15 DOWNTO 0);  -- int16
        In1_9                :   IN    std_logic_vector(15 DOWNTO 0);  -- int16
        Out1                 :   OUT   std_logic_vector(19 DOWNTO 0)  -- sfix20
        );
END vsum;

VHDL コードでの FOR および GENERATE ループの展開

VHDL FOR および GENERATE ループを展開し、生成された VHDL コードから省略するかどうかを指定します。

設定

既定の設定: オフ

オン

生成された VHDL コードから FOR および GENERATE ループを展開して省略します (Verilog® コード内ではループは常に展開されます)。

オフ

生成された VHDL コード内に FOR および GENERATE ループを含めます。

ヒント

  • GENERATE ループをサポートしないコンピューターによる設計の自動化 (EDA) ツールを使用している場合、このオプションを選択して、生成される VHDL コードからループを省略します。

  • このオプションを設定しても、生成される VHDL コードのシミュレーションや合成から取得される結果には影響しません。

依存関係

このオプションは、ターゲット言語 ([言語] オプションで指定) が VHDL の場合に有効になります。

コマンド ライン情報

プロパティ: LoopUnrolling
型: 文字ベクトル
値: 'on' | 'off'
既定の設定: 'off'

このプロパティを設定するには、hdlset_param または makehdl を使用します。プロパティの値を表示するには、hdlget_param を使用します。

マスクされたサブシステムからのパラメーター化された HDL コードの生成

調整可能なマスク パラメーターが同一で、値の異なっている再利用可能なサブシステムに HDL コードを生成します。

設定

既定の設定: オフ

オン

マスク パラメーターに異なる値をもつ、複数のマスク サブシステムについて、再利用可能な HDL ファイルを 1 つ生成します。HDL Coder は、共有可能で調整可能なマスク パラメーターをもつサブシステムを自動的に検出します。

サブシステム内では、以下のブロックとパラメーターのみでマスク パラメーターを使用できます。

ブロック パラメーター制限
Constant ダイアログ ボックスの [メイン] タブの [定数値]なし
Gainダイアログ ボックスの [メイン] タブの [ゲイン][パラメーター データ型] はすべての Gain ブロックについて同じでなければなりません。
オフ

マスク サブシステムごとに個別の HDL ファイルを生成します。

コマンド ライン情報

プロパティ: MaskParameterAsGeneric
型: 文字ベクトル
値: 'on' | 'off'
既定の設定: 'off'

このプロパティを設定するには、hdlset_param または makehdl を使用します。プロパティの値を表示するには、hdlget_param を使用します。

参考

Atomic サブシステムで再利用可能なコードの生成

列挙型エンコード スキーム

生成された HDL コード内で列挙型を表すエンコード スキームを指定します。

設定

既定の設定: default

[default][onehot][twohot][binary] のエンコード スキームを使用して、生成された HDL コード内で列挙型を表現します。

既定の設定

コード ジェネレーターは、Verilog では小数エンコードを、VHDL では VHDL ネイティブの列挙型を使用します。この例は、4 つのステートを持つ Stateflow® Chart における、このエンコード スキームの Verilog コードの抜粋です。

parameter 
is_Chart_IN_s_idle = 2'd0, 
is_Chart_IN_s_rx = 2'd1, 
is_Chart_IN_s_wait_0 = 2'd2, 
is_Chart_IN_s_wait_tb = 2'd3;

onehot

コード ジェネレーターは、1 ビットが High になるワンホット エンコード スキームを使用して、各列挙値を表現します。この例は、4 つのステートを持つ Stateflow Chart における、このエンコード スキームの Verilog コードの抜粋です。

parameter 
is_Chart_IN_s_idle = 4'b0001, 
is_Chart_IN_s_rx = 4'b0010, 
is_Chart_IN_s_wait_0 = 4'b0100, 
is_Chart_IN_s_wait_tb = 4'b1000;
このエンコード スキームは、64 を超える列挙値またはステート数をサポートしていません。

twohot

コード ジェネレーターは、2 ビットが High になるツーホット エンコード スキームを使用して、各列挙値を表現します。この例は、4 つのステートを持つ Stateflow Chart における、このエンコード スキームの Verilog コードの抜粋です。

parameter 
is_Chart_IN_s_idle = 4'b0011, 
is_Chart_IN_s_rx = 4'b0101, 
is_Chart_IN_s_wait_0 = 4'b0110, 
is_Chart_IN_s_wait_tb = 4'b1001;

binary

コード ジェネレーターは、バイナリ エンコード スキームを使用して、各列挙値を表現します。この例は、4 つのステートを持つ Stateflow Chart における、このエンコード スキームの Verilog コードの抜粋です。

parameter 
is_Chart_IN_s_idle = 2'b00, 
is_Chart_IN_s_rx = 2'b01, 
is_Chart_IN_s_wait_0 = 2'b10, 
is_Chart_IN_s_wait_tb = 2'b11;

VHDL の場合、生成されたコードは CONSTANT 型を使用して、既定ではない列挙値をエンコードします。たとえば、このコードの抜粋は、4 つのステートを持つ Stateflow Chart にツーホット エンコード スキームを使用したときに生成される VHDL コードです。

 PACKAGE s_pkg IS
  -- Constants
  -- Two-hot encoded enumeration values for type state_type_is_Chart
  CONSTANT IN_s_idle         : std_logic_vector(3 DOWNTO 0) := 
    "0011";
  CONSTANT IN_s_rx           : std_logic_vector(3 DOWNTO 0) := 
    "0101";
  CONSTANT IN_s_wait_0       : std_logic_vector(3 DOWNTO 0) := 
    "0110";
  CONSTANT IN_s_wait_tb      : std_logic_vector(3 DOWNTO 0) := 
    "1001";

END s_pkg;

コマンド ライン情報

プロパティ: EnumEncodingScheme
型: 文字ベクトル
値: 'default' | 'onehot' | 'twohot''binary'
既定の設定: 'default'

このプロパティを設定するには、hdlset_param または makehdl を使用します。プロパティの値を表示するには、hdlget_param を使用します。