モジュール構造
CoddyのVerilogジャーニー「基礎」セクションの一部 — レッスン 30/90。
Verilogにおいて、モジュールは基本的な構成要素です。すべての設計は、互いに接続してより大きなシステムを形成するモジュールから構築されます。
モジュールは、以下のものを持つハードウェアコンポーネントです:
- 名前
- 入力(入ってくる信号)
- 出力(出ていく信号)
- 内部ロジック(モジュールが行うこと)
モジュールを、ピンと内部回路を備えたチップのようなものだと考えてください。
基本的なモジュールの構造
すべてのモジュールは以下の構造に従います:
module module_name (
input signals,
output signals
);
// 内部宣言 (wires, regs など)
// ロジック (assign 文、always ブロックなど)
endmoduleモジュールの構成要素
| 構成要素 | 役割 |
|---|---|
module キーワード | モジュール定義の開始 |
module_name | モジュールの名前 |
( ) | 入力および出力ポートのリスト |
input / output | ポートの方向の宣言 |
| モジュール本体 | 内部ロジックと接続 |
endmodule | モジュール定義の終了 |
シンプルなモジュールの例
module and_gate (
input a,
input b,
output c
);
assign c = a & b;
endmoduleこのモジュールは:
and_gateという名前です- 2つの入力(
a、b)を持ちます - 1つの出力(
c)を持ちます - ロジックを定義する1つの
assign文を含んでいます
モジュール構造のルール
- 1ファイルにつき1モジュールが一般的な慣習です
- モジュール名はその機能を説明するものであるべきです
- ポートは名前の後の括弧内にリストされます
- 入力は常に
inputです(内部で書き込むことはできません) - 出力は
outputです(regまたはwireにすることができます) <strong>endmodule</strong>でモジュールを閉じる必要があります
チャレンジ
不足している部分を記入して、このモジュールを完成させてください。
やるべきこと:
- モジュール名
my_andを追加してください xに対してinputを追加してくださいyに対してinputを追加してくださいzに対してoutputを追加してくださいassignを使用して内部ロジックを追加してください
チートシート
モジュールはVerilogにおける基本的な構成要素であり、入力、出力、および内部ロジックを持つハードウェアコンポーネントです。
module module_name (
input a,
input b,
output c
);
// 内部ロジック
assign c = a & b;
endmodulemodule/endmodule— 定義の開始と終了input— 入力信号(モジュール内では読み取り専用)output— 出力信号(regまたはwireが可能)assign— 組合せ回路を定義
自分で試してみよう
module ______ ( // モジュール名を追加
______ x, // 入力を追加
______ y, // 入力を追加
______ z // 出力を追加
);
// ここに代入文を追加 (z = x & y)
endmoduleこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。