FPGA-基本知识 设计一个一位(四位)半加器和一位(四位)全加器

使用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

查看技术原理图:

FPGA-基本知识 设计一个一位(四位)半加器和一位(四位)全加器_第1张图片

内部结构:其中 XBUF表示 缓冲

输入输出同时有缓冲不影响数据的值

FPGA-基本知识 设计一个一位(四位)半加器和一位(四位)全加器_第2张图片

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

仿真示意波形图:

FPGA-基本知识 设计一个一位(四位)半加器和一位(四位)全加器_第3张图片

从波形图中可以看出加法器的输入和输出的规律

 

课后作业:设计一个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

 

FPGA-基本知识 设计一个一位(四位)半加器和一位(四位)全加器_第4张图片

FPGA-基本知识 设计一个一位(四位)半加器和一位(四位)全加器_第5张图片

仿真如下:

FPGA-基本知识 设计一个一位(四位)半加器和一位(四位)全加器_第6张图片

4位全加器和一位全加器只是多了一个低位进位位Ci

示意图如下:

FPGA-基本知识 设计一个一位(四位)半加器和一位(四位)全加器_第7张图片

 

你可能感兴趣的:(FPGA)