インテル® Quartus® Prime プロ・エディション ユーザーガイド: サードパーティー合成

ID 683122
日付 9/24/2018
Public
ドキュメント目次

2.10.3.3. RAMの初期化

HDLコードでVerilog HDLシステムタスク$readmembまたは$readmemhを使用して、RAMメモリーを初期化できます。Synplifyコンパイラーは、.srs (テクノロジーに依存しないRTLネットリスト)ファイルの初期化値をフォワードアノテートし、マッパーは対応する16進メモリー初期化(.hex) ファイルを生成します。 デザインで推測されるaltsyncram IPコアごとに 1つの.hexファイルが作成されます。 .hexinit_file属性を使用して、.vqmファイル内のaltsyncramインスタンスに関連付けられます。

この例では、HDLコードでのRAMの初期化方法と、Verilog HDLを使用した対応する.hexファイルの生成方法を示します。

$readmembシステムタスクを使用したVerilog HDLコードでの推測RAMの初期化

initial
begin
    $readmemb("mem.ini", mem);
end
always @(posedge clk)
begin
    raddr_reg <= raddr;
    if(we)
        mem[waddr] <= data;
end

メモリー初期化ファイルを含む.vqmインスタンスの例

altsyncram mem_hex( .wren_a(we),.wren_b(GND),...);

defparam mem_hex.lpm_type = "altsyncram";
defparam mem_hex.operation_mode = "Dual_Port";
...
defparam mem_hex.init_file = "mem_hex.hex";