FPGA原型复杂性上升

分区块成可管理的块变得困难,但新的工具和方法显示的承诺。

受欢迎程度

Multi-FPGA原型的ASIC和SoC设计允许验证团队达到最高时钟频率在仿真技术,但建立原型的设计是复杂和挑战性。这就是机器学习和其他新的方法开始帮助。

潜在的问题是,设计变得大而复杂,他们必须被分割成更易于管理的部分。但作品的数量乘以,分区比例上升的困难。

“你一个大团的逻辑和你试图分区,最重要的是保存的功能,设计意味着你不能破坏任何东西,”Juergen Jaeger说,产品管理组主管节奏。“你想要有效地使用资源分区成,是否它是一个模拟器或FPGA原型,和你想要达到最好的性能。就像在空中抛接多个球。”

这个行业是一个有趣的时刻,作为新一代的fpga只是新兴。“为用户做相对较小的设计,这真的是一个很好的机会。用户必须分区设计成两个fpga之前,这是一个绝佳的机会,因为他们淘汰分区和他们得到一个更好的结果,”约翰内斯·斯塔尔,产品营销高级总监Synopsys对此。“例如,而不是设计运行在前20 mhz,现在可以运行它在50 mhz,所以这是一个戏剧性的影响。这将继续发生在很多情况下,这些新的fpga来网上。”

换句话说,一个逻辑密度的显著增加使实现更小的SoC设计在一个FPGA芯片的原型和运行时钟频率接近真实的操作条件,说Krzysztof Szczur,硬件验证产品经理Aldec

同时,高新技术设备添加另一个水平的复杂性因为今天最先进的fpga真的不是一个芯片。

“高端从Xilinx FPGA和从英特尔/阿尔特拉现在包含多个死了,多个芯片,用电线连接,所以你也有一个分区在FPGA内部,“Jaeger说。“作为一个额外的复杂性,如果你现在通过功能,在那里,以及性能和资源的高效利用,分区算法试图做“min-cut算法。他们正试图减少信号的数量必须在多个分区。除此之外,执行分区的工程师也在努力平衡利用每FPGA,这样你就不会得到一个FPGA, 90%是满的,另一个只有10%满,因为那样会对性能产生负面影响。”

当然,情况相同的戏剧性结果斯塔尔引用不能被完成。例如,一些公司,当原型与自己的董事会,除了multi-FPGA分区经验挑战——具体地说,这样做,因为调试信号需要补充道。

“如果你必须拿出的流动主要是手动调试信号,你必须把他们的别针,影响分区,”斯塔尔说。“所以你必须重新分区运行,这是相当痛苦的。一个用户讨厌,因为他永远不可能预测什么时候下一个分区运行将关闭时间,他可以得到原型的用户了。这表明它确实是连接到调试。调试和自动分区为用户提供一个主题原型。这一切必须一起工作。”

multi-FPGA原型的另一个挑战是连通性的分区。“与fpga的逻辑密度,增加被包含在更大的包,提供更多的I / o,“Aldec的Szczur说。“然而,增加I / o不是一样壮观的逻辑资源。例如,最大的Virtex UltraScale提供1456常规I / o, Virtex-7中大约21%以上的家庭。为了减少这种差距,FPGA供应商装备现代FPGA高速串行I / Os(例如XCVU440 48行高等),这会增加连接带宽。这样的I / o通常加上phy PCI Express等标准接口,USB 3.0或QSFP。在某些情况下也可用于inter-chip连接multi-FPGA原型,但在这种情况下他们的使用仅限于事务接口,实现专用协议握手,最好使用破裂转移的影响降到最低的延迟增加这样的联系。此外,在高端fpga,标准I / o设计将在更高的数据速率由于低压差分信号(LVDS)的支持,加上专用的序列化器/反序列化器(并行转换器)逻辑,有助于实现这样的链接。然而,建立高等/ GTX公司或标准I / o LVDS模式可能会非常棘手,如果自动分区软件可以节省很多的时间和头痛。”

如果设计尺寸大于单个FPGA必须分区,每个匹配的单FPGA能力。有两个目标。第一是FPGA资源利用率阈值下,确保顺利place-and-route。第二个目标是最小化分区之间的联系,这是原型的速度最重要的因素。

”这个过程相对比较简单的情况下两个fpga,但很难生长迅速当添加下一个分区,特别是设计结构(层次)不对应的原型板布局,“Szczur说。“一个方法将手动分区,这就需要进行更改的设计来源。分区块高密度脂蛋白与原型板中创建资源和连通性。由于FPGA的I / O限制,每个分区必须是手工包装的互连物理层和自定义实现的多路复用器或序列化器。这种方法不仅容易出错,很难规模或包含设计更改,但它需要修改可以负面影响ASIC的设计后端合成优化。减轻这种风险会保留各自HDL源设置和配置FPGA原型和ASIC设计流程。但是它是有问题的真正在FPGA原型验证。比手动分区是使用编译原始设计高密度脂蛋白源文件的软件,它促进了分组模块实例在设计层次结构分裂成分区。”


图1:一个自动化的分区工具。来源:Aldec

执行分区
分区是由软件架构师,他设计的总体结构,确定这样一个分区算法应该是如何工作的。这些架构师支持团队的工程师做个人实现。“有人负责销多路复用,例如,分区之间的联系,”节奏的Jaeger说。“人什么都不做但放置的重点是如何分解。,然后分解成专家团队。”

