mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 03:32:29 +00:00 
			
		
		
		
	Implement opt_share
This pass identifies arithmetic operators that share an operand and whose results are used in mutually exclusive cases controlled by a multiplexer, and merges them together by multiplexing the other operands
This commit is contained in:
		
							parent
							
								
									a02d1720a7
								
							
						
					
					
						commit
						07c4a7d438
					
				
					 6 changed files with 383 additions and 1 deletions
				
			
		
							
								
								
									
										19
									
								
								tests/opt/opt_share_mux_tree.v
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								tests/opt/opt_share_mux_tree.v
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,19 @@ | |||
| module add_sub( | ||||
|                input [15:0] 		 a, | ||||
|                input [15:0] 		 b, | ||||
|                input [15:0] 		 c, | ||||
|                input [1:0] 			 sel, | ||||
|                output reg [15:0] res | ||||
|                ); | ||||
| 
 | ||||
| 
 | ||||
|   always @* begin | ||||
|     case(sel) | ||||
|       0: res = a + b; | ||||
|       1: res = a - b; | ||||
|       2: res = a + c; | ||||
|       default: res = 16'bx; | ||||
|     endcase | ||||
|   end | ||||
| 
 | ||||
| endmodule | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue