My project passed local precheck but is getting an...
# shuttle-precheck
m
My project passed local precheck but is getting an "exception" message during the eFabless precheck. What can I do to fix this?
More info from the precheck.log
a
it suggests to open the precheck.log file in the path. Post that too
m
See above
p
I got a similar error, and I could not pass my local precheck now. Here is the error message I got from my local precheck: {{STEP UPDATE}} Executing Check 5 of 13: Consistency HIERARCHY CHECK FAILED: Module user_analog_project_wrapper isn't instantiated in caravan. COMPLEXITY CHECK PASSED: Netlist caravan contains at least 8 instances (69 instances). MODELING CHECK PASSED: Netlist caravan is structural. Traceback (most recent call last): File "mpw_precheck.py", line 139, in <module> default_content='_default_content') File "mpw_precheck.py", line 100, in main run_precheck_sequence(precheck_config=precheck_config, project_config=project_config) File "mpw_precheck.py", line 68, in run_precheck_sequence results[check.surname] = check.run() File "/home/hpcalex/mpw_precheck/check_manager/__init__.py", line 61, in run defines_file_path=self.precheck_config['caravel_root'] / 'verilog/rtl/defines.v') File "/home/hpcalex/mpw_precheck/checks/consistency_check/consistency_check.py", line 106, in main submodule_power=USER_POWER_PINS, submodule_banned_power=USER_BANNED_POWER) File "/home/hpcalex/mpw_precheck/checks/consistency_check/netlist_checker/__init__.py", line 43, in check result = fn() if args is None else fn(*args) File "/home/hpcalex/mpw_precheck/checks/consistency_check/netlist_checker/__init__.py", line 117, in check_submodule_hooks module_hooks = self.netlist_parser.get_hooks(module) File "/home/hpcalex/mpw_precheck/checks/consistency_check/parsers/netlist_parser/__init__.py", line 201, in get_hooks raise DataError(f"Module instance {module_name} not found.") checks.consistency_check.parsers.netlist_parser.DataError: Module instance user_analog_project_wrapper not found. make: * [Makefile114 run-precheck] Error 1
m
@Mariana Huerta @Po-Chun Huang (This is my understanding of how precheck works for analog designs) Analog designs expect the user generated top level spice to be at
netgen/user_analog_project_wrapper.spice
. This file should have a top level hierarchy that matches your layout.
p
@Mitch Bailey Yes, I have the file
netgen/user_analog_project_wrapper.spice
, and the hierarchy matches my layout. My design can pass the precheck before the update. Is there any changes on the analog designs precheck?
x
I am having the same issue with the Hierarchy Check failing on the efabless platform with my analog design (passes the local precheck as well)
c
I also am getting the same issue and have an analog project. However my local precheck is failing too. Here is the log of my local precheck:
Copy code
$ make run-precheck 
cd /home/carl/mpw_precheck && \
docker run -v /home/carl/mpw_precheck:/home/carl/mpw_precheck \
-v /home/carl/IC/mpw7/caravel_user_project_analog:/home/carl/IC/mpw7/caravel_user_project_analog \
-v /home/carl/IC/OpenLane/pdks/:/home/carl/IC/OpenLane/pdks/ \
-e INPUT_DIRECTORY=/home/carl/IC/mpw7/caravel_user_project_analog \
-e PDK_PATH=/home/carl/IC/OpenLane/pdks//sky130B \
-e PDK_ROOT=/home/carl/IC/OpenLane/pdks/ \
-e PDKPATH=/home/carl/IC/OpenLane/pdks//sky130B \
-u 1000:1000 \
efabless/mpw_precheck:latest bash -c "cd /home/carl/mpw_precheck ; python3 mpw_precheck.py --input_directory /home/carl/IC/mpw7/caravel_user_project_analog --pdk_path /home/carl/IC/OpenLane/pdks//sky130B"
{{EXTRACTING FILES}} Extracting compressed files in: /home/carl/IC/mpw7/caravel_user_project_analog
{{Project Type Info}} analog
{{Project GDS Info}} user_analog_project_wrapper: 94b6ca623f863196471e194445b4875966ebd3c2
{{Tools Info}} KLayout: v0.27.12 | Magic: v8.3.340
{{PDKs Info}} PDK: sky130B | Open PDKs: 7519dfb04400f224f140749cda44ee7de6f5e095 | Skywater PDK: c094b6e83a4f9298e47f696ec5a7fd53535ec5eb
{{START}} Precheck Started, the full log 'precheck.log' will be located in '/home/carl/IC/mpw7/caravel_user_project_analog/precheck_results/23_NOV_2022___01_28_22/logs'
{{PRECHECK SEQUENCE}} Precheck will run the following checks: [License, Makefile, Default, Documentation, Consistency, XOR, Magic DRC, Klayout FEOL, Klayout BEOL, Klayout Offgrid, Klayout Metal Minimum Clear Area Density, Klayout Pin Label Purposes Overlapping Drawing, Klayout ZeroArea]
{{STEP UPDATE}} Executing Check 1 of 13: License
An approved LICENSE (Apache-2.0) was found in /home/carl/IC/mpw7/caravel_user_project_analog.
{{MAIN LICENSE CHECK PASSED}} An approved LICENSE was found in project root.
An approved LICENSE (Apache-2.0) was found in /home/carl/IC/mpw7/caravel_user_project_analog.
An approved LICENSE (Apache-2.0) was found in /home/carl/IC/mpw7/caravel_user_project_analog.
{{SUBMODULES LICENSE CHECK PASSED}} No prohibited LICENSE file(s) was found in project submodules
{{SPDX COMPLIANCE CHECK PASSED}} Project is compliant with the SPDX Standard
{{STEP UPDATE}} Executing Check 2 of 13: Makefile
{{MAKEFILE CHECK PASSED}} Makefile valid.
{{STEP UPDATE}} Executing Check 3 of 13: Default
{{README DEFAULT CHECK PASSED}} Project 'README.md' was modified and is not identical to the default 'README.md'
{{CONTENT DEFAULT CHECK PASSED}} Project 'gds' was modified and is not identical to the default 'gds'
{{STEP UPDATE}} Executing Check 4 of 13: Documentation
{{DOCUMENTATION CHECK PASSED}} Project documentation is appropriate.
{{STEP UPDATE}} Executing Check 5 of 13: Consistency
HIERARCHY CHECK FAILED: Module user_analog_project_wrapper isn't instantiated in caravan.
COMPLEXITY CHECK PASSED: Netlist caravan contains at least 8 instances (69 instances). 
MODELING CHECK PASSED: Netlist caravan is structural.
Traceback (most recent call last):
  File "mpw_precheck.py", line 139, in <module>
    default_content='_default_content')
  File "mpw_precheck.py", line 100, in main
    run_precheck_sequence(precheck_config=precheck_config, project_config=project_config)
  File "mpw_precheck.py", line 68, in run_precheck_sequence
    results[check.__surname__] = check.run()
  File "/home/carl/mpw_precheck/check_manager/__init__.py", line 61, in run
    defines_file_path=self.precheck_config['caravel_root'] / 'verilog/rtl/defines.v')
  File "/home/carl/mpw_precheck/checks/consistency_check/consistency_check.py", line 106, in main
    submodule_power=USER_POWER_PINS, submodule_banned_power=USER_BANNED_POWER)
  File "/home/carl/mpw_precheck/checks/consistency_check/netlist_checker/__init__.py", line 43, in check
    result = fn() if args is None else fn(*args)
  File "/home/carl/mpw_precheck/checks/consistency_check/netlist_checker/__init__.py", line 117, in check_submodule_hooks
    module_hooks = self.netlist_parser.get_hooks(module)
  File "/home/carl/mpw_precheck/checks/consistency_check/parsers/netlist_parser/__init__.py", line 201, in get_hooks
    raise DataError(f"Module instance {module_name} not found.")
