-
Notifications
You must be signed in to change notification settings - Fork 4
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
Sky130: Add lib to contain all logic libraries, add hd low leakage logic library #28
Conversation
@ubfx to generate the lambdalib information just use: https://github.com/siliconcompiler/lambdapdk/blob/main/scripts/generate_lamdbalib.py If you just want to do some testing, you can always create a temporary target on a branch here:
And use it like:
or
If you want to check against a broader set of designs you can also try out: https://github.com/siliconcompiler/scgallery |
I tested the new lib locally on yosys+OpenROAD and Cadence on a few designs, but thought we would probably want to some in-tree testing (on CI) before moving the main target over to the new lib. Especially since all the tests on siliconcompiler just use the Are you against having two targets in-tree for a transitionary period? |
@ubfx I would prefer to no have a temporary target in SC. We could switch the target in SC to point to this file instead (and remove the old file), if the default behavior is the hd lib nothing should change and that would make it possible to do some testing without adding a target. |
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.
Looks good, I don't think there is too much to address, so should be fairly easy.
lambdapdk/sky130/libs/sky130hdll/apr/openroad/global_connect.tcl
Outdated
Show resolved
Hide resolved
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.
It appears there are no full or half adders in the hdll library, please remove that enablement and it should be good to merge.
@ubfx looks great, just need to redo the lambdalib generation since the files have references to the half and full adders. |
For the ICGC and the p-latch, I'm now getting something like this:
Should I add a techmapping of |
@ubfx yeah, I think that would be correct. |
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.
Thanks. looks good.
This is my attempt at starting to move in more Sky130 logic libraries (low leakage, high speed, low speed, etc).
I figured there's so much infrastructure built on top of the current
sky130hd
library that we shouldn't change it straight away, but on the other hand, we have to start somewhere moving in the other logic libs. This patch adds a new librarysky130sc
, sc for standard cells, which could become the umbrella library for all sky130 logic libraries (hd, hdll, hs, ...) at some point, just likegf180mcu
is for gf180. But for now, it can coexist with the tried and testedsky130hd
.The idea would be to add a temporary/development target (
skywater130_demo_devel
or so) to siliconcompiler which would allow us to add some testing without touching the good oldskywater130_demo
. (Also, we need a target for the lambdalib generating step).For now, the new
sky130sc
setup will load the existingsky130hd
, but also the newly addedsky130hdll
(high density low leakage). A few notes on thesky130hdll
:pwell
andli1
to make Cadence accept the LEF. (-> Sky130 tech LEF: Add (dummy) CUT layer after wells? RTimothyEdwards/open_pdks#435)bit_...
fields in bus definitions efabless/skywater-pdk-libs-sky130_fd_sc_hdll#7)_hd__
for_hdll__
for now. When we have the siliconcompiler target, we should be able to just generate it normally.I know patching the LEFs and libs is not ideal, but I assume there will be some more patches necessary until we get all of the different logic libraries working. And maybe I will be able to upstream some of these patches with open_pdks until then. I would suggest doing a more thorough review of all necessary patches when we get all of the libraries working.