[原创] 软核 硬核 固核

白丁   2016-6-29 23:10 楼主
IP(Intellectual Property)就是常说的知识产权。美国Dataquest咨询公司将半导体产业的IP定义为用于ASIC、ASSP和PLD等当中,并且是预先设计好的电路模块。IP核模块有行为(Behavior)、结构(Structure)和物理(Physical)三级不同程度的设计,对应描述功能行为的不同分为三类,即软核(Soft IP Core)、完成结构描述的固核(Firm IP Core)和基于物理描述并经过工艺验证的硬核(Hard IP Core)。



1. 软核(Soft IP Core)

软核在EDA 设计领域指的是综合之前的寄存器传输级(RTL) 模型;具体在FPGA 设计中指的是对电路的硬件语言描述,包括逻辑描述、网表和帮助文档等。软核只经过功能仿真,需要经过综合以及布局布线才能使用。
其优点是灵活性高、可移植性强,允许用户自配置;缺点是对模块的预测性较低,在后续设计中存在发生错误的可能性,有一定的设计风险。软核是IP 核应用最广泛的形式。


IP软核通常是用HDL文本形式提交给用户,它经过RTL级设计优化和功能验证,但其中不含有任何具体的物理信息。据此,用户可以综合出正确的门电路级设计网表,并可以进行后续的结构设计,具有很大的灵活性,借助于EDA综合工具可以很容易地与其他外部逻辑电路合成一体,根据各种不同半导体工艺,设计成具有不同性能的器件。软IP内核也称为虚拟组件(VC-Virtual Component)。


training

回复评论 (9)

2. 固核(Firm IP Core)

固核在EDA 设计领域指的是带有平面规划信息的网表;具体在FPGA 设计中可以看做带有布局规划的软核,通常以RTL 代码和对应具体工艺网表的混合形式提供。将RTL 描述结合具体标准单元库进行综合优化设计,形
成门级网表,再通过布局布线工具即可使用。和软核相比,固核的设计灵活性稍差,但在可靠性上有较大提高。
目前,固核也是IP 核的主流形式之一。


IP固核的设计程度则是介于软核和硬核之间,除了完成软核所有的设计外,还完成了门级电路综合和时序仿真等设计环节。一般以门级电路网表的形式提供给用户。



training
点赞  2016-6-29 23:12
3. 硬核 (Hard IP Core)    硬核在EDA设计领域指经过验证的设计版图 ;具体在 FPGA 设计中指布局和工艺固定、经过前端和后端验证的设计,设计人员不能对其修改。不能修改的原因有两个 :首先是系统设计对各个模块的时序要求很严格,不允许打乱已有的物理版图 ;其次是保护知识产权的要求,不允许设计人员对其有任何改动。IP 硬核的不许修改特点使其复用有一定的困难,因此只能用于某些特定应用,使用范围较窄。


IP硬核是基于半导体工艺的物理设计,已有固定的拓扑布局和具体工艺,并已经过工艺验证,具有可保证的性能。其提供给用户的形式是电路物理结构掩模版图和全套工艺文件,是可以拿来就用的全套技术。

training
点赞  2016-6-29 23:14
如何选择IP模块?
选择IP模块设计时首先要考虑的因素是IP与目标系统的配合程度。一般来说,在进行集成之前,最好选择那些无需修改的IP模块。但是如今的大多数情况是设计人员在获得IP模块后必须进行修改,有时修改的范围包括各个设计层次上的IP模型。这种修改会耗费大量的时间和资源,不仅会耽误产品的研发进度,还会给整个设计流程引入风险。有时可以通过牺牲一点芯片面积或功能,以尽量少的修改IP设计,使其能直接集成到系统芯片设计中。
选择IP模块时必须考虑的另外一个因素是:评估IP模块的品质、集成的方便程度以及可重用性,并考虑IP开发者提供的技术支持程度等。如使用手册内容是否完备,是否提供完整的设计和验证环境,是否有成功集成的示范工程,接口定义标准的遵从程度,未来发展升级的可能性,获取IP授权的效率以及合作厂商的可信赖程度等多种因素。


training
点赞  2016-6-29 23:15
  IP模块的评估
  是指通过一系列完整的检查规则来系统地检查IP的设计。评测分为系统设计、编码、综合和参数验证等不同部分进行,并根据评测规则的重要程度为不同的规则检查分配不同的权值。这样检查之后,就可以直观地看出整个设计的可重用程度,以帮助体系架构设计工程师针对性能、规模、成本和功耗等不同方面来定制和评估IP模块设计。目前工业界比较具有影响力的评测标准是由Synopsys和Mentor联合开发推行的基于RMM的OpenMORE评测标准。

