2019-05-03 17:35:26 -05:00
|
|
|
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
|
2020-05-04 12:53:06 -05:00
|
|
|
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
|
2019-05-03 17:35:26 -05:00
|
|
|
cd test2
|
2019-05-03 17:54:25 -05:00
|
|
|
select t:$specify2 -assert-count 2
|
2019-05-03 17:35:26 -05:00
|
|
|
select t:$specify3 -assert-count 0
|
|
|
|
select t:$specrule -assert-count 0
|
2020-05-04 12:53:06 -05:00
|
|
|
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
|
2019-05-06 05:26:15 -05:00
|
|
|
cd
|
2019-05-03 17:35:26 -05:00
|
|
|
write_verilog specify.out
|
|
|
|
design -stash gold
|
|
|
|
|
|
|
|
read_verilog -specify specify.out
|
2019-05-06 05:26:15 -05:00
|
|
|
prep
|
2019-05-03 17:35:26 -05:00
|
|
|
cd test
|
|
|
|
select t:$specify2 -assert-count 0
|
|
|
|
select t:$specify3 -assert-count 1
|
|
|
|
select t:$specrule -assert-count 2
|
|
|
|
cd test2
|
2019-05-03 17:54:25 -05:00
|
|
|
select t:$specify2 -assert-count 2
|
2019-05-03 17:35:26 -05:00
|
|
|
select t:$specify3 -assert-count 0
|
|
|
|
select t:$specrule -assert-count 0
|
2019-05-06 05:26:15 -05:00
|
|
|
cd
|
2019-05-03 17:35:26 -05:00
|
|
|
design -stash gate
|
|
|
|
|
2019-05-06 05:26:15 -05:00
|
|
|
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
|
2019-06-28 12:12:48 -05:00
|
|
|
|
2020-02-19 12:45:10 -06:00
|
|
|
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
|