软核、硬核以及固核的概念
IP(Intelligent Property)核是具有知识产权核的集成电路芯核总称,是经过反复验证过的、具有特定功能的宏模块,与芯片制造工艺无关,可以移植到不同的半导体工艺中。到了SOC阶段,IP核设计已成为ASIC电路设计公司和FPGA提供商的重要任务,也是其实力体现。对于FPGA开发软件,其提供的IP核越丰富,用户的设计就越方便,其市场占用率就越高。目前,IP核已经变成系统设计的基本单元,并作为独立设计成果被交换、转让和销售。
从IP核的提供方式上,通常将其分为软核、硬核和固核这3类。从完成IP核所花费的成本来讲,硬核代价最大;从使用灵活性来讲,软核的可复用使用性最高。
1. 软核
软核在EDA设计领域指的是综合之前的寄存器传输级(RTL)模型;具体在FPGA设计中指的是对电路的硬件语言描述,包括逻辑描述、网表和帮助文档等。软核只经过功能仿真,需要经过综合以及布局布线才能使用。其优点是灵活性高、可移植性强,允许用户自配置;缺点是对模块的预测性较低,在后续设计中存在发生错误的可能性,有一定的设计风险。软核是IP核应用最广泛的形式。
2. 固核
固核在EDA设计领域指的是带有平面规划信息的网表;具体在FPGA设计中可以看做带有布局规划的软核,通常以RTL代码和对应具体工艺网表的混合形式提供。将RTL描述结合具体标准单元库进行综合优化设计,形成门级网表,再通过布局布线工具即可使用。和软核相比,固核的设计灵活性稍差,但在可靠性上有较大提高。目前,固核也是IP核的主流形式之一。
3. 硬核
硬核在EDA设计领域指经过验证的设计版图;具体在FPGA设计中指布局和工艺固定、经过前端和后端验证的设计,设计人员不能对其修改。不能修改的原因有两个:首先是系统设计对各个模块的时序要求很严格,不允许打乱已有的物理版图;其次是保护知识产权的要求,不允许设计人员对其有任何改动。IP硬核的不许修改特点使其复用有一定的困难,因此只能用于某些特定应用,使用范围较窄。
SoC研发业者现今在制定产品研发决策时,最重要的一项因素就是选择一套适合的硅智产(IP)核心(CPU)。这方面的决定会影响产品效能与质量、产品上市时程、以及获利绩效。但SoC研发业者在选择核心时会面临许多挑战,在判断何种核心最适合某种SoC时,更须谨慎的考虑,业者须决定核心的种类(软核或硬核)、技术数据的质量、以及IP供货商的可靠度与专业性。本文将探讨每项领域并提供相关指南,介绍如何评估各种IP核心的特色。
芯片制造技术不断改进,为现今的设计工程师提供很多可使用的硅组件与设备。然而,工程师在设计电路方面的能力并未跟上制程技术的发展脚步以应用这些新增的硅组件。这种不平衡现象造就现今的IP核心产业。IP核心让研发团队仅须整合预先制作的功能区块,不须进行任何设计或检验作业,即能迅速开发大型的系统单芯片设计。
但这种新的研发型态亦衍生许多困难的挑战。视核心种类的不同,这些挑战的困难度可高可低。
首先,IP核心可透过软核或硬核两种型式交付到客户的手上。不论何种型式,顾客都会收到一套功能上已检验过的设计方案。软核亦称为可合成核心,可经由顾客合成后再建置到其SoC中。
IP核心启动(jump-starts)整体SoC研发流程的一部份。研发团队取得已预先检验的设计方案,使他们能以更少的时间、更少的工程与EDA资源下完成芯片的研发。但是,将核心整合至芯片需要进行许多步骤,步骤的难易度视厂商提供的整体技术文件与支持而定。本文将详细介绍让客户能轻易将核心整合至各个SoC研发阶段的技术数据与技术支持。
最后,顾客须考虑IP厂商。IP产业仍处在萌芽阶段,市面上存有许多良莠不齐的产品,且不仅是刚成立的新业者才会提供这类方案。因此,顾客不仅须评估IP核心,亦须评估IP厂商的整体能力。
研发SoC,核心CPU技术该挑软?选硬?这是一个如何选择的问题。因此,从本周起,技术论坛将针对此议题进行一系列的探讨,本篇先就两者的优劣势进行比较。
软核与硬核的优缺点比较
效能
由于软核并未完成建置(Implement),故比硬核在功能与建置方面拥有更高的弹性。另一方面,因为这些核心会被应用在许多设计方案中,所以硬核研发业者能花更多的时间针对其建置作业进行最佳化。因此一般人都有硬核能提供较高效能的成见。
事实上,针对大多数先进制程所设计的完全客制化高阶硬核,的确提供比软核更优越的效能。由运用latch(拴锁)型开关电路、动态逻辑、三相讯号、客制化内存等组件,完全客制化可达到超越完全静态合成设计方案的效能。对于需要超越现有制程与研发技术效能极限的SoC而言,完全客制化的硬核较能满足其需求。
但若效能目标落在软核的支持范围内,则硬核的优势就无关紧要。SoC研发团队可利用软核先天俱有的弹性满足其效能目标(随着制程技术持续改进,软核的最高频率亦会随之提高,让它们成为更多SoC设计方案的理想选择。)
即使在较低的频率频率下,硬核亦能提供硅组件空间上的优势。但这种优势并非永远存在。通常硬核运用ASIC型态的设计技术进行硬型化(hardened),这种流程无法在速度上产生优势。在其它方面,完全客制化的核心无法针对每个制程世代重新进行最佳化调校,因而消弭在频率与尺寸上的优势。
制程技术独立性与移植弹性
软核的其中一项优点就是制程技术独立性。高阶的Verilog或VHDL程序不需要运用某一特定的制程技术或标准的单元库(cell library)。这意谓同一套IP核心可重复应用在多种设计,或是未来新世代的设计方案中。(部份软核IP供货商开发出针对特定制程的方案,让其核心不具制程技术的独立性,但这种模式的优点尚不明确)。
另一方面,硬核则具有相当高的制程技术特定性。事实上,若晶圆厂商变更其制程参数或单元库变量(cell library factor),硬核有可能就无法正常运作。因为IP供货商在制程参数改变后,须重新检验硬核,所以这种特性即衍生出运用上的风险。
硬核可移植到新的制程技术,但须投入相当可观的心力与成本来重新进行最佳化调校。对于某些先进的微处理器核心而言,须耗费两年甚至更长的时间。因此,硬核的尺寸通常会针对新制程等比例缩小。这种方法虽简单且迅速,但可能减低研发团队针对最初制程进行的最佳客制化效益。
此外,光学等比例缩小的作法会衍生额外的风险,因为它仅保证新设计能符合设计规则,但不保证正确的时序或功能。由于光学比例缩小是超快捷方式式的设计模式,故业者在重新检验这类IP核心时会面临很大的困难。
事实上,软核可能是针对单一制程技术与单元库为设计依据,设计本身与此一技术无关。针对制程技术与单元库提供最佳的效能,类似的技术可能达到接近最佳化的成效,但是差异性较大的技术(例如搭配速度较慢的RAM)可能就无法达到相同的结果。此种现象并非绝对重要,所以软核在最佳化的弹性方面优于等比例光学缩小的硬核。
速度╱尺寸╱功耗最佳化调校
硬核在IP供货商进行建置时已做了一次最佳化。因核心仅进行一次最佳化,故IP供货商可投入较多的资源。因此,硬核的速度通常高于采用相同建置技术的软核。即使运用单一技术,硬核仅是锁定一个最佳化目标。若希望在合理的效能下降低芯片使用面积,则进行大幅效能最佳化的硬核,其面积可能过大。
相反的,软核能进行「应用最佳化」的调校。时序、尺寸以及功耗率目标可机动的调整,以配合特定的嵌入式SoC设计方案。例如,若SoC运用200MHz的频率,则原本为250MHz的IP软核应将运作频率调整为200MHz。这种作法能减少使用面积与功耗,同时也符合相关的设计要求。
低层级的I/O时序部份也可针对应用做
若SoC的速度、尺寸以及功耗率即为最初硬核的目标,则这套硬核就能具备竞争力。但是对大多数的设计而言,软核较能针对特殊SoC进行最佳化调校。
客制化弹性
软核另一项超越硬核的优势就是:编译当时才做客制化,在建置之前,可自行选择许多设计选项。
高速缓存大小是编译时常见的一种客制化项目。软核处理器让使用者选择其特定嵌入式系统所需的快取记忆容量。而硬核则无法进行这种客制化设定。
许多软核具有的另一种客制化设计就是自行定义指令集,也就是自行支持特定指令的功能。例如若SoC有特殊需要,可使用外部协同处理器,有些系统或许需要运用具有压缩功能的指令码,但若系统不需要这些功能时,这些多余硬件就可从软核中移除,以节省芯片面积与功耗。
软核同时也有一些建置组态参数,这些特殊的客制化参数能使软核进一步融入SoC团队所进行的设计环境。例如,微处理器核心通常运用逻辑闸频率电路进行建置,但这种频率可能无法搭配部份频率路由工具。若处理器核心有提供编译时的设定功能,能将所有逻辑闸频率变更成等效的再流通MUX(多任务)组件,就能减少SoC团队建置过程中所遇到的困难。
整合的难易度
除非硬核由内部研发小组所建置,否则软核通常比较容易整合至作业流程。其原因是SoC研发团队将在获得授权的IP核心周围加入各种RTL模块。此时核心就如同SoC中的其它模块,亦能采用相同的建置处理方式。
硬核比较像一个黑箱RAM组件(black-box RAM),尤其是采用全客制化技术所建置的核心。这代表硬核供货商须提供更多的黑箱式核心模型,让SoC研发业者能针对这些处理器设计其模块。这种流程应用难度原本就高于软核。例如,一套全客制化的硬核可能没有逻辑闸层级的电路清单(netlist)。这是因为设计工作是在晶体管层级中进行,并未涉及逻辑闸。但设计团队可能需要做含有回馈(back-annotated)时序机制的逻辑闸层级功能仿真测试,此时若缺乏逻辑闸层级的电路图就很难进行这种模拟。