Ajoy Bose:可重用IP(智能产权)才是新的抽象等级

通信网络

623人已加入

描述

为了应付日益增长的复杂性,必须提高抽象的水平。但当摩尔定律将SoC(系统单芯片)的复杂性加速到逃逸速度时,哪里能找到一种作为RTL(寄存器传输级)补充的新抽象方法?很多观察家注意到,面向硬件的文本式RTL可替代逻辑图,从而推断认为某种系统级描述语言(如SystemC)将提供下一个好的抽象。不过这种情况并不会出现。

Atrenta公司主席、总裁兼首席执行官Ajoy Bose认为:“可重用IP(智能产权)才是新的抽象等级。”如果看看SoC设计团体正在做的工作,就会发现,创建SoC的过程就是对以前所用IP的寻找、特性确定和装配过程。无论是哪种设计创建工具(SystemC、Verilog亦或逻辑图),都只是扮演一个填充空白的角色,如专利功能以及IC的缔结组织结构。但正如大量EDA公司、代工厂和大多数SoC设计者所想象的那样,今天的设计流已经缓慢地认识到了这个现实。看一下自己的工具,你就会知道每个SoC都开始于一组功能需求,以及一张白纸。实际上,要考虑的是一个SoC设计中真正做什么,以及从这些观察数据中可以抽象出什么结论。

新的抽象

Synopsys公司主席兼首席执行官Aart de Geus喜欢乐高玩具,他还喜欢用它们作为硅IP的比拟。他指出,将IP装配起来创建一片SoC,就像把乐高积木块装成玩具一样。IP块是其中的RTL抽象,就好像乐高积木块要比用塑料或木头,去手工制作出一艘船或一只恐龙来得简单。这种模拟可以一直做下去,直到开始无效。

Verilog

乐高积木(尤其是高价主题包中的精密积木块)也可以体现出以IP为中心的设计流应该是什么样子。最开始是需求,这与传统设计流没有两样。但以IP为中心的设计流很快就会与传统方式分道扬镳。在传统流程中,要将需求划分为更小的模块,仔细地定义接口,直到这些模块足够小,使RTL设计师能用Verilog编写它们。而以IP为中心的流程则几乎相反:你要选择适用的IP块,将它们与需求匹配,就像装配乐高积木一样。你要尝试尽可能用较少的块,留下的空间尽量少。然后用新代码填充这些空白。

设计流程再继续下去,两种方案仍然是各行其道。传统流程经过了功能验证,综合,分析,时钟、电源和测试的精细插入,后端设计以及收敛,这些过程都在不断去除抽象,创建更多的实现细节,直到需求变成为多层的多边形。在每个新的级别上,流程都要停下来,验证该设计是否仍然满足需求。

而以IP为中心的流程再次走了几乎相反的道路。它的要点是将IP装配为一个满足需求的系统,而尽可能少地寻求有关IP细节的新信息。Bose称:“在装配过程中不要陷入调试IP的误区。”

这种情景对很多团队都很理想,富有吸引力。de Geus说:“例如在中国,设计方法研究的就是如何快速地从定义走到IP列表,再到装配。”

但现实情况通常并不是这样。Open-Silicon公司工程副总裁Taher Madraswala说:“至少今天有些功能有很好的定义,理论上你本可以在整个流程中把它们看作黑箱子,但也仅仅是理论上而已。实际上,最终还要在综合与门级优化时打开黑箱子。”为解决这些问题,必须遍历一个理想的设计流,找到希望与现实之间的差距。你必须考虑IP选择、装配、实现和收敛。

IP选择

从需求到一个IP BOM(物料清单)的过程是变化的,而且很不幸要手工完成。如何从A到B取决于系统的性质、IP的可用性、设计团队在重用方面的经验、芯片差异化的营销计划,以及企业策略等等。这个过程不能依赖的一件事是自动化,Synopsys公司的de Geus指出,理论上说,自动化应不存在障碍。

他发现,在RTL时,Design Compiler能从Verilog源中有效地找出该公司DesignWave的相对复杂块。不过,对于较大的IP块,自动化就不稳定了。他说:“用IP时,块都不太通用,要加入更多的人工选择。”

