首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

通过物理综合实现复杂FPGA设计的时序收敛

通过物理综合实现复杂FPGA设计的时序收敛

打鼹鼠是一个古老(电子时代之前)的休闲游戏。在桌面上有许多洞,每个洞里都藏着鼹鼠。当有鼹鼠从洞里钻出来时,你就有锤子打它,让它退回洞里。当鼹鼠返回洞里时,又有一只鼹鼠会随机地从另外一个洞里钻出来,你需要近乎疯狂地击打鼹鼠头部直到它们全部投降、桌面清空为止。

要实现复杂芯片设计的时序收敛,就非常类似于这一古老的游戏,但趣味自然少了许多。在你修复每个关键路径问题时,新的问题又会冒出来。

每一代新的FPGA都会给我们带来更高的性能和更大的容量。设计因此变得越来越大和越来越复杂,并包含多个时钟域、使用嵌入式乘法累加函数、嵌入式处理器和各种存储器资源。这些变化已将FPGA推向许多新的应用领域。同时,综合/布局布线流程中的时序可预测性则一代不如一代。在可预测单元延时和可预测性较差的互连延时之间的路径延时差别是越来越大。互连的可预测性天生就比较差,因为在驱动器和负载之间存在具有不同延时的许多布线路径。最快选择通常最不足,布线拥塞常导致非最优的延时。值得注意的是,最佳布线资源并不缺乏,但FPGA将变得更昂贵,功耗也更大。

另外一个导致不可预测性的根源是过去几代FPGA中早已有的嵌入式IP。这种IP包含了在FPGA裸片上不均匀分布的各种容量的存储器、DSP加速器(可配置乘法累加函数)和处理器。假设根据市场需求要增加存储器容量,现在综合工具将改变其映射的存储器IP类型。不幸的是,新的存储器IP只是位于FPGA裸片上专门的几列上,因此设计布局将不同于原始布局,一些关键走线需要延伸至这些列。

在许多情况下一个时序问题的解决会导致RTL的变化。通常改进时序的一些变化会增加面积消耗。考虑如图1所示带多个模块的大型设计。模块A紧邻模块B和C放置。当我们为了解决某个时序问题而“修复”模块A的RTL时,它会扩展到模块B和C使用的区域。这将迫使B和C中的器件移动和延伸,从而产生新的关键路径。注意模块B和C中的逻辑没有变化,逻辑综合流程不会仅仅因为模块A尺寸的增加而改变它对B或C中互连延时的估计。这是因为RTL变化和B或C中新的关键路径之间的耦合是自然的物理特性。

那么我们在“打鼹鼠”游戏中如何获胜呢?导致设计反复中不可预测性的原因是自然的物理特性,因此物理综合当仁不让成为首选解决方案。当模块A的RTL改变并扩大、延长模块B和C中的走线时,新的更长互连可以被正确估计,优化、布局和局部布线的整合以及新的关键路径可以自动解决这些问题。大多数鼹鼠已被击退,你再也不会看到它们从洞中冒出来。

物理综合通常能提高信号频率,但对复杂芯片的许多设计师来说,物理综合中可预测更好和受控的时序收敛将更有价值。


作者:Ken McElvain

首席技术官

Synplicity公司
记录学习中的点点滴滴,让每一天过的更加有意义!
返回列表