IP / 方法与专项 中高 2026 年 5 月上线

处芯积律 低功耗双核 SoC · CDC 时钟域交叉实践(LPWR + SpyGlass)

在 LPWR 异构双核 SoC 真实网表上,用 SpyGlass CDC 完成时钟约束、四 Goal 批跑、报告 triage 与签核闭环;附带双时钟教学顶层与知识补充文档。

服务器推荐只读路径: /project/SOC_CDC_FLOW

本专项在 LPWR 低功耗双核 SoC 网表上运行 SpyGlass CDC:顶层 soc_top、constraints/cdc.sdc 与 docs/clock_tree.md 为约束真源;默认串行四 Goal 批处理。另含 cdc_training_top 教学网表,用于对照亚稳态、Gray FIFO、REQ/ACK、再汇聚与 RDC。

适合人群 目标 CDC/signoff/DV 岗位或需补齐静态验证方法论的学员。
建议学习周期 3~5 周(含教学 lab 与整芯片 signoff)。
CDC 实践资料 项目介绍、SpyGlass 流程、签核要点与学习路径(站内 Markdown 渲染)

导读:这是什么 · 能学什么 · 怎么学

一、这是什么项目?

母本路径 /project/SOC_CDC_FLOW;CDC 主战场在 spyglass_cdc/,与 LPWR 共享 sim/ibex 等目录。

静态 CDC 不替代 VCS 仿真:功能正确不等于跨时钟域安全;须区分 flow complete 与 design signoff。

实践在个人副本进行;时钟/约束变更须先更新 clock_tree.md 再改 SDC。

二、能学到什么?

按 CDC 理论 / SpyGlass 工具链 / 约束与签核 / LPWR 平台关系拆解。

CDC 理论与 RTL 模式

  • 亚稳态与 2FF/3FF 同步器;单比特 vs 多比特跨域风险。
  • Gray 指针 FIFO、REQ/ACK、脉冲同步;再汇聚(reconvergence)错误模式。
  • RDC:异步复位释放须同步到各时钟域(edu_reset_sync / edu_rdc_example)。

SpyGlass CDC 工具链

  • 四 Goal:cdc_setup_check → clock_reset_integrity → cdc_verify_struct → cdc_verify。
  • 报告顺序:goals_summary.html → moresimple.rpt → CDC-report.rpt → adv_cdc.rpt。
  • 单 Goal 重跑、make cdc_signoff、GUI 打开 lpwr_soc_cdc.prj 深潜。

约束、签核与治理

  • clock_tree.md 与 cdc.sdc 同步;set_clock_groups 反映真实异步关系。
  • CDC_SIGNOFF_CHECKLIST 自检;waiver 须 owner/原因/关闭条件(waivers/README)。
  • 可选:CDC_INCLUDE_SDC_CHECK / RDC / ABSTRACT 与分层 flow(hierarchical_flow.md)。

与 LPWR 平台衔接

  • 共享 M0+Ibex+AHB+PMU 上下文;ibex/build 路径须与仿真一致。
  • 可与 LPWR 功能仿真、UPF 功耗专项组合叙述简历与答辩。

三、怎么学?

推荐 training 顶层 → 时钟树/SDC → 整芯片批跑 → triage → 签核复盘。

  • CDC_MODE=training ./run_cdc.sh 建立工具直觉后再跑 soc_top。
  • 单变量迭代:每次只改 RTL、SDC、waiver 或 Goal 之一并保留 log。
  • 默认不开启 ENABLE_CDC_AGGREGATE(部分安装会崩溃;per-goal 报告仍有效)。
  • 每条 Error 须修复或规范 waiver,勿将 Run Complete 等同于设计 signoff。

分周节奏(可按个人情况伸缩)

  • 第 1 周 cdc_knowledge_supplement + training 模式 + BAD 用例对比。
  • 第 2~3 周 clock_tree 填写、整芯片四 Goal、triage ≥3 条。
  • 第 4 周(可选) 签核检查表、复盘报告与答辩 QA。

LPWR SoC 与 SpyGlass CDC 分析(示意)

多时钟 pad/mux 入口进入异构双核与互连;CDC 工具读取 RTL+SDC 输出签核报告。

架构框图绘制中…

flowchart TB
  subgraph PAD["chip_pin_mux 时钟入口"]
    CLK["root_clk_cpu / pclk"]
    TCK["jtag_tck"]
  end
  subgraph CORES["异构双核"]
    M0["Cortex-M0"]
    IB["Ibex"]
  end
  subgraph SOC["soc_top"]
    BUS["AHB 互连"]
    LP["low_power / PMU"]
  end
  subgraph CDC["spyglass_cdc"]
    SDC["cdc.sdc"]
    SG["SpyGlass 4 Goals"]
    RPT["reports / waivers"]
  end
  PAD --> CORES
  CORES --> BUS
  BUS --> LP
  PAD --> SDC
  SOC --> SG
  SDC --> SG
  SG --> RPT