有些情况下,手工IP选择的轻松程度可以接近于自动化工具。例如,很多较小的SoC仍然采用一种简单的、类似于微控制器的架构:一个CPU核心、一个本地缓存,还有一系列外设接口。所有需要的块一般都能从第三方IP库中获得,再补足AMBA(先进微控制器总线架构)接口的管脚,就可以插接到一起了。对于其它情况,IP的选择并不能从需求明显看出。例如,假设一个智能手机SoC有多种授权与加密的要求。你是获取一个大且昂贵的第三方加密引擎许可证,还是选择一个较小的加密数据路径协处理器?另外,你是用MathWorks的MatLab开发自己的块并做综合,还是采用一个较快的(或第二个)CPU核心,并用软件处理需求?

功能的选择并不是过程的结束。功能类似的模块之间可能有很多方面的差异,包括性能、面积、功耗、接口要求、可配置性、对时钟与电源控制的条件、验证覆盖范围以及使用史。IP块的数据表中应有很多这类信息,但有些需要详细询问该块以往的用户,甚至要做少量反向工程。

要从一个可执行的SoC需求文件去推论出一个复杂IP块,这种逻辑问题也许是可以解决的。大多数需求文档仍然采用人类语言,不过并非可执行格式。此外,选择某个IP所需要的多数支持性信息也是零散的,缺乏标准的格式,并且可能是专有的。显然,自动IP选择还需要做大量工作。

现在存在一种非常有趣且大部分尚未披露的可能性。通常人们认为形式验证是相关的验证工具。但据Jasper设计自动化公司营销与业务发展副总裁Oz Levia称,形式上测试某个特性真实性的能力拥有超出传统验证的应用。例如,设计者可以用Jasper公司的ActiveDesign在开发期间研究RTL,有助于掌控RTL代码的创建。从这个想法扩展开去,Levia描述了Jasper与ARM工程师如何合作起来,将针对ARM存储器相关协议的英语规范手工转换为一个可执行的规范,Jasper再将它综合为一组断言。原理上说,一个设计团队可以使用这个过程,从需求创建出一组断言,然后再用形式工具检查一个IP块与需求的符合程度。可编程IP或可配置IP都会带来挑战,但过程中至少会产生一个将IP块装入一个设计的工作说明。

装配

IP装配是以IP为中心设计的流程基础。有些设计者使用“装配”,而不是“集成”,以示一种重要的区别。在这个阶段的想法是,将IP块看作是可配置的黑箱,而只编写一些在完成黑箱配置后,要将它们胶合到一起的RTL。这种情况与“集成”这一名词所代表的日益膨胀IP块有很大不同。

理想的装配过程必须开始于系统级仿真。在另一个意义上,系统仿真就是IP选择的验证阶段:你要检验所选择的IP块是否能以一种满足系统需求的方式联结在一起。de Geus说:“在一个IP装配流中,系统校验与验证更加重要。通常,我们需要一个快速的原型来验证软件可以在芯片上工作。”

快速原型的重要性表明,IP块的事务级模型可能很有价值。但IP供应商有时并没有事务级模型,或这些模型对现有IP版本不再正确。不过,你几乎总能用到软IP的RTL源,从而创建基于FPGA的快速原型,这就是FPGA原型对IP中心化设计的重要性。

另外,还可以在装配期间做另一种早期评估。静态分析可以检查IP有无违背规则,是否符合最佳实践。评估通常可以相当接近于最终芯片的功耗、性能和面积。Atrenta公司的Bose说:“今天,使用高等级综合的结果要比用软IP有更多的不确定性。”

在一个理想化的世界里,一旦将各个块装入原型,验证了系统的性能,并研究了大致的特性,则要做的唯一验证工作将是现有块和新块之间的连接情况。但不同的情况下,对于理想的接近程度也会不同。

也许最接近于理想的方案是:IP、互连,以及IC实现全是一个来源(图1)。附文“FPGA的情况”是这种情况的一个实例。真实世界里确实能有这种好运气,但仅适用于那些有强大的设计重用文化的垂直型集成公司,如IBM、意法半导体、几家最大的日本公司,以及在私募投资者重新关注自己优先权以前的恩智浦和飞思卡尔。如果没有强大的企业重用文化,以及公司对IP开发过程的控制,很难获得一种纯粹的黑箱装配流程。Bose说:“人们仍然懒于做实现重用所需的少量额外工作。”他表示日本的STARC(半导体技术学术研究中心)提供了一本出色的重用手册。不过,有些开发IP的团队缺乏训练与管理支持,不能在这个等级上使自己的设计可重用化。

