| ### Always check the $INPUT_DIRECTORY/checks folder for relevant log files |
| |
| # What to do if: |
| |
| #### License check failed |
| |
| Include a LICENSE file in |
| |
| - The root directory in your project |
| - each directory under `third_party` |
| - each git submodule (Any directory that contains a .git folder) |
| |
| Make sure it is one of the [approved licenses](base_checks/_licenses/_approved_licenses) |
| |
| #### SPDX Compliance failed |
| |
| check the `$INPUT_DIRECTORY/checks/spdx_compliance_report.log` for the non-compliant files. Then add SPDX header in the beginning of all of those files. |
| |
| #### Manifest check failed |
| |
| Pull and checkout the master branch in your caravel directory |
| |
| #### Compliance Check failed |
| |
| - Remove all non-inclusive keywords in all of your files those are |
| - blacklist |
| - whitelist |
| - slave |
| |
| - Include `verify` and `clean` targets in your makefile |
| |
| #### Fuzzy consistency check failed |
| |
| This indicates a serious issue with the design please check [information about fuzzy checks in README.md](README.md#fuzzy-consistency-checks) |
| |
| #### XOR check failed |
| |
| - Load `$INPUT_DIRECTORY/checks/<design_name>.xor.gds` into [klayout](#how-to-view-a-gds) and then you can see where exactly your design violates the boundary set for the user project |
| |
| - Read xor.log and check the specific coordiantes of your violations |
| |
| - Read xor_total.txt to find out how many shapes are not respecting the user space boundary |
| |
| #### DRC Check failed |
| |
| ###### Magic drc check |
| |
| To debug drc errors you can open up the `$INPUT_DIRECTORY/checks/magic_drc.log` folder and you can view them via the .magic.drc.mag file which is loadable in magic |
| |
| Also there is a listing of all the failed parts of the design in $INPUT_DIRECTORY/checks/<design_name>.magic.drc |
| |
| If you are having a huge number of DRC violations there is a good chance you are using an SRAM block that is not the latest version in efabless/sram_sky130_macros . Just pull the master branch and include one of those updated macros instead |
| |
| ###### Klayout drc check (DISABLED BY DEFAULT) |
| |
| Load marker databases provided by the drc check into klayout (Or whichever layout editor/viewer you wish to use) along with the gds file (user_project_wrapper.gds) |
| and you can view the violations on top of your design layout |
| [using klayout](#how-to-load-marker-database-files) |
| |
| Investigate the specific coordinates of the failures in the design gds. Use `$INPUT_DIRECTORY/checks/<design_name>_klayout.lydrc` file as a marker database file loadable in [klayout](#how-to-load-marker-database-files) |
| |
| #### Klayout FOM density check failed |
| |
| Investigate the specific coordinates and types of the violations via loading the marker database file `$INPUT_DIRECTORY/checks/fom_density_check.xml` into [ klayout ](#how-to-load-marker-database-files) |
| along with the design |
| |
| [use klayout](#how-to-load-marker-database-files) to view the marker database file which is in checks directory |
| |
| #### Default content check failed |
| |
| Use non-default values in info.yaml for the following fields |
| |
| - owner |
| - orgranization |
| - organization_url |
| - description |
| - git_url |
| - project_name |
| |
| Submit content other than the default content |
| |
| - gds |
| - lef |
| - def |
| - mag |
| - maglef |
| - verilog/rtl |
| - verilog/gl |
| - spi/lvs |
| |
| ### Errors specific to running precheck on efabless platform: |
| |
| #### exception code 254 |
| |
| There is a problem cloning your git repo using the provided git repo url |
| |
| Common mistakes |
| |
| - Using ssh as a git url |
| - Including private submodules that require credentials to get cloned |
| |
| #### exception code 1 |
| |
| there is a problem with your project's name, the project's name is supposed to not have a space in it. You should create another project with a name that does not contain spaces and point your mpw-two request to the new one instead. |
| |
| ## Using klayout: |
| |
| ### How to view a gds |
| |
| klayout <gds_file> |
| |
| ### How to load marker database files |
| |
| klayout <gds_file> -m <marker_database_file> |
| |