今天,系统级芯片(SoC)设计师在产品开发中面临的最重要的问题之一就是如何选择一个知识产权(IP)内核。它能够影响产品的性能和质量,以及上市时间和盈利能力。然而SoC设计师在选择一个内核的时候面临着诸多挑战。他们需要仔细考虑以决定哪种内核对特定的SoC最合适。他们必须决定内核的类型(软内核或是硬内核)、可交付成果的质量、可靠性和IP提供商的承诺等等。本文将就以上每个环节进行讨论,并为如何最好地评估多个竞争的IP内核的特性提供一个指导。
引言
芯片生产技术的持续进步已经使得今天设计工程师拥有了大量的芯片资源。但不幸的是,设计团队设计电路的能力没有跟上发展的步伐。这种不平衡催生了IP内核产业。IP内核可使设计团队通过整合预制的模块快速创建大量的系统级芯片(SoCs)设计,而这些模块不需要任何设计或验证工作。然而,这一新的设计模式也伴随着一些严峻的挑战。根据内核的不同,它们能够被最小化或者被恶化。
首先,IP内核可以以两种形式提供给客户:软内核和硬内核。两种内核的提供方式都可以使客户获得在功能方面经过验证的设计。软内核,也被称为可合成内核,需要由客户集成在其SoC上实现。另一方面,硬内核可以完全实现和直接投入生产。(从技术上说,一种设计只有生产后才能实现。但是在此情况下,实现的意思是指安排布局并可直接投入生产)。SoC团队只需将硬内核像一个单片集成电路片那样置入芯片即可。软内核和硬内核具有不同的问题和好处,下面将逐一详细介绍。
IP内核启动了SoC设计工作中一个关键部分。利用验证的设计,设计团队能够以更少的时间、使用更少的设计及电子设计自动化(EDA)资源完成其芯片设计。然而,将内核整合到一个芯片上需要很多步骤。这个过程是否能够很容易地完成,主要取决于提供的交付成果。这篇文章详细介绍了一些能够非常容易地将内核集成到SoC设计过程的所有步骤的附属交付成果。
最后,还需要考虑IP供应商。IP产业刚刚起步,存在许多低质量甚至一些有缺陷的产品,而且它们还没有被限制开发。客户不仅必须对IP内核进行评估,而且还要评估IP提供商。
软内核与硬内核的对比
我们来分析一下两者的优势与不足:
性能
由于软内核不用执行,因此它在功能和实现方面比硬内核更加灵活。另一方面,硬内核开发者能够花更多的时间来优化它们的实现,因为它们能够在很多设计中使用。因此,这使人们觉得硬内核能够提供更高的性能。
事实上,为那些最先进工艺设计的高端、全定制硬内核确实能够提供比软内核更好的性能表现。通过使用锁存、动态逻辑、三态信号、定制存储器等,全定制设计组能够获得比完全静态合成的设计更好的结果。对于需要达到现有工艺和设计技术极限性能的SoC来说,全定制硬内核能够更好地的满足这些要求。
然而,如果性能目标只是在一个软内核范围内,那么硬内核潜在性能优势就无关紧要了。SoC设计团队能够使用软内核满足性能要求,并利用其内在灵活性的优势。(随着工艺技术的进步,软内核的最高频率限制也在提高,使它们成为了更多SoC设计师的选择。)在较低时钟频率下,硬内核或许可以提供芯片尺寸方面的优势。但是情况往往并不是这样。硬内核经常简单地使用ASIC的方法进行固化,使之不能提供速度上的优势。在其他情况下,全定制内核不能根据每一代工艺进行重新优化,所以减小了频率和尺寸上的优势。
技术独立和简化
软内核的优势之一是采用独立的技术。这就是说,高水平的Verilog或VHDL不需要使用一种特定的工艺技术或标准的单元程序库。这意味着同一个IP内核能够应用到多种设计,或现有设计的下一代产品中。(一些软内核提供商利用使客户依赖其内核技术的设计方式,但是这种方式的好处并不明显。)
另一方面,硬内核是非常特殊的技术。事实上,如果代工厂改变其工艺参数或库函数,随着工艺的改变硬内核可能无法正常工作。这就产生了一个风险,因为在工艺参数改变时,IP提供商需要重新对硬内核进行验证。
硬内核能够采用新的工艺技术,但是重新优化全定制内核的工作既费事又昂贵。而对于一些先进的微处理器内核,这可能要花两年或更长的时间。因此,硬内核经常根据新的工艺进行光学调整。虽然这一方式既简单又快速,但是它减少了由设计团队为现有工艺定制优化的许多优势。
不仅如此,光学调整同时带来了另一个风险,因为它只能保证新的设计满足设计规则,而不能保证准确的时序或功能。因为光学调整是一条设计捷径,全面重新验证经过光学调整的IP内核是非常困难的。
速度/尺寸/功率优化
硬内核的IP提供商执行硬内核时先要进行一次优化。因为内核只被优化一次,IP提供商能够承担主要的资源成本。因而对于一种技术来说,硬内核经常比可比较的软内核运行的速度更快。但是即使在这种技术中,硬内核仅仅是针对一组目标而优化的。如果目标是在合理的性能上使芯片尺寸更小,那么,对于这种应用来说,为高度可调性能而优化的硬内核就可能太大了。
另一方面,软内核能够被应用优化。为适合特定的嵌入式SoC设计,时序、尺寸和功率目标可能需要进行调整。例如:如果SoC使用200MHz时钟,那么设计运行在250MHz的软IP内核可能需要改为准确地运行在200MHz上。这可在得到更小尺寸和更低功率的同时满足设计要求。
这种应用优化同时适用于低层IO时序。软内核的IO限制可以进行调整,以准确配合内核的使用环境。如果硬内核有延迟输出信号,SoC设计师几乎无法改善时序。
如果SoC的速度、尺寸和功率目标与硬内核的目标相符,那么硬内核将极具竞争力。但对于大多数设计师来说,软内核在特定的SoC优化方面更具优势。
用户定制能力
软内核相对硬内核还具有另外一个优势:编译时间用户定制化。这些是执行之前的设计选择。
高速缓冲存储器的内存大小就是一种常见的编译时间用户定制化。软内核处理器能够精确地根据特殊嵌入式应用所需的高速缓冲存储器的大小进行配置。而硬内核在这方面就不能定制化。
另一种在许多软内核中应用的定制化是指令专用,或选择性支持某种特殊指令。例如,一些系统可能需要对扩展协处理器的支持。然而,在一些不使用这些特性的系统中,软内核中多余的硬件可以去掉,以节省空间和功率。
软内核也可以包括执行配置参数。它们是一种特殊的编译时间用户定制化,可帮助软内核更好地配合SoC团队使用的设计方式。例如,微处理器内核经常通过使用门控时钟电路实现。然而,这种时钟不能与某些时钟路由工具很好配合。如果处理器内核可提供一种将所有门控时钟变为相等的重复多工器的编译时间设置,将使SoC团队的实现更为容易。
整合的便利
除非内部设计组已经实现了硬内核,软内核能够更容易集成到SoC设计团队使用的流程中。其原因是SoC设计团队将在他们认可的IP内核周围添加RTL模块。这些内核看上去就像其他SoC模块,并可像它们一样地实现。
另一方面,硬内核看上去更像一个黑匣子随机存储器,特别是在它通过全定制技术实现时。这意味着硬内核提供商将需要为该内核提供更多的黑匣子模型,使SoC设计师能够在其周围设计其模块。这本身就比使用软内核更困难。例如,全定制硬内核也许没有门级排线表。这是因为该设计已经在晶体管层完成,而没有使用逻辑门。但是设计团队可能需要通过逆向注解时序运行门级功能仿真。因为缺少门级排线表,这将非常难以实现。
附属材料
一个有竞争力的软IP内核不只是一个Verilog或VHDL源文件的集合。出于同样原因,一个好的硬内核也不只是一个设计图数据库。今天的IP内核包含一套交付成果,它们允许SoC设计团队将IP内核整合到他们的设计中。这些附属交付成果的目的是尽可能容易地将IP内核整合到设计流程的各个环节。
图1显示了采用不同IP内核的SoC开发活动。这部分讨论了一些对软内核和硬内核都必需的交付成果。
文件
清晰和简练的文件是大多数技术产品的先决条件。然而,需要参考IP内核文件的人的差异非常大,这对于IP内核技术文件具有非常大的挑战性。
在图1中,每一个开发活动都有不同的文件需求。例如,软件开发者需要了解硬件的可编程特性,但他们可能不关心它是怎样实现的。因此,一组好的文件可使软件开发者更容易发现他们所需的信息,而不致被大量无用的信息困扰。
最后,如果SoC团队需要为能重复使用IP内核文件的SoC创建文件,IP提供商应该提供可编辑的源文件和SoC文件的引用权。