... | ... | @@ -7,25 +7,20 @@ Verilogは、ハードウェア設計のための記述言語(HDL: Hardware De |
|
|
|
|
|
Verilogでの基本構成は以下のようになります:
|
|
|
|
|
|
- `module`:回路の構造ブロック(部品)
|
|
|
- `module`:回路のブロック(部品)
|
|
|
- `input` / `output`:端子
|
|
|
- `wire` / `reg`:信号線やレジスタ(信号の種類)
|
|
|
- `wire` / `reg`:信号を表現する変数(信号線やレジスタ)
|
|
|
- `wire` は常に接続されている線、と考えるとよいと思います、モジュール間の接続、ピンの入出力など、の用途に使います
|
|
|
- `reg` は記憶を持つ変数であり、フリップフロップ、状態変数など、クロックなどに応じて値が変化するような用途に使います
|
|
|
|
|
|
例:
|
|
|
```verilog
|
|
|
wire a, b, y;
|
|
|
assign y = a & b; // wire への assign
|
|
|
assign y = a & b; // `wire` への `assign`
|
|
|
|
|
|
reg state;
|
|
|
always @(posedge clk) begin
|
|
|
state <= next_state; // reg への代入(順序回路)
|
|
|
end
|
|
|
|
|
|
reg sum;
|
|
|
always @(*) begin
|
|
|
sum = in1 + in2; // 組合せ回路の記述にも reg は使用可能
|
|
|
state <= next_state; // クロックの立ち上がりに応じた `reg` への代入(順序回路)
|
|
|
end
|
|
|
```
|
|
|
|
... | ... | |