Skip to content
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

Bug in ihp-sg13g2 jpeg flow #1953

Open
luarss opened this issue Apr 20, 2024 · 14 comments
Open

Bug in ihp-sg13g2 jpeg flow #1953

luarss opened this issue Apr 20, 2024 · 14 comments
Assignees

Comments

@luarss
Copy link
Contributor

luarss commented Apr 20, 2024

Subject

Describe the bug

Flow terminates at yosys synthesis stage.

Expected Behavior

Should not terminate.

Environment

Unknown git commit, this is not a git repository.

Please make sure that you have the latest code changes and add the commit
hash in the description.

kernel: Linux 6.2.0-1014-gcp
os: Ubuntu 22.04.3 LTS (Jammy Jellyfish)
cmake version 3.24.2
CMake Warning at CMakeLists.txt:98 (message):
  OpenROAD git describe failed, using sha1 instead


-- The CXX compiler identification is GNU 11.4.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- OpenROAD version: ee5d3738a40b10e171360db01d3a749c871f52e7
-- System name: Linux
-- Compiler: GNU 11.4.0
-- Build type: RELEASE
-- Install prefix: /usr/local
-- C++ Standard: 17
-- C++ Standard Required: ON
-- C++ Extensions: OFF
-- The C compiler identification is GNU 11.4.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Found Python: /usr/bin/python3.10 (found version "3.10.12") found components: Interpreter 
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE  
-- Performing Test C_COMPILER_SUPPORTS__-Wall
-- Performing Test C_COMPILER_SUPPORTS__-Wall - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wall
-- Performing Test CXX_COMPILER_SUPPORTS__-Wall - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-array-bounds
-- Performing Test C_COMPILER_SUPPORTS__-Wno-array-bounds - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-array-bounds
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-array-bounds - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-nonnull
-- Performing Test C_COMPILER_SUPPORTS__-Wno-nonnull - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-nonnull
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-nonnull - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-maybe-uninitialized
-- Performing Test C_COMPILER_SUPPORTS__-Wno-maybe-uninitialized - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-maybe-uninitialized
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-maybe-uninitialized - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-format-overflow
-- Performing Test C_COMPILER_SUPPORTS__-Wno-format-overflow - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-format-overflow
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-format-overflow - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-variable
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-variable - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-variable
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-variable - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-function
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-function - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-function
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-function - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-write-strings
-- Performing Test C_COMPILER_SUPPORTS__-Wno-write-strings - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-write-strings
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-write-strings - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-sign-compare
-- Performing Test C_COMPILER_SUPPORTS__-Wno-sign-compare - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-sign-compare
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-sign-compare - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-deprecated
-- Performing Test C_COMPILER_SUPPORTS__-Wno-deprecated - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-deprecated
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-deprecated - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-c++11-narrowing
-- Performing Test C_COMPILER_SUPPORTS__-Wno-c++11-narrowing - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-c++11-narrowing
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-c++11-narrowing - Failed
-- Performing Test C_COMPILER_SUPPORTS__-Wno-register
-- Performing Test C_COMPILER_SUPPORTS__-Wno-register - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-register
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-register - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-format
-- Performing Test C_COMPILER_SUPPORTS__-Wno-format - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-format
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-format - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-reserved-user-defined-literal
-- Performing Test C_COMPILER_SUPPORTS__-Wno-reserved-user-defined-literal - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-reserved-user-defined-literal
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-reserved-user-defined-literal - Failed
-- Performing Test C_COMPILER_SUPPORTS__-fpermissive
-- Performing Test C_COMPILER_SUPPORTS__-fpermissive - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-fpermissive
-- Performing Test CXX_COMPILER_SUPPORTS__-fpermissive - Success
-- Performing Test C_COMPILER_SUPPORTS__-x
-- Performing Test C_COMPILER_SUPPORTS__-x - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-x
-- Performing Test CXX_COMPILER_SUPPORTS__-x - Failed
-- Performing Test C_COMPILER_SUPPORTS__c++
-- Performing Test C_COMPILER_SUPPORTS__c++ - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__c++
-- Performing Test CXX_COMPILER_SUPPORTS__c++ - Failed
-- Performing Test C_COMPILER_SUPPORTS__-std=c++17
-- Performing Test C_COMPILER_SUPPORTS__-std=c++17 - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-std=c++17
-- Performing Test CXX_COMPILER_SUPPORTS__-std=c++17 - Success
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-but-set-variable
-- Performing Test C_COMPILER_SUPPORTS__-Wno-unused-but-set-variable - Success
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-but-set-variable
-- Performing Test CXX_COMPILER_SUPPORTS__-Wno-unused-but-set-variable - Success
-- TCL library: /usr/lib/x86_64-linux-gnu/libtcl.so
-- TCL header: /usr/include/tcl/tcl.h
-- TCL readline library: /usr/lib/x86_64-linux-gnu/libtclreadline.so
-- TCL readline header: /usr/include/x86_64-linux-gnu
-- Found SWIG: /usr/bin/swig4.0 (found suitable version "4.0.2", minimum required is "4.0")  
-- Found Boost: /usr/local/lib/cmake/Boost-1.80.0/BoostConfig.cmake (found version "1.80.0")  
-- boost: 1.80.0
-- Found Python3: /usr/include/python3.10 (found version "3.10.12") found components: Development Development.Module Development.Embed 
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11") 
-- spdlog: 1.8.1
-- Found BISON: /usr/bin/bison (found version "3.8.2") 
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) 
-- STA version: 2.5.0
-- STA git sha: a7f34210b403fe399c170296d54258f10f92885f
-- System name: Linux
-- Compiler: GNU 11.4.0
-- Build type: RELEASE
-- Build CXX_FLAGS: -O3 -DNDEBUG
-- Install prefix: /usr/local
-- Found FLEX: /usr/bin/flex (found version "2.6.4") 
-- TCL library: /usr/lib/x86_64-linux-gnu/libtcl.so
-- TCL header: /usr/include/tcl/tcl.h
-- SSTA: 0
-- Found SWIG: /usr/bin/swig4.0 (found suitable version "4.0.2", minimum required is "3.0")  
-- STA executable: /workspace/tools/OpenROAD/src/sta/app/sta
-- Found re2: /opt/or-tools/lib/cmake/re2/re2Config.cmake (found version "9.0.0") 
-- Found Clp: /opt/or-tools/lib/cmake/Clp/ClpConfig.cmake (found version "1.17.7") 
-- Found Cbc: /opt/or-tools/lib/cmake/Cbc/CbcConfig.cmake (found version "2.10.7") 
-- Found SCIP: /opt/or-tools/lib/cmake/scip/scip-config.cmake (found version "8.0.1") 
-- Found OpenMP_CXX: -fopenmp (found version "4.5") 
-- Found OpenMP: TRUE (found version "4.5")  
-- GPU is not enabled
-- TCL library: /usr/lib/x86_64-linux-gnu/libtcl.so
-- TCL header: /usr/include/tcl/tcl.h
-- GUI is enabled
-- Charts widget is enabled
-- Found Boost: /usr/local/lib/cmake/Boost-1.80.0/BoostConfig.cmake (found version "1.80.0") found components: serialization 
-- Could NOT find VTune (missing: VTune_LIBRARIES VTune_INCLUDE_DIRS) 
-- Found Boost: /usr/local/lib/cmake/Boost-1.80.0/BoostConfig.cmake (found suitable version "1.80.0", minimum required is "1.78")  
-- TCL library: /usr/lib/x86_64-linux-gnu/libtcl.so
-- TCL header: /usr/include/tcl/tcl.h
-- Found Boost: /usr/local/lib/cmake/Boost-1.80.0/BoostConfig.cmake (found version "1.80.0") found components: serialization system thread 
-- Found Boost: /usr/local/lib/cmake/BoNumber of processor cores: 16
ost-1.80.0/BoostConfig.cmake (found version "1.80.0")  
-- Found Eigen3: /usr/local/share/eigen3/cmake/Eigen3Config.cmake (found version "3.4.1") 
-- TCL readline enabled
-- Tcl Extended disabled
-- Python3 enabled
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/tmp.tSwV5Y4djO

