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

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

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

設計のポイント

verilog記述のポイント:output regを使用する

設計内容分類verilog記述
解決できる課題コード量の削減

実現したい仕様・課題

モジュールの出力端子に、always文でクロック同期した値(レジスタ出力)を割り当てたい場合があります。出力用のwireと内部regを別々に宣言してassignで接続すると、宣言や中間信号が増えてコードが冗長になります。記述を簡潔にし、レジスタ出力を素直に表現したいというのが課題です。

設計のポイント

“出力端子を output reg として宣言すると、その出力端子を直接always文の中で代入対象(レジスタ)にでき、内部レジスタと出力用wireを別に用意してassignでつなぐ必要がなくなります。これにより中間信号の宣言が不要になり、コード量を削減しつつ、出力がレジスタ(フリップフロップ)であることを宣言部で明確に示せます。たとえば output reg [7:0] data_out; と宣言し、always @(posedge clk) 内で data_out <= …; と記述すれば、クロック同期した出力レジスタがそのまま構成されます。一方、組み合わせ回路としてassignで駆動する出力は output(wire)のままとします。出力をレジスタ化すると、出力タイミングがクロックに揃い、グリッチ(一時的な信号の乱れ)を抑えてタイミング設計が安定するという利点もあります。なお output reg はあくまで「always内で代入する出力」を表す宣言であり、記述内容によって生成回路が決まる点は wire/reg と同様です(SystemVerilogでは output logic で統一的に記述できます)。

【コード例】
module counter(input clk, input rst_n, output reg [7:0] cnt);
always @(posedge clk or negedge rst_n)
if (!rst_n) cnt <= 8’d0;
else cnt <= cnt + 8’d1;
endmodule”

補足情報

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

FPGA設計のポイント

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

設計のポイント 一覧

FPGA設計のポイント

お問い合わせ

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

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