Menu
Coddy logo textTech

はじめてのモジュール

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

モジュールは、Verilogにおける基本的な構成要素です。Verilogコードのすべての部分は、モジュールの中に記述されます。

モジュールを、以下のものを持つコンポーネントとして考えてみてください:

  • 入力 (入ってくる信号)
  • 出力 (出ていく信号)
  • 振る舞い (それが何をするか)

モジュールの構文

module module_name ( inputs, outputs );

  // ここにすべての内容を記述します

endmodule

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

入力と出力

module and_gate(
  input a,     // aはモジュールに入力されます
  input b,     // bはモジュールに入力されます
  output c     // cはモジュールから出力されます
);

  // ここに動作を記述します

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

振る舞いの追加

次に、モジュールに動作をさせます:

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

  assign c = a & b;  // aとbの両方が1のときのみ、cは1になります

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

チャレンジ

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

行うべきこと:

  1. モジュール名は or_gate としてください
  2. x という名前の入力を持ちます
  3. y という名前の入力を持ちます
  4. z という名前の出力を持ちます
  5. モジュール内で、assign を使用して zx OR y と等しくします

注意: Verilogでは、ORはパイプ記号 | で記述されます。入力の少なくとも1つが1(真)であれば、1(真)を出力します。

チートシート

モジュールはVerilogにおける基本的な構成要素であり、入力、出力、および振る舞いを持つコンポーネントとして機能します。

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

  // 振る舞い

endmodule

出力信号を継続的に駆動するには、assignを使用します:

assign c = a & b;  // AND
assign c = a | b;  // OR
  • & — AND演算子
  • | — OR演算子

自分で試してみよう

// ステップ 1: or_gate という名前のモジュールを作成します

  // ステップ 2: 入力 x を作成します

  // ステップ 3: 入力 y を作成します

  // ステップ 4: 出力 z を作成します

  // ステップ 5: assign を使用して z = x OR y とします
  // Verilog では、OR は | と記述されます
quiz icon腕試し

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

基礎のすべてのレッスン