Menu
Coddy logo textTech

はじめてのモジュール

CoddyのVerilogジャーニー「基礎」セクションの一部 — レッスン 4/90。

module は Verilog における基本的なビルディングブロックです。Verilog のコードはすべて module の inside に記述されます。

モジュールは、以下の要素を持つコンポーネントとして考えてください。

  • Inputs(入力される信号)
  • Outputs(出力される信号)
  • Behavior(その働き)

Module Syntax

module module_name ( inputs, outputs );

  // ここにあるすべて

endmodule

すべてのモジュールは module で始まり、endmodule で終わります。

Inputs and Outputs

module and_gate(
  input a,     // a はモジュールに入ってくる
  input b,     // b はモジュールに入ってくる
  output c     // c はモジュールから出ていく
);

  // 振る舞いはここに書く

endmodule
  • input = 信号がモジュールに入ります
  • output = 信号がモジュールから出力されます

Behavior の追加

次に、module に処理を行わせます:

module and_gate(
  input a,
  input b,
  output c
);

  assign c = a & b;  // c は a AND b が 1 のときのみ 1 です

endmodule
  • assign は右辺と左辺を継続的に接続します
  • & は Verilog で AND を意味します
challenge icon

チャレンジ

このチャレンジでは、OR演算を実行するシンプルなモジュールを作成する必要があります。

作業手順:

  1. モジュール名は or_gate としてください
  2. x という名前の input を含めてください
  3. y という名前の input を含めてください
  4. z という名前の output を含めてください
  5. モジュール inside で、assign を使用して zx OR y と等しくしてください

モジュールの header とその3つの ports は、すでにエディタ内に用意されています。追加する必要がある行は、モジュール insideassign ステートメントです。

補足: Verilog では、ORはパイプ記号 | を使って記述されます。inputs のうち少なくとも1つが1 (true) であれば、1 (true) を outputs します。

自分で試してみよう

// モジュールヘッダーとそのポートはすでに記述されています
module or_gate(
  input x,
  input y,
  output z
);

  // あなたの番です: assign を使って z を x OR y に設定してください
  // Verilog では、OR は | と書きます

endmodule
quiz icon腕試し

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

基礎のすべてのレッスン