To Reproduce

cd flow && make DESIGN_CONFIG=./designs/ihp-sg13g2/jpeg/config.mk

Relevant log output

1. Executing Verilog-2005 frontend: ./designs/src/jpeg/dct.v
2. Executing Verilog-2005 frontend: ./designs/src/jpeg/dct_mac.v
3. Executing Verilog-2005 frontend: ./designs/src/jpeg/dctu.v
4. Executing Verilog-2005 frontend: ./designs/src/jpeg/dctub.v
5. Executing Verilog-2005 frontend: ./designs/src/jpeg/div_su.v
6. Executing Verilog-2005 frontend: ./designs/src/jpeg/div_uu.v
7. Executing Verilog-2005 frontend: ./designs/src/jpeg/fdct.v
8. Executing Verilog-2005 frontend: ./designs/src/jpeg/jpeg_encoder.v
9. Executing Verilog-2005 frontend: ./designs/src/jpeg/jpeg_qnr.v
10. Executing Verilog-2005 frontend: ./designs/src/jpeg/jpeg_rle.v
11. Executing Verilog-2005 frontend: ./designs/src/jpeg/jpeg_rle1.v
12. Executing Verilog-2005 frontend: ./designs/src/jpeg/jpeg_rzs.v
13. Executing Verilog-2005 frontend: ./designs/src/jpeg/zigzag.v
14. Executing Liberty frontend: ./objects/ihp-sg13g2/jpeg/base/lib/sg13g2_stdcell_typ_1p20V_25C.lib
15. Executing Verilog-2005 frontend: /workspace/flow/platforms/ihp-sg13g2/cells_clkgate.v
Using ABC speed script.
[FLOW] Extracting clock period from SDC file: ./results/ihp-sg13g2/jpeg/base/clock_period.txt
[FLOW] Setting clock period to 8000
16. Executing SYNTH pass.
16.1. Executing HIERARCHY pass (managing design hierarchy).
16.2. Executing AST frontend in derive mode using pre-parsed AST for module `\jpeg_encoder'.
16.2.1. Analyzing design hierarchy..
16.2.2. Executing AST frontend in derive mode using pre-parsed AST for module `\jpeg_rle'.
16.2.3. Executing AST frontend in derive mode using pre-parsed AST for module `\jpeg_qnr'.
16.2.4. Executing AST frontend in derive mode using pre-parsed AST for module `\fdct'.
16.2.5. Analyzing design hierarchy..
16.2.6. Executing AST frontend in derive mode using pre-parsed AST for module `\div_su'.
16.2.7. Executing AST frontend in derive mode using pre-parsed AST for module `\jpeg_rzs'.
16.2.8. Executing AST frontend in derive mode using pre-parsed AST for module `\jpeg_rle1'.
16.2.9. Executing AST frontend in derive mode using pre-parsed AST for module `\zigzag'.
Warning: Replacing memory \sresult with list of registers. See ./designs/src/jpeg/zigzag.v:131
16.2.10. Executing AST frontend in derive mode using pre-parsed AST for module `\dct'.
16.2.11. Analyzing design hierarchy..
16.2.12. Executing AST frontend in derive mode using pre-parsed AST for module `\div_uu'.
Warning: Replacing memory \q_pipe with list of registers. See ./designs/src/jpeg/div_uu.v:160
Warning: Replacing memory \s_pipe with list of registers. See ./designs/src/jpeg/div_uu.v:151
Warning: Replacing memory \d_pipe with list of registers. See ./designs/src/jpeg/div_uu.v:142
16.2.13. Executing AST frontend in derive mode using pre-parsed AST for module `\dctub'.
16.2.14. Executing AST frontend in derive mode using pre-parsed AST for module `\dctub'.
16.2.15. Executing AST frontend in derive mode using pre-parsed AST for module `\dctub'.
16.2.16. Executing AST frontend in derive mode using pre-parsed AST for module `\dctub'.
16.2.17. Executing AST frontend in derive mode using pre-parsed AST for module `\dctub'.
16.2.18. Executing AST frontend in derive mode using pre-parsed AST for module `\dctub'.
16.2.19. Executing AST frontend in derive mode using pre-parsed AST for module `\dctub'.
16.2.20. Executing AST frontend in derive mode using pre-parsed AST for module `\dctub'.
16.2.21. Analyzing design hierarchy..
16.2.22. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.23. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.24. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.25. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.26. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.27. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.28. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.29. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.30. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.31. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.32. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.33. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.34. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.35. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.36. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.37. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.38. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.39. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.40. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.41. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.42. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.43. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.44. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.45. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.46. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.47. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.48. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.49. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.50. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.51. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.52. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.53. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.54. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.55. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.56. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.57. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.58. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.59. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.60. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.61. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.62. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.63. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.64. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.65. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.66. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.67. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.68. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.69. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.70. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.71. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.72. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.73. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.74. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.75. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.76. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.77. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.78. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.79. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.80. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.81. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.82. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.83. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.84. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.85. Executing AST frontend in derive mode using pre-parsed AST for module `\dctu'.
16.2.86. Analyzing design hierarchy..
16.2.87. Executing AST frontend in derive mode using pre-parsed AST for module `\dct_mac'.
16.2.88. Analyzing design hierarchy..
16.2.89. Analyzing design hierarchy..
16.3. Executing PROC pass (convert processes to netlists).
16.3.1. Executing PROC_CLEAN pass (remove empty switches from decision trees).
16.3.2. Executing PROC_RMDEAD pass (remove dead branches from decision trees).
16.3.3. Executing PROC_PRUNE pass (remove redundant assignments in processes).
16.3.4. Executing PROC_INIT pass (extract init attributes).
16.3.5. Executing PROC_ARST pass (detect async resets in processes).
16.3.6. Executing PROC_ROM pass (convert switches to ROMs).
16.3.7. Executing PROC_MUX pass (convert decision trees to multiplexers).
16.3.8. Executing PROC_DLATCH pass (convert process syncs to latches).
16.3.9. Executing PROC_DFF pass (convert process syncs to FFs).
16.3.10. Executing PROC_MEMWR pass (convert process memory writes to cells).
16.3.11. Executing PROC_CLEAN pass (remove empty switches from decision trees).
16.3.12. Executing OPT_EXPR pass (perform const folding).
16.4. Executing FLATTEN pass (flatten design).
16.5. Executing OPT_EXPR pass (perform const folding).
16.6. Executing OPT_CLEAN pass (remove unused cells and wires).
16.7. Executing CHECK pass (checking for obvious problems).
16.8. Executing OPT pass (performing simple optimizations).
16.8.1. Executing OPT_EXPR pass (perform const folding).
16.8.2. Executing OPT_MERGE pass (detect identical cells).
16.8.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
16.8.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
16.8.5. Executing OPT_MERGE pass (detect identical cells).
16.8.6. Executing OPT_DFF pass (perform DFF optimizations).
16.8.7. Executing OPT_CLEAN pass (remove unused cells and wires).
16.8.8. Executing OPT_EXPR pass (perform const folding).
16.8.9. Rerunning OPT passes. (Maybe there is more to do..)
16.8.10. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
16.8.11. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
16.8.12. Executing OPT_MERGE pass (detect identical cells).
16.8.13. Executing OPT_DFF pass (perform DFF optimizations).
16.8.14. Executing OPT_CLEAN pass (remove unused cells and wires).
16.8.15. Executing OPT_EXPR pass (perform const folding).
16.8.16. Finished OPT passes. (There is nothing left to do.)
16.9. Executing FSM pass (extract and optimize FSM).
16.9.1. Executing FSM_DETECT pass (finding FSMs in design).
16.9.2. Executing FSM_EXTRACT pass (extracting FSM from design).
16.9.3. Executing FSM_OPT pass (simple optimizations of FSMs).
16.9.4. Executing OPT_CLEAN pass (remove unused cells and wires).
16.9.5. Executing FSM_OPT pass (simple optimizations of FSMs).
16.9.6. Executing FSM_RECODE pass (re-assigning FSM state encoding).
16.9.7. Executing FSM_INFO pass (dumping all available information on FSM cells).
16.9.8. Executing FSM_MAP pass (mapping FSMs to basic logic).
16.10. Executing OPT pass (performing simple optimizations).
16.10.1. Executing OPT_EXPR pass (perform const folding).
16.10.2. Executing OPT_MERGE pass (detect identical cells).
16.10.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
16.10.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
16.10.5. Executing OPT_MERGE pass (detect identical cells).
16.10.6. Executing OPT_DFF pass (perform DFF optimizations).
16.10.7. Executing OPT_CLEAN pass (remove unused cells and wires).
16.10.8. Executing OPT_EXPR pass (perform const folding).
16.10.9. Rerunning OPT passes. (Maybe there is more to do..)
16.10.10. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
16.10.11. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
16.10.12. Executing OPT_MERGE pass (detect identical cells).
16.10.13. Executing OPT_DFF pass (perform DFF optimizations).
16.10.14. Executing OPT_CLEAN pass (remove unused cells and wires).
16.10.15. Executing OPT_EXPR pass (perform const folding).
16.10.16. Rerunning OPT passes. (Maybe there is more to do..)
16.10.17. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
16.10.18. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
16.10.19. Executing OPT_MERGE pass (detect identical cells).
16.10.20. Executing OPT_DFF pass (perform DFF optimizations).
16.10.21. Executing OPT_CLEAN pass (remove unused cells and wires).
16.10.22. Executing OPT_EXPR pass (perform const folding).
16.10.23. Rerunning OPT passes. (Maybe there is more to do..)
16.10.24. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
16.10.25. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
16.10.26. Executing OPT_MERGE pass (detect identical cells).
16.10.27. Executing OPT_DFF pass (perform DFF optimizations).
16.10.28. Executing OPT_CLEAN pass (remove unused cells and wires).
16.10.29. Executing OPT_EXPR pass (perform const folding).
16.10.30. Rerunning OPT passes. (Maybe there is more to do..)
16.10.31. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
16.10.32. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
16.10.33. Executing OPT_MERGE pass (detect identical cells).
16.10.34. Executing OPT_DFF pass (perform DFF optimizations).
16.10.35. Executing OPT_CLEAN pass (remove unused cells and wires).
16.10.36. Executing OPT_EXPR pass (perform const folding).
16.10.37. Rerunning OPT passes. (Maybe there is more to do..)
16.10.38. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
16.10.39. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
16.10.40. Executing OPT_MERGE pass (detect identical cells).
16.10.41. Executing OPT_DFF pass (perform DFF optimizations).
16.10.42. Executing OPT_CLEAN pass (remove unused cells and wires).
16.10.43. Executing OPT_EXPR pass (perform const folding).
16.10.44. Rerunning OPT passes. (Maybe there is more to do..)
16.10.45. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
16.10.46. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
16.10.47. Executing OPT_MERGE pass (detect identical cells).
16.10.48. Executing OPT_DFF pass (perform DFF optimizations).
16.10.49. Executing OPT_CLEAN pass (remove unused cells and wires).
16.10.50. Executing OPT_EXPR pass (perform const folding).
16.10.51. Rerunning OPT passes. (Maybe there is more to do..)
16.10.52. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
16.10.53. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
16.10.54. Executing OPT_MERGE pass (detect identical cells).
16.10.55. Executing OPT_DFF pass (perform DFF optimizations).
16.10.56. Executing OPT_CLEAN pass (remove unused cells and wires).
16.10.57. Executing OPT_EXPR pass (perform const folding).
16.10.58. Rerunning OPT passes. (Maybe there is more to do..)
16.10.59. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
16.10.60. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
16.10.61. Executing OPT_MERGE pass (detect identical cells).
16.10.62. Executing OPT_DFF pass (perform DFF optimizations).
16.10.63. Executing OPT_CLEAN pass (remove unused cells and wires).
16.10.64. Executing OPT_EXPR pass (perform const folding).
16.10.65. Rerunning OPT passes. (Maybe there is more to do..)
16.10.66. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
16.10.67. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
16.10.68. Executing OPT_MERGE pass (detect identical cells).
16.10.69. Executing OPT_DFF pass (perform DFF optimizations).
16.10.70. Executing OPT_CLEAN pass (remove unused cells and wires).
16.10.71. Executing OPT_EXPR pass (perform const folding).
16.10.72. Rerunning OPT passes. (Maybe there is more to do..)
16.10.73. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
16.10.74. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
16.10.75. Executing OPT_MERGE pass (detect identical cells).
16.10.76. Executing OPT_DFF pass (perform DFF optimizations).
16.10.77. Executing OPT_CLEAN pass (remove unused cells and wires).
16.10.78. Executing OPT_EXPR pass (perform const folding).
16.10.79. Rerunning OPT passes. (Maybe there is more to do..)
16.10.80. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
16.10.81. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
16.10.82. Executing OPT_MERGE pass (detect identical cells).
16.10.83. Executing OPT_DFF pass (perform DFF optimizations).
16.10.84. Executing OPT_CLEAN pass (remove unused cells and wires).
16.10.85. Executing OPT_EXPR pass (perform const folding).
16.10.86. Rerunning OPT passes. (Maybe there is more to do..)
16.10.87. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
16.10.88. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
16.10.89. Executing OPT_MERGE pass (detect identical cells).
16.10.90. Executing OPT_DFF pass (perform DFF optimizations).
16.10.91. Executing OPT_CLEAN pass (remove unused cells and wires).
16.10.92. Executing OPT_EXPR pass (perform const folding).
16.10.93. Finished OPT passes. (There is nothing left to do.)
16.11. Executing WREDUCE pass (reducing word size of cells).
16.12. Executing PEEPOPT pass (run peephole optimizers).
16.13. Executing OPT_CLEAN pass (remove unused cells and wires).
16.14. Executing ALUMACC pass (create $alu and $macc cells).
16.15. Executing SHARE pass (SAT-based resource sharing).
16.16. Executing OPT pass (performing simple optimizations).
16.16.1. Executing OPT_EXPR pass (perform const folding).
16.16.2. Executing OPT_MERGE pass (detect identical cells).
16.16.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
16.16.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
16.16.5. Executing OPT_MERGE pass (detect identical cells).
16.16.6. Executing OPT_DFF pass (perform DFF optimizations).
16.16.7. Executing OPT_CLEAN pass (remove unused cells and wires).
16.16.8. Executing OPT_EXPR pass (perform const folding).
16.16.9. Finished OPT passes. (There is nothing left to do.)
16.17. Executing MEMORY pass.
16.17.1. Executing OPT_MEM pass (optimize memories).
16.17.2. Executing OPT_MEM_PRIORITY pass (removing unnecessary memory write priority relations).
16.17.3. Executing OPT_MEM_FEEDBACK pass (finding memory read-to-write feedback paths).
16.17.4. Executing MEMORY_BMUX2ROM pass (converting muxes to ROMs).
16.17.5. Executing MEMORY_DFF pass (merging $dff cells to $memrd).
16.17.6. Executing OPT_CLEAN pass (remove unused cells and wires).
16.17.7. Executing MEMORY_SHARE pass (consolidating $memrd/$memwr cells).
16.17.8. Executing OPT_MEM_WIDEN pass (optimize memories where all ports are wide).
16.17.9. Executing OPT_CLEAN pass (remove unused cells and wires).
16.17.10. Executing MEMORY_COLLECT pass (generating $mem cells).
16.18. Executing OPT_CLEAN pass (remove unused cells and wires).
17. Executing SYNTH pass.
17.1. Executing OPT pass (performing simple optimizations).
17.1.1. Executing OPT_EXPR pass (perform const folding).
17.1.2. Executing OPT_MERGE pass (detect identical cells).
17.1.3. Executing OPT_DFF pass (perform DFF optimizations).
17.1.4. Executing OPT_CLEAN pass (remove unused cells and wires).
17.1.5. Rerunning OPT passes. (Removed registers in this run.)
17.1.6. Executing OPT_EXPR pass (perform const folding).
17.1.7. Executing OPT_MERGE pass (detect identical cells).
17.1.8. Executing OPT_DFF pass (perform DFF optimizations).
17.1.9. Executing OPT_CLEAN pass (remove unused cells and wires).
17.1.10. Rerunning OPT passes. (Removed registers in this run.)
17.1.11. Executing OPT_EXPR pass (perform const folding).
17.1.12. Executing OPT_MERGE pass (detect identical cells).
17.1.13. Executing OPT_DFF pass (perform DFF optimizations).
17.1.14. Executing OPT_CLEAN pass (remove unused cells and wires).
17.1.15. Finished fast OPT passes.
17.2. Executing MEMORY_MAP pass (converting memories to logic and flip-flops).
17.3. Executing OPT pass (performing simple optimizations).
17.3.1. Executing OPT_EXPR pass (perform const folding).
17.3.2. Executing OPT_MERGE pass (detect identical cells).
17.3.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
17.3.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
17.3.5. Executing OPT_MERGE pass (detect identical cells).
17.3.6. Executing OPT_SHARE pass.
17.3.7. Executing OPT_DFF pass (perform DFF optimizations).
17.3.8. Executing OPT_CLEAN pass (remove unused cells and wires).
17.3.9. Executing OPT_EXPR pass (perform const folding).
17.3.10. Rerunning OPT passes. (Maybe there is more to do..)
17.3.11. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
17.3.12. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
17.3.13. Executing OPT_MERGE pass (detect identical cells).
17.3.14. Executing OPT_SHARE pass.
17.3.15. Executing OPT_DFF pass (perform DFF optimizations).
17.3.16. Executing OPT_CLEAN pass (remove unused cells and wires).
17.3.17. Executing OPT_EXPR pass (perform const folding).
17.3.18. Rerunning OPT passes. (Maybe there is more to do..)
17.3.19. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
17.3.20. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
17.3.21. Executing OPT_MERGE pass (detect identical cells).
17.3.22. Executing OPT_SHARE pass.
17.3.23. Executing OPT_DFF pass (perform DFF optimizations).
17.3.24. Executing OPT_CLEAN pass (remove unused cells and wires).
17.3.25. Executing OPT_EXPR pass (perform const folding).
17.3.26. Rerunning OPT passes. (Maybe there is more to do..)
17.3.27. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
17.3.28. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
17.3.29. Executing OPT_MERGE pass (detect identical cells).
17.3.30. Executing OPT_SHARE pass.
17.3.31. Executing OPT_DFF pass (perform DFF optimizations).
17.3.32. Executing OPT_CLEAN pass (remove unused cells and wires).
17.3.33. Executing OPT_EXPR pass (perform const folding).
17.3.34. Rerunning OPT passes. (Maybe there is more to do..)
17.3.35. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
17.3.36. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
17.3.37. Executing OPT_MERGE pass (detect identical cells).
17.3.38. Executing OPT_SHARE pass.
17.3.39. Executing OPT_DFF pass (perform DFF optimizations).
17.3.40. Executing OPT_CLEAN pass (remove unused cells and wires).
17.3.41. Executing OPT_EXPR pass (perform const folding).
17.3.42. Rerunning OPT passes. (Maybe there is more to do..)
17.3.43. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
17.3.44. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
17.3.45. Executing OPT_MERGE pass (detect identical cells).
17.3.46. Executing OPT_SHARE pass.
17.3.47. Executing OPT_DFF pass (perform DFF optimizations).
17.3.48. Executing OPT_CLEAN pass (remove unused cells and wires).
17.3.49. Executing OPT_EXPR pass (perform const folding).
17.3.50. Rerunning OPT passes. (Maybe there is more to do..)
17.3.51. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
17.3.52. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
17.3.53. Executing OPT_MERGE pass (detect identical cells).
17.3.54. Executing OPT_SHARE pass.
17.3.55. Executing OPT_DFF pass (perform DFF optimizations).
17.3.56. Executing OPT_CLEAN pass (remove unused cells and wires).
17.3.57. Executing OPT_EXPR pass (perform const folding).
17.3.58. Rerunning OPT passes. (Maybe there is more to do..)
17.3.59. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
17.3.60. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
17.3.61. Executing OPT_MERGE pass (detect identical cells).
17.3.62. Executing OPT_SHARE pass.
17.3.63. Executing OPT_DFF pass (perform DFF optimizations).
17.3.64. Executing OPT_CLEAN pass (remove unused cells and wires).
17.3.65. Executing OPT_EXPR pass (perform const folding).
17.3.66. Rerunning OPT passes. (Maybe there is more to do..)
17.3.67. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
17.3.68. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
17.3.69. Executing OPT_MERGE pass (detect identical cells).
17.3.70. Executing OPT_SHARE pass.
17.3.71. Executing OPT_DFF pass (perform DFF optimizations).
17.3.72. Executing OPT_CLEAN pass (remove unused cells and wires).
17.3.73. Executing OPT_EXPR pass (perform const folding).
17.3.74. Rerunning OPT passes. (Maybe there is more to do..)
17.3.75. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
17.3.76. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
17.3.77. Executing OPT_MERGE pass (detect identical cells).
17.3.78. Executing OPT_SHARE pass.
17.3.79. Executing OPT_DFF pass (perform DFF optimizations).
17.3.80. Executing OPT_CLEAN pass (remove unused cells and wires).
17.3.81. Executing OPT_EXPR pass (perform const folding).
17.3.82. Rerunning OPT passes. (Maybe there is more to do..)
17.3.83. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
17.3.84. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
17.3.85. Executing OPT_MERGE pass (detect identical cells).
17.3.86. Executing OPT_SHARE pass.
17.3.87. Executing OPT_DFF pass (perform DFF optimizations).
17.3.88. Executing OPT_CLEAN pass (remove unused cells and wires).
17.3.89. Executing OPT_EXPR pass (perform const folding).
17.3.90. Rerunning OPT passes. (Maybe there is more to do..)
17.3.91. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
17.3.92. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
17.3.93. Executing OPT_MERGE pass (detect identical cells).
17.3.94. Executing OPT_SHARE pass.
17.3.95. Executing OPT_DFF pass (perform DFF optimizations).
17.3.96. Executing OPT_CLEAN pass (remove unused cells and wires).
17.3.97. Executing OPT_EXPR pass (perform const folding).
17.3.98. Rerunning OPT passes. (Maybe there is more to do..)
17.3.99. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
17.3.100. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
17.3.101. Executing OPT_MERGE pass (detect identical cells).
17.3.102. Executing OPT_SHARE pass.
17.3.103. Executing OPT_DFF pass (perform DFF optimizations).
17.3.104. Executing OPT_CLEAN pass (remove unused cells and wires).
17.3.105. Executing OPT_EXPR pass (perform const folding).
17.3.106. Finished OPT passes. (There is nothing left to do.)
17.4. Executing TECHMAP pass (map to technology primitives).
17.4.1. Executing Verilog-2005 frontend: /workspace/tools/install/yosys/bin/../share/yosys/techmap.v
17.4.2. Executing Verilog-2005 frontend: /workspace/flow/designs/src/lcu/lcu_kogge_stone.v
17.4.3. Continuing TECHMAP pass.
17.5. Executing OPT pass (performing simple optimizations).
17.5.1. Executing OPT_EXPR pass (perform const folding).
17.5.2. Executing OPT_MERGE pass (detect identical cells).
17.5.3. Executing OPT_DFF pass (perform DFF optimizations).
17.5.4. Executing OPT_CLEAN pass (remove unused cells and wires).
17.5.5. Rerunning OPT passes. (Removed registers in this run.)
17.5.6. Executing OPT_EXPR pass (perform const folding).
17.5.7. Executing OPT_MERGE pass (detect identical cells).
17.5.8. Executing OPT_DFF pass (perform DFF optimizations).
17.5.9. Executing OPT_CLEAN pass (remove unused cells and wires).
17.5.10. Rerunning OPT passes. (Removed registers in this run.)
17.5.11. Executing OPT_EXPR pass (perform const folding).
17.5.12. Executing OPT_MERGE pass (detect identical cells).
17.5.13. Executing OPT_DFF pass (perform DFF optimizations).
17.5.14. Executing OPT_CLEAN pass (remove unused cells and wires).
17.5.15. Finished fast OPT passes.
17.6. Executing ABC pass (technology mapping using ABC).
17.6.1. Extracting gate netlist of module `\jpeg_encoder' to `<abc-temp-dir>/input.blif'..
17.7. Executing OPT pass (performing simple optimizations).
17.7.1. Executing OPT_EXPR pass (perform const folding).
17.7.2. Executing OPT_MERGE pass (detect identical cells).
17.7.3. Executing OPT_DFF pass (perform DFF optimizations).
17.7.4. Executing OPT_CLEAN pass (remove unused cells and wires).
17.7.5. Finished fast OPT passes.
17.8. Executing HIERARCHY pass (managing design hierarchy).
17.8.1. Analyzing design hierarchy..
17.8.2. Analyzing design hierarchy..
17.9. Printing statistics.
17.10. Executing CHECK pass (checking for obvious problems).
18. Executing OPT pass (performing simple optimizations).
18.1. Executing OPT_EXPR pass (perform const folding).
18.2. Executing OPT_MERGE pass (detect identical cells).
18.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
18.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
18.5. Executing OPT_MERGE pass (detect identical cells).
18.6. Executing OPT_DFF pass (perform DFF optimizations).
18.7. Executing OPT_CLEAN pass (remove unused cells and wires).
18.8. Executing OPT_EXPR pass (perform const folding).
18.9. Rerunning OPT passes. (Maybe there is more to do..)
18.10. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
18.11. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
18.12. Executing OPT_MERGE pass (detect identical cells).
18.13. Executing OPT_DFF pass (perform DFF optimizations).
18.14. Executing OPT_CLEAN pass (remove unused cells and wires).
18.15. Executing OPT_EXPR pass (perform const folding).
18.16. Rerunning OPT passes. (Maybe there is more to do..)
18.17. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
18.18. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
18.19. Executing OPT_MERGE pass (detect identical cells).
18.20. Executing OPT_DFF pass (perform DFF optimizations).
18.21. Executing OPT_CLEAN pass (remove unused cells and wires).
18.22. Executing OPT_EXPR pass (perform const folding).
18.23. Finished OPT passes. (There is nothing left to do.)
19. Executing TECHMAP pass (map to technology primitives).
19.1. Executing Verilog-2005 frontend: /workspace/flow/platforms/ihp-sg13g2/cells_latch.v
19.2. Continuing TECHMAP pass.
20. Executing DFFLIBMAP pass (mapping DFF cells to sequential cells from liberty file).
Warning: Found unsupported expression 'SCE*SCD+SCE'*D' in pin attribute of cell 'sg13g2_sdfbbp_1' - skipping.
20.1. Executing DFFLEGALIZE pass (convert FFs to types supported by the target).
21. Executing OPT pass (performing simple optimizations).
21.1. Executing OPT_EXPR pass (perform const folding).
21.2. Executing OPT_MERGE pass (detect identical cells).
21.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
21.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
21.5. Executing OPT_MERGE pass (detect identical cells).
21.6. Executing OPT_DFF pass (perform DFF optimizations).
21.7. Executing OPT_CLEAN pass (remove unused cells and wires).
21.8. Executing OPT_EXPR pass (perform const folding).
21.9. Rerunning OPT passes. (Maybe there is more to do..)
21.10. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
21.11. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
21.12. Executing OPT_MERGE pass (detect identical cells).
21.13. Executing OPT_DFF pass (perform DFF optimizations).
21.14. Executing OPT_CLEAN pass (remove unused cells and wires).
21.15. Executing OPT_EXPR pass (perform const folding).
21.16. Finished OPT passes. (There is nothing left to do.)
abc -script /workspace/flow/scripts/abc_speed.script -liberty ./objects/ihp-sg13g2/jpeg/base/lib/sg13g2_stdcell_typ_1p20V_25C.lib -constr ./objects/ihp-sg13g2/jpeg/base/abc.constr -dont_use sg13g2_antennanp -dont_use sg13g2_lgcp_1 -dont_use sg13g2_sighold -dont_use sg13g2_slgcp_1 -dont_use sg13g2_dfrbp_2 -D 8000
22. Executing ABC pass (technology mapping using ABC).
22.1. Extracting gate netlist of module `\jpeg_encoder' to `<abc-temp-dir>/input.blif'..
22.1.1. Executing ABC.
ERROR: ABC: execution of command ""/workspace/tools/install/yosys/bin/yosys-abc" -s -f /tmp/yosys-abc-oTnAlj/abc.script 2>&1" failed: return code 134.
Command exited with non-zero status 1
Elapsed time: 3:38.97[h:]min:sec. CPU time: user 217.81 sys 1.05 (99%). Peak memory: 723988KB.

