5.2 IP设计流程
其实从某种观点来看,IP核的区分不过是一种观念上的区别。每一种IP核都可以从IP规范书开始前端电路设计,然后进行仿真、后端设计,最后得到GDSII网表,并流片验证。真正的区别在于IP核的设计者是在哪个阶段将IP核交付给IP使用者的。图5-4所示为数字电路IP设计基本流程。
图5-4 软核、固核、硬核的设计流程
5.2.1 设计目标
为了支持最大范围的应用,可重用IP应具有以下特点:
- 可配置,参数化,提供最大程度的灵活性;
- 标准接口;
- 多种工艺下的可用性,提供各种库的综合脚本,可以移植到新的技术;
- 完全、充分的验证,保证设计的健壮性;
- 完整的文档资料。
5.2.2 设计流程
图5-5总结了IP设计的几个主要阶段,包括IP关键特性的定义、设计规范制定、模块设计和集成,以及最后的产品化打包过程。
1.定义关键特性
IP的关键特性是对IP的需求定义,包括概述、功能需求、性能需求、物理需求、对外系统接口的详细定义、可配置功能详细描述、需要支持的制造测试方法、需要支持的验证策略等,以便IP可被用于不同的应用系统中。
图5-5 IP设计的主要流程
2.规划和制定设计规范
在项目规划和制定设计规范阶段,将编写整个项目周期中需要的关键文档。通常,这些文档包括以下4部分。
(1)功能设计规范
功能设计规范提供全面的对IP设计功能的描述,它的内容来自应用需求,也来自需要使用该IP进行芯片集成的设计人员。功能设计规范由引脚定义、参数定义、寄存器定义、性能和物理实现需求等组成。
对于许多基于国际标准的IP,开发功能设计规范比较容易,因为这些国际标准本身已经详细定义了功能和接口,但对于其他设计,开发出模型,用于探索不同算法和架构的性能是非常必要的。这种高级模型可以作为设计的可执行功能规范。
高级模型可在算法和传输级构建。算法级模型是纯行为级的,不包含时序信息。这种模型特别适合于多媒体和无线领域,可用于考察算法的带宽需求、信噪比性能和压缩率等。传输级模型是一种周期精确模型,它把接口上的传输看作是原子事件,而不是作为引脚上的一连串事件进行模拟。传输级模型可以相当精确地体现模型的行为,同时又比RTL模型执行速度快,使得传输级模型在用于评价一个设计的多种结构时特别有用。
(2)验证规范
验证规范定义了用于IP验证的测试环境,同时描述了验证IP的方法。测试环境包括总线功能模型和其他必须开发或购买的相关环境。验证方法有直接测试、随机测试和全面测试等,应根据具体情况选择使用。
(3)封装规范
封装规范定义了一些要作为最终可交付IP的一部分的特别脚本,通常它们包括安装脚本、配置脚本和综合脚本。对于硬核IP,这一部分规范也要在附加信息中列出。
(4)开发计划
开发计划描述了如何实现项目的技术内容,它包括交付信息、进度安排、资源规划、文档计划、交付计划等。
3.模块设计和集成
(1)设计流程
对于软核和固核,通常采用基于RTL综合的设计流程,如图5-6所示。
硬核中可能包括一些全定制电路和一些经综合生成的模块。对于综合生成的模块,应遵循图5-6所示的设计流程,而全定制电路可以在晶体管级进行仿真,设计数据中应该有全部的原理图。使用全定制电路的RTL模型和综合模块的RTL模型来开发整个IP的RTL模型,并通过这个模型的综合流程反复迭代,使面积、功耗及时序在认可的范围之内。硬核的设计流程如图5-7所示。
图5-6 用于软核和固核的基于RTL综合的设计流程
图5-7 硬核的设计流程
(2)硬核的模型建立
与软核和固核不同,硬核在物理设计完成后必须用特定的工具对其进行建模。一个完整的硬核通常包含以下模型。
① 功能模型(Functional Model):描述IP模块功能的行为级模型,通常为Verilog、VHDL或C代码文件,用以实现系统整合后的功能仿真,其形式可以是完整描述IP功能的RTL代码或网表文件,或为了实现IP保护而仅完成标准端口功能信息,内部逻辑以不可综合的代码描述的行为模型。
② 时序模型(Timing Model):以时序信息文件出现(如.lib和.clf文件等),描述IP的端口时序信息及时序约束条件,用以满足IP整合后端口信号对外部信号的时序要求,通常用以实现整合后的静态时序分析。
③ 功耗模型(Power Model):用以实现整个芯片功耗分析和电压降分析的IP功耗信息参考文件,该信息往往会出现在时序信息文件中,如.lib和.sdf文件等。
④ 测试模型(Test Model):用于芯片完成生产后,根据特定的测试模式,实现对IP的单独测试。
⑤ 物理模型(Physical Model):用以完成芯片整合后物理设计的物理信息文件,如提供IP的物理面积、所占层次、端口的相对物理位置、端口的物理约束信息等,较常见的物理模型包括了Synopsys公司的Milkyway库、Cadence公司的LEF(Library Exchange File)和DEF(Design Exchange File)、标准的版图文件GDSII等,利用这些文件,配以相应的时序信息文件,往往能帮助设计者快速地完成整体芯片的后端设计。
图5-8说明了Synopsys的硬核建模所用的EDA工具。其中,VMC主要用于产生加密或对设计源进行仅针对仿真加速而优化代码的功能模型;Prime Time提供的extract_model可对简单的IP设计抽取其端口的时序模型;Astro可以完成IP后端设计,从而提供物理信息文件;SoC Test与TetraMAX可以方便地生成如扫描链测试方案等自动测试脚本;Astro-Rail可生成用于功耗分析的Milkyway库。
图5-8 Synopsys的硬核建模工具
4.IP产品化
IP产品化意味着需要提交系统集成者在使用IP时所要的所有资料。软核、固核的产品化过程如图5-9所示。硬核以GDSII格式的版图数据作为其表现形式,在时序、功耗、面积等特性方面比软核更具有可预见性,但是没有软核的灵活性。它既不会是参数化的设计,也不会存在可配置的选项。然而,硬核由软核发展而来,所以硬核的开发与软核的开发相比,只需要增加两个设计流程:产生IP的版图设计,以及建立硬核的仿真模型、时序模型、功耗模型和版图模型。硬核的产品化过程与软核的产品化过程相比,前端的处理基本上是一致的,只是需要在一个目标库上综合即可。硬核的功能仿真过程也比较简单,只需要在一个目标库上仿真通过即可。硬核的后端处理包括的内容有DFT处理,物理设计与验证,建立功能仿真模型、时序模型和综合布局模型。
图5-9 软核、固核的产品化过程
IP打包提交过程是指通过对模块设计信息的进一步整理,使得提交给用户的信息清晰、完整。通常,软IP需要提交的内容有产品文件、验证文件、用户文档、系统集成文件;硬IP需要提交的内容有产品文件、系统集成文件和用户文档,如表5-1所示。此外,能够提供原型芯片给用户是非常受欢迎的,一方面可以用来展示IP的功能特性,另一方面可以用来帮助用户评估和选择IP。
表5-1 IP产品需要提交的文件
以ARM为例,其提供的硬核包含完整的设计包,主要包含了功能模型、时序模型、测试模型和物理模型。其中,功能仿真模型可以满足RTL和网表的创建和功能验证,时序模型用于设计过程中的静态时序分析,测试模型用于生成测试向量,物理模型则用于芯片其他部分的物理设计和布局布线后的仿真。