时钟名与层次 pin 以 docs/clock_tree.md 与 RTL 为准;教学顶层 cdc_training_top 为独立双时钟 lab。

典型功能块说明

下表按教学视角归纳常见职责与设计/验证关注点;具体层次名、信号名与协议细节以你手中的 RTL、顶层例化与课程讲义为准。

spyglass_cdc 批处理流

职责概要:run_cdc.sh / Makefile 驱动四 Goal 与可选扩展。

设计侧:SPYGLASS_HOME、PRJ_ROOT 展开、SG_CDC_WORKDIR。

验证侧:四 Goal Run Complete 且无 SPG#3004;project 文件已保存。

约束与时钟树

职责概要:cdc.sdc 与 clock_tree.md 单一事实来源。

设计侧:chip_pin_mux 层次 pin;async 矩阵与 RTL 一致。

验证侧:SDC check 无致命错误;elab 时钟与表一致。

教学顶层 training/

职责概要:cdc_training_top 与 cdc_knowledge_supplement 对照。

设计侧:Gray/REQ-ACK/脉冲/再汇聚/RDC 实验模块。

验证侧:training 与 BAD 模式报告可解释。

报告与 waiver

职责概要:moresimple、CDC-report、adv_cdc 与 swl 治理。

设计侧:triage 流程;分层 abstract 可选。

验证侧:每条 Error 有修复或审计 waiver。

项目核心内容(完整范围)

  • SpyGlass CDC 四 Goal 与报告 triage;clock_tree + cdc.sdc 治理。
  • 教学顶层 CDC 理论实验;LPWR soc_top 整芯片静态签核。

关键难点与常见卡点

  • 约束错误导致报告大面积误报,须先对齐时钟计划。
  • 混淆 flow complete 与 design signoff。
  • 多比特跨域与再汇聚问题需理论+报告双向理解。

模块级深度讲解(做什么、看什么、怎么验)

SpyGlass 环境与批跑

重点:SPYGLASS_HOME、run_cdc.sh、work/logs 目录约定。

验收:training 与 default_run 各成功一次且无 SPG#3004。

时钟树与 SDC

重点:clock_tree.md 三表与 cdc.sdc 同步。

验收:关键时钟 Verified=Y 且与 elab 报告一致。

报告 triage

重点:moresimple / CDC-report / adv_cdc 阅读顺序。

验收:≥3 条违规有修复或 waiver 论证。

教学 lab

重点:cdc_training_top 与 cdc_knowledge_supplement 对照。

验收:能口述 Gray/再汇聚/RDC 与报告条目关系。

分阶段执行方案(讲义级节奏)

四段:training 建立直觉 → 时钟树/SDC 对齐 → 整芯片 triage → 签核检查表与复盘。全程单变量迭代并保留 log;签核前须完成 CDC_SIGNOFF_CHECKLIST 自检。

阶段 1:教学顶层 — SpyGlass 与 CDC 直觉

本阶段目标:在 **cdc_training_top** 上跑通 training 模式,理解四 Goal 输出位置与基本违规形态;可选 BAD 模式观察多比特同步错误。

与导读的衔接:导读「先 training 再整芯片」;对应 cdc_knowledge_supplement 第 1~4 节。

讲义节奏(参考):建议 5~8 天:理论阅读 40%,上机 60%。

任务分解:

  • 复制母本到个人目录,进入 spyglass_cdc/,确认 sg_shell 与 License。
  • CDC_MODE=training ./run_cdc.sh,打开 goals_summary.html。
  • 阅读 training/rtl 中 edu_gray_fifo、edu_reqack_bridge、edu_pulse_sync 并对照报告。
  • 可选:CDC_TRAINING_BAD=1 对比违规条数,记录于 lab 笔记。
  • 整理「Goal 名 → 报告路径」速查表(可抄 reports_guide 要点)。

建议产出(物证):

  • training 运行 log
  • lab 笔记
  • Goal→报告速查表

过关标准:能独立跑 training 并找到 moresimple 中 2 条以上条目含义。

阶段 2:时钟树与 SDC — 约束真源对齐

本阶段目标:将 **clock_tree.md** 中 TODO 替换为真实参数,并同步 **cdc.sdc**;理解 async 矩阵与 RTL 一致性的重要性。

与导读的衔接:导读「时钟树先于整芯片」;避免未填表即 signoff。

讲义节奏(参考):建议 7~10 天:与 LPWR 仿真文档交叉核对时钟来源。

