Marcelina Kościelnicka 
								
							 
						 
						
							
							
							
							
								
							
							
								6c16fd760b 
								
							 
						 
						
							
							
								
								opt_expr: Add more $alu optimizations.  
							
							... 
							
							
							
							Detect the places in the $alu where the carry bit is constant (due to
const A[i] == B[i] ^ BI) and split it into smaller $alu at these points.
Also, make the existing const-carry detection for low bits more generic
(now handles cases where both BI and CI are constant, but not equal to
one another).
Fixes  #1912 . 
							
						 
						
							2020-04-14 21:48:13 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Marcelina Kościelnicka 
								
							 
						 
						
							
							
							
							
								
							
							
								840bb17089 
								
							 
						 
						
							
							
								
								opt_expr: Optimize multiplications with low 0 bits in operands.  
							
							... 
							
							
							
							Fixes  #1500 . 
						
							2020-04-13 16:52:22 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Eddie Hung 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								4ae7f3a8ed 
								
							 
						 
						
							
							
								
								Merge pull request  #1790  from YosysHQ/eddie/opt_expr_xor  
							
							... 
							
							
							
							opt_expr: optimise $xor/$xnor/$_XOR_/$_XNOR_ -s with constant inputs 
							
						 
						
							2020-04-01 14:17:01 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Eddie Hung 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								e79bc45975 
								
							 
						 
						
							
							
								
								Merge pull request  #1789  from YosysHQ/eddie/opt_expr_alu  
							
							... 
							
							
							
							opt_expr: improve performance on $alu and $sub 
							
						 
						
							2020-04-01 14:11:09 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Eddie Hung 
								
							 
						 
						
							
							
							
							
								
							
							
								6274f0b075 
								
							 
						 
						
							
							
								
								opt_expr: add failing $xnor test  
							
							
							
						 
						
							2020-03-20 14:38:50 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Eddie Hung 
								
							 
						 
						
							
							
							
							
								
							
							
								81ca776ea4 
								
							 
						 
						
							
							
								
								opt_expr: add $xor/$xnor/$_XOR_/$_XNOR_ tests  
							
							
							
						 
						
							2020-03-19 16:59:11 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Eddie Hung 
								
							 
						 
						
							
							
							
							
								
							
							
								5e2562f1a2 
								
							 
						 
						
							
							
								
								opt_expr: add $alu tests  
							
							
							
						 
						
							2020-03-19 14:57:10 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Eddie Hung 
								
							 
						 
						
							
							
							
							
								
							
							
								9f30d7f843 
								
							 
						 
						
							
							
								
								opt_merge: speedup  
							
							
							
						 
						
							2020-03-16 12:43:54 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Eddie Hung 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								505557e93e 
								
							 
						 
						
							
							
								
								Merge pull request  #1576  from YosysHQ/eddie/opt_merge_init  
							
							... 
							
							
							
							opt_merge: discard \init of '$' cells with 'Q' port when merging 
							
						 
						
							2020-02-05 14:56:26 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Marcelina Kościelnicka 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								34d2fbd2f9 
								
							 
						 
						
							
							
								
								Add opt_lut_ins pass. ( #1673 )  
							
							
							
						 
						
							2020-02-03 14:57:17 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Eddie Hung 
								
							 
						 
						
							
							
							
							
								
							
							
								d86d073ad6 
								
							 
						 
						
							
							
								
								Add testcase  
							
							
							
						 
						
							2019-12-13 10:26:30 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Marcin Kościelnicki 
								
							 
						 
						
							
							
							
							
								
							
							
								fdcbda195b 
								
							 
						 
						
							
							
								
								opt_share: Fix handling of fine cells.  
							
							... 
							
							
							
							Fixes  #1525 . 
						
							2019-11-27 08:01:07 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Eddie Hung 
								
							 
						 
						
							
							
							
							
								
							
							
								173c7936c3 
								
							 
						 
						
							
							
								
								Add missing -assert to equiv_opt  
							
							
							
						 
						
							2019-09-06 22:51:44 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Eddie Hung 
								
							 
						 
						
							
							
							
							
								
							
							
								6f971470f8 
								
							 
						 
						
							
							
								
								Respect opt_expr -keepdc as per @cliffordwolf  
							
							
							
						 
						
							2019-08-22 08:37:27 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Eddie Hung 
								
							 
						 
						
							
							
							
							
								
							
							
								379f33af54 
								
							 
						 
						
							
							
								
								Handle $shift and Y_WIDTH > 1 as per @cliffordwolf  
							
							
							
						 
						
							2019-08-22 08:22:23 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Eddie Hung 
								
							 
						 
						
							
							
							
							
								
							
							
								bb1a8a0190 
								
							 
						 
						
							
							
								
								Add test  
							
							
							
						 
						
							2019-08-21 21:58:20 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Eddie Hung 
								
							 
						 
						
							
							
							
							
								
							
							
								e34f2de55d 
								
							 
						 
						
							
							
								
								Merge remote-tracking branch 'origin/master' into clifford/testfast  
							
							
							
						 
						
							2019-08-18 21:29:15 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									whitequark 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								101235400c 
								
							 
						 
						
							
							
								
								Merge branch 'master' into eddie/pr1266_again  
							
							
							
						 
						
							2019-08-18 08:04:10 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Eddie Hung 
								
							 
						 
						
							
							
							
							
								
							
							
								12c692f6ed 
								
							 
						 
						
							
							
								
								Revert "Merge pull request  #1280  from YosysHQ/revert-1266-eddie/ice40_full_adder"  
							
							... 
							
							
							
							This reverts commit c851dc1310f54bf1631f 
							
						 
						
							2019-08-12 12:06:45 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									David Shah 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								f9020ce2b3 
								
							 
						 
						
							
							
								
								Revert "Wrap SB_LUT+SB_CARRY into $__ICE40_CARRY_WRAPPER"  
							
							
							
						 
						
							2019-08-10 17:14:48 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Eddie Hung 
								
							 
						 
						
							
							
							
							
								
							
							
								2b6cdfb39f 
								
							 
						 
						
							
							
								
								Move tests/various/opt* into tests/opt/  
							
							
							
						 
						
							2019-08-07 21:35:48 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Eddie Hung 
								
							 
						 
						
							
							
							
							
								
							
							
								d5e8c0e6d3 
								
							 
						 
						
							
							
								
								Remove ice40_unlut call, simply do equiv_opt on synth_ice40  
							
							
							
						 
						
							2019-08-07 21:33:56 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Eddie Hung 
								
							 
						 
						
							
							
							
							
								
							
							
								4545bf482f 
								
							 
						 
						
							
							
								
								Remove tests/opt/opt_ff.{v,ys} as they don't seem to do anything but run  
							
							
							
						 
						
							2019-08-07 16:48:38 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Bogdan Vukobratovic 
								
							 
						 
						
							
							
							
							
								
							
							
								067b44938c 
								
							 
						 
						
							
							
								
								Fix wrong results when opt_share called before opt_clean  
							
							
							
						 
						
							2019-08-07 09:30:58 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Bogdan Vukobratovic 
								
							 
						 
						
							
							
							
							
								
							
							
								d8be5ce6ba 
								
							 
						 
						
							
							
								
								Tabs to spaces in opt_share examples  
							
							
							
						 
						
							2019-08-03 12:35:46 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Bogdan Vukobratovic 
								
							 
						 
						
							
							
							
							
								
							
							
								280c4e7794 
								
							 
						 
						
							
							
								
								Fix spacing in opt_share tests, change wording in opt_share help  
							
							
							
						 
						
							2019-08-03 12:28:46 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Bogdan Vukobratovic 
								
							 
						 
						
							
							
							
							
								
							
							
								c075486c59 
								
							 
						 
						
							
							
								
								Reimplement opt_share to work on $alu and $pmux  
							
							
							
						 
						
							2019-07-28 16:03:54 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Bogdan Vukobratovic 
								
							 
						 
						
							
							
							
							
								
							
							
								07c4a7d438 
								
							 
						 
						
							
							
								
								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 
							
						 
						
							2019-07-26 11:36:48 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Clifford Wolf 
								
							 
						 
						
							
							
							
							
								
							
							
								2454ad99bf 
								
							 
						 
						
							
							
								
								Refactor "opt_rmdff -sat"  
							
							... 
							
							
							
							Signed-off-by: Clifford Wolf <clifford@clifford.at> 
							
						 
						
							2019-06-20 13:44:21 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Bogdan Vukobratovic 
								
							 
						 
						
							
							
							
							
								
							
							
								9a468f81c4 
								
							 
						 
						
							
							
								
								Optimizing DFFs whose initial value prevents their value from changing  
							
							... 
							
							
							
							This is a proof of concept implementation that invokes SAT solver via Pass::call
method. 
							
						 
						
							2019-05-28 08:48:21 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Keith Rothman 
								
							 
						 
						
							
							
							
							
								
							
							
								25680f6a07 
								
							 
						 
						
							
							
								
								Fix WREDUCE on FF not fixing ARST_VALUE parameter.  
							
							... 
							
							
							
							Adds test case that fails without code change.
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com> 
							
						 
						
							2019-02-22 10:30:42 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									whitequark 
								
							 
						 
						
							
							
							
							
								
							
							
								bf8db55ef3 
								
							 
						 
						
							
							
								
								opt_expr: improve simplification of comparisons with large constants.  
							
							... 
							
							
							
							The idea behind this simplification is that a N-bit signal X being
compared with an M-bit constant where M>N and the constant has Nth
or higher bit set, it either always succeeds or always fails.
However, the existing implementation only worked with one-hot signals
for some reason. It also printed incorrect messages.
This commit adjusts the simplification to have as much power as
possible, and fixes other bugs. 
							
						 
						
							2019-01-02 15:45:28 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									whitequark 
								
							 
						 
						
							
							
							
							
								
							
							
								4fd458290c 
								
							 
						 
						
							
							
								
								opt_expr: refactor simplification of unsigned X<onehot and X>=onehot. NFCI.  
							
							
							
						 
						
							2019-01-02 05:11:29 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									whitequark 
								
							 
						 
						
							
							
							
							
								
							
							
								9e9846a6ea 
								
							 
						 
						
							
							
								
								opt_expr: refactor simplification of signed X>=0 and X<0. NFCI.  
							
							
							
						 
						
							2019-01-02 03:01:25 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									whitequark 
								
							 
						 
						
							
							
							
							
								
							
							
								8e53d2e0bf 
								
							 
						 
						
							
							
								
								opt_expr: simplify any unsigned comparisons with all-0 and all-1.  
							
							... 
							
							
							
							Before this commit, only unsigned comparisons with all-0 would be
simplified. This commit also makes the code handling such comparisons
to be more rigorous and not abort on unexpected input. 
							
						 
						
							2019-01-02 02:45:49 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									whitequark 
								
							 
						 
						
							
							
							
							
								
							
							
								42c356c49c 
								
							 
						 
						
							
							
								
								opt_lut: eliminate LUTs evaluating to constants or inputs.  
							
							
							
						 
						
							2018-12-31 23:55:40 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Clifford Wolf 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								2a681909df 
								
							 
						 
						
							
							
								
								Merge pull request  #724  from whitequark/equiv_opt  
							
							... 
							
							
							
							equiv_opt: new command, for verifying optimization passes 
							
						 
						
							2018-12-16 15:54:26 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									whitequark 
								
							 
						 
						
							
							
							
							
								
							
							
								7ff5a9db2d 
								
							 
						 
						
							
							
								
								equiv_opt: pass -D EQUIV when techmapping.  
							
							... 
							
							
							
							This allows avoiding techmap crashes e.g. because of large memories
in white-box cell models. 
							
						 
						
							2018-12-07 17:20:34 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									whitequark 
								
							 
						 
						
							
							
							
							
								
							
							
								c38ea9ae65 
								
							 
						 
						
							
							
								
								equiv_opt: new command, for verifying optimization passes.  
							
							
							
						 
						
							2018-12-07 17:20:34 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									whitequark 
								
							 
						 
						
							
							
							
							
								
							
							
								7ec740b7ad 
								
							 
						 
						
							
							
								
								opt_lut: leave intact LUTs with cascade feeding module outputs.  
							
							
							
						 
						
							2018-12-07 17:13:52 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									whitequark 
								
							 
						 
						
							
							
							
							
								
							
							
								45cb6200af 
								
							 
						 
						
							
							
								
								opt_lut: add -dlogic, to avoid disturbing logic such as carry chains.  
							
							
							
						 
						
							2018-12-05 16:30:37 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									whitequark 
								
							 
						 
						
							
							
							
							
								
							
							
								9e072ec21f 
								
							 
						 
						
							
							
								
								opt_lut: new pass, to combine LUTs for tighter packing.  
							
							
							
						 
						
							2018-12-05 16:30:37 +00:00