跳转至

PROJECT-MAP — Synopsys 项目全景与任务路由

本文件是静态地图:工程身份、分层依赖、任务路由、命名约定。 动态信息(当前状态、待办、红线、地址端口等环境事实)只在 HANDOFF.md,本文件不复制; 操作步骤只在各工程 docs/SOP.md / docs/RUNBOOK.md,本文件只放链接。 维护方式:定点修订——仅新增/退役工程、拓扑变化时改对应行,不整体重写。规范见全局技能 writing-handoff「项目地图」节。

0. 怎么用这份地图

  • 接任务:先查第 1 节路由表 → 进对应工程 → 读它的 SOP/RUNBOOK → 跑入口命令。
  • 问现状 / 红线 / 待办:读 HANDOFF.md(SessionStart 已自动注入,无需另读)。
  • 问怎么做 / 怎么回滚:读工程 docs/SOP.md;问日常怎么用 / 怎么救:读 docs/RUNBOOK.md。
  • 身份标签四档:活工程(有入口、会复跑)· 服务档案(在跑服务的运维文档)· 留档(已结案/已销毁/被取代,仅供复盘)· 数据源(只读,勿删)。

1. 任务路由表

任务 / 症状 进哪个工程 先读 关键入口
查当前状态、红线、未完成事项 docs/ HANDOFF.md (自动注入,不跑命令)
老工具启动段错误 / __pthread_unwind / 兼容层问题 rocky9_eda_compat_20260928/ SOP 排障技能 synopsys-legacy-on-modern-linux
新节点上架 / 六台环境一致性核查(只读) rocky9_eda_compat_20260928/ SOP .venv/bin/python main.py --config config/rollout.yaml drift
license 状态 / 重启 / 查占用 flexlm_systemd_20260928/ RUNBOOK 31.29:systemctl is-active flexlm-cadence flexlm-synopsys
license 上线 / 许可文件本身 synopsys_license_20260928/ SOP + RUNBOOK (档案型,无入口脚本)
module 怎么 load / 加载报错 synopsys_module_fix_20260929/ RUNBOOK module load synopsys && module load eda2018/1.0
修复 / 重建 module 入口(需 sudo) synopsys_module_fix_20260929/ SOP sudo -n python3 fix_modules.py --apply
新增第 N 棵工具树 装:synopsys_install_2018/;登记:synopsys_module_fix_20260929/ 两个 SOP 安装器拒绝 root,走 ACL 流程(见 HANDOFF 红线)
老 ICC 使用 / MW→NDM / LEF 取库 synopsys_icc_install_20260929/ SOP(附录 C/D) command -v icc_shell;apply_module_entry.py --apply
VCS 在 Rocky 9 编译失败(ld 报错) vcs_el7_binutils_20260929/ SOP module load vcs-el7
PDK 装载 / 漂移 / 验证 synopsys_pdk_saed32_20260929/ SOP + RUNBOOK .venv/bin/python main.py --config config/pdk.yaml {precheck,deploy,drift,verify}
消费 PDK 数据 /pdk/SAED32_EDK(ro 挂载点) PDK RUNBOOK module load pdk && module load saed32
裁剪安装介质(一次性,已结案) synopsys_media_trim_20260929/ SOP cleanup_media.py;记录在 record/
节点换阿里云源 / 装 make gcc synopsys_mirror_switch_20260929/ 脚本注释(无 docs) switch_mirrors.py + templates/
31.30(centos7)任何旧事 centos7_01_deps_20260928/、centos7_01_nfs_20260928/ SOP VM 已销毁,仅留档,勿据此操作

2. 分层依赖图

服务端数据落点全在本机(NFS 宿主 dell-R620,Ubuntu 24.04.3,192.168.31.249)的 /data/nfs/;七台经 NFS 消费。

