このドキュメントの新しいバージョンが利用できます。お客様は次のことを行ってください。 こちらをクリック 最新バージョンに移行する。
インテルのみ表示可能 — GUID: mwh1409959582038
Ixiasoft
インテルのみ表示可能 — GUID: mwh1409959582038
Ixiasoft
1.4.1.2. サポートされていないリセットおよび制御条件の回避
Intel FPGAのメモリーブロックのRAMの内容は、デバイスの動作中にreset信号でクリアできません。 HDLコードがRAMの内容のreset信号でRAMを記述する場合、ロジックはメモリーブロックではなく通常のロジックセルに実装されます。 reset信号を使用して、 常にリードブロックまたはprocesブロックにRAMのリードまたはライトの動作を配置しないでください。メモリーの内容を指定するには、デバイスの動作中にメモリーを初期化するか、RAMにデータを書き込みます。
リセット信号に加えて、他の制御ロジックにより、合成がメモリーロジックをメモリーブロックとして推論するのを防ぐことができます。たとえば、リード・アドレス・レジスターでクロックイネーブルを使用する場合、RAMの出力ラッチを変更して、合成されたRAMの結果がHDL記述と一致しないことがあります。この制限を回避するには、アドレスストール機能をリード・アドレス・クロック・イネーブルとして使用します。 FPGAデバイスのドキュメントを参照して、コードがデバイスで使用可能なハードウェアと一致することを確認してください。
Verilog RAM with Reset Signal that Clears RAM Contents: Not Supported in Device Architecture
module clear_ram ( input clock, reset, we, input [7:0] data_in, input [4:0] address, output reg [7:0] data_out ); reg [7:0] mem [0:31]; integer i; always @ (posedge clock or posedge reset) begin if (reset == 1'b1) mem[address] <= 0; else if (we == 1'b1) mem[address] <= data_in; data_out <= mem[address]; end endmodule