Keysight 采用新的FPGAI/O 优化方法
显著缩短PCB 设计时间
简介
新问题需要新的解决方案。这句话在FPGA 设计领域从未像现在这样真实。越来越多的器件管脚数给传统的孤立设计方法带来了巨大的压力。这些传统方法已沿用很多年,通常将FPGA 和PCB 设计工作作为两个不同的学科进行处理,其中FPGA 设计人员定义FPGA的I/O 分配,并将这些管脚分配信息传递给PCB 设计人员。
如果暂且忽略对PCB 的影响,这一流程通常运转得很好,特别对于较小规模的器件,并且整体系统没有苛刻的性能要求时。
但随着FPGA 规模不断增大至接近(并且很快将会超过)2000 个管脚,这些设计理念就轰然崩溃了。这类大型器件需要采用一种截然不同的FPGA I/O 设计方法———这种方法需要同时兼顾I/O 分配对FPGA 和PCB 的影响。以下成功案例基于电信领域世界领先者之一KeysightTechnologies 使用Xpedition FPGA I/O优化工具完成的一项真实设计,记录了这一全新流程的成功部署过程。
图1:Keysight 的11-FPGA PCB。
设计概述
在讨论Keysight 取得成功的部分原因之前,了解一下他们所处理的设计的特征会有一定的帮助:
■ 11 个1148 针Virtex 4 LX 系列FPGA
■ 多个器件上的大型DRAM 总线(某些情况下多达250 针)
■ 多个高速(10 GBPS)FPGA 间总线,宽度约48 针
■ PHY 器件和背板采用宽物理接口
■ 极少的备用管脚
■ 复杂的FPGA 限制
■ Virtex 4 中有14 个不同大小的bank
■ 与I/O 相关的时钟必须以特定信号为载体
■ I/O 限制,例如时钟功能输入不支持LVDS
■用于不同bank 的混合电压环境(1.8V/2.5V/3V/3.3V)
■ 26 层PCB
■ 8 个内部走线(信号)层
■ 9800 个元器件
■ 9500 个网络
图1 是最终电路板顶面的屏幕截图。其中的大型器件为11 个FPGA。不论以何种标准而言,这都是一个非常复杂的项目。
Keysight 先前的经验表明,单单是I/O管脚分配过程,每个FPGA 就需要大约四到八周的时间。此外,I/O 限制预示可能会出现问题,事实上,后续的V4系列设计证实了这一点。Keysight 还知道,随着管脚输出发生变化,很难保持FPGA 设计与电路板设计之间的联系。鉴于这些挑战,Keysight 不得不考虑采用新的设计策略。
顶视图
Keysight 的目标是将FPGA 和PCB 设计人员聚集到一个共同的环境中,以便每个团队成员都能看到FPGA 管脚分配对整个系统的影响。I/O 优化用来达到此目的的机制在概念上非常简单:用实例化的可动态分配FPGA 库元素取代FPGA 的典型PCB 封装的PCB 视图。FPGA 元器件源自“智能”FPGA 器件库,可帮助用户做出正确的管脚分配。由于对这些分配的更改是实时显示的,因此可以立即看到对电路板其余部分的潜在影响。
图2:Keysight PCB 某一部分的“鼠迹线”
图2 是Xpedition 中的Keysight 电路板屏幕截图。其中有大量的鼠线需要整理(其中一些显示为绿色和橙色)。
I/O 优化器内显示了同一Keysight 设计(图3)。右下角的区域是“多元器件”窗口,提供了一个PCB 视图,其中的FPGA 当前正在进行活动分配。其他窗口传达了信号、管脚、符号(未显示)和控制台(转录)信息。通过从电路板级透视图显示元器件间的连接,Keysight 得以利用I/O 优化技术优化每个FPGA 的管脚分配。
连接到FPGA 工具
上述所有内容都没有说明Xpedition 如何连接到FPGA 工具。I/O 优化器并非FPGA 设计工具:它无法布线,也不能进行综合。因此,它必须使用FPGA 设计器读取和写入闭合环路所需的文件(如果这些更改不能传达到FPGA 工具,那么在原理图或PCB 工具,或在I/O 优化中进行管脚分配更改几乎没有什么用处)。非常关键的一点:将信号从一个管脚移到另一个管脚(即使是相邻的管脚)可能看起来无害,但实际上有可能导致FPGA 的时序失效。为此,I/O 优化可通过一个简单的下拉式菜单生成或更新相关的布局布线和综合约束文件。图4 说明了如何在流程中纳入I/O 优化,从而在FPGA 和原理图/PCB 设计流程之间建立桥梁。
评估工具- 不要害怕更改
在将新的EDA 工具部署到项目之前需要进行仔细评估,这一点再怎么强调也不为过,I/O 优化也不例外。
Keysight 花了几个月的时间评估I/O 优化,包括其功能、性能、稳定性、与现有工具和流程的兼容性、质量和可靠性。虽然这项工作发现了一些问题,但没有一个问题被认为足以动摇该技术的整体可行性。
其中一个主要发现是,它与层次结构联合使用时效果最佳。
图3:取自I/O 优化器工具的部分Keysight 设计。
“我们注意到了I/O 优化的兴起,”Keysight 苏格兰南昆士兰工厂的高级设计工程师Ross MacIsaac 表示,“我们选择在设计周期内的某个点将其引入我们的流程,这个点通常在我们适应工具之后,因为我们有使用经过验证的工具的强烈偏好。”
“但是,”MacIsaac 继续讲道,“这项任务的规模值得冒这个风险。支持方面也不存在问题,因为我们知道,Mentor能够为我们提供强有力的支持。”
在我们使用该工具时,它仍在进行频繁修订,但我们得到了Mentor 在当地提供的高水平支持。我们也相信Xilinx和Mentor 能够高效地交换信息;这比Keysight 亲自参与元器件库流程更加高效,而且风险更低。
其他方案涉及的工作非常多,预计超出了任何工具在起步阶段面临的难题。但我们的管理层仍准备冒险引入这项新技术。对于该工具和FPGA 而言,这块电路板称得上是在正确的时间遇到的正确问题。这两者的结合,让我们能够快速、可靠地完成设计并进行修改。”
图4:I/O 优化在FPGA/PCB 流程中的角色。
Keysight 还认识到,他们的一些流程在经过微调后,便能充分利用该工具中的其他功能。Keysight 愿意调整他们的流程来适应工具,而不是固执地坚持让工具来迎合他们的流程,因而能够充分实现I/O 优化。
层次结构的压倒性优势
层次化设计决不是什么新概念。ASIC设计人员使用层次结构已经有二十多年的历史,FPGA 设计人员也逐渐被迫采用相同的技术。
但不幸的是,电路板级设计人员接受层次化方法的步调很慢。我们经常听到的一个论点是,最终的文档交付物妨碍了它的采用。另一个论点是,第三方供应商、PCB 设计人员,甚至内部制造流程根本不支持它。
虽然从“扁平”方法转变为使用层次结构的方法确实会对既有的流程产生影响,但是,从层次化方法中获得的好处不胜枚举:改善团队沟通,更合理地分离各种设计对象(模拟、数字、机械),降低ECO 对产品层面的影响,而且令人意外的是,通过更好地使用EDA 工具还能提高生产率。
“我们很早就意识到,层次结构将会支持我们更充分地利用Xpedition I/O 优化器的功能,”MacIsaac 解释道,“因此,虽然Keysight 内部已经广泛应用层次结构,但我们还是仔细设计了该系统,以确保I/O 优化以及我们既有的EDA 工具能够为我们提供最高的生产率。毫无疑问,层次结构的使用缩短了我们的设计周期时间。”
图5:功能、物理和PCB 版图的关系。
图5 描述了一个核心要素,将此功能与层次化设计流程紧密结合时,能够带来显著的生产率提升。顶层原理图包含两个功能模块(FPGA的虚拟表示)和一些连接网络和端口。功能模块下面是表示FPGA 的实际符号或“符号断片”。在此示例中,功能模块以及FPGA 符号断片和断片所在的原理图全部由该工具集创建。
随着设计的进展,它能自动更新功能模块、符号断片和下层原理图。通过减轻在FPGA 原理图视图与数据库其余部分保持同步的负担,同时消除手动、繁琐且容易出错的任务,I/O 优化能够大幅提高生产率。
注意事项和经验教训
Keysight 在这项工作中采取的很多做法是之前未曾尝试过的,至少未曾在这种规模的任务中尝试。在此过程中,他们汲取了一些经验教训,Mentor 也是如此:
■ 保持简单的工具链并使用经过验证的方法。不要一次在新流程中注入太多的变量。
■ 在流程允许的情况下,尽可能多地使用工具自动创建和维护符号及原理图的功能。
■ 对FPGA 进行精细分区。为每个信号bank、电源模块、配置模块、JTAG模块等使用单独的符号。这样做可大幅减少出错的可能性。
■ 让自动化功能创建和维护包含逻辑bank 的原理图图纸。不要将电源、配置和JTAG 模块与逻辑模块混在一起,也不要将用户定义的逻辑(包括电容器、电阻器等)放在与I/O 优化图纸相同的图纸上。对设计进行分区,使I/O 优化器能够控制包含逻辑bank 的原理图。
■ 任何基于团队的设计方法,尤其是具有多个FPGA 的方法,都要求在设计周期的几个战略点进行项目分叉和合并。在这类情况下,要充分利用工具,需要仔细规划和深谋远虑。换句话说,不要指望工具能够神奇地解决项目管理问题。花点时间了解它能提供哪些帮助,然后进行相应的部署。
■ 巧妙地将设计划分为可作为同质模块分而化之的部分,以及应用层次结构,使得设计能够从这些模块快速重建,可以显著提高设计团队的效率。
总结
从这一成功案例可以得出结论,将I/O优化部署到能够充分利用其功能的流程中,可以显著缩短设计周期时间,同时实现卓越的设计。以下取自Keysight 演示文稿和总结的统计数据说明了这一点:
■ 从原理图开始到完成PCBLayout,共花了不到十个月的时间,比预期时间早了五个月
■ 整体系统设计时间缩短了约30-40%
■ 管脚分配工作从每个FPGA 4-8 周缩短至每个FPGA 1-2 周,其中包括了编译FPGA 以检查设计规则的时间
■ 可以使用相同的数据(而不是不同数据的并行更新),参照电路板原理图直接检查FPGA 的管脚分配约束
■ 自动生成和维护FPGA 的功能和物理原理图符号有助于大幅减少设计输入错误
通过巧妙地构建他们的设计,并调整他们的流程以充分利用EDA 工具,Keysight成功实现了显著的生产率提升。
具体来说,他们成功地将管脚分配工作从每个FPGA 4-8 周缩短至每个FPGA1-2 周(包括编译FPGA 以检查设计规则所需的时间),从原理图开始到完成PCB Layout 只花了不到十个月的时间,同时将整体系统设计的工作量减少了约50%,整体设计周期缩短了30-40%。
这一经验对Keysight 来说意味着什么呢?MacIsaac 解释道:“我们在此项目中成功采用I/O 优化的案例,让我们确信可以将该工具部署为Keysight 在全球的FPGA 原理图输入标准。我们已实施举措,为此制定最佳做法。”