工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Verilog

Verilogエッセンシャル:簡潔な概要

すべての振る舞いコードは module と endmodule の内側に書きます。作成したいデジタル設計が何であれ、module ブロックの中に入ります。ポートを定義しても、しなくてもよく、信号をブロックに入れる input や、ブロックから出す output を許可します。

モジュール

以下の空のモジュールは testbench と呼ばれます。英数字と '_' を含むなら何でも命名可能です。

module testbench;
endmodule

別のモジュールを見てみましょう。いくつかの信号(d, clk, rstb)が入力として、q が出力として宣言されています。

module dff (input d, clk, rstb, output q);
endmodule

データ型

モジュールの見た目が分かったところで、モジュールの中に何を入れられるか、テストベンチモジュールを見ながら確認しましょう。Verilogには主に2つのデータ型があります:

reg データ型は変数のように値を保持するために使われ、wire は電気ワイヤと同様、継続的に駆動されなければなりません。したがって通常、wire は複数モジュール間の接続や他の信号に使われます。

module testbench;
reg d;
reg rst_b;
reg clk;
wire q;
endmodule

代入

Verilogには3つの基本ブロックがあります:

always @ (condition)条件が満たされるたびに常に実行
initialシミュレーション開始時に1回だけ実行
assign [LHS] = [RHS]RHSが変化するたびにLHSの値を更新

Verilogを書くときのいくつかのルール:

module testbench;
reg d;
reg rst_b;
reg clk;
wire q;
initial begin
    d = 0;
    rst_b = 0;
    clk = 0;
    #100 $finish;
end
always begin
    #10 clk = ~clk;
end
endmodule

上記例から以下に注意:

Verilog

  1. Verilogマスター:デジタル回路設計のための完全チュートリアル
  2. Verilog連結マスター:実践ガイド
  3. Verilog代入文の理解:種類、構文、ベストプラクティス
  4. Verilogブロッキング代入とノンブロッキング代入:違いを徹底解説
  5. Verilog関数のマスター:効率的なRTL設計のために
  6. Verilogタスクの理解:関数との違い、構文、使用法
  7. Verilog階層参照スコープのマスター:モジュールとブロックでの名前衝突回避
  8. Verilogクロックジェネレータ:設計と実装ガイド
  9. Verilog数学関数のマスター:効率的なハードウェア設計のために
  10. Verilog $timeformatのマスター:精度と表示制御
  11. 任意のスコープでのVerilog timescale理解と表示