fulladder
我们来分析 fulladder.sv
文件,它是一个标准的三输入全加器模块,通常用于构建 3:2 压缩器(compressor) 的基本单元。
📘 功能注释
// full adder, the basic module that constitutes the 3:2 compressor
该模块是三输入全加器(Full Adder),用于 Wallace 树或 CSA 树结构中进行部分积压缩。
🔧 模块定义与端口
module fulladder(
input logic x,y,z,
output logic sum,carry
);
端口名 | 方向 | 功能 |
---|---|---|
x |
in | 三个输入加数之一 |
y |
in | |
z |
in | |
sum |
out | 求和位 |
carry |
out | 进位位 |
➕ 加法逻辑实现
assign sum = (x ^ y ) ^ z;
assign carry = ((x ^ y) & z) | (x & y);
标准全加器的输出逻辑:
sum = x ⊕ y ⊕ z
carry = (x ⊕ y) · z + x · y
🔚 模块结束
endmodule
是否将此模块转换为 Verilog-2001 格式(去除 logic
,改用 wire
)?