mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 19:52:31 +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
 |