mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-04 05:19:11 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			30 lines
		
	
	
	
		
			506 B
		
	
	
	
		
			Verilog
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
	
		
			506 B
		
	
	
	
		
			Verilog
		
	
	
	
	
	
module uut_forgen02(a, b, cin, y, cout);
 | 
						|
 | 
						|
parameter WIDTH = 8;
 | 
						|
 | 
						|
input [WIDTH-1:0] a, b;
 | 
						|
input cin;
 | 
						|
 | 
						|
output [WIDTH-1:0] y;
 | 
						|
output cout;
 | 
						|
 | 
						|
genvar i;
 | 
						|
wire [WIDTH-1:0] carry;
 | 
						|
 | 
						|
generate
 | 
						|
	for (i = 0; i < WIDTH; i=i+1) begin:adder
 | 
						|
		wire [2:0] D;
 | 
						|
		assign D[1:0] = { a[i], b[i] };
 | 
						|
		if (i == 0) begin:chain
 | 
						|
			assign D[2] = cin;
 | 
						|
		end else begin:chain
 | 
						|
			assign D[2] = carry[i-1];
 | 
						|
		end
 | 
						|
		assign y[i] = ^D;
 | 
						|
		assign carry[i] = &D[1:0] | (^D[1:0] & D[2]);
 | 
						|
	end
 | 
						|
endgenerate
 | 
						|
 | 
						|
assign cout = carry[WIDTH-1];
 | 
						|
 | 
						|
endmodule
 |