下一个最接近理想环境的就是工业标准(如AMBA),它定义了块间的全部互连,还有所有符合标准的IP(图2)。此时,装配只是要确保信号名称以及极性一致,并且所有接口都可以工作在所要求频率上。如果没有一个统一的总线标准,则事情就变得更复杂了。你必须根据已配置IP块的实例去了解接口,必要情况下,还要创建额外的RTL胶合逻辑,以执行各块之间的事务,并且必须验证所有这些工作。

Open-Silicon的Madraswala称,关键是寻找到一种验证交互作用的方式,而不用验证IP的所有内部东西。他说:“你可以利用IP以前已被用过这一事实。看看自己的计划日期表,决定把自己的验证时间花在什么地方。你可能更愿意编写断言或测试,来验证IP数据表中的逻辑集成要求,而不是做一个全面的验证计划。但要知道检查什么和不检查什么,经验很关键。”Madraswala补充说,这种验证方案对仿真的依赖高于形式工具。

Verilog

实现

在这一点上,IP中心设计流开始与传统流程重新汇合了。软IP块、新的块以及互连都要去做综合,并进入扫描插入、布局与布线。硬IP也进入了布局布线的流程。然后,团队关闭设计。不过,在某些方面,IP为中心的设计仍有自己的独特性。

Madraswala认为,差异之一是电源管理的方案。他说:“针对电源管理的设计调整正在成为设计流的一个独立阶段。这正在成为一种独有的艺术与技术。”Madraswala解释说,当你自己设计一个块时,可以使用综合开关,做再对位以简化时序;做精细粒度的时钟门控,以及其它网表级的优化技术,其中大部分可获得功耗的优势。

举例来说,其它工具可以改变时钟的偏移,以控制峰值的时钟电流。Teklatech公司首席执行官Tobias Bjerregaard说,用综合开关也可以做一些此类工作,但工程师们仍然会手工完成这些任务。所有这些技术都非常有用,但全都用于第三方IP也许并不明智。

Madraswala称:“我们可能没有原始源码,因此无法做等效性检查。通常我们没有权利去改变块的设计。”问题是,对一个许可证优化到何种地步,才会违反一个IP块的保证条款,这件事很难确定。

Synopsys公司的de Geus也怀疑对等效性检查器的依赖性,但原因不同。他说:“形式工具不断地寻找可以生成的综合。例如,综合工具可以做延迟浏览,但形式等效性检查器却可能看不到与原电路等效的重组电路。 ”

相反,Open-Silicon的Madraswala则建议在块级对IP使用时钟门控与电源门控。他解释说:“我们围绕代码放了一个封装器,让它表现出我们想要的方式。”这种方案避免了修改第三方的代码。Madraswala说,物理设计仍保持传统方式。硬IP块加入了布局布线流程,具体要依赖于供应商的集成指导。Madraswala说,他的公司会对块运行一个DRC(设计规则检查),以确保它符合当前的规则平台,并与供应商对集成进行目视评估。他说:“有时候,他们尚未写好有些指南。”Open-Silicon在这个过程后会做一个平面设计的DRC,但Madraswala称,99%的情况下不会有任何问题。

相对来说,后端流程从基于IP的设计获益不多。除FPGA设计以外,都不能省略DRC、提取或时序、信号完整性,以及功率完整性的收敛。在这些领域中,仍留有太多的技巧和细节,如不同的约束、电源管理策略以及DFT(可测试设计)方案。这些差异可能只在集成后的芯片上才体现出来。不过,仍然存在着以IP为中心设计流的理想情况,这就是选择并嵌合起多个块、验证互连,然后按一个键就获得了最终设计。

这样一个流程要求非常训练有素的IP设计人员。de Geus认为:“乐高积木的智力只限于思考插头与插座,但这只走了一半。另一半是弄明白如何保持非常严格的公差,使插头与插座可以反复再三地工作,而不会卡住或松脱。”这也适用于以IP为中心流程的进一步自动化:能与门控起到同等作用的也许就是提高IP的标准化水平和创建技巧。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分