mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-03 21:09:12 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			22 lines
		
	
	
	
		
			453 B
		
	
	
	
		
			Verilog
		
	
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
	
		
			453 B
		
	
	
	
		
			Verilog
		
	
	
	
	
	
module opt_share_test(
 | 
						|
  input [15:0]      a,
 | 
						|
  input [15:0]      b,
 | 
						|
  input [15:0]      c,
 | 
						|
  input [15:0]      d,
 | 
						|
  input             sel,
 | 
						|
  output reg [47:0] res,
 | 
						|
  );
 | 
						|
 | 
						|
  wire [15:0]       add_res = a+b;
 | 
						|
  wire [15:0]       sub_res = a-b;
 | 
						|
  wire [31: 0]      cat1 = {add_res, c+d};
 | 
						|
  wire [31: 0]      cat2 = {sub_res, c-d};
 | 
						|
 | 
						|
  always @* begin
 | 
						|
    case(sel)
 | 
						|
      0: res = {cat1, add_res};
 | 
						|
      1: res = {cat2, add_res};
 | 
						|
    endcase
 | 
						|
  end
 | 
						|
 | 
						|
endmodule
 |