IP核能够两种办法供给给客户:软核和硬核。两种办法都可使客户取得在功用上经过验证的规划。软核也被称为可归纳内核,需求由客户进行归纳并在其SoC上完结。而硬核已彻底完结(完结了地图规划),可直接用于制作。(从技能上说,一种规划只需出产后才干完结。可是在此状况下,完结的意思是指组织布局并可直接投入出产)。SoC团队只需将硬核像一个单片集成电路片那样置入芯片即可。软核和硬核具有不同的问题和优点。
将IP核整合到一个芯片上需求许多进程。这个进程是否能够很简略地完结,首要取决于供给的交给效果。别的,客户不只有必要对IP核进行评价,并且还要评价IP供给商。
软核与硬核的比照
1. 功用
由于软核没有完结,因而它天生在功用和完结方面比硬核愈加灵敏。另一方面,硬核开发者或许要花更多的时刻来优化他们的硬核,由于它们要在许多规划中运用。因而,这使人们觉得硬核会供给更高的功用。
事实上,为那些最先进工艺规划的高端、全定制硬核的确能够供给比软核更好的功用。经过运用锁存、动态逻辑、三态信号、定制存储器等,全定制规划团队能完结比彻底静态归纳的规划更好的效果。关于需求到达现有工艺和规划技能极限功用的SoC来说,全定制硬核能够更好地满意这些要求。
可是,假如功用方针在一个软核范围内,那么硬核的优势就无关紧要了。SoC规划团队能够运用软核来满意功用要求,并运用其固有的灵敏性优势。而跟着工艺技能的前进,软核的最高频率束缚也在进步,使它们成为更多SoC规划师的一种挑选。在较低时钟频率下,硬核或许具有硅片面积方面的优势。可是状况往往并不是这样。硬核常常简略地运用ASIC的办法进行固化,使之不能供给速度上的优势。在其他状况下,全定制内核不能依据每一代工艺进行从头优化,所以削弱了频率和尺度上的优势。
2. 技能独立和可移植性
软核的优势之一是技能独立的,也便是说,Verilog或VHDL不需求运用一种特定的工艺技能或规范的单元库。这意味着同一个IP核能够运用到多种规划中,或现有规划的下一代中。一些软核供给商选用使其内核技能上非独立的规划风格,可是这种办法看不到什么优势。
图1:受IP核影响的开发使命。
另一方面,硬核在技能上是十分特定的。事实上,假如代工厂改动其工艺参数或库,硬核或许就无法正常作业。这就产生了一个风险,由于在工艺参数改动时,IP供给商需求从头对硬核进行验证。
硬核能够移植到新的工艺技能,可是从头优化全定制内核的作业既费事又贵重。关于一些先进的微处理器内核,这或许要花两年或更长的时刻。因而,硬核常常依据新的工艺进行光学调整。尽管这一办法既简略又快速,可是它减少了由规划团队针对现有工艺进行全定制优化的许多优势。
不只如此,光学调整一起带来了另一个风险,由于它只能确保新的规划满意规划规矩,而不能确保准确的时序或功用,并且从头全面验证经过光学调整的IP核是十分困难的。
3. 速度/面积/功率优化
关于要完结的技能来说,硬核一般比可比较的软核运转速度更快。可是即便关于这单种技能来说,硬核也仅仅是针对一组方针而优化。假如方针是在合理的功用上使芯片面积更小,那么关于这种运用来说,为高度可调功用而优化的硬核或许就太大了。
软核是能够被“运用优化”的。为合适特定的嵌入式SoC规划,时序、面积和功率方针或许需求进行调整。例如:假如SoC运用200MHz的时钟,那么规划运转在250MHz的软IP内核能够改为准确地运转在200MHz上。这在得到更小尺度和更低功率的一起满意了规划束缚。
这种运用优化也适用于低层IO时序。软内核的IO束缚能够进行调整,以准确合作内核的运用环境。假如硬内核有推迟输出信号,SoC规划师简直无法改进时序。
假如SoC的速度、面积和功率方针与硬核的方针相符,那么硬核将极具竞争力。但关于大多数规划师来说,软核在为特定的SoC优化方面更具优势。
4. 可定制性
软核相对硬核还具有别的一个优势:编译时刻定制化。这些是完结之前的规划选项。
高速缓冲存储器的内存巨细便是一种常见的编译时刻用户定制项目。依据特定嵌入式运用所需的高速缓冲存储器的巨细,软核处理器能够准确地被装备。而硬核在这方面就不能被定制。
另一种在许多软核中运用的定制项目便是指令专用,或挑选性支撑某种特别指令。例如,一些SoC或许需求对外部协处理器的支撑。可是,在一些不运用这些特性的体系中,剩余的硬件可从软核中去掉,以节约面积和功率。
软核还能够包含完结装备参数。这是一种特别的编译时刻定制,可协助软核更好地合作SoC团队运用的规划风格。例如,微处理器内核常常经过运用门控时钟电路来完结,但这种时钟不能与某些时钟布线东西很好合作。假如处理器内核可供给一种将一切门控时钟变为持平 的多路复用器(MUX)的编译时刻设置,SoC团队可使完结更为简略。
5. 易于集成
软核很或许更简略被集成到SoC规划团队运用的流程中,除非内部规划小组现已完结了硬核。其原因是SoC规划团队将在他们认可的IP核周围添加RTL模块。这些内核看上去就像别的的SoC模块,也可像它们相同地完结。
另一方面,硬核看上去更像一个黑匣子RAM,特别是在它选用全定制技能完结时。这意味着硬核供给商将需求为该内核供给更多的黑匣子模型,使SoC规划师能够在其周围规划其模块。这自身就比运用软核更困难。例如,全定制硬核或许没有门级网表。这是由于该规划现已在晶体管级完结,而没有运用逻辑门。可是规划团队或许需求经过背注时序运转门级功用仿真,由于短少门级网表,这将难以进行。
附加供给物
一个有竞争力的软IP核不仅仅一个Verilog或VHDL源文件的调集。出于相同原因,一个好的硬核也不仅仅一个地图数据库。今日的IP核包含一系列可交给运用的供给物,可使SoC规划团队将IP核整合到他们的规划中。这些附加供给物的方针是使IP核尽或许简略地整合到规划流程的各个环节。
图1显现了选用不同IP核的SoC开发活动。这儿包含了软核和硬核都必需的一些可交给运用的供给物。
1. 文档创立
明晰和简练的文档是大多数技能产品的先决条件。可是,需求参阅IP核文档的人差异十分大,这使IP核技能文档创立面对十分大的应战。
在图1中,每一个开发活动都有不同的文档需求。例如,软件开发者需求了解硬件的可编程特性,但他们或许不关心它是怎样完结的。因而,一组好的文档可使软件开发者更简略发现他们所需的信息,而不致被许多无用的信息困扰。
最终,假如SoC团队要为能复用部分IP核文档的SoC创立文档,IP供给商应该供给可修正的源文件和引证权。
2. 接口查看器
SoC团队有必要规划逻辑,以便与不同信号和IP核协议进行接口。为了承认其规划是否正确,IP供给商能够供给接口查看器模块,以验证一切接口信号和协议的正确运转。它或许与承认不变的静态信号相同简略,也或许像验证多周期总线协议的正确运转相同杂乱。
这些查看器经过主动验证给定接口处理类型是否正确运转的作业,大大简化SoC团队的作业。在一个不合法处理的状况下,查看器应该陈述过错,使SoC规划师能够简略地查明有缺点的逻辑并扫除毛病。接口查看器有必要在SoC规划环境中准确作业。它们应该能够十分简略地整合到功用仿真中,而不是以一种实践硬件的办法呈现。
3. 协议制表器
IP供给商能够供给另一种交给效果使接口验证变得愈加简略,这便是协议制表器。这是一个监测接口处理的模块,可观察到各种特别状况。协议制表器保存一切可见的处理类型并陈述没被运转的“边沿”(corner case)。IP供给商有必要供给一个进行接口彻底验证所需的边角状况表。
在开发进程中,协议制表器将协助SoC团队决议哪些“边沿”状况需求持续验证。一旦开发完毕,它一起确保告诉SoC团队现已履行了一切必需的“边沿”状况验证。由于IP供给商对内核接口具有最佳的了解,这个“边沿”状况表将比SoC团队能够幻想的任何方案愈加完善。
4. RAM查看器
假如一个IP核具有SoC团队有必要编译和整合的内部随机存储器,在处理进程中有或许引进瑕疵。扫除由深度嵌入式RAM导致的毛病关于SoC团队是一件十分困难的作业,由于它常常触及经过内核模块盯梢毛病的作业。RAM查看器能够大大简化扫除RAM模块导致的毛病的作业。(当SoC团队不得不经过一个IP核来扫除毛病时,这是一个十分糟的状况。他们应该能够信任它的正确运转。)
5. 快速仿真模型
关于SoC规划师来说,用一个大型IP核的RTL仿真完好的SoC或许十分缓慢。假如IP供给商能够供给一个周期准确的内核快速功用模型,客户将从更快速仿真、更快速调试及更少地运用仿真授权中获益。即便是一个非周期准确的模型,关于大多数SoC规划和调试现已满足好了。只需最终运转周期准确模型,在开发进程中就能够从快速功用模型中获益。
6. EDA东西支撑
另一个内核质量指标是EDA东西的支撑状况。由于不同规划团队或许运用不同的东西,支撑多种EDA东西的多种办法的可交给运用效果是现在先进内核常常能供给的。
例如,一个IP核运用Verilog规划而成,但那些运用根据VHDL的EDA东西和办法的客户仍会要求VHDL。假如一个内核只针对Verilog,那么SoC团队在运用该内核时,将不得不忍耐一个费事且简略发生过错的转化进程。
此外,IP供给商应该供给比需求格局更多的东西。不同的EDA东西或许有规范格局的不同完结办法。在以上的比如中,IP供给商不能仅为Verilog客户供给Verilog RTL,它有必要支撑客户运用特定的Verilog仿真器。不然,该客户或许要调试与IP供给商所用的稍微不同的Verilog仿真器相关的规划问题。
这个概念实践上适用于一切交给效果。关于硬核,这个概念相同可在完结阶段运用。硬核有必要以一种被SoC团队后端东西所支撑的办法供给。并且IP供给商有必要支撑客户运用的特别后端东西。
对硬核来说,这个概念在完结阶段相同适用。硬核有必要以能被SoC团队后端东西支撑的办法供给,并且IP供给商有必要支撑运用特定的后端东西。
7. EDA脚本实例
为了协助快速打开各种规划活动,IP供给商应该供给所支撑EDA东西的实例脚本。这是IP供给商协助SoC团队有效地运用IP核进行体系规划的另一种办法。该脚本或许如makefiles相同简略,可完结汇编功用仿真器。这些脚本也或许如一个全套的、针对功用回归履行的主动化规划脚本相同杂乱。在任何状况下,实例脚本关于SoC规划师来说总是很有用。
关于软核来说,实例归纳脚本简直是必要的。至少它们应该供给顶层束缚、毛病途径和多周期途径。假如或许,应该一起供给完结若干工业规范归纳办法学的脚本。当然,这些实例脚本越简略,关于SoC规划师来说就越简略了解、进行修正并集成到他们的流程中。
8. 功用内核验证
尽管SoC规划师不会修正软IP核的RTL规划,可是他们的确会改动作为芯片规划惯例部分的一些功用。这样的比如包含扫描链接刺进、时钟缓存和RAM BIST集成。SoC规划团队需求验证这些改动不会对内核的正确运转产生影响。
验证新规划在功用上与曾经规划没有改动的一种办法是选用IP供给商供给的测验基准和测验套件,以全面验证内核是否正确运转。不幸的是,关于许多内核来说,完好的测验套件太大了,以至于不能作为IP核的一部分来供给。因而,大多数IP供给商选用完好验证套件组的子集,它相同能够验证运转。大多数状况下,关于发现那些由以上规划改变类型引起的过错来说,这个子集现已满足了。
可是,办法验证东西关于确保正确运转是一个更彻底的办法。这些东西可准确地验证新规划与老规划的相同之处。支撑办法验证东西可使SoC团队无需运转门级回归。
9. 软件协同开发东西
为新体系开发软件的规范办法是,首要出产硬件样片,然后开发运转在上面的软件。可是,在许多状况下这延长了产品上市时刻,因而软件开发常常与硬件开发平行进行。
软件开发比硬件开发需求快得多的体系仿真。因而IP供给商有必要供给一个十分快的IP核功用模型。这为低层固件的开发供给了满足的功用。
关于更高的仿真速度,有时会运用硬件逻辑仿真器,它可比纯仿真快一个数量级(尽管这依然比实践硬件慢2至3个数量级)。这些东西十分难用,并且需求特别的归纳。关于方案进行硬件和软件协同开发的SoC规划团队来说,支撑这些技能是对IP核的一个要害要求。
评价IP供给商
1. 是否规划成可复用?
例如,一个未对IP核产品做出彻底许诺的IP供给商,它的产品或许仅仅将曾经的规划从头封包成IP核。而一家仔细致力于构建高质量内核的公司从一开端就把可复用作为规划理念。
首要,留心那些其源代码为全定制硬核的软核。由于这些原始规划不是针对可归纳的,与针对可归纳而规划的产品比较,其功用较差。在创立一个硬核时,能够根据已知完结风格进行优化。可是,关于一个软核,不该选用这种投机取巧的办法,由于它们或许导致非功用性的或非抱负的完结。
在寻觅一个软核时,需求留意的另一个问题是存放的接口信号。经过存放IO,内部逻辑在时序上可独立于SoC规划团队的任何方案。并且,它易于完结时序的可猜测性,并为SoC规划师供给十分好的时序束缚。一切这些使得SoC规划师愈加轻松。
一个从一开端就针对可复用性而规划的软核常常具有更多的装备挑选,并且在履行中有更好的灵敏性。它一起很或许考虑用于多种规划环境。一个没有考虑可复用的规划将在功用和完结方面缺少灵敏性。
2. 完好的产品线
好的IP供给商的另一个标志是具有完好的IP核产品线。假如你挑选软核,应该承认该公司供给的是考虑了未来产品改进的完好软核产品线。假如你挑选硬核,应承认它可供给一切你将运用的工艺技能,他们是否方案扩展其供给的软核产品?他们怎么方案将硬核移植到新一代工艺?
3. 保护与支撑状况
产品保护和支撑的质量不是IP核特有的挑选要素,可是应当心那些缺少全力支撑的新式公司。即便是老练的公司,保护IP核所必需的根底架构必定程度上也是专门的。以下是留意事项汇总:
* 这家公司是否有一个明晰地为用户供给文档的办法,以协助回答问题;
* 支撑SoC部队的费用怎么(你是否存在失掉支撑的风险);
* 这家公司能否坦白地发表规划中的缺点;
* 这家公司发布修正缺点新版别的频率怎么;
* IP供给商是否发布保护版别,为IP核添加新的功用或其他效果(如供给更多EDA东西支撑);
* 一旦需求技能支撑,这家公司的反应怎么?
* 假如技能支撑反应时刻太慢,这个问题能改进吗?
* 第一线的技能支撑人员的本质怎么?
在许多状况下,技能支撑的质量并不是开始决议购买IP内核的要素。可是在规划部队十分需求协助的时分,支撑不到位或许变成一个首要问题。最佳的技能支撑是项目成功的必要要素。