mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 03:32:29 +00:00 
			
		
		
		
	Reenable existing equiv_opt tests
This commit is contained in:
		
							parent
							
								
									81906aa627
								
							
						
					
					
						commit
						0113f44faa
					
				
					 13 changed files with 52 additions and 54 deletions
				
			
		|  | @ -70,4 +70,4 @@ EOT | ||||||
| read_verilog -lib +/ice40/cells_sim.v | read_verilog -lib +/ice40/cells_sim.v | ||||||
| hierarchy -top top | hierarchy -top top | ||||||
| flatten | flatten | ||||||
| equiv_opt -multiclock -map +/ice40/cells_sim.v synth_ice40 | equiv_opt -assert -multiclock -map +/ice40/cells_sim.v synth_ice40 | ||||||
|  |  | ||||||
|  | @ -2,7 +2,7 @@ read_verilog ../common/counter.v | ||||||
| hierarchy -top top | hierarchy -top top | ||||||
| proc | proc | ||||||
| flatten | flatten | ||||||
| equiv_opt -async2sync -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclonev -noiopad -noclkbuf # equivalency check | equiv_opt -assert -async2sync -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclonev -noiopad -noclkbuf # equivalency check | ||||||
| design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design) | design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design) | ||||||
| cd top # Constrain all select calls below inside the top module | cd top # Constrain all select calls below inside the top module | ||||||
| 
 | 
 | ||||||
|  | @ -17,7 +17,7 @@ read_verilog ../common/counter.v | ||||||
| hierarchy -top top | hierarchy -top top | ||||||
| proc | proc | ||||||
| flatten | flatten | ||||||
| equiv_opt -async2sync -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclone10gx -noiopad -noclkbuf # equivalency check | equiv_opt -assert -async2sync -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclone10gx -noiopad -noclkbuf # equivalency check | ||||||
| design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design) | design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design) | ||||||
| cd top # Constrain all select calls below inside the top module | cd top # Constrain all select calls below inside the top module | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -10,7 +10,7 @@ design -save read | ||||||
| select -assert-count 2 t:$xor | select -assert-count 2 t:$xor | ||||||
| select -assert-count 2 t:$xnor | select -assert-count 2 t:$xnor | ||||||
| 
 | 
 | ||||||
| equiv_opt opt_expr | equiv_opt -assert opt_expr | ||||||
| design -load postopt | design -load postopt | ||||||
| select -assert-none t:$xor | select -assert-none t:$xor | ||||||
| select -assert-none t:$xnor | select -assert-none t:$xnor | ||||||
|  | @ -19,7 +19,7 @@ select -assert-count 2 t:$not | ||||||
| 
 | 
 | ||||||
