The-OpenROAD-Project / OpenLane

OpenLane is an automated RTL to GDSII flow based on several components including OpenROAD, Yosys, Magic, Netgen and custom methodology scripts for design exploration and optimization.
https://openlane.readthedocs.io/
Apache License 2.0
1.35k stars 373 forks source link

process got killed for some unknown reason when trying to synthesize the Small BOOM core #1582

Closed JiaDYuan closed 1 year ago

JiaDYuan commented 1 year ago

Description

the synthesis process of small BOOM core got killed for unknown reason: child killed: kill signal

Expected Behavior

I want to synthesize the small BOOM core successfully through OpenLane.

Environment report

Kernel: Darwin v22.1.0
Distribution: macOS 13.0.1
Python: v3.10.9 (OK)
Container Engine: docker v20.10.21 (OK)
OpenLane Git Version: 90d369bcce5cf1133c28291bc3c8b6473a19ff62
pip: INSTALLED
python-venv: INSTALLED
---
PDK Version Verification Status: OK
---
Git Log (Last 3 Commits)

90d369b 2022-12-13T22:59:28+02:00 Iterate over `$libs` in read_libs (#1570) - Kareem Farid -  (grafted, HEAD -> master, tag: 2022.12.14, origin/master, origin/HEAD)
---
Git Remotes

origin  http://github.com/The-OpenROAD-Project/OpenLane.git (fetch)
origin  http://github.com/The-OpenROAD-Project/OpenLane.git (push)

Reproduction material

DigitalTop.zip

./flow.tcl -design DigitalTop -tag synthesis_only -to synthesis -overwrite

Relevant log output

[ERROR]: during executing yosys script /openlane/scripts/yosys/synth.tcl
[ERROR]: Log: designs/DigitalTop/runs/synthesis_only/logs/synthesis/1-synthesis.log
[ERROR]: Last 10 lines:
      Activation pattern for cell $flatten\tile_prci_domain.\tile_reset_domain.\boom_tile.\lsu.$shl$/openlane/designs/DigitalTop/src/chipyard.TestHarness.SmallBoomConfig.top.v:290177$61616: { \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_601 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_596 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_593 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_582 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_563 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_558 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_555 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_544 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_539 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_536 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_525 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_520 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_517 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_506 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_501 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_498 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_487 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_468 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_432 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._l_mask_mask_T_105 } = 20'00010001001001001001
      Activation pattern for cell $flatten\tile_prci_domain.\tile_reset_domain.\boom_tile.\lsu.$shl$/openlane/designs/DigitalTop/src/chipyard.TestHarness.SmallBoomConfig.top.v:290177$61616: { \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_601 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_582 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_563 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_558 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_555 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_544 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_539 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_536 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_525 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_520 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_517 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_506 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_501 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_498 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_487 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_468 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_432 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._l_mask_mask_T_105 } = 18'000001001001001001
      Activation pattern for cell $flatten\tile_prci_domain.\tile_reset_domain.\boom_tile.\lsu.$shl$/openlane/designs/DigitalTop/src/chipyard.TestHarness.SmallBoomConfig.top.v:290177$61616: { \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_615 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_601 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_582 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_563 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_558 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_555 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_544 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_539 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_536 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_525 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_520 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_517 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_506 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_501 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_498 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_487 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_468 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_432 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._l_mask_mask_T_105 } = 19'0100001001001001001
      Activation pattern for cell $flatten\tile_prci_domain.\tile_reset_domain.\boom_tile.\lsu.$shl$/openlane/designs/DigitalTop/src/chipyard.TestHarness.SmallBoomConfig.top.v:290177$61616: { \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_615 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_601 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_582 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_577 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_574 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_563 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_558 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_555 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_544 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_539 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_536 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_525 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_520 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_517 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_506 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_501 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_498 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_487 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_468 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_432 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._l_mask_mask_T_105 } = 21'010001001001001001001
      Activation pattern for cell $flatten\tile_prci_domain.\tile_reset_domain.\boom_tile.\lsu.$shl$/openlane/designs/DigitalTop/src/chipyard.TestHarness.SmallBoomConfig.top.v:290177$61616: { \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_601 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_582 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_577 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_574 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_563 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_558 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_555 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_544 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_539 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_536 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_525 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_520 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_517 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_506 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_501 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_498 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_487 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_468 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_432 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._l_mask_mask_T_105 } = 20'00001001001001001001
      Activation pattern for cell $flatten\tile_prci_domain.\tile_reset_domain.\boom_tile.\lsu.$shl$/openlane/designs/DigitalTop/src/chipyard.TestHarness.SmallBoomConfig.top.v:290177$61616: { \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_601 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_596 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_593 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_582 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_577 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_574 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_563 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_558 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_555 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_544 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_539 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_536 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_525 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_520 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_517 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_506 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_501 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_498 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_487 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_468 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_432 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._l_mask_mask_T_105 } = 22'0001001001001001001001
      Activation pattern for cell $flatten\tile_prci_domain.\tile_reset_domain.\boom_tile.\lsu.$shl$/openlane/designs/DigitalTop/src/chipyard.TestHarness.SmallBoomConfig.top.v:290177$61616: { \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_615 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_601 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_596 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_593 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_582 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_577 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_574 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_563 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_558 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_555 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_544 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_539 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_536 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_525 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_520 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_517 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_506 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_501 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_498 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_487 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_468 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._T_432 \tile_prci_domain.tile_reset_domain.boom_tile.lsu._l_mask_mask_T_105 } = 23'01001001001001001001001
      Size of SAT problem: 0 cells, 97521 variables, 2065699 clauses
      According to the SAT solver this pair of cells can not be shared.
      Model from SAT solver: { $auto$rtlil.cc:2374:ReduceAnd$136555 $auto$rtlil.cc:2374:ReduceAnd$136355 $auto$rtlil.cc:2374:ReduceAnd$136393 \tile_prci_domain.tile_reset_domain.boom_tile.dcache.s2_req_0_is_hella \tile_prci_domain.tile_reset_domain.boom_tile.dcache.s2_req_0_uop_uses_ldq $auto$rtlil.cc:2374:ReduceAnd$136603 $flatten\tile_prci_domain.\tile_reset_domain.\boom_tile.\lsu.$eq$/openlane/designs/DigitalTop/src/chipyard.TestHarness.SmallBoomConfig.top.v:291743$63473_Y $flatten\tile_prci_domain.\tile_reset_domain.\boom_tile.\lsu.$eq$/openlane/designs/DigitalTop/src/chipyard.TestHarness.SmallBoomConfig.top.v:291742$63471_Y $flatten\tile_prci_domain.\tile_reset_domain.\boom_tile.\lsu.$eq$/openlane/designs/DigitalTop/src/chipyard.TestHarness.SmallBoomConfig.top.v:291741$63469_Y $flatten\tile_prci_domain.\tile_reset_domain.\boom_tile.\lsu.$eq$/openlane/designs/DigitalTop/src/chipyard.TestHarness.SmallBoomConfig.top.v:291740$63467_Y $flatten\tile_prci_domain.\tile_reset_domain.\boom_tile.\lsu.$eq$/openlane/designs/DigitalTop/src/chipyard.TestHarness.SmallBoomConfig.top.v:291739$63465_Y $flatten\tile_prci_domain.\tile_reset_domain.\boom_tile.\lsu.$eq$/openlane/designs/DigitalTop/src/chipyard.TestHarness.SmallBoomConfig.top.v:291738$63463_Y $flatten\tile_prci_domain.\tile_reset_domain.\boom_tile.\lsu.$eq$/openlane/designs/DigitalTop/src/chipyard.TestHarness.SmallBoomConfig.top.v:291737$63461_Y $flatten\tile_prci_domain.\tile_reset_domain.\boom_tile.\lsu.$eq$/openlane/designs/DigitalTop/src/chipyard.TestHarness.SmallBoomConfig.top.v:291736$63459_Y $flatten\tile_prci_domain.\tile_reset_domain.\boom_tile.\lsu.$eq$/openlane/designs/DigitalTop/src/chipyard.TestHarness.SmallBoomConfig.top.v:289253$60661_Y \tile_prci_domain.tile_reset_domain.boom_tile.lsu.commit_load \tile_prci_domain.tile_reset_domain.boom_tile.lsu.commit_store \tile_prci_domain.tile_reset_domain.boochild killed: kill signal

[ERROR]: Creating issue reproducible...
[ERROR]: Flow failed.
vijayank88 commented 1 year ago

@JiaDYuan Have you tried to include sram as VERILOG_FILES_BLACKBOX?

vijayank88 commented 1 year ago

I see only VERILOG_FILES pointing all src/*.v Not found VERILOG_FILES_BLACKBOX this variable in config.json

JiaDYuan commented 1 year ago

@vijayank88 I include sram now,: { "DESIGN_NAME": "DigitalTop", "VERILOG_FILES": "dir::src/*.v", "CLOCK_PORT": "clk", "CLOCK_PERIOD": 25.0, "DESIGN_IS_CORE": true,

"FP_SIZING": "absolute",
"DIE_AREA": "0 0 2000 3750",
"PL_TARGET_DENSITY": 0.5,

"VDD_NETS": "vccd1",
"GND_NETS": "vssd1",

"MACRO_PLACEMENT_CFG": "dir::macro_placement.cfg",

"EXTRA_LEFS":      "/openlane/pdks/sky130B/libs.ref/sky130_sram_macros/lef/sky130_sram_1kbyte_1rw1r_32x256_8.lef",
"EXTRA_GDS_FILES": "/openlane/pdks/sky130B/libs.ref/sky130_sram_macros/gds/sky130_sram_1kbyte_1rw1r_32x256_8.gds",
"EXTRA_LIBS":      "/openlane/pdks/sky130B/libs.ref/sky130_sram_macros/lib/sky130_sram_1kbyte_1rw1r_32x256_8_TT_1p8V_25C.lib",
 "VERILOG_FILES_BLACKBOX": "dir::bb/*.v",
"RUN_KLAYOUT_XOR": false,
"MAGIC_DRC_USE_GDS": false,
"QUIT_ON_MAGIC_DRC": false

}

But I now I get the same error messages as before..........

JiaDYuan commented 1 year ago

issue_reproducible.zip

maliberty commented 1 year ago

Your reproducible doesn't work:

Successfully finished Verilog frontend.
ERROR: Can't open input file `openlane/designs/DigitalTop/src/ClockDividerN.v' for reading: No such file or directory
vijayank88 commented 1 year ago

@maliberty Its bug from issue_reproducible. Created recursive folders for verilog source file names. From DigitalTop.zip you may get required source RTL.

@JiaDYuan Can you share updated config.json will try again at my end?

JiaDYuan commented 1 year ago

@vijayank88 config.json.zip

vijayank88 commented 1 year ago

@JiaDYuan In the DigitalTop.zip I've only src directory. I'm not found bb/*.v. Can you re-attach the DigitalTop.zip again with updated files?

JiaDYuan commented 1 year ago

DigitalTop.zip @vijayank88

JiaDYuan commented 1 year ago

So it is the problem of syntax error? I tried to synthesize the design in the Vivado, it was synthesized successfully.

vijayank88 commented 1 year ago

Even ORFS unable to finish synthesis stage.

10.14. Executing ALUMACC pass (create $alu and $macc cells).
10.15. Executing SHARE pass (SAT-based resource sharing).
Elapsed time: 2:49:35[h:]min:sec. CPU time: user 9786.52 sys 377.98 (99%). Peak memory: 124899820KB.
make: *** [results/sky130hd/DigitalTop/base/1_1_yosys.v] Error 9

@JiaDYuan Just for confirmation have you replaced all register into fixed SRAM macro in source RTL?

vijayank88 commented 1 year ago

@JiaDYuan Reply got from yosys team

Seems to be running out of memory. Try running synthesis without flattening, and make sure the caches are being mapped to SRAM.

Can you try the same?

JiaDYuan commented 1 year ago

@vijayank88
Yes, I have set the synthesis without the Flattening. "SYNTH_NO_FLAT": true. And now I am checking if all the caches and memories are mapped to SRAM. But it is not easy due to the large scale of BOOM core.