L0 物理层(KVM 宿主 = 本机 .249)
 ├─ 192.168.31.29  FlexLM 服务器:Synopsys lmgrd:2700/snpslmd:2701、Cadence lmgrd:5280/cdslmd:5281(systemd 双实例)
 ├─ 192.168.31.28  EDA-HPC:提交 / GUI 节点(TigerVNC :1~:4)
 └─ 六台 Rocky 9.8 work:.18/.19/.20(slurm) · .25/.26/.27(lsf)
        │  七台一致 NFS 挂载
        ▼
L1 共享层(服务端 /data/nfs/,改动唯一入口 = 宿主本机 root,客户端 ro/rw 见下)
 ├─ tools/       → /tools            (ro)  21 棵工具树,约 42.5G
 ├─ modulefiles/ → /opt/modulefiles  (rw)  Lmod 模块定义
 └─ pdk/         → /pdk              (ro)  SAED32_EDK
        │
        ▼
L2 兼容层(2018 批次工具跑在 Rocky 9 的三根因修复 + VCS 专用层)
 ├─ libpthread shim + 系统 libz 经 LD_PRELOAD 注入(shim 禁入 ldconfig 扫描目录,放 libexec/)
 ├─ /usr/local/bin/uname 透传包装(EDA_COMPAT_FAKE_UNAME=1 时伪装;勿手改)
 ├─ /etc/nsswitch.conf hosts 行已去 myhostname(勿恢复)
 └─ /opt/compat el7 binutils 2.27(仅 vcs-el7 模块加载时入 PATH,不污染常规会话)
        │  均由 modulefile 在加载时装配
        ▼
L3 模块入口层(/opt/modulefiles)
 synopsys(license: SNPSLMD_LICENSE_FILE)→ eda2018/1.0(LD_PRELOAD + 20 个工具入口,含 ICCompiler)
 vcs-el7(独立) · pdk(家族)→ saed32(PDK 实体,禁止重复声明 family())
        │
        ▼
L4 运行期数据
 ├─ 工具树:/tools/synopsys/<product>/<version>(21 棵,root:root)
 └─ PDK:/pdk/SAED32_EDK(加载后 SAED32_PATH 指向它)

链路之外(安装/装载来源,不参与日常运行):
  synopsys2018/  → 安装 synopsys_install_2018 的介质来源(约 24G,本项目目录内)
  SAED32_EDK/    → synopsys_pdk_saed32 工程的装载来源(19G,本项目目录内)

3. 子项目卡片

3.1 活工程

目录 定位 关键产物 / 入口 上下游
synopsys_install_2018/ 2018 批次主安装器:21 棵工具树的幂等安装工程 main.py(config/synopsys_install*.yaml)、SOP、工程 HANDOFF、docs/troubleshoot.md 上游介质 synopsys2018/;写入 /data/nfs/tools;module 登记下游靠 module_fix
rocky9_eda_compat_20260928/ Rocky 9 兼容层 + 六台推广:三根因修复与批量落地 main.py --config config/rollout.yaml {deploy,drift}、modulefile、SOP、artifacts/ 作用于 31.28 与六台;产物被 eda2018/vcs-el7 模块消费
synopsys_pdk_saed32_20260929/ SAED32 PDK 装载与验证(DC/PT/VCS/ICC2 + 六台抽查) main.py --config config/pdk.yaml {precheck,deploy,drift,verify}、SOP、RUNBOOK 源 SAED32_EDK/ → /data/nfs/pdk
synopsys_module_fix_20260929/ module 体系修复 + 使用手册 fix_modules.py --apply(需 sudo)、SOP、RUNBOOK 写 /opt/modulefiles;slurm 部署器复跑重建部分模块后须重跑本脚本与 ICC 补入口
synopsys_icc_install_20260929/ 老 ICC 安装(第 21 棵树)+ module 入口补登 + Milkyway 路线探针 apply_module_entry.py --apply、SOP(含 LIB-105 排错附录 D)、artifacts/ 复用 install_2018 安装约定与 module 体系;ICC2 侧 MW 路线未通,现走 LEF
vcs_el7_binutils_20260929/ VCS 编译兼容层:el7 binutils 独立模块 deploy_el7_binutils.py、SOP、templates/ 产物 /opt/compat + 模块 vcs-el7,七台
synopsys_mirror_switch_20260929/ 六台软件源切阿里云 + make/gcc(按需复跑) switch_mirrors.py、templates/(无 docs/) 六台 Rocky 节点

