Module Structure
CoddyのVerilogジャーニー「基礎」セクションの一部。レッスン 30/90。
module は Verilog における基本的な構成要素です。すべての設計は、相互に接続してより大きなシステムを形成する module から構築されます。
module は以下を備えたハードウェアコンポーネントです。
- 名前
- Input(入力される signals)
- Output(出力される signals)
- Internal logic(module が行う処理)
module は、ピンと内部回路を備えたチップだと考えてください。
基本的なモジュール構造
すべてのモジュールは次の構造に従います:
module module_name (
input signals,
output signals
);
// 内部宣言 (wires, regs など)
// ロジック (assign statements, always blocks など)
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つの
assignstatement を含みます
モジュール構造のルール
- 1ファイルにつき1つのモジュールが一般的な慣行です
- モジュール名はその機能を説明するものにします
- ポートは名前の後のかっこ内に列挙します
- 入力は常に
inputです(内部に記述することはできません) - 出力は
outputです(regまたはwireにできます) <strong>endmodule</strong>でモジュールを閉じる必要があります
チャレンジ
このモジュールを完成させるために、欠けている部分を埋めてください。
行うこと:
- モジュール名
my_andを追加する xのinputを追加するyのinputを追加するzのoutputを追加するassignを使用して内部ロジックを追加する
自分で試してみよう
module ______ ( // モジュール名を追加
input x, // 入力を追加
input y, // 入力を追加
output z // 出力を追加
);
// ここにassign文を追加 (z = x & y)
endmoduleこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
4Operators Part 1
Arithmetic OperatorsModulo OperatorComparison OperatorsRecap - Simple MathBitwise Operators7Assign And Gates
Continuous AssignmentAssign With OperatorsBuilt In Gate PrimitivesAND OR NOT GatesXOR XNOR GatesRecap - Logic Gate Circuit10Decision Making
If StatementIf - ElseRecap - Simple ComparatorCase StatementCasex And CasezRecap - ALU Design5Operators Part 2
Logical OperatorsReduction OperatorsShift OperatorsConcatenation OperatorConditional OperatorRecap - Operator Challenge3Number System
Binary RepresentationSized NumbersUnsized NumbersNegative NumbersSpecial Values X And ZRecap - Number Formats6Modules
Module StructureInput And Output PortsInout PortsModule InstantiationPort Mapping By NamePort Mapping By OrderRecap - Build A Module9Procedural Blocks
Always BlockInitial BlockSensitivity ListBlocking AssignmentNon Blocking AssignmentRecap - Always vs Initial15Traffic Light Controller
Defining The StatesState Machine Logic自分で練習してみよう: Verilogオンラインコンパイラ