Menu
CoddyTech

内置门原语

本课属于 Coddy Verilog 学习旅程的“基础知识”单元。第 39 课,共 90 课。

Verilog 内置了门原语,可以让你使用实际的门符号描述逻辑电路。这称为结构化建模。你可以通过连接逻辑门来搭建电路,就像绘制电路图一样。

门原语是预定义的关键字,用于模拟基本逻辑门。你无需编写类似 assign out = a & b 的表达式,而是实例化一个门:

and(out, a, b);   // 与门,输出为 out,输入为 a 和 b

通用语法

gate_type (output, input1, input2, ...);
  • 第一个参数始终是输出
  • 后续参数是输入(一个或多个,取决于门的类型)

可用的逻辑门基元

逻辑门类型关键字输入数量
ANDand2 个或更多
ORor2 个或更多
NOTnot1
NANDnand2 个或更多
NORnor2 个或更多
XORxor2 个或更多
XNORxnor2 个或更多

门原语的工作原理

当你编写 and(out, a, b) 时,Verilog 会创建一个与门,用 a & b 的结果持续驱动 out。每当 a 或 b 发生变化时,out 都会立即更新,就像真实的门电路一样。

门级原语与连续赋值

这两种方法生成的硬件相同:

// 门级原语
and(out, a, b);

// 连续赋值(结果相同)
assign out = a & b;

如果你想用一组门来描述电路(结构化风格),门原语就很有用。对于行为风格(表达式),连续赋值更合适。

challenge icon

挑战

要做什么:

  1. 添加正确的门原语,让这个电路正常工作。模块应输出输入 a 和 b 的 AND 运算结果。输出端口已经命名为 c。

亲手试试

module gate_challenge (
  input a,
  input b,
  output c
);
  
  // TODO: 添加正确的逻辑门原语
  // 输出 c 应为 a AND b 的结果

endmodule
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: Verilog 在线编译器