后端PR工作,主要围绕PPA进行,Power, Performance,Area。在不断劳作的过程中,会遇见各种各样的问题,辑以记录,避免再踩坑。
1. 搭建工作流程中的错误避免
比如建analysis view总是出现文件找不到或者error的问题,避坑做法:
a.对不确定的文件光标到该行,gf快捷键检查是否能进入该文件;
b.斜杠搜索行末空格,删除不必要的空格,确认反斜杠是否写全。
很多人都遇见过对弈的问题,就是直接粘贴到vim的viewDefination 文件不能顺利读取,这时候就要这种检查空格和反斜杠是否疏漏。另外,空格,反斜杠检查之外还可以将error的行,重新写一遍,避免隐形符号的存在。
另外,写好的脚本可分批次source 验证,检查无误再加入flow,避免低级错误再返工。
2. PPA中的某个指标问题
比如timing 太差,congestion太多等问题,需要反复迭代,避免无效返工:
a.从flow/tool的角度考虑,检查对应的option是否设置完整;
b.从design出发,分析是否可以通过调整布局等得到解决。
3. 不同工具之间的correlation问题
不同供应商的工具,同一供应商的不同工具之间,如何协调correlation问题?
a.调整参数,比如timing之间的rc factor,uncertainty等,或者用中间工具做一个比对,找出合理的设置
b.留出余量,按比例估计。
PR过程是一个非常复杂的过程,需要知识,经验,体力多方面结合来完成。这里就开始记录流水帐,把常见的问题,奇怪的问题以及处理方法记录下来,作为知识,也作为经验积累。
4. low power design中注意事项
a. 画power domain的时候注意细节,不要有overlap,不要有遗漏的channel等
b. 注意读upf的顺序,先读upf再做preplace的动作,防止逻辑层次有问题
c. 注意domain的相对位置关系,尽可能减少feedthrough出现,以及减少新的port增加,保证clp、vclp的正确性
d. 提前学习时钟结构,合理规划domain位置(通用各种design)
5. 明确project的spec,制定合理的实现策略,比如注重gaopin还是低功耗,还是面积优先?
(待续)