checks.consistency_check.parsers.netlist_parser.DataError: Module instance user_analog_project_wrapper not found.
Makefile:113: recipe for target 'run-precheck' failed
make: *** [run-precheck] Error 1
m
The same applies for me as for Po-Chun.
m
Ok. I think I found the problem with the hierarchy check. I don’t think there’s anything the user can do. Working on a PR. Thanks for all the information.
c
thank you very much @Mitch Bailey
m
Thank you @Mitch Bailey
m
Actually, looks like the caravel repo was fixed 7 hours ago. For those experiencing problems with the local precheck, can you update your caravel repo and try again? From
caravel_user_project_analog
,
make update_caravel
should work.
c
I'm still getting the same error. But I think my precheck is using the caravel from the docker image not the one in my project. Do you know if there is a way to set which caravel the precheck uses
m
Checking…
You are correct. We’ll need to wait until they retag the caravel repos and …. Well the new caravan.spice may not be correct either. I’ll talk to people.
A patch has been merged. Try pulling mpw_precheck (
05fbcdaa43583f438826e9be2e2a258647515cea
) and rerunning. Please post if there are any remaining problems.
x
Looks like the fix works for Hierarchy check fix works! Unfortunately, I am now getting the old submodule hooks error (vccd1 connected to mprj_vccd1 instead of vccd1_core) that was happening during the September tapeout. Discussed here prior: https://open-source-silicon.slack.com/archives/C02096M650E/p1659563782526419
c
Hi the fix also worked for me but now I also am now getting the submodule hooks failed error. ``````
m
Submitted a PR to caravel and caravel-lite. Those repos will need to be updated, the retagged (requires an update to mpw_precheck too), and the precheck docker image recreated.
m
Pre-check is working for me now, thank you @Mitch Bailey!
👍 1
c
also working for me, thank you @Mitch Bailey!
👍 1