Menu
Coddy logo textTech

最初のモジュール

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

module は Verilog における基本的な構成要素です。Verilog コードのすべての部分は module の中にあります。

モジュールを、次の要素を持つコンポーネントとして考えてみましょう:

  • 入力(入ってくる信号)
  • 出力(出ていく信号)
  • Behavior(その動作)

モジュール構文

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 と b がともに 1 のときのみ 1 になる

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

チャレンジ

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

行うこと:

  1. module の名前は or_gate にします
  2. x という名前の input を持つ必要があります
  3. y という名前の input を持つ必要があります
  4. z という名前の output を持つ必要があります
  5. module の inside で、assign を使って zx OR y と等しくします

module のヘッダーとその3つの ports はすでにエディターにあります。追加する必要がある行は、module inside の assign 文です。

注:Verilog では、OR はパイプ記号 | で記述します。inputs の少なくとも1つが1(true)の場合、1(true)を出力します。

自分で試してみよう

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

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

endmodule
quiz icon腕試し

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

基礎のすべてのレッスン

自分で練習してみよう: Verilogオンラインコンパイラ