如何为SoC设计选择IP核

 我来答
huanglenzhi
推荐于2016-06-09 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517195
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
  SoC设计师常常需要仔细考虑以决定哪种IP核对一个给定的SoC项目最合适。他们必须决定内核的类型(软核或是硬核)、可交付使用内核和相关产品的质量、IP提供商的可靠性和承诺等。本文将就以上每个环节进行讨论,并为如何最好地评估竞争性IP核的特性提供指导。

  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核的一个关键要求。
力控科技
2024-08-19 广告
ForceSCADA是力控科技信创产品的重要组成部分,具备完全自主知识产权,支持部署在Linux桌面版、服务器版、嵌入式等系统架构下。使用ForceSCADA可以搭建创新性高、扩展性佳、融合度强的SCADA平台,进而构建高效、智能化的监控中... 点击进入详情页
本回答由力控科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式