1 read_verilog -icells <<EOT
3 module dlatch(input E, D, output [1:0] Q);
4 $_DLATCH_P_ ff0 (.E(E), .D(D), .Q(Q[0]));
5 $_DLATCH_N_ ff1 (.E(E), .D(D), .Q(Q[1]));
11 equiv_opt -assert -multiclock dfflegalize -cell $_DLATCH_P_ x
12 equiv_opt -assert -multiclock dfflegalize -cell $_DLATCH_PP0_ x
13 equiv_opt -assert -multiclock dfflegalize -cell $_DLATCHSR_PPP_ x
14 equiv_opt -assert -multiclock dfflegalize -cell $_ALDFF_PP_ x
15 equiv_opt -assert -multiclock dfflegalize -cell $_ALDFFE_PPP_ x
17 # Convert everything to DFFs.
20 dfflegalize -cell $_DLATCH_P_ x
22 select -assert-count 1 t:$_NOT_
23 select -assert-count 2 t:$_DLATCH_P_
24 select -assert-none t:$_DLATCH_P_ t:$_NOT_ %% %n t:* %i
27 # Convert everything to ADLATCHs.
30 dfflegalize -cell $_DLATCH_PP0_ x
32 select -assert-count 1 t:$_NOT_
33 select -assert-count 2 t:$_DLATCH_PP0_
34 select -assert-none t:$_DLATCH_PP0_ t:$_NOT_ %% %n t:* %i
37 # Convert everything to DLATCHSRs.
40 dfflegalize -cell $_DLATCHSR_PPP_ x
42 select -assert-count 1 t:$_NOT_
43 select -assert-count 2 t:$_DLATCHSR_PPP_
44 select -assert-none t:$_DLATCHSR_PPP_ t:$_NOT_ %% %n t:* %i
47 # Convert everything to ALDFFs.
50 dfflegalize -cell $_ALDFF_PP_ x
52 select -assert-count 1 t:$_NOT_
53 select -assert-count 2 t:$_ALDFF_PP_
54 select -assert-none t:$_ALDFF_PP_ t:$_NOT_ %% %n t:* %i
57 # Convert everything to ALDFFEs.
60 dfflegalize -cell $_ALDFFE_PPP_ x
62 select -assert-count 1 t:$_NOT_
63 select -assert-count 2 t:$_ALDFFE_PPP_
64 select -assert-none t:$_ALDFFE_PPP_ t:$_NOT_ %% %n t:* %i