インテル® Quartus® Primeプロ・エディション ユーザーガイド: パーシャル・リコンフィグレーション

ID 683834
日付 5/11/2020
Public
ドキュメント目次

1.5.9. 内容を初期化したオンチップメモリーのクロックイネーブルの実装

次のガイドラインに従って、内容を初期化したオンチップメモリーのクロックイネーブルを実装します。
  1. 初期化された内容を持つメモリーに対するPRプログラミング中のスプリアス書き込みを回避するには、クロックイネーブル回路をM20KまたはMLAB RAMと同じPR領域に実装します。この回路は、スタティック領域からのアクティブHighのクリア信号に依存します。
  2. PRプログラミングを開始する前に、この信号をアサートしてメモリーのクロックイネーブルをディスエーブルします。システムのPRコントローラーは、PRプログラミングの完了時にクリア信号をデアサートする必要があります。フリーズ信号をこの目的で使用します。
  3. インテル® Quartus® Prime IP Catalogまたはプラットフォーム・デザイナーを使用し、この回路を自動的に追加するオプションを含むOn-Chip Memory Intel FPTA IPコアおよびRAM Intel® FPGA IPをインスタンス化します。
図 16. PR領域のRAMクロックイネーブル回路

クロックイネーブルのVerilog RTL

reg ce_reg; reg [1:0] ce_delay; always @(posedge clock, posedge freeze) begin if (freeze) begin ce_delay <= 2'b0; end else begin ce_delay <= {ce_delay[0], 1'b1}; end end always @(posedge clock, negedge ce_delay[1]) begin if (~ce_delay[1]) begin ce_reg <= 1'b0; end else begin ce_reg <= clken_in; end end wire ram_wrclocken; assign ram_wrclocken = ce_reg;

クロックイネーブルのVHDL RTL

ENTITY mem_enable_vhd IS PORT( clock : in std_logic; freeze : in std_logic; clken_in : in std_logic; ram_wrclocken : out std_logic); END mem_enable_vhd; ARCHITECTURE behave OF mem_enable_vhd is SIGNAL ce_reg: std_logic; SIGNAL ce_delay: std_logic_vector(1 downto 0); BEGIN PROCESS (clock, freeze) BEGIN IF ((clock'EVENT AND clock = '1') or (freeze'EVENT AND freeze = '1')) THEN IF (freeze = '1') THEN ce_delay <= "00"; ELSE ce_delay <= ce_delay(0) & '1'; END IF; END IF; END PROCESS; PROCESS (clock, ce_delay(1)) BEGIN IF ((clock'EVENT AND clock = '1') or (ce_delay(1)'EVENT AND ce_delay(1) = '0')) THEN IF (ce_delay(1) = '0') THEN ce_reg <= '0'; ELSE ce_reg <= clken_in; END IF; END IF; END PROCESS; ram_wrclocken <= ce_reg; END ARCHITECTURE behave;