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
仿真結果:



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章