工具是ICC2和innovus都会用 由于FPGA综合过程有很多不懂的名词,而且听说正常公司都不是一套vivado走全程的,因此想上这个课学习一下
总体流程是:
- 数据准备 (Data Preparation):加载逻辑、物理和工艺信息
- 布局规划 (Floorplan):确定芯片大小、宏单元(Macro)位置和电源网络
- 布局 (Placement):放置标准单元并进行初步时序/面积优化
- 时钟树综合 (CTS):构建时钟分配网络,平衡时钟偏斜(Skew)
- 布线 (Routing):完成所有信号线的物理连接
- 后期优化与收尾 (Post-Route & Chip Finish):修复剩余违例、添加填充单元(Filler)并输出最终文件
整体流程相对好理解,类似于建城市的思路,先建大的,再填小的,然后布线
流程中的预警机制
这是一个比较有趣而且有智慧的设计,思路是先粗放地进行估计再细化地进行真实设计,每个流程都考虑一下会不会对后续流程造成问题,这样问题发现的早,也更能够定位问题点,是个值得借鉴的思想,总体有这些机制:
- Floorplan阶段通过utilization来判断Macro之间距离是否太小可能导致拥塞
- Placement阶段通过判断布线是否会overflow和hotspot判断是否可能造成问题
- Placement阶段使用理想时钟优化datapath,CTS阶段变成真实时钟判断是否会存在传播问题,还有Early Clock Flow设计试图让Placement阶段预判CTS结果
- Routing先全局布线再轨道分配最后细节布线