クロック イネーブルの最小化
既定では、HDL Coder™ は、クロック イネーブル付きのレジスタにマッピングするためのコードを生成し、DUT は最上位のクロック イネーブル端子をもちます。
クロック イネーブル付きのレジスタを生成しない場合は、クロック イネーブル ロジックを最小化できます。たとえば、ターゲット ハードウェアにクロック イネーブルのないレジスタがある場合、クロック イネーブル ロジックを最小化してハードウェアのリソースを節約できます。
次の VHDL® コードでは、クロック イネーブルを使用する、生成されたコードの既定のスタイルを説明します。enb 信号がクロック イネーブルです。
Unit_Delay_process : PROCESS (clk, reset)
BEGIN
IF reset = '1' THEN
Unit_Delay_out1 <= to_signed(0, 32);
ELSIF clk'EVENT AND clk = '1' THEN
IF enb = '1' THEN
Unit_Delay_out1 <= In1_signed;
END IF;
END IF;
END PROCESS Unit_Delay_process;次の VHDL コードでは、クロック イネーブルを最小化して生成されたコードのスタイルを説明します。
Unit_Delay_process : PROCESS (clk, reset)
BEGIN
IF reset = '1' THEN
Unit_Delay_out1 <= to_signed(0, 32);
ELSIF clk'EVENT AND clk = '1' THEN
Unit_Delay_out1 <= In1_signed;
END IF;
END PROCESS Unit_Delay_process;GUI の使用
クロック イネーブルを最小化するには、HDL ワークフロー アドバイザーの [HDL コード生成] 、 [クロックと端子] タブで、[クロック イネーブルの最小化] を選択します。
コマンド ラインの使用
クロック イネーブルを最小化するには、coder.HdlConfig 構成オブジェクトの MinimizeClockEnables プロパティを true に設定します。以下に例を示します。
hdlCfg = coder.config('hdl')
hdlCfg.MinimizeClockEnables = true;制限
設計の特定領域のクロック速度を上げることでコード ジェネレーターによって実装される面積の最適化を指定した場合、クロック イネーブルを最小化することはできません。次の最適化を行う場合、クロック イネーブルの最小化はできません。
リソース共有
RAM マッピング
ループのストリーム
また、HDL ワークフロー アドバイザーの [HDL コード生成] 、 [詳細設定] タブで [RAM アーキテクチャ] を [クロック イネーブルを使用しない汎用 RAM] に設定した場合もクロック イネーブルの最小化はできません。