組み込み機器・ハードウェアの設計開発から装置製作まで社内一貫対応!

組み込み機器・ハードウェア設計製作.com
組み込み機器・ハードウェア設計製作.com

produced by株式会社アイディアイ

設計のポイント

verilog記述のポイント:ブロックRAMが推論される記述パターン

設計内容分類FPGA

実現したい仕様・課題

大きめの配列(バッファ、テーブル)をVerilogで記述した際、意図に反してフリップフロップと大量のマルチプレクサで実装されてしまい、ロジックリソースを浪費して動作周波数も低下することがあります。FPGA内蔵のブロックRAMへ確実にマッピングさせたいというのが課題です。

設計のポイント

配列をブロックRAMとして実装させるには、合成ツールがRAMと認識できる記述パターン(RAM推論パターン)に従うことが重要です。基本形は、(1) reg [W-1:0] mem [D-1:0]; で配列を宣言し、(2) 書き込みをクロック同期のalways内で行い、(3) 読み出しもクロック同期でレジスタ経由にする(同期読み出し)、という形です。ブロックRAMの読み出しは本質的に1クロックのレイテンシを持つため、assignによる非同期読み出しを記述すると、ブロックRAMに載らず分散RAMやロジックに展開される原因になります。また、リセットでメモリ全体を初期化する記述や、同一alwaysで複数アドレスへ同時書き込みする記述もRAM推論を妨げます。デュアルポート動作(書き込みと読み出しを別ポート・別クロックで行う)も、推論パターンに従えば記述可能です。大容量のテーブルやバッファが意図どおりブロックRAMに割り当てられたかは、合成レポートのリソース使用量で必ず確認します。ツール固有の属性(ram_style等)で明示指定する方法もありますが、まず標準的な推論パターンで書くことが移植性の面で有利です。

【コード例】
reg [7:0] mem [1023:0];
reg [7:0] rdata;
always @(posedge clk) begin
if (we) mem[waddr] <= wdata; // 同期書き込み
rdata <= mem[raddr]; // 同期読み出し(1clkレイテンシ)
end

verilog記述のポイント:ブロックRAMが推論される記述パターン | 組み込み機器・ハードウェア設計製作.com

補足情報

当事例のような、FPGA設計に関するポイントをまとめた冊子の無料DLが可能です。
是非以下よりご確認ください。

FPGA設計のポイント

>>ダウンロードはこちら!

設計のポイント 一覧

FPGA設計のポイント

お問い合わせ

組み込み機器・ハードウェア 設計製作.comを運営する株式会社アイディアイは、組み込み機器・ハードウェアの設計開発代行サービスを提供しています。
試験装置や制御機器、組み込みボードなど、設計・開発委託先をお探しの皆様、お気軽に当社に御相談ください。

技術資料のダウンロードはこちらから 技術資料ダウンロ―ド メールフォームでのお問い合わせはこちらから ご相談お問合せ