3.2 服务档案

目录 定位 关键产物
flexlm_systemd_20260928/ 两套 FlexLM 的 systemd 托管与日常运维(31.29) units/、SOP、RUNBOOK;重启后约 60–70 秒恢复监听
synopsys_license_20260928/ Synopsys license 服务上线档案(snpslmd,2700/2701) SOP、RUNBOOK;运行期改动台账另见 vcs_runtime_20260928/

3.3 留档(已结案,仅供复盘;勿据其中步骤直接操作)

目录 身份
synopsys_install_20260926/ 最早的 VCS+Verdi 安装工程;三棵树已全量删除,已被 synopsys_install_2018/ 取代(HANDOFF/SOP 仅复盘价值)
synopsys_media_trim_20260929/ 介质裁剪(删 11.75G,已结案);cleanup_media.py 可复用,record/ 为台账
centos7_01_deps_20260928/ 31.30(centos7-01)运行依赖补齐;VM 已销毁
centos7_01_nfs_20260928/ 31.30 NFS 客户端接入;VM 已销毁
vcs_runtime_20260928/ VCS 运行期改动台账(仅 backup/,含 README、docs、install_2018 留档副本)

3.4 数据源(只读,勿删,勿当工程改)

目录 体量 说明
synopsys2018/ 约 24G 2018 批次安装介质源树(裁剪后 19 个安装条目);安装工程的输入
SAED32_EDK/ 19G SAED32 PDK 源树;PDK 装载工程的输入,七台经 /pdk ro 消费的是其副本

3.5 项目外强相关

路径 关系
~/.trae-cn/skills/synopsys-legacy-on-modern-linux/ 排障技能:老工具新系统的环境边界、开关清单、gdb 排查顺序
~/.trae-cn/skills/{writing-handoff,writing-ops-change-sop,writing-ops-diagnostic-report,reading-docs-for-context}/ 本文档体系的产出/读取规范
../Cadence/ic617_install_20260926/docs/SOP.md Cadence 侧安装档案;custom_compiler 缺 OpenAccess 待办的参考来源
/data/nfs/{tools,modulefiles,pdk} NFS 服务端实际落点(本机);树与模块改动的唯一入口是宿主本机 root

4. 工程命名与文档约定

  • 一主题一目录:<英文主题>_<YYYYMMDD>/(如 synopsys_pdk_saed32_20260929/);该主题的工程代码、docs/、backup/ 全在同一目录,不散落在项目根。
  • docs 三件套:SOP.md = 变更档案(累积,写"过去",八章);RUNBOOK.md = 可复用交付物的日常运维手册(产生可复用交付物时必出);HANDOFF.md = 仅持续型工程才建自己的快照,一次性工程不建,项目根 HANDOFF 统一承接。
  • 备份:主题目录下 backup/ + backup/README.md 台账;命名 <原名>.bak.<YYYYmmdd-HHMMss>;不散落、验证通过后由用户清理。
  • 工程形态:Python 工程 .venv/ + main.py 子命令(典型 precheck/deploy/drift/verify),deploy 必须幂等(复跑零变更),drift/verify 只读;规范以 deployment-tool-engineering 技能为单一源。
  • 身份变更纪律:工程退役(VM 销毁、被新工程取代、动作结案)时在本文件第 3 节改标签并移入对应分组,不删目录;项目根 HANDOFF 同步记一行结案指引。
  • 新增工程时:在本文件第 1 节加任务路由行、第 3 节加卡片;拓扑变化(新机器/新服务/新挂载)时改第 2 节。只动受影响行,不重写全文。

来源:/home/rain/Documents/eda_tools_ins/Synopsys/docs/PROJECT-MAP.md | 最后更新:2026-09-29 15:39(由 build/sync.py 同步,请勿在站点侧修改)