首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

如何为SoC设计选择IP核

如何为SoC设计选择IP核

如何为SoC设计选择IP核
SoC设计师常常需要仔细考虑以决定哪种IP核对一个给定的SoC项目最合适。他们必须决定内核的类型(软核或是硬核)、可交付使用内核和相关产品的质量、IP提供商的可靠性和承诺等。本文将就以上每个环节进行讨论,并为如何最好地评估竞争性IP核的特性提供指导。
IP核可以两种形式提供给客户:软核和硬核。两种方式都可使客户获得在功能上经过验证的设计。软核也被称为可综合内核,需要由客户进行综合并在其SoC上实现。而硬核已完全实现(完成了版图设计),可直接用于制造。(从技术上说,一种设计只有生产后才能实现。但是在此情况下,实现的意思是指安排布局并可直接投入生产)。SoC团队只需将硬核像一个单片集成电路片那样置入芯片即可。软核和硬核具有不同的问题和好处。
将IP核整合到一个芯片上需要很多步骤。这个过程是否能够很容易地完成,主要取决于提供的交付成果。另外,客户不仅必须对IP核进行评估,而且还要评估IP提供商。
软核与硬核的对比
1. 性能
由于软核没有实现,因此它天生在功能和实现方面比硬核更加灵活。另一方面,硬核开发者可能要花更多的时间来优化他们的硬核,因为它们要在很多设计中使用。因此,这使人们觉得硬核会提供更高的性能。
事实上,为那些最先进工艺设计的高端、全定制硬核确实能够提供比软核更好的性能。通过使用锁存、动态逻辑、三态信号、定制存储器等,全定制设计团队能实现比完全静态综合的设计更好的结果。对于需要达到现有工艺和设计技术极限性能的SoC来说,全定制硬核能够更好地满足这些要求。
然而,如果性能目标在一个软核范围内,那么硬核的优势就无关紧要了。SoC设计团队能够使用软核来满足性能要求,并利用其固有的灵活性优势。而随着工艺技术的进步,软核的最高频率限制也在提高,使它们成为更多SoC设计师的一种选择。在较低时钟频率下,硬核或许具有硅片面积方面的优势。但是情况往往并不是这样。硬核经常简单地使用ASIC的方法进行固化,使之不能提供速度上的优势。在其他情况下,全定制内核不能根据每一代工艺进行重新优化,所以削弱了频率和尺寸上的优势。
2. 技术独立和可移植性
软核的优势之一是技术独立的,也就是说,Verilog或VHDL不需要使用一种特定的工艺技术或标准的单元库。这意味着同一个IP核能够应用到多种设计中,或现有设计的下一代中。一些软核提供商采用使其内核技术上非独立的设计风格,但是这种方式看不到什么优势。
图1:受IP核影响的开发任务。
另一方面,硬核在技术上是非常特定的。事实上,如果代工厂改变其工艺参数或库,硬核可能就无**常工作。这就产生了一个风险,因为在工艺参数改变时,IP提供商需要重新对硬核进行验证。
硬核能够移植到新的工艺技术,但是重新优化全定制内核的工作既费事又昂贵。对于一些先进的微处理器内核,这可能要花两年或更长的时间。因此,硬核经常根据新的工艺进行光学调整。虽然这一方法既简单又快速,但是它减少了由设计团队针对现有工艺进行全定制优化的许多优势。
不仅如此,光学调整同时带来了另一个风险,因为它只能保证新的设计满足设计规则,而不能保证准确的时序或功能,而且重新全面验证经过光学调整的IP核是非常困难的。
               图1:受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设计和调试已经足够好了。只要最后运行周期精确模型,在开发过程中就可以从快速功能模型中受益。
继承事业,薪火相传
返回列表