Screenshots

No response

Additional Context

No response

@maliberty
Copy link
Member

It appears this design is not running in the CI.

@luarss
Copy link
Contributor Author

luarss commented Apr 21, 2024

Should we remove the autotuner.json file for this design then? Since the default flow is not working.

@maliberty
Copy link
Member

Probably we should just get the base case working or remove the whole design. Can the autotuner find a working configuration?

@maliberty
Copy link
Member

@povik this appears to be an yosys-abc crash. Should that be reported to yosyshq or directly to abc?

@maliberty
Copy link
Member

If I run yosys-abc myself I see

yosys-abc: src/map/scl/sclBufSize.c:388: abc::Abc_Obj_t* abc::Abc_SclAddOneInv(abc::Bus_Man_t*, abc::Abc_Obj_t*, abc::Vec_Ptr_t*, float): Assertion `LoadNew - Load < 1 && Load - LoadNew < 1' failed.
Aborted (core dumped)

@povik
Copy link

povik commented Apr 22, 2024

Hah, just the other way I was looking at the buffering code and noting those assertions don't make such sense (the units there are such that 1 shouldn't be a special value), so I suspect the fix is to simply remove those.

@povik
Copy link

povik commented Apr 22, 2024

Generally I think one has better chances with opening a Yosys issue than reporting it to the upstream abc project. Here though the issue can be pointed out easily so maybe an abc report would work too. We carry some downstream patches for abc issues and the prospect of getting those mainline are uncertain.

@maliberty
Copy link
Member

@povik if you are planning to look at it I could just assign this issue to you or I could transfer it to yosyshq.

@povik
Copy link

povik commented Apr 22, 2024

It's not something I was planning to look at, but feel free to assign it to me, I just don't know when I will get to it. When I do, I can confirm removing the assertions does the trick (and double-check the assertions are nonsensical).

@maliberty
Copy link
Member

@QuantamHD FYI in case Alan wants to look at this directly.

@QuantamHD
Copy link

Alan won't fix any bugs for you, but if you open PRs we can email him to get him to review.

@maliberty
Copy link
Member

@povik could you make a PR removing the assertions you believe are wrong?

@mi-and-core
Copy link

mi-and-core commented Apr 23, 2024

I confirm the reported bug.
Interestingly, abc works as expected when in flow/scripts/abc_speed.script the last lines

buffer -c
topo
stime -c
upsize -c
dnsize -c

be replaced by:

buffer
topo
stime
upsize
dnsize

That could be a clue.

@mi-and-core
Copy link

Should that be reported to yosyshq or directly to abc?

From the above findings ('-c' in abc_speed.script) i guess : abc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants