... | ... | @@ -12,7 +12,10 @@ Verilogでの基本構成は以下のようになります: |
|
|
- `wire` / `reg`:信号を表現する変数(信号線やレジスタ)
|
|
|
- `wire` は常に接続されている線、と考えるとよいと思います、モジュール間の接続、ピンの入出力など、の用途に使います
|
|
|
- `reg` は記憶を持つ変数であり、フリップフロップ、状態変数など、クロックなどに応じて値が変化するような用途に使います
|
|
|
|
|
|
- `assign`:**組み合わせ回路の論理式を記述するための代入文**。`wire` 型の信号に対して使用され、いつでも右辺の論理式に応じて出力が変化します。
|
|
|
- `always`:**条件に基づく処理(順序回路や条件に基づいた組み合わせ回路)を記述するブロック**。
|
|
|
- `always @(posedge clk)` などクロックを指定して、**フリップフロップを使った順序回路の動作**を記述することができます。
|
|
|
- `always @(*)` のようにセンシティビティリストに `*` を使って、**条件に基づいた組み合わせ回路**を記述することができます。
|
|
|
例:
|
|
|
```verilog
|
|
|
wire a, b, y;
|
... | ... | @@ -24,12 +27,7 @@ always @(posedge clk) begin |
|
|
end
|
|
|
```
|
|
|
|
|
|
- `assign`:**組み合わせ回路の論理式を記述するための代入文**。`wire` 型の信号に対して使用され、いつでも右辺の論理式に応じて出力が変化します。
|
|
|
- `always`:**条件に基づく処理(順序回路や条件に基づいた組み合わせ回路)を記述するブロック**。
|
|
|
- `always @(posedge clk)` などクロックを指定して、**フリップフロップを使った順序回路の動作**を記述することができます。
|
|
|
- `always @(*)` のようにセンシティビティリストに `*` を使って、**条件に基づいた組み合わせ回路**を記述することができます。
|
|
|
|
|
|
ここでは Verilog HDLの基本的な`module`の書き方やテストベンチの作成方法を簡潔に解説します。
|
|
|
以降ではまず、Verilog HDLの基本的な`module`の書き方やテストベンチの作成方法を簡潔に解説します。
|
|
|
|
|
|
### 1. 基本のmoduleの書き方
|
|
|
|
... | ... | |