这在很大程度上取决于设计/验证团队的大小。“建筑是想出一个好的分区的关键,”他解释说。“第二个最重要的可能是全球布局。我怎么现在各种设计块到不同的fpga。连接和销多路复用是机械的工作。没有什么创造力。这只是实现它。你可以想象当你有这些东西都必须一起工作,你总是不得不开始的地方。你必须把在地上,“我把这把,我把那里。现在让我们一起看看适合。’ All of the algorithms are also working with the seed, or random starting point. Then, those algorithms run through multiple iterations where they do variations to that starting point.”

这是一个领域的努力正在进行中,以带来更多的可预测性,包括机器学习。“预测算法发挥辊和帮助使它更可预测,因为我们的目标是,当你使它更可预测的,你不需要尽可能多的迭代和你不需要许多重复一个好的结果。这就是为什么我们要带来更多的机器学习,”Jaeger说。

它是计算能力的问题,这是一个时间的问题。“一个重要方面是,不是每一个问题都是可以解决的。假设你有一定的设计和你说,‘我想,融入四fpga。但它可能不适合各种原因。可能有太多的大门。可能有太多的联系,也许别的东西。当你熟悉fpga,通常需要几天,直到你发现它不能place-and-route没有解决方案。你想尽快知道。ML算法可以帮助您在几分钟或半个小时,所以你不要等两到三天,直到您的软件说,“哎呀,我做不到。“你知道它,你可以对其进行更改,”他补充道。

目前还不清楚,然而,这个行业是否准备今天应用机器学习在这个领域。“虽然可以实现机器学习所面临的挑战是,你需要有很多的优化运行这台机器学习,”斯塔尔说。“如果你花足够的计算能力可以优化,运行许多运行,并找到更优的版本。就像任何优化问题在本质上是略有启发式,贬低电缆略启发式天性——它可以受益于人工智能算法。我们没有在今天的市场,但它在将来去那里。”

分区的最佳实践
当构建一个FPGA原型,有一些注意事项要记住的关键。

“第一种方法最有用的是设计的FPGA,”丹尼尔奥尔德里奇说,主要开发平台的系统架构师团队想象力的技术。“我们的偏好作为FPGA工程师是IP核心计划放在一个FPGA的FPGA-friendly”,这意味着它没有组件将大规模FPGA资源消耗或难以跨越FPGA。如果设计可以考虑这些方面,如果最终产品将最终在一个FPGA或者至少的一个变体,这是可取的。如果IP核设计的硅,然后硅面积和速度是需要考虑的主要问题。然后我们必须和我们所拥有的。有时这意味着更换组件,同比,正式测试的等价物,可以进入一个FPGA。这可以归结为,你能进入什么FPGA尽可能FPGA-friendly ?””

multi-FPGA平台,设计必须分离,更可取的,如果它可以在注册边界分割协议。

”,给你register-to-register之间拉你的fpga,”奥尔德里奇说。“这给你一个相对较低的销数公共汽车,你会最终不得不分裂。如果是类似AMBA总线,你不会得到太多的别针。还是成百上千,但不是成千上万的。但是,这并不总是可能的。所以我们希望分割设计总是有意挨着坐在硅在fpga,整个PCB。这就是我们开始观察工具来帮助自动化这个过程。如果你在谈论分裂高层模块连接的有效和协议,手动编辑实例化这些子组件是一个相对容易的事。如果你要开始分裂sub-hierarchical块,或者采取许多大块分开数千或数万的信号,然后我们开始看有工具帮助自动化这个过程。可以帮助你自动的区域会被屏蔽,这样你可以找出哪些应该放在哪里,和它帮助你信号之间会fpga和什么样的你要做的多路复用。 That’s where we start talking about the largest FPGAs now have a couple of thousand I/O pins. But if you’re going to put 10,000 signals down, you’re still going to have to do some sort of time division multiplexing to get the signals out from one IP block or sub-block of the IP to the other block.”

对分区块大小有很大的影响,。

“如果你能让一个组件不超过一个FPGA,它使生活更轻松,”奥尔德里奇说。“ASIC的世界,将子块的平方毫米的区域可能会占用。然后,开始思考那些块之间的互连是什么,从一个ASIC布局这些更大的设计。从FPGA的角度来看,当你原型,我们在设计阶段希望发生这样的事。从一开始,当IP核心的架构,你应该思考应该把这些分解成什么级别,什么应该有层次水平。我应该达成最大的I / O或它们之间的通用I / O接口?确保有流水线阶段,因为这将有助于与FPGA的时机,也与ASIC时机。你希望能说服设计师预先对每个人都很好。”

multi-FPGA原型将前往何方?
今天有这么多依赖的原型设计,有不断进化的下一个。

一个领域在很大程度上解决在EDA领域之间的边界是在fpga连接多个分区时,电线可以有不同的方法。包括如何销多路复用和多快它转换一次数据传输。

“越来越多的,你去混合,混合不同的销多路复用方案,“Jaeger说。“你可以有一个非常传统的异步销多路复用。你跑线在一个相对较低的速度和你超频了它,这样你就可以恢复数据在另一边。效果很好,如果你有一个小针多路复用率。它给你非常低的延迟的延迟很短。如果你有成千上万的信号,你必须发送一线,这将是一个限制因素。所以你去SerDes-based高速连接,基本上你运行一个输电线路和线就在兆赫的速度运行。设置这些端点的缺点虽然序列化/反序列化增加了延迟,所以,只有理解如果你有一个非常高的销多路复用率。给你的好处。”



留下一个回复


(注意:这个名字会显示公开)

Baidu