| design -load read | design -load read | ||||||
| simplemap | simplemap | ||||||
| equiv_opt opt_expr | equiv_opt -assert opt_expr | ||||||
| design -load postopt | design -load postopt | ||||||
| select -assert-none t:$_XOR_ | select -assert-none t:$_XOR_ | ||||||
| select -assert-none t:$_XNOR_ # NB: simplemap does $xnor -> $_XOR_+$_NOT_ | select -assert-none t:$_XNOR_ # NB: simplemap does $xnor -> $_XOR_+$_NOT_ | ||||||
|  | @ -34,7 +34,7 @@ $_XNOR_ u1(.A(1'b1), .B(a), .Y(y[1])); | ||||||
| endmodule | endmodule | ||||||
| EOT | EOT | ||||||
| select -assert-count 2 t:$_XNOR_ | select -assert-count 2 t:$_XNOR_ | ||||||
| equiv_opt opt_expr | equiv_opt -assert opt_expr | ||||||
| design -load postopt | design -load postopt | ||||||
| select -assert-none t:$_XNOR_ # NB: simplemap does $xnor -> $_XOR_+$_NOT_ | select -assert-none t:$_XNOR_ # NB: simplemap does $xnor -> $_XOR_+$_NOT_ | ||||||
| select -assert-count 1 t:$_NOT_ | select -assert-count 1 t:$_NOT_ | ||||||
|  | @ -49,7 +49,7 @@ assign y = a~^1'b0; | ||||||
| assign z = a~^1'b1; | assign z = a~^1'b1; | ||||||
| endmodule | endmodule | ||||||
| EOT | EOT | ||||||
| equiv_opt opt_expr | equiv_opt -assert opt_expr | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| # Single-bit $xor | # Single-bit $xor | ||||||
|  |  | ||||||
|  | @ -16,4 +16,4 @@ EOT | ||||||
| 
 | 
 | ||||||
| proc | proc | ||||||
| 
 | 
 | ||||||
| equiv_opt -async2sync techmap -map +/adff2dff.v | #equiv_opt -assert -async2sync techmap -map +/adff2dff.v | ||||||
|  |  | ||||||
|  | @ -13,4 +13,4 @@ EOT | ||||||
| 
 | 
 | ||||||
| proc | proc | ||||||
| 
 | 
 | ||||||
| equiv_opt techmap -map +/dff2ff.v | equiv_opt -assert techmap -map +/dff2ff.v | ||||||
|  |  | ||||||
|  | @ -24,8 +24,8 @@ design -save orig | ||||||
| flatten | flatten | ||||||
| equiv_opt -assert -multiclock dfflegalize -cell $_ALDFF_PP_ x | equiv_opt -assert -multiclock dfflegalize -cell $_ALDFF_PP_ x | ||||||
| equiv_opt -assert -multiclock dfflegalize -cell $_ALDFFE_PPP_ x | equiv_opt -assert -multiclock dfflegalize -cell $_ALDFFE_PPP_ x | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DFFSR_PPP_ x | equiv_opt -assert -multiclock dfflegalize -cell $_DFFSR_PPP_ x | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DFFSRE_PPPP_ x | equiv_opt -assert -multiclock dfflegalize -cell $_DFFSRE_PPPP_ x | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| # Convert everything to ALDFFs. | # Convert everything to ALDFFs. | ||||||
|  |  | ||||||
|  | @ -26,10 +26,10 @@ equiv_opt -assert -multiclock dfflegalize -cell $_ALDFF_PP_ 0 | ||||||
| equiv_opt -assert -multiclock dfflegalize -cell $_ALDFF_PP_ 1 | equiv_opt -assert -multiclock dfflegalize -cell $_ALDFF_PP_ 1 | ||||||
| equiv_opt -assert -multiclock dfflegalize -cell $_ALDFFE_PPP_ 0 | equiv_opt -assert -multiclock dfflegalize -cell $_ALDFFE_PPP_ 0 | ||||||
| equiv_opt -assert -multiclock dfflegalize -cell $_ALDFFE_PPP_ 1 | equiv_opt -assert -multiclock dfflegalize -cell $_ALDFFE_PPP_ 1 | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DFFSR_PPP_ 0 | equiv_opt -assert -multiclock dfflegalize -cell $_DFFSR_PPP_ 0 | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DFFSR_PPP_ 1 | equiv_opt -assert -multiclock dfflegalize -cell $_DFFSR_PPP_ 1 | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DFFSRE_PPPP_ 0 | equiv_opt -assert -multiclock dfflegalize -cell $_DFFSRE_PPPP_ 0 | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DFFSRE_PPPP_ 1 | equiv_opt -assert -multiclock dfflegalize -cell $_DFFSRE_PPPP_ 1 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| # Convert everything to ALDFFs. | # Convert everything to ALDFFs. | ||||||
|  |  | ||||||
|  | @ -41,18 +41,18 @@ EOT | ||||||
| 
 | 
 | ||||||
| design -save orig | design -save orig | ||||||
| flatten | flatten | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DFF_PP0_ 0 -cell $_SR_PP_ 0 | equiv_opt -assert -multiclock dfflegalize -cell $_DFF_PP0_ 0 -cell $_SR_PP_ 0 | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DFF_PP0_ 1 -cell $_SR_PP_ 0 | equiv_opt -assert -multiclock dfflegalize -cell $_DFF_PP0_ 1 -cell $_SR_PP_ 0 | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DFF_PP1_ 0 -cell $_SR_PP_ 0 | equiv_opt -assert -multiclock dfflegalize -cell $_DFF_PP1_ 0 -cell $_SR_PP_ 0 | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DFF_PP1_ 1 -cell $_SR_PP_ 0 | equiv_opt -assert -multiclock dfflegalize -cell $_DFF_PP1_ 1 -cell $_SR_PP_ 0 | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DFFE_PP0P_ 0 -cell $_SR_PP_ 0 | equiv_opt -assert -multiclock dfflegalize -cell $_DFFE_PP0P_ 0 -cell $_SR_PP_ 0 | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DFFE_PP0P_ 1 -cell $_SR_PP_ 0 | equiv_opt -assert -multiclock dfflegalize -cell $_DFFE_PP0P_ 1 -cell $_SR_PP_ 0 | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DFFE_PP1P_ 0 -cell $_SR_PP_ 0 | equiv_opt -assert -multiclock dfflegalize -cell $_DFFE_PP1P_ 0 -cell $_SR_PP_ 0 | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DFFE_PP1P_ 1 -cell $_SR_PP_ 0 | equiv_opt -assert -multiclock dfflegalize -cell $_DFFE_PP1P_ 1 -cell $_SR_PP_ 0 | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DFFSR_PPP_ 0 | equiv_opt -assert -multiclock dfflegalize -cell $_DFFSR_PPP_ 0 | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DFFSR_PPP_ 1 | equiv_opt -assert -multiclock dfflegalize -cell $_DFFSR_PPP_ 1 | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DFFSRE_PPPP_ 0 | equiv_opt -assert -multiclock dfflegalize -cell $_DFFSRE_PPPP_ 0 | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DFFSRE_PPPP_ 1 | equiv_opt -assert -multiclock dfflegalize -cell $_DFFSRE_PPPP_ 1 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| # Convert everything to ADFFs. | # Convert everything to ADFFs. | ||||||
|  |  | ||||||
|  | @ -14,7 +14,7 @@ $_DLATCHSR_PNP_ ff2 (.E(E), .R(R), .S(S), .D(D), .Q(Q[2])); | ||||||
| $_DLATCHSR_NPP_ ff3 (.E(E), .R(R), .S(S), .D(D), .Q(Q[3])); | $_DLATCHSR_NPP_ ff3 (.E(E), .R(R), .S(S), .D(D), .Q(Q[3])); | ||||||
| endmodule | endmodule | ||||||
| 
 | 
 | ||||||
| module top(input C, E, R, S, D, output [17:0] Q); | module top(input C, E, R, S, D, output [7:0] Q); | ||||||
| dlatchsr0 dlatchsr0_(.E(E), .R(R), .S(S), .D(D), .Q(Q[3:0])); | dlatchsr0 dlatchsr0_(.E(E), .R(R), .S(S), .D(D), .Q(Q[3:0])); | ||||||
| dlatchsr1 dlatchsr1_(.E(E), .R(R), .S(S), .D(D), .Q(Q[7:4])); | dlatchsr1 dlatchsr1_(.E(E), .R(R), .S(S), .D(D), .Q(Q[7:4])); | ||||||
| endmodule | endmodule | ||||||
|  | @ -23,12 +23,12 @@ EOT | ||||||
| 
 | 
 | ||||||
| design -save orig | design -save orig | ||||||
| flatten | flatten | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DLATCH_PP0_ 0 | equiv_opt -assert -multiclock dfflegalize -cell $_DLATCH_PP0_ 0 | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DLATCH_PP0_ 1 | equiv_opt -assert -multiclock dfflegalize -cell $_DLATCH_PP0_ 1 | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DLATCH_PP1_ 0 | equiv_opt -assert -multiclock dfflegalize -cell $_DLATCH_PP1_ 0 | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DLATCH_PP1_ 1 | equiv_opt -assert -multiclock dfflegalize -cell $_DLATCH_PP1_ 1 | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DLATCHSR_PPP_ 0 | equiv_opt -assert -multiclock dfflegalize -cell $_DLATCHSR_PPP_ 0 | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DLATCHSR_PPP_ 1 | equiv_opt -assert -multiclock dfflegalize -cell $_DLATCHSR_PPP_ 1 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| # Convert everything to ADLATCHs. | # Convert everything to ADLATCHs. | ||||||
|  |  | ||||||
|  | @ -21,18 +21,18 @@ EOT | ||||||
| 
 | 
 | ||||||
| design -save orig | design -save orig | ||||||
| flatten | flatten | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_SR_PP_ 0 | equiv_opt -assert -multiclock dfflegalize -cell $_SR_PP_ 0 | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_SR_PP_ 1 | equiv_opt -assert -multiclock dfflegalize -cell $_SR_PP_ 1 | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DLATCH_PP0_ 0 | equiv_opt -assert -multiclock dfflegalize -cell $_DLATCH_PP0_ 0 | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DLATCH_PP0_ 1 | equiv_opt -assert -multiclock dfflegalize -cell $_DLATCH_PP0_ 1 | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DLATCH_PP1_ 0 | equiv_opt -assert -multiclock dfflegalize -cell $_DLATCH_PP1_ 0 | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DLATCH_PP1_ 1 | equiv_opt -assert -multiclock dfflegalize -cell $_DLATCH_PP1_ 1 | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DLATCHSR_PPP_ 0 | equiv_opt -assert -multiclock dfflegalize -cell $_DLATCHSR_PPP_ 0 | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DLATCHSR_PPP_ 1 | equiv_opt -assert -multiclock dfflegalize -cell $_DLATCHSR_PPP_ 1 | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DFFSR_PPP_ 0 | equiv_opt -assert -multiclock dfflegalize -cell $_DFFSR_PPP_ 0 | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DFFSR_PPP_ 1 | equiv_opt -assert -multiclock dfflegalize -cell $_DFFSR_PPP_ 1 | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DFFSRE_PPPP_ 0 | equiv_opt -assert -multiclock dfflegalize -cell $_DFFSRE_PPPP_ 0 | ||||||
| #equiv_opt -assert -multiclock dfflegalize -cell $_DFFSRE_PPPP_ 1 | equiv_opt -assert -multiclock dfflegalize -cell $_DFFSRE_PPPP_ 1 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| # Convert everything to SRs. | # Convert everything to SRs. | ||||||
|  |  | ||||||
|  | @ -12,4 +12,4 @@ output [3:0] O; | ||||||
| endmodule | endmodule | ||||||
| EOT | EOT | ||||||
| 
 | 
 | ||||||
| equiv_opt techmap -map +/pmux2mux.v | equiv_opt -assert techmap -map +/pmux2mux.v | ||||||
|  |  | ||||||
|  | @ -106,4 +106,4 @@ endmodule | ||||||
| EOT | EOT | ||||||
| opt | opt | ||||||
| wreduce | wreduce | ||||||
| equiv_opt techmap | equiv_opt -assert techmap | ||||||
|  |  | ||||||
|  | @ -95,9 +95,8 @@ $_SDFFE_PP1P_ dff23(.C(C), .D(D[0]),.E(E),  .R(R), .Q(Q[23])); | ||||||
| 
 | 
 | ||||||
| endmodule | endmodule | ||||||
| EOT | EOT | ||||||
| #equiv_opt -assert -multiclock zinit | equiv_opt -assert -multiclock zinit | ||||||
| #design -load postopt | design -load postopt | ||||||
| zinit |  | ||||||
| 
 | 
 | ||||||
| select -assert-count 48 t:$_NOT_ | select -assert-count 48 t:$_NOT_ | ||||||
| select -assert-count 0 w:Q a:init %i | select -assert-count 0 w:Q a:init %i | ||||||
|  | @ -142,9 +141,8 @@ $_SDFFE_PP1P_ dff23(.C(C), .D(D[0]),.E(E),  .R(R), .Q(Q[23])); | ||||||
| 
 | 
 | ||||||
| endmodule | endmodule | ||||||
| EOT | EOT | ||||||
| #equiv_opt -assert -multiclock zinit | equiv_opt -assert -multiclock zinit | ||||||
| #design -load postopt | design -load postopt | ||||||
| zinit |  | ||||||
| 
 | 
 | ||||||
| select -assert-count 0 t:$_NOT_ | select -assert-count 0 t:$_NOT_ | ||||||
| select -assert-count 1 w:Q a:init=24'b0 %i | select -assert-count 1 w:Q a:init=24'b0 %i | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue