模块面积也比预期的要大一些。
“看来这个模块的时序确实挺紧的。”张伟皱了皱眉,开始尝试调整se的各种参数设置,比如提高优化努力程度(effort level)、尝试不同的布局策略、手动调整时钟树等,然后重新运行p&r。
第二次运行,时间更长了,花了将近六个小时。结果出来,时序有所改善,负时序裕量减少到了05纳秒,但仍然没有完全收敛。面积也没有明显减小。
“再试试加buffer插repeater?”张伟喃喃自语,准备进行第三次尝试。这在复杂的后端设计中是很常见的,一个模块反复迭代优化十几次甚至几十次都不足为奇,非常耗时耗力。
就在这时,“盘古”团队派来支持他的资深工程师老吴走了过来。“小张,要不……试试用‘盘古’跑一下?”
张伟犹豫了一下,点了点头。
在老吴的指导下,张伟开始学习使用“盘古”p&r引擎。正如李志远所说,这个内部工具目前还没有图形用户界面,所有操作都需要通过命令行和脚本来完成,显得有些“简陋”和“原始”。导入设计、设置约束的过程也比商业工具繁琐一些。
“这……能行吗?”张伟心里嘀咕着,但还是按照老吴的指点,仔细地设置好各项参数,然后敲下了运行命令。
“盘古”引擎开始运行。出乎张伟意料的是,它的运行速度非常快!屏幕上的日志信息滚动得飞快,各种布局、布线阶段的优化信息不断闪现。仅仅过了一个多小时,“盘古”就提示任务完成了!
“这么快?!”张伟简直不敢相信自己的眼睛。
他迫不及待地打开了生成的版图文件和时序报告。
版图文件在专门的查看工具中打开,布局布线的结果看起来……似乎还挺规整?至少没有出现明显的drc(设计规则检查)错误。
然后,他打开了时序报告。当看到报告结果的那一刻,张伟的嘴巴惊讶得张成了o型!
“wns(worst negative sck,最差负时序裕量)……是……是正的?!+023纳秒?!”这意味着所有路径的时序都满足了要求,而且还有一定的裕量!
“tns