はじめてのモジュール
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になります
endmoduleassignは右辺を左辺に継続的に接続します&は Verilog において AND を意味します
チャレンジ
このチャレンジでは、OR演算を実行するシンプルなモジュールを作成する必要があります。
行うべきこと:
- モジュール名は
or_gateとしてください xという名前の入力を持ちますyという名前の入力を持ちますzという名前の出力を持ちます- モジュール内で、
assignを使用してzをx 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 は | と記述されます
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。