IP核及IP复用
IP(Intellectual Property)核,也称知识产权核。IP核是己经预先设计好的、并且经过实际验证的具有特定功能的功能模块,是被标准化的、可重用的硬件资源,IP核一般包含以下三层含义:
(1)IP核是一些设计好的功能模块,购买一个IP核所得到的只是一些设计数据,而不是实际芯片;
(2)IP核必须经过实际验证以确保IP核性能可靠,最好是曾经在芯片设计中被成功使用过的,或者是经过某种可编程器件如验证过的设计;
(3)IP核必须经过性能优化以吸取别人购买,只有那些性能优良的IP核才有人来购买。
根据VSIA(Virtual Socket Interface Alliance,虚拟插座接口联盟)根据设计层次,将IP核分为软核(t Core)、硬核(Hard Core)和固核(Firm Core)3种。
软核用计算机高级语言(通常是寄存器传输级Verilog HDL、VHDL、Syst)的形式描述功能块的行为,但是并不涉及用什么电路和电路元件实现这些行为。软核可经用户修改,以实现所需的功能。但由于软核没有经过具体电路的验证, 使其在应用到具体电路的时候, 有可能有不符合要求的方面。硬核的电路布局布线和工艺是确定的且不能更改, 但因为其经过投片验证,所以正确性较好。固核是一种介于软核和硬核之间的IP,固核允许用户重新确定关键性能参数,具有一定的灵活性。IP 的本质特征是可重用性,通常需要具备以下基本特征:一是通用性好,二是正确性有100% 的保证,三是可移植性好。通用性好是指IP 的功能在某一应用领域广泛通用,IP 的实现一般满足子功能可配置、甚至可编程的特点。正确性有百分之百的保证是指IP 核实现严格遵守一系列的可重用设计开发规范,IP 核的验证用例具有完备性,功能覆盖率、测试覆盖率都能够达到100% ;并能够完全覆盖IP 核工作的临界条件。可移植性好是指IP 核的实现,其行为描述、网表具有可移植性。其设计可以在不同的开发平台上重现。
基于IP 核重用技术的SoC 设计使芯片的设计从以硬件为中心转向以软件为中心, 芯片设计不再是门级的设计,而是IP 核和接口及其复用设计。IP核集成到系统所要考虑的问题包括:同步,例如全局执行、数据交换和协议方面的同步操作;协议转换,不同模块间不兼容的协议的转换, 封装可用来解决这个问题,但需要考虑时序约束;I/O 缓存,为满足系统行为和时序约束可能需要缓存数据。另外,出于对核设计的保护会故意隐藏一些信息, 而这些信息在集成时可能需要。为解决这些问题需要一个好的接口标准,一些大公司现在已有自己的IP 核接口标准,比如Ara Avalon、Atlant、IBM的CoreConnect、ARM的AMBA 等。
IP复用面临着很多挑战。不同于加工厂家提供的库单元,大部分IP软核没有经过硅验证,其可靠性和性能都是未知的。另外,很难确定护软核功能的正确性,交付项和与规范符合的程度,以及护软核自带的验证文件是否足够满足IP软核本身和集成到SoC中的验证要求。IP核不同于一般的模块设计,IP核是一个整体的产品,除了设计文件本身,还必须包含一些相应的文件。IP核的质量也依赖于多项内容的质量,包括了以下几个方面:
(1)指导文件的质量。完善的指导文件,有助于IP软核使用。交付项的指导文件中,应该包含模块基本功能、接口的定义、验证策略、时序及综合策略等信息。
(2)验证文件的质量。验证文件应包括:完整的测试向量集、足够的测试参考集、完善的验证平台以及有效的脚本文件。高质量的验证文件,可以使护软核的验证简化,测试覆盖率提高。验证文件的质量,还体现在是否可重用,或者经过少量的修改可重用于后续工作环境中。
(3)设计的鲁棒性。一个设计糟糕的IP核集成到芯片中,会产生很多问题,并延误设计进度。首先应该从软核的文档中查看关于设计兼容性、风格以及验证指南的相关部分,以决定软核是否鲁棒。但是实际上,在软核没有进行硅验证之前,很难完全证明软核是鲁棒的。
(4)易用性。包括IP核文档、验证、综合脚本和集成的易用性。如何才能让使用者更加简便的使用IP核,是提供者应该考虑的问题,也是使用者很关心的事情。易用性是充分发挥IP核复用效率优势的要求之一。
因此,设计高质量的IP核以及对IP进行质量评估,是IP复用的关键。
- 上一篇:什么是FPGA?
- 下一篇:基于虚拟原型的设计方法