インテルのみ表示可能 — GUID: mwh1409959582038
Ixiasoft
インテルのみ表示可能 — GUID: mwh1409959582038
Ixiasoft
1.4.1.2. サポートされないリセットおよびコントロール条件の回避
デバイスの動作時に、インテル FPGAメモリーブロックのRAMのコンテンツを reset 信号でクリアすることはできません。HDLコードで記述しているRAMで reset 信号をRAMのコンテンツに使用している場合、ロジックはメモリーブロックではなく通常のロジックセルに実装されます。RAMの読み出しまたは書き込み動作は、always ブロックまたは process ブロックに reset 信号とともに配置しないでください。メモリーコンテンツを指定するには、メモリーを初期化する、もしくはデバイス動作時にRAMにデータを書き込みます。
リセット信号の他にも、他のコントロール・ロジックによって合成でメモリーロジックをメモリーブロックとして推論できないことがあります。例えば、読み出しアドレスレジスターでクロックイネーブルを使用する場合、RAMの出力ラッチが変化し、合成後のRAMの結果がHDLの記述と一致しなくなることがあります。アドレスストール機能を読み出しアドレス・クロック・イネーブルとして使用し、この制限を回避します。お使いのFPGAデバイスのドキュメントを参照し、コードがデバイスで利用可能なハードウェアと一致することを確認してください。
RAMのコンテンツをクリアするリセット信号のあるVerilog RAM (デバイスのアーキテクチャーでサポートされません)
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