SoC设计IP核选择策略
理器内核经常通过使用门控时钟电路来实现,但这种时钟不能与某些时钟布线工具很好配合。如果处理器内核可提供一种将所有门控时钟变为相等 的多路复用器(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团队在使用该内核时,将不得不忍受一个麻烦且容易发生错误的转换过程。
- Linux常见技术支持问题十一则(09-12)
- 基于嵌入式技术支持的感应按键设计(02-09)
- μC/GUI在基于NiosⅡ嵌入式开发平台的环境智能监控系统中的移植与应用(01-14)
- 基于Zynq的OLED驱动设计(10-04)
- 如何仿真IP核(06-06)
- LabVIEW FPGA代码模块设计(IP核)(06-06)