专属域名
文档搜索
轩辕助手
Run助手
邀请有礼
返回顶部
快速返回页面顶部
收起
收起工具栏
轩辕镜像 官方专业版
轩辕镜像 官方专业版轩辕镜像 官方专业版官方专业版
首页个人中心搜索镜像

交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题
其他
关于我们网站地图

官方QQ群: 1072982923

efabless/mpw_precheck Docker 镜像 - 轩辕镜像

mpw_precheck
efabless/mpw_precheck
0 次下载
😅 镜像要是出问题,背锅的一定是你
镜像简介版本下载
😅 镜像要是出问题,背锅的一定是你

MPW Precheck

:exclamation: :exclamation: :exclamation: Important Note :exclamation: :exclamation: :exclamation:
Although still possible, running the mpw-precheck from outside Docker is no longer supported by efabless. If you choose to run directly through python, you bare full responsibility for the generated results

Prerequisites

  • Docker

Setup

Docker

You can either build the docker locally or fetch it from dockerhub.

Build Docker Locally

To build the necessary docker locally, run:

bash
    cd dependencies
    sh build-docker.sh
Pull Docker from Dockerhub

To pull the necessary docker from dockerhub, run:

bash
    docker pull efabless/mpw_precheck:latest
Install the PDK

If you don't have the pdk installed, please refer to the caravel Makefile.

Before Using

  • Before you run the precheck tool, make sure you go through [***] and cover the requirements.

  • Overwrite verilog/gl/user_project_wrapper.v with your synthesized netlist make sure the netlist includes power information. Keep on reading for this point to make more sense.

  • Make sure you have the top level GDS-II under a directory called gds/; thus containing gds/user_project_wrapper.gds, this directory should be compressed and the script will use your Makefile to uncompress it.

  • Please create a file ./third_party/used_external_repos.csv and add to it all repository name,commit hash for any external github repository that you are using to build this project.

  • Please include any useful statistics about your design, i.e. cell count, core utilization, etc. in a .csv file under ./signoff/<macro-name>/final_summary_report.csv. If you're using OpenLANE then, this file should be created automatically in <run path>/reports/final_summary_report.csv.

What Does the Script Do?

It runs a sequence of checks and aborts with the appropriate error message(s) if any of them fails.

The steps are as follows:

  • License:

    • The root directory of the project, submodules and third party libraries contain at least one approved license and does not contain any prohibitted license
    • All source files contain an approved SPDX License and Copyright Headers
  • Makefile:

    • Makefile targets contain at least compression and uncompression for the user_project_wrapper.gds file
  • Defaults:

    • Contents of the project are different from the default content in caravel_user_project for digital projects and caravel_user_project_analog
    • The user_project_wrapper.gds must be different from the default one found in caravel_user_project for digital projects and caravel_user_project_analog for analog projects
  • Documentation:

    • Documentation file README.md exists and does not use any non-inclusive language
  • Consistency:

    • Runs a series of checks on the user netlist (user_project_wrapper/user_analog_project_wrapper), and the top netlist (caravel/caravan) to make sure that both conform to the constraints put by the golden wrapper.
      • Both Netlists share the following checks:
        • Modeling check: check netlist is structural and doesn't contain behavioral constructs
        • Complexity check: check netlist isn't empty and contains at least eight instances
      • Remaining Top Netlist checks:
        • Sub-module hooks: check the user wrapper submodule port connections match the golden wrapper ports
        • Power check: check all submodules in the netlist are connected to power
      • Remaining User Netlist checks:
        • Ports check: check netlist port names match the golden wrapper ports
        • Layout check: check netlist matches the provided user wrapper layout in terms of the number of instances, and the instance names
  • GPIO Defines:

    • A verilog directives check that validates the project's 'verilog/rtl/user_defines.v' netlist.
  • XOR:

    • No modification in the user_project_wrapper(versus default user_project_wrapper.gds in caravel_user_project for digital projects and caravel_user_project_analog for analog projects) outside the user defined area lower left corner (0,0) and upper right corner (2920, 3520)
  • MagicDRC:

    • The user_project_wrapper.gds does not have any DRC violations(using magic vlsi tool)
  • KlayoutBEOLDRC:

    • The user_project_wrapper.gds does not have any DRC violations(using klayout) in the _Back End Of Line* layers
  • KlayoutFEOLDRC:

    • The user_project_wrapper.gds does not have any DRC violations(using klayout) in the _Front End Of Line* layers
  • KlayoutOffgrid:

    • The user_project_wrapper.gds does not contain any shapes that have offgrid violations(rules x.1b, x.3a, x.2, x.2c)
  • KlayoutMetalMinimumClearAreaDensity:

    • The user_project_wrapper.gds has metal density (for each of the 5 metal layers) that is the lower than the maximum metal density specified by the li1.pd.ld, m1.pd.ld, m2.pd.ld, m3.pd.ld, m4.pd.ld, m5.pd.ld rules
  • LVS:

    LVS is disabled on the platform by default, it is only enabled when running locally

    • Runs hierarchy check, soft check, lvs check, ERC check on the user project. For more information click here
  • OEB:

    • Runs oeb check, to make sure that user connected all needed oeb signals. For more information click here

