-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enable designs targeting ASAP7 #176
Conversation
@@ -15,11 +15,11 @@ set ::ground_nets "VSS" | |||
#################################### | |||
# global connections | |||
#################################### | |||
add_global_connection -defer_connection -net {VDD} -inst_pattern {.*} -pin_pattern {^VDD$} -power |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is that also required because of the non-scaled variant? if not, can you add a line about this in the PR description?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
-defer_connection
was removed in ORFS because this option is deprecated in newer openroad
. However, the version used in bazel_rules_hdl
still has it so it would be reasonable to keep that.
|
||
pdn::allow_repair_channels true | ||
#################################### | ||
# macro grids |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is that also required because of the non-scaled variant? if not, can you add a line about this in the PR description?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This change is not required. In my test design it looks like it does not affect the result GDS file when it's removed.
set_layer_rc -layer M6 -capacitance 1.23114E-01 -resistance 1.0371e-02 | ||
set_layer_rc -layer M7 -capacitance 1.05408E-01 -resistance 9.6720e-03 | ||
# Liberty units are fF,kOhm | ||
set_layer_rc -layer M1 -capacitance 1.1368e-01 -resistance 1.3889e-01 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
q: is that expected that the resistance doesn't change for the non-scaled version?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Layers M1-9 are routing layers. Here are definitions of scaled and non-scaled M1 layers.
I assume that the layer thickness is the same in scaled and non-scaled variants and the routing wire placed on that layer is 4 times wider and longer in scaled variant than in non-scaled. In LEF files, resistance is expressed in ohms per square of wire so this parameter does not depend on the changes (scaling) made to width and length of the wires on given layer.
My understanding is that if these resistances were to be specified in the LEF file, then those would have been the same for scaled and non-scaled variants.
However, in argument -resistance
for the command set_layer_rc
the unit of resistance is ohm per length of default width wire. I'm not sure what is the interpretation of default width
(perhaps the value specified in LEF tech file?) but in the docs for set-wire-rc which handles -resistance
similarly it is also stated that The resistance and capacitance values are per length of wire, not per square or per square micron
.
I'm not sure if I understand that correctly but it looks reasonable to me that ohm per length of default width wire
is not a universal unit and it should be scaled accordingly together with the width of the wires on given layer.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The most recent and relevant change to the original file was done in The-OpenROAD-Project/OpenROAD-flow-scripts#144. It mentions scaling correlation
which probably refers to scaled and non-scaled variants of the PDK. The PR however changed only the capacitance while the resistance remained the same.
It is not clear to me if this is correct.
Later in https://github.com/The-OpenROAD-Project/asap7/issues/35 it was mentioned that OpenROAD-flow-scripts
is the source of correct resistances and capacitances so maybe it is OK to use those.
@proppy please let me know what do you think about that.
set_layer_rc -via V7 -resistance 1.00E-02 | ||
set_layer_rc -via V8 -resistance 1.00E-02 | ||
set_layer_rc -via V9 -resistance 1.00E-02 | ||
set_layer_rc -via V1 -resistance 1.72E-02 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is that expected that the change is not consistant across layers?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This would make sense if there are differences in thickness and widths of the via layers. I will check that
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So there is The-OpenROAD-Project/OpenROAD-flow-scripts@877e200. I've also looked into layer definitions in PDK techfiles and the layers have different widths so it is expected that resistances will be different for each layer.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
just some nits and qs; can you remove the draft label if it's ready for review?
Your questions refer to parts of the files that indeed don't look relevant to scaled or non-scaled variants. I assumed ORFS setup for running ASAP7 as the source of truth for the work on support in bazel_rules_hdl. |
This looks good to me |
3696fe4
to
0cfd976
Compare
0cfd976
to
9a6b069
Compare
Linter failure caused by a new release of |
9a6b069
to
2161c6f
Compare
* Adds non-scaled technology LEF * Marks DECAP cells as spacers for filler placement Signed-off-by: Pawel Czarnecki <pczarnecki@antmicro.com>
Signed-off-by: Pawel Czarnecki <pczarnecki@antmicro.com>
Signed-off-by: Pawel Czarnecki <pczarnecki@antmicro.com>
Rebased after #178 was merged |
74987e7
to
c833465
Compare
Signed-off-by: Pawel Czarnecki <pczarnecki@antmicro.com>
Fixes #172
Requires merging #178 in order to fix errors from
buildifier
.This PR:
pdn_config.pdn
,rc_script.tcl
,tracks.tcl
) to match non-scaled variant of the PDK,@QuantamHD , @proppy please take a look at this