1. 程式人生 > >FPGA-01-基本知識 設計一個一位(四位)半加器和一位(四位)全加器

FPGA-01-基本知識 設計一個一位(四位)半加器和一位(四位)全加器

使用ISE設計一個加法器(半加器):

dina (輸入)dinb(輸出) co(進位輸出)sum(和輸出)

程式碼如下:

module adder_one(dina,dinb,sum,co
    );
	input dina;
	input dinb;
	output sum;
	output co;
	
	assign {co,sum}= dina + dinb ;

endmodule

檢視技術原理圖:

內部結構:其中 XBUF表示 緩衝

輸入輸出同時有緩衝不影響資料的值

module tb_adder_one;

	// Inputs
	reg dina;
	reg dinb;

	// Outputs
	wire sum;
	wire co;

	// Instantiate the Unit Under Test (UUT)
	adder_one uut (
		.dina(dina), 
		.dinb(dinb), 
		.sum(sum), 
		.co(co)
	);

	initial begin
		// Initialize Inputs
		dina = 0;
		dinb = 0;

		// Wait 100 ns for global reset to finish
		#100;
		dina = 1'b1;
		dinb = 1'b0;
		#100;
		dina = 1'b0;
		dinb = 1'b1;
		#100;
		dina = 1'b1;
		dinb = 1'b1;
        
		// Add stimulus here

	end
      
endmodule

模擬示意波形圖:

從波形圖中可以看出加法器的輸入和輸出的規律

課後作業:設計一個4位的半加法器

程式碼如下:

module adder_four(cout,sum,ina,inb
);
	output[3:0] sum;
	output cout;
	input[3:0] ina,inb;
	
	assign {cout,sum}=ina+inb;
endmodule

模擬如下:

4位全加器和一位全加器只是多了一個低位進位位Ci

示意圖如下: