mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 11:42:30 +00:00 
			
		
		
		
	Merge pull request #1761 from YosysHQ/eddie/opt_merge_speedup
opt_merge: speedup
This commit is contained in:
		
						commit
						1bb5a5215f
					
				
					 3 changed files with 189 additions and 127 deletions
				
			
		|  | @ -20,6 +20,7 @@ endmodule | |||
| EOT | ||||
| 
 | ||||
| opt_merge | ||||
| select -assert-count 1 t:$dff | ||||
| select -assert-count 1 a:init=1'0 | ||||
| 
 | ||||
| 
 | ||||
|  | @ -46,4 +47,31 @@ endmodule | |||
| EOT | ||||
| 
 | ||||
| opt_merge | ||||
| select -assert-count 1 t:$dff | ||||
| select -assert-count 1 a:init=2'bx1 | ||||
| 
 | ||||
| 
 | ||||
| design -reset | ||||
| read_verilog -icells <<EOT | ||||
| module top(input clk, i, (* init = 1'b0 *) output o, /* NB: no init here! */ output p); | ||||
|   \$dff  #( | ||||
|     .CLK_POLARITY(1'h1), | ||||
|     .WIDTH(32'd1) | ||||
|   ) ffo  ( | ||||
|     .CLK(clk), | ||||
|     .D(i), | ||||
|     .Q(o) | ||||
|   ); | ||||
|   \$dff  #( | ||||
|     .CLK_POLARITY(1'h1), | ||||
|     .WIDTH(32'd1) | ||||
|   ) ffp  ( | ||||
|     .CLK(clk), | ||||
|     .D(i), | ||||
|     .Q(p) | ||||
|   ); | ||||
| endmodule | ||||
| EOT | ||||
| 
 | ||||
| opt_merge | ||||
| select -assert-count 2 t:$dff | ||||
|  |  | |||
							
								
								
									
										64
									
								
								tests/opt/opt_merge_keep.ys
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								tests/opt/opt_merge_keep.ys
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,64 @@ | |||
| read_verilog -icells <<EOT | ||||
| module top(input clk, i, output o, p); | ||||
|   (* keep *) | ||||
|   \$_DFF_P_ ffo  ( | ||||
|     .C(clk), | ||||
|     .D(i), | ||||
|     .Q(o) | ||||
|   ); | ||||
|   \$_DFF_P_ ffp  ( | ||||
|     .C(clk), | ||||
|     .D(i), | ||||
|     .Q(p) | ||||
|   ); | ||||
| endmodule | ||||
| EOT | ||||
| 
 | ||||
| opt_merge | ||||
| select -assert-count 1 t:$_DFF_P_ | ||||
| select -assert-count 1 a:keep | ||||
| 
 | ||||
| 
 | ||||
| design -reset | ||||
| read_verilog -icells <<EOT | ||||
| module top(input clk, i, output o, p); | ||||
|   \$_DFF_P_ ffo  ( | ||||
|     .C(clk), | ||||
|     .D(i), | ||||
|     .Q(o) | ||||
|   ); | ||||
|   (* keep *) | ||||
|   \$_DFF_P_ ffp  ( | ||||
|     .C(clk), | ||||
|     .D(i), | ||||
|     .Q(p) | ||||
|   ); | ||||
| endmodule | ||||
| EOT | ||||
| 
 | ||||
| opt_merge | ||||
| select -assert-count 1 t:$_DFF_P_ | ||||
| select -assert-count 1 a:keep | ||||
| 
 | ||||
| 
 | ||||
| design -reset | ||||
| read_verilog -icells <<EOT | ||||
| module top(input clk, i, output o, p); | ||||
|   (* keep *) | ||||
|   \$_DFF_P_ ffo  ( | ||||
|     .C(clk), | ||||
|     .D(i), | ||||
|     .Q(o) | ||||
|   ); | ||||
|   (* keep *) | ||||
|   \$_DFF_P_ ffp  ( | ||||
|     .C(clk), | ||||
|     .D(i), | ||||
|     .Q(p) | ||||
|   ); | ||||
| endmodule | ||||
| EOT | ||||
| 
 | ||||
| opt_merge | ||||
| select -assert-count 2 t:$_DFF_P_ | ||||
| select -assert-count 2 a:keep | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue