mirror of
https://github.com/YosysHQ/yosys
synced 2025-04-23 00:55:32 +00:00
dfflegalize: Refactor, add aldff support.
This commit is contained in:
parent
bdf153d06c
commit
0a0df8d38c
12 changed files with 1158 additions and 1074 deletions
|
@ -144,9 +144,9 @@ design -load orig
|
|||
dfflegalize -cell $_DFFE_PP0P_ 0 -cell $_DLATCH_P_ 1
|
||||
|
||||
select -assert-count 2 adff0/t:$_NOT_
|
||||
select -assert-count 16 adff1/t:$_NOT_
|
||||
select -assert-count 13 adff1/t:$_NOT_
|
||||
select -assert-count 3 adffe0/t:$_NOT_
|
||||
select -assert-count 22 adffe1/t:$_NOT_
|
||||
select -assert-count 18 adffe1/t:$_NOT_
|
||||
select -assert-count 0 adff0/t:$_MUX_
|
||||
select -assert-count 3 adff1/t:$_MUX_
|
||||
select -assert-count 0 adffe0/t:$_MUX_
|
||||
|
@ -164,9 +164,9 @@ select -assert-none t:$_DFFE_PP0P_ t:$_DLATCH_P_ t:$_MUX_ t:$_NOT_ top/* %% %n t
|
|||
design -load orig
|
||||
dfflegalize -cell $_DFFE_PP0P_ 1 -cell $_DLATCH_P_ 1
|
||||
|
||||
select -assert-count 16 adff0/t:$_NOT_
|
||||
select -assert-count 13 adff0/t:$_NOT_
|
||||
select -assert-count 8 adff1/t:$_NOT_
|
||||
select -assert-count 22 adffe0/t:$_NOT_
|
||||
select -assert-count 18 adffe0/t:$_NOT_
|
||||
select -assert-count 11 adffe1/t:$_NOT_
|
||||
select -assert-count 3 adff0/t:$_MUX_
|
||||
select -assert-count 0 adff1/t:$_MUX_
|
||||
|
@ -185,31 +185,27 @@ select -assert-none t:$_DFFE_PP0P_ t:$_DLATCH_P_ t:$_MUX_ t:$_NOT_ top/* %% %n t
|
|||
design -load orig
|
||||
dfflegalize -cell $_DFFE_PP1P_ 0 -cell $_DLATCH_P_ 1
|
||||
|
||||
select -assert-count 16 adff0/t:$_NOT_
|
||||
select -assert-count 10 adff0/t:$_NOT_
|
||||
select -assert-count 2 adff1/t:$_NOT_
|
||||
select -assert-count 22 adffe0/t:$_NOT_
|
||||
select -assert-count 14 adffe0/t:$_NOT_
|
||||
select -assert-count 3 adffe1/t:$_NOT_
|
||||
select -assert-count 3 adff0/t:$_MUX_
|
||||
select -assert-count 0 adff1/t:$_MUX_
|
||||
select -assert-count 4 adffe0/t:$_MUX_
|
||||
select -assert-count 0 adffe1/t:$_MUX_
|
||||
select -assert-count 6 adff0/t:$_DFFE_PP1P_
|
||||
select -assert-count 9 adff0/t:$_DFFE_PP1P_
|
||||
select -assert-count 3 adff1/t:$_DFFE_PP1P_
|
||||
select -assert-count 8 adffe0/t:$_DFFE_PP1P_
|
||||
select -assert-count 12 adffe0/t:$_DFFE_PP1P_
|
||||
select -assert-count 4 adffe1/t:$_DFFE_PP1P_
|
||||
select -assert-count 3 adff0/t:$_DLATCH_P_
|
||||
select -assert-count 0 adff1/t:$_DLATCH_P_
|
||||
select -assert-count 4 adffe0/t:$_DLATCH_P_
|
||||
select -assert-count 0 adffe1/t:$_DLATCH_P_
|
||||
select -assert-none t:$_DFFE_PP1P_ t:$_DLATCH_P_ t:$_MUX_ t:$_NOT_ top/* %% %n t:* %i
|
||||
select -assert-none t:$_DFFE_PP1P_ t:$_MUX_ t:$_NOT_ top/* %% %n t:* %i
|
||||
|
||||
design -load orig
|
||||
dfflegalize -cell $_DFFE_PP1P_ 1 -cell $_DLATCH_P_ 1
|
||||
|
||||
select -assert-count 8 adff0/t:$_NOT_
|
||||
select -assert-count 16 adff1/t:$_NOT_
|
||||
select -assert-count 13 adff1/t:$_NOT_
|
||||
select -assert-count 11 adffe0/t:$_NOT_
|
||||
select -assert-count 22 adffe1/t:$_NOT_
|
||||
select -assert-count 18 adffe1/t:$_NOT_
|
||||
select -assert-count 0 adff0/t:$_MUX_
|
||||
select -assert-count 3 adff1/t:$_MUX_
|
||||
select -assert-count 0 adffe0/t:$_MUX_
|
||||
|
|
|
@ -45,7 +45,7 @@ select -assert-none t:$_DLATCH_PP0_ t:$_MUX_ t:$_NOT_ top/* %% %n t:* %i
|
|||
design -load orig
|
||||
dfflegalize -cell $_DLATCH_PP0_ 1
|
||||
|
||||
select -assert-count 16 adlatch0/t:$_NOT_
|
||||
select -assert-count 13 adlatch0/t:$_NOT_
|
||||
select -assert-count 8 adlatch1/t:$_NOT_
|
||||
select -assert-count 3 adlatch0/t:$_MUX_
|
||||
select -assert-count 0 adlatch1/t:$_MUX_
|
||||
|
@ -68,7 +68,7 @@ design -load orig
|
|||
dfflegalize -cell $_DLATCH_PP1_ 1
|
||||
|
||||
select -assert-count 8 adlatch0/t:$_NOT_
|
||||
select -assert-count 16 adlatch1/t:$_NOT_
|
||||
select -assert-count 13 adlatch1/t:$_NOT_
|
||||
select -assert-count 0 adlatch0/t:$_MUX_
|
||||
select -assert-count 3 adlatch1/t:$_MUX_
|
||||
select -assert-count 3 adlatch0/t:$_DLATCH_PP1_
|
||||
|
|
|
@ -237,25 +237,18 @@ select -assert-count 2 sdff0/t:$_NOT_
|
|||
select -assert-count 8 sdff1/t:$_NOT_
|
||||
select -assert-count 2 sdffe0/t:$_NOT_
|
||||
select -assert-count 10 sdffe1/t:$_NOT_
|
||||
select -assert-count 2 sdffce0/t:$_NOT_
|
||||
select -assert-count 10 sdffce1/t:$_NOT_
|
||||
select -assert-count 1 sdffce0/t:$_NOT_
|
||||
select -assert-count 1 sdffce1/t:$_NOT_
|
||||
select -assert-count 0 dff/t:$_MUX_
|
||||
select -assert-count 3 dffe/t:$_MUX_
|
||||
select -assert-count 0 sdff0/t:$_MUX_
|
||||
select -assert-count 0 sdff1/t:$_MUX_
|
||||
select -assert-count 4 sdffe0/t:$_MUX_
|
||||
select -assert-count 4 sdffe1/t:$_MUX_
|
||||
select -assert-count 4 sdffce0/t:$_MUX_
|
||||
select -assert-count 4 sdffce1/t:$_MUX_
|
||||
select -assert-count 0 t:$_AND_ t:$_ORNOT_ t:$_ANDNOT_ %% sdffce0/* sdffce1/* %u %n %i
|
||||
select -assert-count 2 sdffce0/t:$_AND_
|
||||
select -assert-count 2 sdffce1/t:$_AND_
|
||||
select -assert-count 1 sdffce0/t:$_ORNOT_
|
||||
select -assert-count 1 sdffce1/t:$_ORNOT_
|
||||
select -assert-count 1 sdffce0/t:$_ANDNOT_
|
||||
select -assert-count 1 sdffce1/t:$_ANDNOT_
|
||||
select -assert-count 8 sdffce0/t:$_MUX_
|
||||
select -assert-count 8 sdffce1/t:$_MUX_
|
||||
select -assert-count 27 t:$_SDFF_PP0_
|
||||
select -assert-none t:$_SDFF_PP0_ t:$_MUX_ t:$_NOT_ t:$_AND_ t:$_ORNOT_ t:$_ANDNOT_ top/* %% %n t:* %i
|
||||
select -assert-none t:$_SDFF_PP0_ t:$_MUX_ t:$_NOT_ top/* %% %n t:* %i
|
||||
|
||||
|
||||
# Convert everything to SDFFEs.
|
||||
|
|
|
@ -476,7 +476,7 @@ select -assert-count 2 sdff0/t:$_NOT_
|
|||
select -assert-count 1 sdff1/t:$_NOT_
|
||||
select -assert-count 2 sdffe0/t:$_NOT_
|
||||
select -assert-count 1 sdffe1/t:$_NOT_
|
||||
select -assert-count 2 sdffce0/t:$_NOT_
|
||||
select -assert-count 1 sdffce0/t:$_NOT_
|
||||
select -assert-count 1 sdffce1/t:$_NOT_
|
||||
select -assert-count 0 dff/t:$_MUX_
|
||||
select -assert-count 3 dffe/t:$_MUX_
|
||||
|
@ -484,14 +484,10 @@ select -assert-count 0 sdff0/t:$_MUX_
|
|||
select -assert-count 3 sdff1/t:$_MUX_
|
||||
select -assert-count 4 sdffe0/t:$_MUX_
|
||||
select -assert-count 8 sdffe1/t:$_MUX_
|
||||
select -assert-count 4 sdffce0/t:$_MUX_
|
||||
select -assert-count 8 sdffce0/t:$_MUX_
|
||||
select -assert-count 8 sdffce1/t:$_MUX_
|
||||
select -assert-count 0 t:$_AND_ t:$_ORNOT_ t:$_ANDNOT_ %% sdffce0/* %n %i
|
||||
select -assert-count 2 sdffce0/t:$_AND_
|
||||
select -assert-count 1 sdffce0/t:$_ORNOT_
|
||||
select -assert-count 1 sdffce0/t:$_ANDNOT_
|
||||
select -assert-count 27 t:$_SDFF_PP0_
|
||||
select -assert-none t:$_SDFF_PP0_ t:$_MUX_ t:$_NOT_ t:$_AND_ t:$_ORNOT_ t:$_ANDNOT_ top/* %% %n t:* %i
|
||||
select -assert-none t:$_SDFF_PP0_ t:$_MUX_ t:$_NOT_ top/* %% %n t:* %i
|
||||
|
||||
design -load orig
|
||||
dfflegalize -cell $_SDFF_PP0_ 1
|
||||
|
@ -503,7 +499,7 @@ select -assert-count 8 sdff1/t:$_NOT_
|
|||
select -assert-count 9 sdffe0/t:$_NOT_
|
||||
select -assert-count 10 sdffe1/t:$_NOT_
|
||||
select -assert-count 9 sdffce0/t:$_NOT_
|
||||
select -assert-count 10 sdffce1/t:$_NOT_
|
||||
select -assert-count 9 sdffce1/t:$_NOT_
|
||||
select -assert-count 0 dff/t:$_MUX_
|
||||
select -assert-count 3 dffe/t:$_MUX_
|
||||
select -assert-count 3 sdff0/t:$_MUX_
|
||||
|
@ -511,13 +507,9 @@ select -assert-count 0 sdff1/t:$_MUX_
|
|||
select -assert-count 8 sdffe0/t:$_MUX_
|
||||
select -assert-count 4 sdffe1/t:$_MUX_
|
||||
select -assert-count 8 sdffce0/t:$_MUX_
|
||||
select -assert-count 4 sdffce1/t:$_MUX_
|
||||
select -assert-count 0 t:$_AND_ t:$_ORNOT_ t:$_ANDNOT_ %% sdffce1/* %n %i
|
||||
select -assert-count 2 sdffce1/t:$_AND_
|
||||
select -assert-count 1 sdffce1/t:$_ORNOT_
|
||||
select -assert-count 1 sdffce1/t:$_ANDNOT_
|
||||
select -assert-count 8 sdffce1/t:$_MUX_
|
||||
select -assert-count 27 t:$_SDFF_PP0_
|
||||
select -assert-none t:$_SDFF_PP0_ t:$_MUX_ t:$_NOT_ t:$_AND_ t:$_ORNOT_ t:$_ANDNOT_ top/* %% %n t:* %i
|
||||
select -assert-none t:$_SDFF_PP0_ t:$_MUX_ t:$_NOT_ top/* %% %n t:* %i
|
||||
|
||||
design -load orig
|
||||
dfflegalize -cell $_SDFF_PP1_ 0
|
||||
|
@ -529,7 +521,7 @@ select -assert-count 2 sdff1/t:$_NOT_
|
|||
select -assert-count 1 sdffe0/t:$_NOT_
|
||||
select -assert-count 2 sdffe1/t:$_NOT_
|
||||
select -assert-count 1 sdffce0/t:$_NOT_
|
||||
select -assert-count 2 sdffce1/t:$_NOT_
|
||||
select -assert-count 1 sdffce1/t:$_NOT_
|
||||
select -assert-count 0 dff/t:$_MUX_
|
||||
select -assert-count 3 dffe/t:$_MUX_
|
||||
select -assert-count 3 sdff0/t:$_MUX_
|
||||
|
@ -537,13 +529,9 @@ select -assert-count 0 sdff1/t:$_MUX_
|
|||
select -assert-count 8 sdffe0/t:$_MUX_
|
||||
select -assert-count 4 sdffe1/t:$_MUX_
|
||||
select -assert-count 8 sdffce0/t:$_MUX_
|
||||
select -assert-count 4 sdffce1/t:$_MUX_
|
||||
select -assert-count 0 t:$_AND_ t:$_ORNOT_ t:$_ANDNOT_ %% sdffce1/* %n %i
|
||||
select -assert-count 2 sdffce1/t:$_AND_
|
||||
select -assert-count 1 sdffce1/t:$_ORNOT_
|
||||
select -assert-count 1 sdffce1/t:$_ANDNOT_
|
||||
select -assert-count 8 sdffce1/t:$_MUX_
|
||||
select -assert-count 27 t:$_SDFF_PP1_
|
||||
select -assert-none t:$_SDFF_PP1_ t:$_MUX_ t:$_NOT_ t:$_AND_ t:$_ORNOT_ t:$_ANDNOT_ top/* %% %n t:* %i
|
||||
select -assert-none t:$_SDFF_PP1_ t:$_MUX_ t:$_NOT_ top/* %% %n t:* %i
|
||||
|
||||
design -load orig
|
||||
dfflegalize -cell $_SDFF_PP1_ 1
|
||||
|
@ -554,7 +542,7 @@ select -assert-count 8 sdff0/t:$_NOT_
|
|||
select -assert-count 7 sdff1/t:$_NOT_
|
||||
select -assert-count 10 sdffe0/t:$_NOT_
|
||||
select -assert-count 9 sdffe1/t:$_NOT_
|
||||
select -assert-count 10 sdffce0/t:$_NOT_
|
||||
select -assert-count 9 sdffce0/t:$_NOT_
|
||||
select -assert-count 9 sdffce1/t:$_NOT_
|
||||
select -assert-count 0 dff/t:$_MUX_
|
||||
select -assert-count 3 dffe/t:$_MUX_
|
||||
|
@ -562,14 +550,10 @@ select -assert-count 0 sdff0/t:$_MUX_
|
|||
select -assert-count 3 sdff1/t:$_MUX_
|
||||
select -assert-count 4 sdffe0/t:$_MUX_
|
||||
select -assert-count 8 sdffe1/t:$_MUX_
|
||||
select -assert-count 4 sdffce0/t:$_MUX_
|
||||
select -assert-count 8 sdffce0/t:$_MUX_
|
||||
select -assert-count 8 sdffce1/t:$_MUX_
|
||||
select -assert-count 0 t:$_AND_ t:$_ORNOT_ t:$_ANDNOT_ %% sdffce0/* %n %i
|
||||
select -assert-count 2 sdffce0/t:$_AND_
|
||||
select -assert-count 1 sdffce0/t:$_ORNOT_
|
||||
select -assert-count 1 sdffce0/t:$_ANDNOT_
|
||||
select -assert-count 27 t:$_SDFF_PP1_
|
||||
select -assert-none t:$_SDFF_PP1_ t:$_MUX_ t:$_NOT_ t:$_AND_ t:$_ORNOT_ t:$_ANDNOT_ top/* %% %n t:* %i
|
||||
select -assert-none t:$_SDFF_PP1_ t:$_MUX_ t:$_NOT_ top/* %% %n t:* %i
|
||||
|
||||
|
||||
# Convert everything to SDFFEs.
|
||||
|
|
|
@ -24,14 +24,14 @@ equiv_opt -assert -multiclock dfflegalize -cell $_DFFSRE_PPPP_ 1
|
|||
design -load orig
|
||||
dfflegalize -cell $_DFF_PP0_ 01
|
||||
|
||||
select -assert-count 12 t:$_NOT_
|
||||
select -assert-count 8 t:$_NOT_
|
||||
select -assert-count 8 t:$_DFF_PP0_
|
||||
select -assert-none t:$_DFF_PP0_ t:$_NOT_ %% %n t:* %i
|
||||
|
||||
design -load orig
|
||||
dfflegalize -cell $_DFF_PP?_ 0
|
||||
|
||||
select -assert-count 12 t:$_NOT_
|
||||
select -assert-count 8 t:$_NOT_
|
||||
select -assert-count 4 t:$_DFF_PP0_
|
||||
select -assert-count 4 t:$_DFF_PP1_
|
||||
select -assert-none t:$_DFF_PP0_ t:$_DFF_PP1_ t:$_NOT_ %% %n t:* %i
|
||||
|
@ -41,13 +41,13 @@ select -assert-none t:$_DFF_PP0_ t:$_DFF_PP1_ t:$_NOT_ %% %n t:* %i
|
|||
design -load orig
|
||||
dfflegalize -cell $_DFFSRE_PPPP_ 0
|
||||
|
||||
select -assert-count 12 t:$_NOT_
|
||||
select -assert-count 8 t:$_NOT_
|
||||
select -assert-count 8 t:$_DFFSRE_PPPP_
|
||||
select -assert-none t:$_DFFSRE_PPPP_ t:$_NOT_ %% %n t:* %i
|
||||
|
||||
design -load orig
|
||||
dfflegalize -cell $_DFFSRE_PPPP_ 1
|
||||
|
||||
select -assert-count 12 t:$_NOT_
|
||||
select -assert-count 8 t:$_NOT_
|
||||
select -assert-count 8 t:$_DFFSRE_PPPP_
|
||||
select -assert-none t:$_DFFSRE_PPPP_ t:$_NOT_ %% %n t:* %i
|
||||
|
|
|
@ -66,8 +66,8 @@ select -assert-none t:$_DLATCH_PP0_ t:$_MUX_ t:$_NOT_ t:$_AND_ t:$_ANDNOT_ t:$_O
|
|||
design -load orig
|
||||
dfflegalize -cell $_DLATCH_PP1_ 0
|
||||
|
||||
select -assert-count 22 dlatchsr0/t:$_NOT_
|
||||
select -assert-count 26 dlatchsr1/t:$_NOT_
|
||||
select -assert-count 18 dlatchsr0/t:$_NOT_
|
||||
select -assert-count 22 dlatchsr1/t:$_NOT_
|
||||
select -assert-count 4 dlatchsr0/t:$_MUX_
|
||||
select -assert-count 4 dlatchsr1/t:$_MUX_
|
||||
select -assert-count 12 dlatchsr0/t:$_DLATCH_PP1_
|
||||
|
@ -81,8 +81,8 @@ select -assert-none t:$_DLATCH_PP1_ t:$_MUX_ t:$_NOT_ t:$_AND_ t:$_ANDNOT_ t:$_O
|
|||
design -load orig
|
||||
dfflegalize -cell $_DLATCH_PP1_ 1
|
||||
|
||||
select -assert-count 22 dlatchsr0/t:$_NOT_
|
||||
select -assert-count 26 dlatchsr1/t:$_NOT_
|
||||
select -assert-count 18 dlatchsr0/t:$_NOT_
|
||||
select -assert-count 22 dlatchsr1/t:$_NOT_
|
||||
select -assert-count 4 dlatchsr0/t:$_MUX_
|
||||
select -assert-count 4 dlatchsr1/t:$_MUX_
|
||||
select -assert-count 12 dlatchsr0/t:$_DLATCH_PP1_
|
||||
|
|
|
@ -23,9 +23,9 @@ design -load postopt
|
|||
|
||||
select -assert-count 5 t:$_SDFF_PP0_
|
||||
select -assert-count 1 t:$_SDFF_PP1_
|
||||
select -assert-count 3 t:$_SDFFE_PP0P_
|
||||
select -assert-count 1 t:$_SDFFE_PP0P_
|
||||
select -assert-count 1 t:$_SDFFE_PP1P_
|
||||
select -assert-count 1 t:$_SDFFCE_PP0P_
|
||||
select -assert-count 3 t:$_SDFFCE_PP0P_
|
||||
select -assert-count 1 t:$_SDFFCE_PP1P_
|
||||
select -assert-count 8 t:$_MUX_
|
||||
select -assert-count 0 n:ff0 %ci %ci t:$_MUX_ %i
|
||||
|
|
|
@ -39,7 +39,7 @@ select -assert-none t:$_DLATCH_PP0_ t:$_NOT_ %% %n t:* %i
|
|||
design -load orig
|
||||
dfflegalize -cell $_DLATCH_PP1_ x
|
||||
|
||||
select -assert-count 8 t:$_NOT_
|
||||
select -assert-count 5 t:$_NOT_
|
||||
select -assert-count 3 t:$_DLATCH_PP1_
|
||||
select -assert-none t:$_DLATCH_PP1_ t:$_NOT_ %% %n t:* %i
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ $_SR_PN_ ff1 (.R(R), .S(S), .Q(Q[1]));
|
|||
$_SR_NP_ ff2 (.R(R), .S(S), .Q(Q[2]));
|
||||
endmodule
|
||||
|
||||
module top(input C, E, R, D, output [5:0] Q);
|
||||
module top(input R, S, output [5:0] Q);
|
||||
sr0 sr0_(.S(S), .R(R), .Q(Q[2:0]));
|
||||
sr1 sr1_(.S(S), .R(R), .Q(Q[5:3]));
|
||||
endmodule
|
||||
|
@ -103,8 +103,8 @@ select -assert-none t:$_DLATCH_PP0_ t:$_NOT_ t:$_ANDNOT_ t:$_OR_ t:$_AND_ top/*
|
|||
design -load orig
|
||||
dfflegalize -cell $_DLATCH_PP1_ 0
|
||||
|
||||
select -assert-count 11 sr0/t:$_NOT_
|
||||
select -assert-count 8 sr1/t:$_NOT_
|
||||
select -assert-count 8 sr0/t:$_NOT_
|
||||
select -assert-count 5 sr1/t:$_NOT_
|
||||
select -assert-count 3 sr0/t:$_DLATCH_PP1_
|
||||
select -assert-count 3 sr1/t:$_DLATCH_PP1_
|
||||
select -assert-count 1 sr0/t:$_ANDNOT_
|
||||
|
@ -118,8 +118,8 @@ select -assert-none t:$_DLATCH_PP1_ t:$_NOT_ t:$_ANDNOT_ t:$_OR_ t:$_AND_ top/*
|
|||
design -load orig
|
||||
dfflegalize -cell $_DLATCH_PP1_ 1
|
||||
|
||||
select -assert-count 8 sr0/t:$_NOT_
|
||||
select -assert-count 11 sr1/t:$_NOT_
|
||||
select -assert-count 5 sr0/t:$_NOT_
|
||||
select -assert-count 8 sr1/t:$_NOT_
|
||||
select -assert-count 3 sr0/t:$_DLATCH_PP1_
|
||||
select -assert-count 3 sr1/t:$_DLATCH_PP1_
|
||||
select -assert-count 0 sr0/t:$_ANDNOT_
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue