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

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

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

設計のポイント

verilog記述のポイント:二次元配列

設計内容分類verilog記述
解決できる課題期待通りの動作

実現したい仕様・課題

同じビット幅のレジスタを多数扱いたい場合、data0・data1・data2… と個別に宣言すると、宣言が冗長になり、インデックスで動的に選択する処理も書きにくくなります。バッファやテーブル、ラインメモリのように、まとまったデータ群を効率よく扱いたいというのが課題です。

設計のポイント

“同種のレジスタを多数扱う場合は、二次元配列(メモリ配列)を使うと、宣言を簡潔にでき、インデックスによる要素アクセスが可能になります。たとえば reg [7:0] data[2:0]; と宣言すれば、8bit幅のレジスタを3個まとめて確保でき、data[0]・data[1]・data[2] のように添字で個別アクセスできます。さらに data[1][0] のように、要素内の特定ビットを参照することも可能です。ループ(generate や for)と組み合わせれば、配列要素に対する規則的な処理を簡潔に記述でき、シフトレジスタ、FIFO、係数テーブル、画像のラインバッファなどに活用できます。なお、要素数が多い配列はFPGAの合成時にブロックRAMへ割り当てられることがあり、その場合は1クロックで読み書きできるポート数に制約が生じます。同一クロックで多数の要素へ同時アクセスする設計では、レジスタ(フリップフロップ)として実装されるよう意図するか、ブロックRAMのポート構成を踏まえた読み書き設計とするかを、用途に応じて検討することが重要です。

【コード例】
reg [7:0] data[2:0]; // 8bit幅レジスタ × 3個
wire lsb;
assign lsb = data[1][0]; // 2番目の要素のLSBを参照”

verilog記述のポイント:二次元配列 | 組み込み機器・ハードウェア設計製作.com

補足情報

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

FPGA設計のポイント

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

設計のポイント 一覧

FPGA設計のポイント

お問い合わせ

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

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