分区将变得更加困难

爆炸门,多个域,和硬件/软件内容的难度来验证设计将按计划运行。

受欢迎程度

“分而治之”的方法,验证了几十年的支柱高级节点正变得越来越困难。从不同的模块和功能有更多的互动,更多的权力领域,更多的物理效果跟踪,和更复杂的设计规则。

这有助于解释为什么在每个设计仿真所需的工具数量,原型设计,仿真,验证和validation-continues上升,为什么有这么多的EDA公司关注改善这些工具的性能。但最重要的问题是如何确保个人parts-memories之和,第三方IPs,处理器和accelerators-continues满足越来越苛刻的规格在各种各样的应用程序和流程节点。,更糟糕的是,所有这一切在一个固定的市场窗口完成,这需要大量的预先计划和规划,因为一个大SoC很少符合一个模拟运行。

的起点是什么?“通常新设计至少可以分为软件和硬件部分,”博Zalewski说,硬件部门的总经理Aldec。“这始于asic,但我们可以看到相同的新的FPGA器件,。芯片包含处理器和硬件功能,并验证和模拟设计团队必须先分区软件和硬件之间。这只是变得更具挑战性。”

这对如何设计和设计验证产生广泛影响,远远超出一个简单的“左移位”的方法。

“较低的节点,工程团队是整个系统分区,本质上说,“我要有两个独立的芯片,为我的一个主要的高性能发动机,第二我的档次引擎,不需要生产一遍又一遍,“”表示Anush莫汉达斯·,营销副总裁和业务发展NetSpeed系统。“他们之间还有一个互连。工程团队面临着这一问题当他们模仿设计使用FPGA。fpga非常适合ASIC仿真。你不需要一定烧数百万美元来理解您的系统是否执行,是否有任何功能缺陷,或者你有任何性能缺陷。但困难的是整个SoC映射到一个FPGA。因此,它被划分到多个fpga。”

关键是能够确定在何处。“你想确保每当有很多连接或大量的沟通不同的引擎,它是在一个FPGA分区,然后干净的边界,可以削减,在不同的FPGA和扩展它,“莫汉达斯·说。“有商业工具,说,‘这是三个或四个不同的标题,让你很容易把它分割成不同的fpga。这是近似的门数,这样您就可以理解如果你能适应整个设计成一个具体的FPGA或如果你需要两个。特别是在SoC并发子系统,它变得非常困难。”

这里有两个主要的策略包括分区。一个是模拟尽可能多的设计在一个单一的运行。另一种是把它分成不同部分,这样就可以运行得更快。采取哪种方法取决于团队要做的功能验证和性能验证,并且经常需要这两种方法在设计流程。

”在这种情况下,客户正在开发自己的IP,他们有自己的秘密武器,他们有自己的IP和写第一次“莫汉达斯·说。“他们担心功能,这个芯片是如何工作的。在这种情况下,他们可以做什么,例如,而不是运行他们的互连512字节,他们可以运行互连64字节。显然是要给1/8的性能但功能准确。这让他们在一个FPGA整个SoC,但让他们运行数十亿周期的清洁方式,这样他们可以测试功能。在这种情况下,你倾向于运行在一个FPGA,但在其他情况下,你想做性能仿真。一个典型的例子是超大型网络或超大型存储。你要么成功与否。是否你想要运行100 g以太网流量或你想过程线率非常高,性能几乎一样重要的功能。你不能砍设计成任何一点。 You want to represent your design in its full glory. And obviously you can’t put it in one FPGA, so you split it and put it across multiple FPGAs.

事情变得棘手的时候以较低的节点,仿真以及如何分区设计由于越来越多的异质性和额外的一致性。

“如果你想找到使用模拟一致性错误,你需要极长周期运行它,”他说。“一致性的工作方式是即使你搞砸了,有一个错误在时间为零,bug的时候实际上体现在任何有意义的错误,这将是200万年的时间,而在模拟只能为一定数量的收集统计周期。你不能说,‘嘿,太好了,我有这个bug 2-millionth周期,让我去分析它。“你试着去落后。你必须一直为零。它变得非常困难,所以我们有一个概念叫GCT(全球一致性的跟踪),甚至当你运行模拟它说,是的,你已经达到你的错误在模拟数字200万,但这个错误是在一次12,你需要去看看到你的错误在哪里。所以分区和仿真变得越来越有趣。但它也变得困难。的验证方法和验证抵押品从SoC和所有不同的IPs扮演着重要的角色。”

计划分拆
但是这不是一个简单的决定,了。它需要一个广泛的计划。

“大图片,显而易见的原因划分设计仿真就像任何工程问题,“提醒戈登•艾伦DVT产品营销经理导师,西门子业务。“你把问题分成小的可以解决的。模拟,根据定义,是一种软件活动限制的能力,结果和你想要以高效的方式。所以我们把设计分成块。在验证的一件事,我们做的是提前计划和故意验证自底向上的设计。我们将改变我们的方法,我们继续向全面设计。”

