Sean May
04/05/2024, 10:46 PM[04/05/24 12:01:36 PDT] FAILURE
4 Check(s) Failed: ['Consistency', 'GPIO-Defines', 'Klayout Offgrid', 'LVS'] !!!
I know the GPIO_Defines can be fixed by setting the USER_CONFIG_GPIO_<val>_INIT
pins to GPIO_MODE_USER_STD_ANALOG
, (aside from GPIO_5 and GPIO_6 which I've set as GPIO_MODE_USER_STD_NOPULL
) in the verilog/rtl/user_defines.v file. The consistency error:
STDOUT: LAYOUT CHECK FAILED: The GDS layout for user_analog_project_wrapper doesn't match the provided structural netlist. Mismatching modules are: ['Bridge_Only']
STDOUT: {{NETLIST CONSISTENCY CHECK FAILED}} user_analog_project_wrapper netlist failed 1 consistency check(s): ['LAYOUT'].
STDOUT: {{CONSISTENCY CHECK FAILED}} The user netlist and the top netlist are not valid.
I don't have the user_analog_project_wrapper.spice in the netgen folder setup properly. I tried to add the symbol for my Bridge_Only schematic using xschem as shown in the attached image and generated the netlist with the LVS netlist: Top level is a .subckt option checked under the Simulation tab in xschem. The netlist generated is attached. Running the precheck again results in an exception:
[04/05/24 14:29:22 PDT] SUBMITTED
[04/05/24 14:34:00 PDT] STARTED
[04/05/24 14:34:03 PDT] PROJECT GIT INFO
Repository: https:/repositories.efabless.com/smay26/analog_tester2.git | Branch: main | Commit: 592474114e8671f695853eda6bd33bcef85f2d60
[04/05/24 14:34:03 PDT] EXTRACTING FILES
Extracting compressed files in: analog_tester2.git
[04/05/24 14:34:03 PDT] PROJECT TYPE INFO
analog
[04/05/24 14:34:03 PDT] PROJECT GDS INFO
user_analog_project_wrapper: 5d5563dde4f24dcb263103048bcb40f8a74189eb
[04/05/24 14:34:03 PDT] TOOLS INFO
KLayout: v0.28.12 | Magic: v8.3.465
[04/05/24 14:34:03 PDT] PDKS INFO
SKY130A: 49d3c73c2cd8ea42cdae5056440baef0f72e7e42 | Open PDKs: 12df12e2e74145e31c5a13de02f9a1e176b56e67
[04/05/24 14:34:03 PDT] START
Precheck Started, the full log 'precheck.log' will be located in '/mnt/users_data/jobs/smay26/analog_tester2/255b59c0-0691-4263-8dd8-55876a625267/logs'
[04/05/24 14:34:03 PDT] PRECHECK SEQUENCE
Precheck will run the following checks: [Makefile, Consistency, GPIO-Defines, XOR, Magic DRC, Klayout FEOL, Klayout BEOL, Klayout Offgrid, Klayout Metal Minimum Clear Area Density, Klayout Pin Label Purposes Overlapping Drawing, Klayout ZeroArea, OEB, LVS]
[04/05/24 14:34:04 PDT] STEP UPDATE
Executing Check 1 of 13: Makefile
[04/05/24 14:34:04 PDT] MAKEFILE CHECK PASSED
Makefile valid.
[04/05/24 14:34:04 PDT] STEP UPDATE
Executing Check 2 of 13: Consistency
[04/05/24 14:34:09 PDT] EXCEPTION
Script error code: 1
Mitch Bailey
04/06/2024, 1:42 AMbridge_only
-> Bridge_Only
.
Do you have the same problem with the local precheck?
make precheck
make run-precheck
Sean May
04/06/2024, 6:10 PMbridge_only
. Running the local precheck gets:Sean May
04/06/2024, 6:10 PM{{STEP UPDATE}} Executing Check 5 of 16: Consistency
Traceback (most recent call last):
File "mpw_precheck.py", line 141, in <module>
default_content='_default_content')
File "mpw_precheck.py", line 102, 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/smay9/mpw_precheck/check_manager/__init__.py", line 67, in run
defines_file_path=self.precheck_config['caravel_root'] / 'verilog/rtl/defines.v')
File "/home/smay9/mpw_precheck/checks/consistency_check/consistency_check.py", line 85, in main
user_netlist_parser = get_netlist_parser(project_config['user_netlist'], project_config['user_module'], project_config['netlist_type'], include_files=include_files, preprocess_define=PREPROCESS_DEFINES)
File "/home/smay9/mpw_precheck/checks/consistency_check/parsers/netlist_parser/__init__.py", line 417, in get_netlist_parser
return SpiceParser(netlist, top_module)
File "/home/smay9/mpw_precheck/checks/consistency_check/parsers/netlist_parser/__init__.py", line 177, in __init__
self.instances = [instance.name for instance in subcircuit]
File "/home/smay9/mpw_precheck/checks/consistency_check/parsers/netlist_parser/__init__.py", line 177, in <listcomp>
self.instances = [instance.name for instance in subcircuit]
AttributeError: 'Comment' object has no attribute 'name'
make: *** [Makefile:130: run-precheck] Error 1
Mitch Bailey
04/06/2024, 10:20 PMnetgen/user_analog_project_wrapper.spice
file?Sean May
04/06/2024, 10:26 PMMitch Bailey
04/06/2024, 10:49 PMMPW_TAG
defined? If not, what is the MPW_TAG
in the project Makefile
.Sean May
04/06/2024, 10:56 PMMPW_TAG ?= mpw-9h
Mitch Bailey
04/06/2024, 11:13 PMSean May
04/06/2024, 11:20 PMMitch Bailey
04/07/2024, 2:47 PMcaravel_user_project_analog
Makefile.
After making some changes to the Makefile, I was able to duplicate your results.
Looking into the actual cause now.Mitch Bailey
04/07/2024, 5:12 PMnetgen/user_analog_project_wrapper.spice
.
I’ll log an issue.Sean May
04/07/2024, 10:07 PMnetgen/user_analog_project_wrapper.spice
does fix the issue with the exception and my consistency checks have passed. I get an {{SPDX COMPLIANCE CHECK FAILED}}
statement now, but have read this isn't critical to pass. I still have the`Kalyout Offgrid` and LVS
checks failing. It's not apparent to me how to find the offgrid violations from the xml klayout_offgrid_check.xml
. I'm not sure how to resolve the LVS issues, I don't plan to use any of the wbs
or la_data_i/o
pins, but do want to use gpio_analog
pins. I've attached the offgrid.xml and lvs.report files. Thank you again for helping here.Mitch Bailey
04/08/2024, 12:34 AMTools
-> Marker Browser
and choose the xml
file.
LVS is using the default spice netlist (a power on reset circuit).
Check LVS_SPICE_NETLISTS
setting in the lvs/user_analog_project_wrapper/lvs_config.json
file.Sean May
04/08/2024, 8:05 PMlvs_config.json
to have "$UPRJ_ROOT/netgen/bridge_only.spice"
as the only entry under LVS_SPICE_FILES
. The xschem/user_analog_project_wrapper.spice
file was not updated which is the entry under LVS_SPICE_FILES_TO_FIX
updating this removed some of the errors, though I'm still not passing the LVS check.Mitch Bailey
04/09/2024, 1:17 AMLVS_SPICE_FILES_TO_FIX
was originally implemented to change the fixed width resistor models into generic models that match the extracted models (with L and W parameters). However, last year magic was upgraded to extract the fixed width models making LVS_SPICE_FILES_TO_FIX
obselete.
Try moving xschem/user_analog_project_wrapper.spice
to LVS_SPICE_FILES
(don’t forget the ,
).Sean May
04/10/2024, 12:23 AMres_xhigh_po
resistors not having the body terminals connected properly in the gds. Adding mcon to connect the ring of li1 generated by magic to one of my ports seems to have solved a LVS mismatch error.