Verilog HDL(略語Verilog)は、デジタル回路のシステム設計で使用されるハードウェア記述言語です。アルゴリズムレベル、ゲートレベル、スイッチレベルなど、複数の抽象的な設計レベルをモデリングできます。
Verilogは、C言語のさまざまな演算子と構造を継承しています。別のハードウェア言語記述であるVHDLと比較すると、構文はそれほど厳密ではなく、コードはより簡潔で習得しやすいです。
Verilogは、文法を定義するだけでなく、文法構造の明確なシミュレーション・セマンティックも定義します。そのため、Verilogで記述されたデジタルモデルは、Verilogシミュレータで検証できます。
この記事を読むのに適する方
この記事は、主にVerilogの初心者を対象としています。
Verilogの基礎をすでに習得している読者は、他の記事で学習し、コミュニケーションすることができます。
この記事を読む前に知るべきこと
この記事を学習する前に、デジタル回路に関するいくつかの基本的な情報を理解する必要があります。
C言語をある程度で理解している場合は、Verilogをより早く習得するのに役立ちます。
最初のVerilogデザイン
幅が4桁の10進カウンタ:
実例
module counter10(
//ポート定義
input rstn, //リセット、アクティブロー
input clk, //時計を入力する
output [3:0] cnt, //カウントを出力する
output cout); //オーバーフロー
reg [3:0] cnt_temp ; //カウンタレジスタ
always@(posedge clk or negedge rstn) begin
if(! rstn)begin //リセットすると、タイマーは0に戻る
cnt_temp <= 4'b0 ;
end
else if (cnt_temp==4'd9) begin //カウンタが10個のサイクル(cycle)になると、タイマーは0に戻る
cnt_temp <=4'b000;
end
else begin //カウンタ+1
cnt_temp <= cnt_temp + 1'b1 ;
end
end
assign cout = (cnt_temp==4'd9) ; //サイクルを出力する
assign cnt = cnt_temp ; //リアルタイムタイマーを出力する
endmodule
コメントを残す