任务分解:

  • 通读 clock_tree.md 与 constraints/cdc.sdc 逐行对照。
  • 从 RTL/chip_pin_mux 确认 create_clock 层次 pin 路径。
  • 填写 change log;对 root_pclk 与 root_clk_cpu 关系做设计评审记录。
  • 可选:CDC_INCLUDE_SDC_CHECK=1 或 make cdc_sdc_check。
  • 确认 ibex/build 路径存在(与 LPWR 仿真一致)。

建议产出(物证):

  • 已填时钟表
  • SDC diff 说明
  • change log 行

过关标准:关键时钟 Verified=Y(或讲义允许的等效状态);SDC check 无未解释 Fatal。

阶段 3:整芯片 soc_top — 批跑与 triage

本阶段目标:完成 **四 Goal 全流程**,对 Error 级违规完成 triage(修复、确认误报或起草 waiver)。

与导读的衔接:CDC_SIGNOFF_CHECKLIST 第 3~5 节;reports_guide triage 流程。

讲义节奏(参考):建议 10~14 天:长 run 预留机器时间;单 Goal 增量重跑。

任务分解:

  • ./run_cdc.sh 或 make cdc_all,归档 logs/ 与 work/default_run。
  • 按顺序审 goals_summary → moresimple → CDC-report。
  • 完成 ≥3 条违规的「规则/路径/时钟/决策」四列表。
  • 对需 waiver 项按 waivers/README 起草(可先不入 swl)。
  • 禁止同时改 RTL+SDC+waiver;每轮只改一类并 diff 报告。

建议产出(物证):

  • 整芯片 log
  • triage 表
  • waiver 草稿(若有)

过关标准:四 Goal Run Complete;triage 表无空白「待查」行。

阶段 4:签核自检与复盘 — 可面试陈述

本阶段目标:完成 **CDC_SIGNOFF_CHECKLIST** 并输出复盘:区分 flow complete vs design signoff,附演示命令。

与导读的衔接:closing_summary「CDC signoff 叙事」。

讲义节奏(参考):建议 5~7 天。

任务分解:

  • 勾选检查表全部适用项,标注工具版本与 git/目录快照。
  • 撰写复盘:背景、时钟计划、主要发现、遗留风险。
  • 准备 5 条答辩 QA(2FF、多比特、再汇聚、RDC、flow vs design signoff)。
  • 固定 demo:training + 单 Goal 重跑命令写入个人 README。

建议产出(物证):

  • 签核检查表
  • 复盘 Markdown/PDF
  • demo README
  • QA 五条

过关标准:20 分钟可讲完;能指回报告路径与 SDC 行号。

避坑手册

  • 未对齐时钟树就跑整芯片,导致误报淹没真问题。
  • 把 Run Complete 当作设计已 signoff。
  • 多比特 bus 逐 bit 2FF 或忽略再汇聚——须结合教学 BAD 理解。

完成标准(你做到这些才算真正做完)

  • 完成 training 与整芯片各至少一次成功批跑。
  • clock_tree 与 cdc.sdc 首轮对齐并有 change log。
  • ≥3 条违规 triage 闭环;CDC_SIGNOFF_CHECKLIST 自检完成。

答辩与简历:CDC signoff 叙事

突出静态签核流程、约束治理与典型违规 STAR 案例。

能力证据

  • 四 Goal 运行日志 + triage 笔记 + 签核检查表勾选记录。
  • clock_tree 与 SDC 对照说明;至少 1 条教学 BAD 与修复模式对比。

差异化价值

  • tape-out 前 CDC 岗位高频技能;可与 LPWR/UPF 组合成系统级履历。

衔接

  • 可延伸 hierarchical_flow、形式化 SVA;与后端 STA 时钟树对话。

建议产出(可用于复盘/求职)

  • 至少一次整芯片四 Goal 运行记录与 triage 笔记(≥3 条违规闭环)。
  • 时钟树与 SDC 对照说明、CDC_SIGNOFF_CHECKLIST 自检记录。

典型实验任务清单(1-2-3 步)

  1. 复制母本后在 spyglass_cdc 下跑通 training 模式教学顶层。
  2. 对齐 clock_tree.md 与 cdc.sdc,完成整芯片 ./run_cdc.sh 四 Goal 运行。
  3. 按 reports_guide 完成 triage 与 CDC_SIGNOFF_CHECKLIST 自检复盘。

快速开练命令

cd /home/USER/soc3_practice cp -a /project/SOC_CDC_FLOW ./soc-cdc-flow_my cd ./soc-cdc-flow_my/spyglass_cdc export SPYGLASS_HOME=/opt/edatools/synopsys/spyglass/U-2023.03-SP1/SPYGLASS_HOME CDC_MODE=training ./run_cdc.sh

建议前置基础

建议已完成 LPWR 或同等 SoC 经验;了解基本 SDC 时钟约束;实践环境需 SpyGlass CDC License。

继续看其他项目

已复制