efabless/mpw_precheck| :exclamation: :exclamation: :exclamation: 重要说明 :exclamation: :exclamation: :exclamation: |
|---|
| 尽管仍有可能,但efabless不再支持从Docker外部运行mpw-precheck。如果选择直接通过Python运行,您将对生成的结果承担全部责任 |
MPW Precheck Docker镜像是efabless提供的自动化检查工具,用于在MPW(多项目晶圆)项目提交前验证设计是否符合规范。该工具通过一系列标准化检查确保项目在许可、网表结构、GDS布局、设计规则等方面满足提交要求,是MPW项目开发流程中的关键验证环节。
可通过本地构建或从Dockerhub拉取两种方式获取镜像。
bashcd dependencies sh build-docker.sh
从Dockerhub拉取最新镜像:
bashdocker pull efabless/mpw_precheck:latest
如未安装PDK,请参考caravel项目的Makefile进行安装。
verilog/gl/user_project_wrapper.vgds/目录下(路径:gds/user_project_wrapper.gds),该目录应压缩并通过Makefile解压./third_party/used_external_repos.csv文件,记录所有使用的外部GitHub仓库信息(格式:仓库名称,提交哈希)./signoff/<macro-name>/final_summary_report.csv中包含设计统计信息(如单元数量、核心利用率等)。使用OpenLANE时,该文件会自动生成在<run path>/reports/final_summary_report.csv该工具按顺序执行以下检查,任何检查失败都会中止并显示相应错误信息:
user_project_wrapper.gds与上述默认项目中的对应文件不同对用户网表(user_project_wrapper/user_analog_project_wrapper)和顶层网表(caravel/caravan)执行一系列检查,确保符合黄金封装约束:
验证项目verilog/rtl/user_defines.v网表中的Verilog指令
确保user_project_wrapper(数字项目对应caravel_user_project,模拟项目对应caravel_user_project_analog)的修改仅在用户定义区域内(左下角(0,0)至右上角(2920, 3520))
user_project_wrapper.gds无DRC违规user_project_wrapper.gds在后端金属层无DRC违规user_project_wrapper.gds在前端金属层无DRC违规user_project_wrapper.gds无网格违规(规则x.1b, x.3a, x.2, x.2c)user_project_wrapper.gds的5个金属层密度均低于li1.pd.ld, m1.pd.ld, m2.pd.ld, m3.pd.ld, m4.pd.ld, m5.pd.ld规则规定的最大密度平台默认禁用LVS,仅在本地运行时启用
运行OEB检查,确保用户连接所有必要的OEB信号。详情参见相关文档
user_project_wrapper(模拟项目为user_analog_project_wrapper)GOLDEN_CARAVEL指定为使LVS和OEB检查成功运行,用户必须提供LVS配置文件,描述设计层次结构并提供必要检查信息。配置文件编写方法参见相关文档
注意:如果从用户项目Makefile运行precheck,可通过DISABLE_LVS环境变量禁用LVS
bashexport PDK_PATH=<PDK"variant specific"的绝对路径> export INPUT_DIRECTORY=<用户项目的绝对路径> sh docker-mount.sh
usage: mpw_precheck.py [-h] --input_directory $INPUT_DIRECTORY --pdk_path $PDK_PATH [--output_directory OUTPUT_DIRECTORY] [--private] [check [check ...]] 按顺序调用各种检查运行precheck工具。 位置参数: check 要运行的检查(默认:无) 可选参数: -h, --help 显示此帮助消息并退出 -i, --input_directory $INPUT_DIRECTORY 项目的绝对路径(默认:无) -p, --pdk_path $PDK_PATH PDK"variant specific"的安装路径(默认:无) -o, --output_directory OUTPUT_DIRECTORY 输出目录,默认=<input_directory>/precheck_results(默认:无) --private 如果提供,precheck将跳过用于验证项目是否符合开源项目要求的[许可、默认内容、文档]检查(默认:False)
有关precheck问题的排查指南,请参见调试文档
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务