training
点赞  2016-6-29 23:16
软核包括逻辑描述(RTL和门级Verilog HDL或VHDL代码)、器件内部连线表和不能用台式仪器和信号仪、示波器、电流计和电压表等进行测试的可测性设计。软核可经用户修改,以实现所需要的电路系统。它主要用于接口、编码、译码、算法和信道加密等对速度性能要求范围较宽的复杂系统。
  硬核的设计与工艺已完成而不能更改。它的产品如存储器、模拟电路和总线器件。用户得到的硬核仅是产品功能而不是产品设计,因此,硬核的设计与制造厂商能对它实行全权控制,它的知识产权的保护也较简单。常用的硬核有存储器、模拟器件和总线器件等。
  固核是一种介于软核与硬核之间的IP。它既不独立,也不固定,可根据用户要求作部分修改。固核允许用户重新定义关键的性能参数,内部连线表有的可以重新优化,其使用流程同软核。如内部连线表不能优化时,使用流程与硬核相同。
  软件开发工作量相对低,因此一般开发成本较低,柔性大,如可增加特性或选择工艺并容易从一个工艺向另一个工艺转移,且性能可提高,但可预测性差。硬核的开发成本最高,柔性小,但性能一定并具有可预测性。更重要的是上市时间短,易于使用。固核介于硬核与软核之间,IP用户将从实用、性能、价格、上市时间等各种因素综合考虑选择IP。
  软核和硬核的设计工作量、设计预测性和性能的差异是由它们不同的设计流程所决定的。

training
点赞  2016-6-29 23:16
软核与硬核的优缺点比较   效能   由于软核并未完成建置(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时序部份也可针对应用做
最佳化的调整。软核的I/O速度可配合核心所处的环境进行调整。反之,若硬核的输出讯号较为迟缓,SoC研发人员就没有太多可以改善这类时序问题的方法。  若SoC的速度、尺寸以及功耗率即为最初硬核的目标,则这套硬核就能具备竞争力。但是对大多数的设计而言,软核较能针对特殊SoC进行最佳化调校。   客制化弹性   软核另一项超越硬核的优势就是:编译当时才做客制化,在建置之前,可自行选择许多设计选项。   高速缓存大小是编译时常见的一种客制化项目。软核处理器让使用者选择其特定嵌入式系统所需的快取记忆容量。而硬核则无法进行这种客制化设定。   许多软核具有的另一种客制化设计就是自行定义指令集,也就是自行支持特定指令的功能。例如若SoC有特殊需要,可使用外部协同处理器,有些系统或许需要运用具有压缩功能的指令码,但若系统不需要这些功能时,这些多余硬件就可从软核中移除,以节省芯片面积与功耗。   软核同时也有一些建置组态参数,这些特殊的客制化参数能使软核进一步融入SoC团队所进行的设计环境。例如,微处理器核心通常运用逻辑闸频率电路进行建置,但这种频率可能无法搭配部份频率路由工具。若处理器核心有提供编译时的设定功能,能将所有逻辑闸频率变更成等效的再流通MUX(多任务)组件,就能减少SoC团队建置过程中所遇到的困难。   整合的难易度   除非硬核由内部研发小组所建置,否则软核通常比较容易整合至作业流程。其原因是SoC研发团队将在获得授权的IP核心周围加入各种RTL模块。此时核心就如同SoC中的其它模块,亦能采用相同的建置处理方式。   硬核比较像一个黑箱RAM组件(black-box RAM),尤其是采用全客制化技术所建置的核心。这代表硬核供货商须提供更多的黑箱式核心模型,让SoC研发业者能针对这些处理器设计其模块。这种流程应用难度原本就高于软核。例如,一套全客制化的硬核可能没有逻辑闸层级的电路清单(netlist)。这是因为设计工作是在晶体管层级中进行,并未涉及逻辑闸。但设计团队可能需要做含有回馈(back-annotated)时序机制的逻辑闸层级功能仿真测试,此时若缺乏逻辑闸层级的电路图就很难进行这种模拟。 本帖最后由 白丁 于 2016-6-29 23:23 编辑
training
点赞  2016-6-29 23:18
    软核通常以可综合的HDL提供,因此具有较高的灵活性,并与具体的实现工艺无关,其主要缺点是缺乏对时序、面积和功耗的预见性。由于软核是以源代码的形式提供,尽管源代码可以采用加密方法,但其知识产权保护问题不容忽视。硬核则以经过完全的布局布线的网表形式提供,这种硬核既具有可预见性,同时还可以针对特定工艺或购买商进行功耗和尺寸上的优化。尽管硬核由于缺乏灵活性而可移植性差,但由于无须提供寄存器转移级(RTL)文件,因而更易于实现IP保护。                                                               
    固核则是软核和硬核的折衷。大多数应用于FPGA的IP内核均为软核,软核有助于用户调节参数并增强可复用性。软核通常以加密形式提供,这样实际的RTL对用户是不可见的,但布局和布线灵活。在这些加密的软核中,如果对内核进行了参数化,那么用户就可通过头文件或图形用户接口(GUI)方便地对参数进行操作。对于那些对时序要求严格的内核(如PCI接口内核),可预布线特定信号或分配特定的布线资源,以满足时序要求。这些内核可归类为固核,由于内核是预先设计的代码模块,因此这有可能影响包含该内核的整体设计。由于内核的建立(setup)、保持时间和握手信号都可能是固定的,因此其它电路的设计时都必须考虑与该内核进行正确地接口。如果内核具有固定布局或部分固定的布局,那么这还将影响其它电路的布局。

training
点赞  2016-6-29 23:19
那么问题来了,altera soc中的arm是属于什么呢?
training
点赞  2016-6-29 23:20
多谢分享,写的挺全面的!!!
阀门 空压机保养
点赞  2016-6-29 23:28
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复