使用工具:Xilinx ISE 14.7
用逻辑表达式实现4位的超前进位加法器,目的是为了减少输出延迟,提高运算速度。在4位行波进位加法器中,计算过程中包含输出信号S[i]与C[i]作为中间变量,用他们作为下一级的输入,并将多个1位全加器串联起来造成了每一级的延迟累加,最终导致输出延迟过大。为了减小延迟,可以将每一级的运算结果先存储起来,再展开逻辑表达式进行复合运算,从而减少数据流从输入端到输入端间经过的逻辑门个数。将串行运算改为并行运算,代码如下:
module Design_Code(
input [3:0] num_1,
input [3:0] num_2,
output reg [3:0] s,
output reg CF
);
reg [3:0] P;
reg [3:0] G;
integer i;
always @ (*)
begin
for(i=0; i<4; i=i+1)
begin
G[i] = num_1[i]&num_2[i];
P[i] = num_1[i]^num_2[i];
end
s[0] = P[0];
s[1] = P[1]^G[0];
s[2] = P[2]^(G[1]|P[1]&G[0]);
s[3] = P[3]^(G[2]|(P[2]&G[1])|(P[2]&P[1]&G[0]));
CF = G[3]|(P[3]&G[2])|(P[3]&P[2]&G[1])|(P[3]&P[2]&P[1]&G[0]);
end
endmodule
测试文件:
initial