然而,这并不一定意味着分区。“这就像被故意提前分区,艾伦说。”这就是传统的验证方法和重用发挥作用,我们开始块级验证一块独立的设计,我们可以详细核实,然后我们去了一个水平对整个芯片的芯片或者一个中间子系统,又画的边界划分的代表最终产品的规格。例如,您可能有一个最终产品,视频和图形功能,可能有三个或四个街区,你可以验证子系统中。然后你把它们放在一起,他们共同运作作为一个整体,你可能会验证子系统。"

原因多工位的方法验证方法可以在每个级别不同,艾伦说。“有你在低级别验证,您现在可以给定一个级别了,这可以让你做一些优化验证,如交换的细节更抽象的相同版本的功能,你已经证实。这是一个使用了几十年的技术来简化验证过程。和分区是一个很好的方法来描述过程的计划无论如何验证这个复杂的芯片。”

如果芯片结合视频、网络音频和记忆在一个协议或接口,所有的块需要验证在一起在一起。“有哪些方面的互连,这些子系统之间的相互作用,如数据流和中断流跨多个子系统?在每个级别的验证,你问一个很简单的问题:“我们验证什么呢?在某些方面,这是最重要的问题。我们在块级验证什么呢?我们的验证行为。在芯片层面,我们不是这样做块级验证了。我们验证互连,在芯片的低功耗问题,数据和中断的情况下,整个chip-those事情发生。事情一起绑定模块,路径在芯片,也许从B到C然后再回,必须在芯片级验证。低功率和连接是一样的,”艾伦说。

进一步说,不管一个芯片是如何分区的,会有一个分区之间的边界。需要更专注于边界确保子系统一起打好。

了解工作负载
传统上,规划partitioning-particularly确保设计适合在一个fpga原型是使用电子表格来完成。在每个新节点,变得越来越笨拙。

“他们会把数字加起来,这样,“我们这组的任务,他们使用太多时间,这大概是我们需要多少MIPS /指令每周期为每个任务,执行“应用工程经理Tim Kogel说虚拟原型验证小组Synopsys对此。“我们知道需要多长时间,需要多少带宽。”然后他们试图添加。现在的问题是,随着SoC设计的复杂性增加,不工作了。”

但如何处理设计取决于工程团队正试图完成,芯片制造商开发的方法。Juergen Jaeger、产品管理总监节奏说的关键之一是首先的核心功能的设计。

“核心功能通常是提出处理核心或者CPU内核的内存子系统和一个关键的外部接口,像一个JTAG或UART,这样他们就可以访问它,“Jaeger说。”当然,穿过很多模拟块的水平。然后他们做验证子系统水平,多次平行。在某种程度上他们整合一切,包括运行软件。由于性能原因,全系统做的往往是一个模拟器或fpga原型系统。在此之前,你需要做大量的验证和模拟,用模拟器,这样子系统很稳定在你面前暴露他们更高性能的借助硬件验证平台。”

这个艰巨的过程通常始于调试设计,但很快工程团队挑战添加在软件和验证软件与硬件以适当的方式进行交互。“这不再只是RTL或设计调试的问题,“Jaeger说。“你真的要处理整个系统硬件、软件、固件、bringup和验证复杂的事情。不过,球队真正遵循他们的设计的结构或边界时分区设计验证或只是为了模拟。然后他们真的通过结构化或分区的刺激方法。但在某种程度上他们一起整合一切整个设计或总功能。”

不仅仅是确定分区的最佳场所,工程团队也将重新运行一个模拟不同的分区。Jaeger指出这是因为无论如何彻底和仔细,全面验证子系统或模块,这儿的问题往往是越块之间的界限。“这就是你进入场景将不同的模块组合在一起,看他们如何一起玩,和潜在的问题是什么,当你这样做。”

思维或大或小
那么,你具体画分区线当什么?这并不总是显而易见的。因为大型SoC中的元素需要不同的工具,如虚拟平台软件建模和RTL模拟器硬件模块,以及调试工具,解决方案集成这两个单独的域可以虚拟平台和RTL的联合仿真模拟器,它允许集成验证平台的分区设计的元素,Aldec的Zalewski说。

然而,在后台运行的时钟设计市场的时间和预算。这就是速度模拟进场,如果设计规模大、涉及复杂的模块和子系统,它必须被分割成小块。

“分区设计的模块来模拟分别成为必要,不是一个选择,“Zalewski说。“即使模块级测试可能需要硬件加速解决方案来提高仿真的速度。在这种情况下,testbench可重用性是最重要的模拟器之间的无缝迁移和加速器。大的设计,自然的方式来提高仿真过程模拟路径,你的焦点在哪里向模拟器硬件分区。”

但在一天结束的时候,没有单一的方式完成这些任务,也没有正确的方法划分了一切。和设计复杂性不断增加在每一个新节点,这些线条变得更加模糊。

有关的故事
原型设计分区的问题
增加设计复杂度和FPGA功能之间差距的拉大,这比以前要难的多。
对权力的划分
强调转向更好地控制权力的使用,不仅关掉块。
技术讨论:TCAM
如何节约能源和减少与三元区内容可寻址内存。



留下一个回复


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

Baidu