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

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

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

設計のポイント

verilog記述のポイント:連接演算子を使う

設計内容分類verilog記述

実現したい仕様・課題

複数の信号を結合して1本のバスにまとめたい、特定のビットを定数で埋めたい、信号の並べ替えやパディングを行いたい、といった配線操作はFPGA設計で頻出します。これらをビットごとに個別代入すると記述が冗長になり、ミスを誘発します。設計意図を簡潔かつ正確に表現したいというのが課題です。

設計のポイント

連接演算子 {} を使うと、複数の信号や定数をMSB側から順に列挙して1つのベクタへ結合できます。たとえば8bitと4bitの信号、4bitの定数を結合する場合、assign c = {a, b, 4’h0}; のように記述すれば、a[7:0]、b[3:0]、4’b0000 がこの順で連結された16bitの信号が得られます。波括弧内は左が上位(MSB側)、右が下位(LSB側)に対応する点を常に意識します。連接は、繰り返し連接 {N{ }} と組み合わせたゼロ拡張・符号拡張、バスの分割や再構成、エンディアン変換、パディングなど幅広く活用できます。結合結果のビット幅は各要素の幅の総和になるため、代入先のビット幅と一致しているかを必ず確認します。幅が不一致だと暗黙の切り捨てやゼロ埋めが起こり、意図しない値になりやすいためです。連接を用いることでビット単位の個別代入を排除でき、コードが簡潔になり、可読性とレビュー効率が向上します。

【コード例】
wire [7:0] a;
wire [3:0] b;
wire [15:0] c;
assign c = {a, b, 4’h0}; // a[7:0], b[3:0], 4’b0000 を上位から連結
assign sext = { {8{a[7]}}, a }; // 繰り返し連接による符号拡張の例

補足情報

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

FPGA設計のポイント

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

設計のポイント 一覧

FPGA設計のポイント

お問い合わせ

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

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