Menu
CoddyTech

Module đầu tiên

Thuộc phần Kiến thức nền tảng trong hành trình Verilog của Coddy. Bài học 3 trên 90.

Module là khối cấu tạo cơ bản trong Verilog. Mọi đoạn code Verilog đều nằm trong một module.

Hãy hình dung module như một thành phần có:

  • Đầu vào (các tín hiệu đi vào)
  • Đầu ra (các tín hiệu đi ra)
  • Hoạt động (những gì nó làm)

Cú pháp module

module module_name ( inputs, outputs );

  // Mọi thứ nằm trong đây

endmodule

Mỗi module bắt đầu bằng module và kết thúc bằng endmodule.

Đầu vào và đầu ra

module and_gate(
  input a,     // a đi vào module
  input b,     // b đi vào module
  output c     // c đi ra khỏi module
);

  // Viết phần hoạt động ở đây

endmodule
  • input = tín hiệu đi vào module
  • output = tín hiệu đi ra khỏi module

Thêm hành vi

Bây giờ, ta làm cho module thực hiện một việc:

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

  assign c = a & b;  // c chỉ bằng 1 khi cả a và b đều bằng 1

endmodule
  • assign liên tục kết nối vế phải với vế trái
  • & có nghĩa là AND trong Verilog
challenge icon

Thử thách

Trong thử thách này, bạn cần tạo một module đơn giản thực hiện phép OR.

Cần làm gì:

  1. Đặt tên module là or_gate
  2. Module cần có một đầu vào tên là x
  3. Module cần có một đầu vào tên là y
  4. Module cần có một đầu ra tên là z
  5. Bên trong module, dùng assign để gán z bằng x OR y

Phần khai báo module và ba cổng của nó đã có sẵn trong trình soạn thảo. Bạn cần thêm câu lệnh assign bên trong module.

Lưu ý: Trong Verilog, phép OR được viết bằng ký hiệu gạch đứng |. Kết quả là 1 (đúng) nếu ít nhất một đầu vào có giá trị 1 (đúng).

Tự làm thử

// Phần khai báo module và các cổng đã có sẵn cho bạn
module or_gate(
  input x,
  input y,
  output z
);

  // Đến lượt bạn: dùng assign để gán z bằng x OR y
  // Trong Verilog, phép OR được viết là |

endmodule
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến thức nền tảng

Tự luyện tập: Trình biên dịch Verilog online