mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-04 05:19:11 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			83 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
read_verilog -specify specify.v
 | 
						|
prep
 | 
						|
cd test
 | 
						|
select t:$specify2 -assert-count 0
 | 
						|
select t:$specify3 -assert-count 1
 | 
						|
select t:$specrule -assert-count 2
 | 
						|
select t:$specify3 a:src=specify.v:10.3-10.49 %i -assert-count 1
 | 
						|
select t:$specrule a:src=specify.v:11.3-11.36 %i -assert-count 1
 | 
						|
select t:$specrule a:src=specify.v:12.3-12.35 %i -assert-count 1
 | 
						|
cd test2
 | 
						|
select t:$specify2 -assert-count 2
 | 
						|
select t:$specify3 -assert-count 0
 | 
						|
select t:$specrule -assert-count 0
 | 
						|
select t:$specify2 a:src=specify.v:26.3-26.20 %i -assert-count 1
 | 
						|
                                         # ^^ Note use of macro
 | 
						|
select t:$specify2 a:src=specify.v:28.3-28.18 %i -assert-count 1
 | 
						|
cd
 | 
						|
write_verilog specify.out
 | 
						|
design -stash gold
 | 
						|
 | 
						|
read_verilog -specify specify.out
 | 
						|
prep
 | 
						|
cd test
 | 
						|
select t:$specify2 -assert-count 0
 | 
						|
select t:$specify3 -assert-count 1
 | 
						|
select t:$specrule -assert-count 2
 | 
						|
cd test2
 | 
						|
select t:$specify2 -assert-count 2
 | 
						|
select t:$specify3 -assert-count 0
 | 
						|
select t:$specrule -assert-count 0
 | 
						|
cd
 | 
						|
design -stash gate
 | 
						|
 | 
						|
design -copy-from gold -as gold test
 | 
						|
design -copy-from gate -as gate test
 | 
						|
rename -hide
 | 
						|
rename -enumerate -pattern A_% t:$specify3
 | 
						|
rename -enumerate -pattern B_% t:$specrule r:TYPE=$setup %i
 | 
						|
rename -enumerate -pattern C_% t:$specrule r:TYPE=$hold %i
 | 
						|
select n:A_* -assert-count 2
 | 
						|
select n:B_* -assert-count 2
 | 
						|
select n:C_* -assert-count 2
 | 
						|
equiv_make gold gate equiv
 | 
						|
hierarchy -top equiv
 | 
						|
equiv_struct
 | 
						|
equiv_induct -seq 5
 | 
						|
equiv_status -assert
 | 
						|
design -reset
 | 
						|
 | 
						|
design -copy-from gold -as gold test2
 | 
						|
design -copy-from gate -as gate test2
 | 
						|
rename -hide
 | 
						|
rename -enumerate -pattern A_% t:$specify2 r:T_RISE_TYP=1 %i
 | 
						|
rename -enumerate -pattern B_% t:$specify2 n:A_* %d
 | 
						|
select n:A_* -assert-count 2
 | 
						|
select n:B_* -assert-count 2
 | 
						|
equiv_make gold gate equiv
 | 
						|
hierarchy -top equiv
 | 
						|
equiv_struct
 | 
						|
equiv_induct -seq 5
 | 
						|
equiv_status -assert
 | 
						|
design -reset
 | 
						|
 | 
						|
read_verilog -specify <<EOT
 | 
						|
(* blackbox *)
 | 
						|
module test7_sub(input i, output o);
 | 
						|
specify
 | 
						|
    (i => o) = 1;
 | 
						|
endspecify
 | 
						|
assign o = ~i;
 | 
						|
endmodule
 | 
						|
 | 
						|
module test7(input i, output o);
 | 
						|
    wire w;
 | 
						|
    test7_sub unused(i, w);
 | 
						|
    test7_sub used(i, o);
 | 
						|
endmodule
 | 
						|
EOT
 | 
						|
hierarchy
 | 
						|
cd test7
 | 
						|
clean
 | 
						|
select -assert-count 1 c:used
 | 
						|
select -assert-none c:* c:used %d
 |