OpenROAD
OpenROAD copied to clipboard
Support LEF58_CELLEDGESPACINGTABLE & LEF58_EDGETYPE
Description
Add support for LEF58_EDGETYPE & LEF58_CELLEDGESPACINGTABLE attributes in odb, dpl, and dpo.
An abstracted example of the required syntax:
MACRO LEF58_EDGETYPE STRING ;
LIBRARY LEF58_CELLEDGESPACINGTABLE STRING
"CELLEDGESPACINGTABLE
EDGETYPE TYPE3 TYPE4 0.ZZ
EDGETYPE TYPE1 TYPE1 EXCEPTABUTTED 0.XXX
EDGETYPE TYPE2 TYPE1 EXCEPTABUTTED 0.XXX
EDGETYPE TYPE2 TYPE2 0.YYY
EDGETYPE TYPE12CPP TYPE12CPP EXCEPTABUTTED 0.XXX
EDGETYPE TYPE1 TYPE12CPP EXCEPTABUTTED 0.XXX
EDGETYPE TYPE12CPP TYPE2 0.XXX
;" ;
PROPERTY LEF58_EDGETYPE "
EDGETYPE LEFT TYPE1 ;
EDGETYPE RIGHT TYPE2 ; " ;
PROPERTY LEF58_EDGETYPE "
EDGETYPE LEFT TYPE1 ;
EDGETYPE RIGHT TYPE2 ;
EDGETYPE TOP TYPE4 RANGE 0 0.VVV ;
EDGETYPE BOTTOM TYPE4 RANGE 0 0.VVV ;
EDGETYPE TOP TYPE3 RANGE 0.VVV 0.QQQ ;
EDGETYPE BOTTOM TYPE3 RANGE 0.VVV 0.QQQ ;
EDGETYPE TOP TYPE4 RANGE 0.QQQ T.TTT ;
EDGETYPE BOTTOM TYPE4 RANGE 0.QQQ T.TTT ; " ;
lefin & odb should support the full LEF syntax. In dpl/dpo, priority should be given to the syntax above as the full property definitions contain more options that are not immediately required.
Suggested Solution
The odb work should follow the template of other LEF properties. In dpl this should extend the set of checks made when detecting if a placement is valid during the diamond search.
Additional Context
@gadfort FYI