Menu
Coddy logo textTech

モジュール構造

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つの入力(ab)を持ちます
  • 1つの出力(c)を持ちます
  • ロジックを定義する1つの assign 文を含みます

モジュール構造のルール

  1. 1つのファイルに1つのモジュールが一般的なプラクティスです
  2. モジュール名(`module_name`)はその機能を説明するものにする必要があります
  3. ポートは名前の後ろの括弧内にリストされます
  1. 入力 (Inputs) は常に input です(内部で書き込むことはできません)
  2. 出力 (Outputs)output です(reg または wire にすることが可能です)
  3. <strong>endmodule</strong> でモジュールを閉じる必要があります
challenge icon

チャレンジ

不足している部分を補って、このモジュールを完成させてください。

手順:

  1. モジュール名 my_and を追加します
  2. xinput を追加します
  3. yinput を追加します
  4. zoutput を追加します
  5. assign を使用して内部ロジックを追加します

自分で試してみよう

module ______ (   // モジュール名を追加
  input x,       // 入力を追加
  input y,       // 入力を追加
  output z       // 出力を追加
);
  // ここにassign文を追加 (z = x & y)
  
endmodule
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン