3-3 Verilog 4位超前进位加法器

使用工具: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 begin
		// Initialize Inputs
		num_1 = 0;		num_2 = 1;		#100;
		num_1 = 2;		num_2 = 3;		#100;
		num_1 = 4;		num_2 = 5;		#100;
		num_1 = 8;		num_2 = 9;		#100;
		num_1 = 14;		num_2 = 15;		#100;
		// Add stimulus here
	end
仿真结果:



你可能感兴趣的:(Verilog成长记)