-
Notifications
You must be signed in to change notification settings - Fork 55
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 - Convert to Pydantic, support sky130_scl #848
base: master
Are you sure you want to change the base?
Conversation
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.
Passed through commercial/openroad e2e flow
@@ -53,4 +53,6 @@ def get_headers(source: str) -> List[str]: | |||
# TODO: handle other compressed file types? Tools only seem to support gzip. | |||
fd = os.open(source, os.O_RDONLY) | |||
lines = os.pread(fd, nbytes, 0).splitlines() | |||
return list(map(lambda l: l.decode('ascii', errors='ignore'), lines)) | |||
lines = list(map(lambda l: l.decode('ascii', errors='ignore'), lines)) | |||
all_lines = '\n'.join(lines).replace('\\\n','') # combine lines that are split by \ character |
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.
@harrisonliew This might be too hacky, but basically in one of the sky130 lib files (sky130_ef_io__gpiov2_pad_wrapped_ss_ss_100C_1v60_3v00.lib
) the capacitive_load_unit
declaration spanned 2 lines and it messed up the parsing in LIBUtils.get_cap_unit()
capacitive_load_unit(1.000000, \
"pf");
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.
I think that's valid. But maybe the better approach is to remove line continuations (\
) before processing lines. Can you also fix the type checker error?
synthesis runs until genus breaks on trying to do clock gating with no latches- asking cadence folks on how to fix.
par fails (either in place_tap_cells or in power_straps if you force it past place_tap_cells with a removal hook due to no tapcells)
pwell/nwell/li1, clk gating cell disabled?)
syn/par works on commercial tutorial flow |
|
…ps hook since we don't have tapcells to reference for rails. This is lvs clean for the sky130-commercial-tutorial (but there are no srams? unsure why)
pegasus work. drc has like 15 random enclousure violations.. not sure why, they don't seem to be systemic?
gen_config
for tech plugins to override and generate their own config (TechJSON
instance, i.e. directly creating the Pydantic model). This enables multi-library support within the same tech plugin.sky130.tech.json
LEFUtils
(unfortunately can't create Metal object directly or else it has a circular import)gds_map_file
reading in OpenROAD pluginTODOs:
Related PRs / Issues
Type of change:
Impact:
Contributor Checklist:
master
as the base branch?poetry.lock
file if you updated the requirements inpyproject.toml
?e2e/
if this feature depends on updated plugins?