practice_templates/deep_03/eda_dc_synthesis/README.md

深度实践 EDA 3-2: Design Compiler 逻辑综合实践

📚 知识点

知识点 说明
逻辑综合 RTL → 门级网表的转换过程
SDC 约束 时钟定义、I/O 延迟、面积约束
时序分析 Setup/Hold 时序检查
面积报告 单元面积、总面积分析
优化策略 速度/面积/功耗权衡

🎯 任务目标

任务 1: SDC 约束编写 (30 分)

补全 sdc/constraints.sdc:
- [ ] 定义系统时钟 (50MHz, 20ns 周期)
- [ ] 设置输入延迟 (3ns)
- [ ] 设置输出延迟 (2ns)
- [ ] 设置驱动强度和负载
- [ ] 设置 false path 和 multicycle path

任务 2: DC 综合脚本 (25 分)

补全 scripts/dc_run.tcl:
- [ ] 设置目标库和链接库
- [ ] 读入 RTL 设计
- [ ] 应用 SDC 约束
- [ ] 执行综合 (compile_ultra)
- [ ] 生成报告和输出网表

任务 3: 报告分析 (25 分)

运行综合后分析报告:
- [ ] 分析时序报告 (report_timing)
- [ ] 分析面积报告 (report_area)
- [ ] 分析功耗报告 (report_power)
- [ ] 识别关键路径并提出优化建议
- [ ] 填写 reports/synthesis_analysis.md

任务 4: 综合优化 (20 分)

尝试优化综合结果:
- [ ] 修改约束收紧时序
- [ ] 使用不同的综合策略 (compile_ultra -timing)
- [ ] 对比优化前后的 PPA (Performance/Power/Area)
- [ ] 总结优化经验

📁 文件结构

├── rtl/
│   └── alu_pipeline.sv          ← 需要综合的设计
├── sdc/
│   └── constraints.sdc          ← ⭐ TODO: 补全 SDC 约束
├── scripts/
│   └── dc_run.tcl               ← ⭐ TODO: 补全 DC 脚本
├── lib/                         ← 工艺库 (链接到实际路径)
├── reports/
│   └── synthesis_analysis.md    ← ⭐ TODO: 填写分析报告
├── Makefile
└── README.md

📝 考核方式

考核项 分值 评估方法
SDC 约束正确 30 分 SDC 文件内容正确
DC 脚本正确 25 分 综合流程可运行
报告分析 25 分 分析文档内容准确
综合优化 20 分 优化效果+经验总结
合计 100 分

通过标准:≥ 60 分

考核流程

  1. 检查 SDC 约束文件
  2. 运行 DC 综合 (或审查脚本)
  3. 现场分析综合报告
  4. 讲解优化策略