GitHub
08/22/2023, 11:46 AM<https://github.com/efabless/openlane2/tree/main|main>
by donn
<https://github.com/efabless/openlane2/commit/1075fd0f24fb93cc02a5c9988773373fdb7dd7a2|1075fd0f>
- [OL1/2 Tool Sync] Yosys, Magic + LVS Bugfixes (#153)
efabless/openlane2GitHub
08/22/2023, 1:24 PMe3b630d
• Restore ancient {DATA,CLOCK}_WIRE_RC_LAYER
variables, with translation behavior from WIRE_RC_LAYER
to DATA_WIRE_RC_LAYER
efabless/openlane2
✅ All checks have passed
30/30 successful checksGitHub
08/22/2023, 2:16 PM<https://github.com/efabless/openlane2/tree/main|main>
by donn
<https://github.com/efabless/openlane2/commit/e97db73589381a20c7b33913b0b3aa86736a2697|e97db735>
- Update PDKs (#155)
efabless/openlane2GitHub
08/22/2023, 6:46 PMSTEP_DIR
, SCRIPTS_DIR
• scripts directory copied in entirety into ejected reproducibles
• Removed dependency on State module from odb
scripts
• Removed custom PYTHONPATH setting from OdbStep
(which was mostly to mitigate problems fixed in #86)
efabless/openlane2
✅ All checks have passed
30/30 successful checksGitHub
08/22/2023, 7:06 PM<https://github.com/efabless/openlane2/tree/main|main>
by donn
<https://github.com/efabless/openlane2/commit/4f68465e205220f308eb8aa02320c32a44d4e835|4f68465e>
- Fix Reproducible Ejection Bugs (#156)
efabless/openlane2GitHub
08/22/2023, 9:20 PMRead error on file: /home/karim/work/caravel_user_project/openlane/user_project_wrapper/runs/RUN_2023-08-23_00-04-30/32-odb-reportwirelength
(errno=21) in Layout.read
[00:06:46] ❌ Read error on file: step.py:887
/home/karim/work/caravel_user_project/openlane/user_project_wrapper/runs/RUN_2023-08-23_00-04-30/32-odb-reportwirelength
(errno=21) in Layout.read
❌ Log file: step.py:888
'../caravel_user_project/openlane/user_project_wrapper/runs/RUN_2023-08-23_00-04-30/39-klayout-streamout/klayout-streamout
.log'
❌ The following error was encountered while running the flow: GDSII Stream Out (KLayout): subprocess (1, __main__.py:138
['/nix/store/65cp4izx3bllnwqn7c7dhrq9h9gmjkal-python3-3.10.9/bin/python3.10',
'/nix/store/ixgj4fj9c5bfj4vyzr27gqdzck762rmc-python3.10-openlane/lib/python3.10/site-packages/openlane/scripts/klayout
/stream_out.py',
'/home/karim/work/caravel_user_project/openlane/user_project_wrapper/runs/RUN_2023-08-23_00-04-30/32-odb-reportwirelen
gth/user_project_wrapper.def', '--output',
'/home/karim/work/caravel_user_project/openlane/user_project_wrapper/runs/RUN_2023-08-23_00-04-30/39-klayout-streamout
/user_project_wrapper.klayout.gds', '--lyt', '/home/karim/work/pdk/sky130A/libs.tech/klayout/tech/sky130A.lyt',
'--lyp', '/home/karim/work/pdk/sky130A/libs.tech/klayout/tech/sky130A.lyp', '--lym',
'/home/karim/work/pdk/sky130A/libs.tech/klayout/tech/sky130A.map', '--top', 'user_project_wrapper', '--input-lef',
'/home/karim/work/pdk/sky130A/libs.ref/sky130_fd_sc_hd/techlef/sky130_fd_sc_hd__nom.tlef', '--input-lef',
'/home/karim/work/pdk/sky130A/libs.ref/sky130_fd_sc_hd/lef/sky130_fd_sc_hd.lef', '--input-lef',
'/home/karim/work/pdk/sky130A/libs.ref/sky130_fd_sc_hd/lef/sky130_ef_sc_hd.lef', '--input-lef', '', '--input-lef',
'/home/karim/work/caravel_user_project/lef/user_proj_example.lef', '--with-gds-file',
'/home/karim/work/pdk/sky130A/libs.ref/sky130_fd_sc_hd/gds/sky130_fd_sc_hd.gds', '--with-gds-file', '',
'--with-gds-file', '/home/karim/work/caravel_user_project/gds/user_proj_example.gds']) failed
I noticed this in `resolved.json`:
"MACROS": {
"user_proj_example": {
"gds": [
""
],
"lef": [
""
],
"instances": {},
"nl": [],
"spef": {
"min_*": [
"/home/karim/work/caravel_user_project/spef/multicorner/user_proj_example.min.spef"
],
"nom_*": [
"/home/karim/work/caravel_user_project/spef/multicorner/user_proj_example.nom.spef"
],
"max_*": [
"/home/karim/work/caravel_user_project/spef/multicorner/user_proj_example.max.spef"
]
},
"lib": {},
"spice": [],
"sdf": {},
"json_h": null
}
},
While EXTRA_GDS_FILES
remains like this:
"EXTRA_GDS_FILES": [
"/home/karim/work/caravel_user_project/gds/user_proj_example.gds"
],
Furthermore, attempts to create a reproducible results in the following error:
[nix-shell:~/work/openlane2]$ python3 -m openlane.steps create-reproducible -d /home/karim/work/caravel_user_project/openlane/user_project_wrapper/runs/RUN_2023-08-23_00-04-30/32-odb-reportwirelength
Traceback (most recent call last):
File "/nix/store/65cp4izx3bllnwqn7c7dhrq9h9gmjkal-python3-3.10.9/lib/python3.10/runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/nix/store/65cp4izx3bllnwqn7c7dhrq9h9gmjkal-python3-3.10.9/lib/python3.10/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/home/karim/work/openlane2/openlane/steps/__main__.py", line 386, in <module>
cli()
File "/nix/store/ns7p6q9gw667v41ysn750103v7dgxgwz-python3.10-click-8.1.3/lib/python3.10/site-packages/click/core.py", line 1130, in __call__
return self.main(*args, **kwargs)
File "/nix/store/ns7p6q9gw667v41ysn750103v7dgxgwz-python3.10-click-8.1.3/lib/python3.10/site-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/nix/store/ns7p6q9gw667v41ysn750103v7dgxgwz-python3.10-click-8.1.3/lib/python3.10/site-packages/click/core.py", line 1657, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/nix/store/ns7p6q9gw667v41ysn750103v7dgxgwz-python3.10-click-8.1.3/lib/python3.10/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/nix/store/ns7p6q9gw667v41ysn750103v7dgxgwz-python3.10-click-8.1.3/lib/python3.10/site-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/nix/store/ns7p6q9gw667v41ysn750103v7dgxgwz-python3.10-click-8.1.3/lib/python3.10/site-packages/click/decorators.py", line 26, in new_func
return f(get_current_context(), *args, **kwargs)
File "/home/karim/work/openlane2/openlane/steps/__main__.py", line 368, in create_reproducible
step = load_step_from_inputs(ctx, id, config, state_in)
File "/home/karim/work/openlane2/openlane/steps/__main__.py", line 67, in load_step_from_inputs
return Target.load(
File "/home/karim/work/openlane2/openlane/steps/step.py", line 491, in load
config, _ = Config.load(
File "/home/karim/work/openlane2/openlane/config/config.py", line 435, in load
loaded = loader(
File "/home/karim/work/openlane2/openlane/config/config.py", line 596, in __load_dict
raise InvalidConfig(
openlane.config.config.InvalidConfig: The following errors were encountered:
* Path provided for variable 'MACROS.user_proj_example.gds[0]' does not exist: ''
To reproduce:
Relevant config.json
, repo and branch: https://github.com/efabless/caravel_user_project/blob/openlane2-support/openlane/user_project_wrapper/config.json
efabless/openlane2GitHub
08/23/2023, 8:46 AMEXTRA_GDS_FILES
it doesn't resolve to the correct marco entry in resolved.json
. It should be added to the migration guide among other changes needed to properly define a macro.
efabless/openlane2GitHub
08/23/2023, 8:48 AMself.toolbox.get_macro_views
• Made KLayout scripts more resilient to relative pathing
efabless/openlane2GitHub
08/23/2023, 9:06 AM<https://github.com/efabless/openlane2/tree/main|main>
by donn
<https://github.com/efabless/openlane2/commit/29c44259d9e15b6a27044cfd8d7a13c61c84c480|29c44259>
- Macro Config Bugfixes (#159)
efabless/openlane2GitHub
08/23/2023, 9:17 AMFlow.start()
now registers two handlers, one for errors and one for warnings, and forwards them to step_dir/{errors,warnings}.log
respectively
• Created CELL_SPICE_MODELS
as a PDK variable to handle .spice models of the SCLs instead of globbing in-step
• Added a "dummy path" for macro translation purposes that always validates and is ignored by self.toolbox.get_macro_views
• Reduced reliance on absolute paths
• Special exception carved out for STEP_DIR
, SCRIPTS_DIR
• Made KLayout scripts more resilient to relative pathing
• Created new "eject" feature, which would make reproducibles for steps relying on subprocesses independent of OpenLane
• scripts
directory copied in entirety into ejected reproducibles
• Updated Open PDKs to e3b630d
• Updated Yosys to 14d50a1
• Updated CI to handle missing vars.CACHIX_CACHE
• Updated Volare to 0.12.3
to use new authentication and user agent
• Downgraded Magic to 0afe4d8
to match OL1
• Restored ancient {DATA,CLOCK}_WIRE_RC_LAYER
variables, with translation behavior from WIRE_RC_LAYER
to DATA_WIRE_RC_LAYER
• Fixed issue with Step.load()
re-validating values, which affected reproducibles
• Timing signoff no longer prints if log level is higher than VERBOSE
• Use parse_float=Decimal
consistently when loading JSON strings to avoid fun floating point errors
• Removed dependency on State module from odb
scripts
• Removed custom PYTHONPATH setting from OdbStep
(which was mostly to mitigate problems fixed in #86)
efabless/openlane2
✅ All checks have passed
30/30 successful checksGitHub
08/23/2023, 9:35 AM<https://github.com/efabless/openlane2/tree/main|main>
by kareefardi
<https://github.com/efabless/openlane2/commit/2a8148e4bca566ad0c4ba912d3976cac09ac2071|2a8148e4>
- Release beta 9 (#160)
efabless/openlane2GitHub
08/23/2023, 11:14 AMMAGTYPE
whether its maglef
or mag
. This issue proposes integrating this to openlane2.
efabless/openlane2GitHub
08/23/2023, 12:22 PMGitHub
08/23/2023, 12:37 PM<https://github.com/efabless/openlane2/tree/main|main>
by donn
<https://github.com/efabless/openlane2/commit/9a8f12c0ea4f80afb3939ed3239f9d32c6227879|9a8f12c0>
- Enable MAGIC_DRC_USE_GDS by default (#162)
efabless/openlane2GitHub
08/23/2023, 4:52 PM<https://github.com/efabless/openlane2/tree/main|main>
by donn
<https://github.com/efabless/openlane2/commit/4b5f8625e6a42f5822ced14e53841d6e7983a867|4b5f8625>
- Add Docker TTY Commandline Flag + Have CI test --dockerized
specifically (#163)
efabless/openlane2GitHub
08/23/2023, 4:52 PMGitHub
08/24/2023, 9:06 AMGitHub
08/24/2023, 10:01 AMfinal
directory:
• gds/<design>.<tool>.gds
-> gds/<design>.gds
• (lib|sdf)/<corner>/<design>.<corner>.*
-> */<corner>/<design>.*
• nl/<design>.nl.v
-> nl/<design>.v
• pnl/<design>.pnl.v
-> pnl/<design>.v
efabless/openlane2GitHub
08/24/2023, 4:13 PMmag
format to design formats, populated by Magic.StreamOut
• Added support for stdin
in reproducibles (mainly for Magic): ejected reproducibles now save the input and use it
• Added three new PDK variables to all Magic-based steps: MAGIC_PDK_SETUP
, CELL_MAGS
, and CELL_MAGLEFS
, which explicitly list some files Magic constructed from PDK_ROOT
, as well as codifying a convention that variables must explicitly list files being used.
• Added new variable to Magic.SpiceExtraction
, MAGIC_EXT_ABSTRACT
, which allows for cell/submodule-level LVS rather than transistor-level LVS.
• Changed SPEF file saving to only strip asterisks instead of underscores as well, matching the folders
• Fixed an issue where OpenLane's type-checking only accepted a single value for Literals in violation of "Shortening unions of literals," PEP-586
• Fixed an issue where command-line overrides were still treated as strict variables
• Fixed an issue where rule()
would print a line even when log levels would not allow it
• Fixed an issue where PDK_ROOT
was of type str
• Updated documentation to provide information on conventions for declaring variables
• Deprecated StringEnums
, now favoring Literal['str1', 'str2', …]
* * *
Resolves #150
Resolves #161
efabless/openlane2
✅ All checks have passed
30/30 successful checksGitHub
08/24/2023, 4:14 PMdonn
08/26/2023, 3:04 PMGitHub
08/26/2023, 3:04 PMdonn
08/26/2023, 3:05 PMTim Edwards
08/27/2023, 4:20 PMdonn
08/28/2023, 4:17 PMDario Quintero
09/07/2023, 7:00 PMopenlane2
- the python multiprocessing
module works fine when deploying a classic sequential flow. It means you can generate hundreds of chip variations pretty fast with a large machine which was more complex to do before! I'm also thinking of other distributed computing speedups that the Python environment might enable if you have any tips.
I've done a little demo here integrating openlane2 within a larger design flow, and am excited by the results! https://piel.readthedocs.io/en/latest/examples/02a_large_scale_digital_layout/02a_large_scale_digital_layout.htmlSunao_Furukawa
09/13/2023, 5:18 AMdonn
09/13/2023, 5:09 PM--manual-pdk --pdk-root <path to your PDK root>
Sunao_Furukawa
09/15/2023, 4:43 AMdonn
09/20/2023, 2:30 PM