Current Assumptions

  • The user module name is user_project_wrapper (or `user_analog_project_wrapper' for caravel_user_project_analog)
  • The mpw precheck is executed from inside it's docker container where a golden copy of caravel exists and is specified by an environment variable called GOLDEN_CARAVEL.

LVS Configuration

  • In order for LVS and OEB checks to run successfully, the user must provide an lvs configuration file, that describes the hierarchy of the design, and give necessary information for running the checks. For extra information on how to write the configuration file click here

NOTE : If running precheck from user project Makefile, LVS can be disabled by using DISABLE_LVS environment variable

How To Run

Mount the docker file:

bash
export PDK_PATH=<Absolute path to the desired PDK 'variant specific'.>
export INPUT_DIRECTORY=<Absolute path to the user project path>
sh docker-mount.sh

Run the following command:

usage: mpw_precheck.py [-h] --input_directory $INPUT_DIRECTORY --pdk_path $PDK_PATH [--output_directory OUTPUT_DIRECTORY] [--private] [check [check ...]]

Runs the precheck tool by calling the various checks in order.

positional arguments:

  check                 Checks to be ran by the precheck (default: None)

optional arguments:

  -h, --help               show this help message and exit

  -i, --input_directory    $INPUT_DIRECTORY
                           INPUT_DIRECTORY, absolute Path to the project. (default: None)

  -p, --pdk_path           $PDK_PATH
                           PDK_PATH, points to the installation path of the pdk 'variant specific' (default: None)

  -o, --output_directory   OUTPUT_DIRECTORY
                           OUTPUT_DIRECTORY, default=<input_directory>/precheck_results. (default:None)

  --private                If provided, precheck skips [License, Defaults, Documentation]
                           checks used to qualify the project to as an Open Source Project (default: False)

How to Troubleshoot Issues with Precheck

See the following document for guidance on troubleshooting issues with precheck.

查看更多 mpw_precheck 相关镜像 →
efabless/openlane logo
efabless/openlane
用于构建包含openlane所有工具的单个Docker镜像的构建指南,通过分阶段构建各工具镜像并合并为统一镜像,支持特定工具构建与重建功能。
6100K+ pulls
上次更新:未知
efabless/openlane-tools logo
efabless/openlane-tools
OpenLane Prebuilt Tools Repository
3100K+ pulls
上次更新:未知
efabless/dv logo
efabless/dv
efabless/dv:cocotb镜像是基于Ubuntu 22.04的验证环境,包含cocotb及相关Python包(如cocotb-coverage、caravel-cocotb)、Verilator、Icarus Verilog等工具,用于Caravel芯片项目的验证工作。
50K+ pulls
上次更新:未知

轩辕镜像配置手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

登录仓库拉取

通过 Docker 登录认证访问私有仓库

Linux

在 Linux 系统配置镜像服务

Windows/Mac

在 Docker Desktop 配置镜像

Docker Compose

Docker Compose 项目配置

K8s Containerd

Kubernetes 集群配置 Containerd

K3s

K3s 轻量级 Kubernetes 镜像加速

Dev Containers

VS Code Dev Containers 配置

MacOS OrbStack

MacOS OrbStack 容器配置

宝塔面板

在宝塔面板一键配置镜像

群晖

Synology 群晖 NAS 配置

飞牛

飞牛 fnOS 系统配置镜像

极空间

极空间 NAS 系统配置服务

爱快路由

爱快 iKuai 路由系统配置

绿联

绿联 NAS 系统配置镜像

威联通

QNAP 威联通 NAS 配置

Podman

Podman 容器引擎配置

Singularity/Apptainer

HPC 科学计算容器配置

其他仓库配置

ghcr、Quay、nvcr 等镜像仓库

专属域名拉取

无需登录使用专属域名

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像支持哪些镜像仓库?

专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
efabless/mpw_precheck
官方博客Docker 镜像使用技巧与技术博客
热门镜像查看热门 Docker 镜像推荐
一键安装一键安装 Docker 并配置镜像源
咨询镜像拉取问题请 提交工单,官方技术交流群:1072982923
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
咨询镜像拉取问题请提交工单,官方技术交流群:
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
官方邮箱:点击复制邮箱
©2024-2026 源码跳动
官方邮箱:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.