系统与设计
的意见

一个esl狂的自白

系统级设计的范围已经发生了变化,但它仍然为设计人员带来了很大的希望。

受欢迎程度

在DAC 1997年——17年前——Gary Smith创造了术语“电子系统级”(ESL)设计。大约在同一时间,我进入EDA,成为Cadence的一员,并非常参与ESL。在过去的17年里,情况发生了很大的变化。虽然有些预测没有实现,但有些肯定实现了。在过去的几年里,被视为系统级设计一部分的工具已经发生了显著的变化——仿真和基于FPGA的原型现在肯定是系统级设计流程的核心部分,以及将抽象提升到寄存器传输级(RTL)之上的技术。

顺便说一句,就在加里创造了ESL这个词的同一年,我的生活发生了相当大的变化:我个人从欧洲搬到了美国,从领导芯片开发工程团队到技术产品管理的“黑面”工作,和我的女朋友住在一起,她把我当作她在德国工作的纪念品。

在那之前,我已经开发了软件——the音频录音机在雅达利ST和雅达利猎鹰称为1stTrack资助了我的大学时间和硬件,我领导的最后一个芯片开发项目是富士通MB87L2250 MPEG-2视频/音频解码器.突然间,我发现自己进入了EDA的世界,很快就成为了“Felix倡议,这是Cadence与主要合作伙伴对系统级设计(ESL)的一次非常雄心勃勃的尝试。

从那时起,我就成了一个ESL瘾者和ESL狂。真正将硬件和软件设计提升到更高抽象层次的机会实在是太吸引人了。1999年,也就是15年前,我为Alberto Sangiovanni-Vincentelli和Rahul Razdan画了格兰特·马丁后来称之为“原始Schirrmeister”。我关于工业如何从布局到晶体管到栅极再到RTL的变化,似乎暗示了在RTL之上的抽象的下一个步骤是不可避免的。

当我和我的团队正在为2014设计自动化会议做准备时,回顾过去,我不得不承认两件事。首先,不可避免的时间可能比人们所能计划的要长。15年过去了,我们当然还没有完全超越RTL作为设计入口,至少在完整的片上系统(SoC)级别上还没有。其次,即使可以实现更高层次的抽象,也只有在具有商业意义的情况下才值得进行。只有当额外的步骤在整个开发流程中所节省的精力超过执行该步骤所需的实际工作时,它才具有商业意义,正如我在一篇恰当地称为“当一加一必须小于一”。

让我们回到13年前的DAC 2001。根据我当时为Cadence所做的演示,我将下面的图表组合在一起,它显示了我认为现在会过时和破碎的流,以及我认为将来会接管的流。

那么2001年的评估和当时的预测有多正确呢?

“IP块创作”和“IP块系统集成”之间有明显的区别。这本身就是对的,特别是考虑到2014年硬件块的复用率超过60%。可以说,我们可能不得不在块和系统之间添加另一个中间度量单位:预定义的HW/SW子系统,例如来自Cadence的Tensilica产品线的特定于应用程序的子系统。这些子系统成为集成到SoC中的块。

非常正确地,我在“块创作”区域中分离了软件和硬件。但是,我在2001年的图表中考虑的软件似乎仅限于“裸金属”软件。我们只是没有在当时表示操作系统、驱动程序和中间件的堆叠结构。它似乎与硬件无关。因此,软件在过去十年中变得更加复杂,并且在某种程度上被EDA和硬件世界更好地理解。

截图2014-05-21下午6点17分37秒

在插图的上半部分,我指出,首先实现RTL的所有硬件块,同时实现汇编器的所有软件块,然后在第二步尝试在该级别上进行集成,这是行不通的。我幻灯片上的相关文本实际上说过,“昨天”实现级模型的集成发生在模块实现和分区决定之后。我确实认为这种方法会失败,特别是如果用户没有尽早评估实现方面的话。在插图的底部,在“新流程”中,我要求将性能特征注释到更高级别的模型。然后,我建议“简单地”将系统集成提升到更高的抽象级别,分区决策由特征性能模型指导。

那么,十多年后的今天,我们在哪里?许多集成仍然发生在RTL级别,部分原因是EDA提供了像我们的Palladium XP系列仿真平台这样的引擎,它“扭曲”了系统。在高达2B门容量时,大多数芯片可以在模拟器中以MHz的速度执行。这就是为什么Gary Smith去年把模拟放在了ESL流程的核心位置.对于纯软件开发,我们已经完成了2001年虚拟平台建议的部分升级。不过,这是一场相当艰苦的战斗,因为在事务级模型中存在模型可用性和准确性与速度的问题。重要的是要注意,抽象只发生在硬件方面。该软件作为“实际”软件在汇编层运行,加载到处理器模型中。

特别是在过去的几年里,我们已经看到越来越多的“混合”设计部分以完全硬件精度执行,如GPU,与一些设计部分,如处理器子系统,在虚拟平台上运行。这周我们刚刚公布了CSR的情况使用Palladium XP - VSP混合系统,最高可达到纯仿真速度的200倍

我错得最多的一项可能是“特征表现”。在软件开发的虚拟平台之外的大多数领域,用户根本不使用具有特征的高级模型来做决策。最突出的两个例子是处理器模型和复杂的芯片互连。

看看从ARM获得的处理器型号,只有通过Carbon门户获得的周期精确的型号与本文讨论相关,还有从ARM获得的没有详细计时的快速型号,这些型号由我们这样的合作伙伴集成到我们的产品中。没有“中间”模式。对于大多数架构决策,架构师将依赖从RTL自动派生的周期精确模型,或者直接在快速引擎(如Palladium XP仿真平台)中使用RTL。

对于芯片互连来说,复杂性已经变得如此之大,以至于用户不仅需要像ARM AMBA Designer这样的工具来创建互连RTL,而且还需要使用像Cadence interconnect Workbench这样的工具在rt级上做出决策。使用更抽象的模型并使用注释的替代方法已被证明对于复杂的互连是不准确的。

因此,我们花了15年的时间来接近似乎不可避免的更高层次的抽象我在1999年画的。虽然对于具有高级合成的IP开发,我们可以说正在接近基于系统c的IP开发,但我们还远远没有完成在芯片级别上的完整步骤。考虑到实用性的问题,例如,一些问题,如互连的配置,根本无法在更高的级别上得到回答,因此,到更高抽象级别的完整步骤是否可能很快或根本就可能发生,这是值得怀疑的。

我是“干净的”和“非ESL”吗?没门!我仍然对ESL上瘾。但是,范围已经改变了。如上所述,像模拟这样的工具已经帮助“改变”了可以在rt级执行的系统的定义,同时也改变了被视为ESL流一部分的工具的定义。



留下回复


(注:此名称将公开显示)

Baidu