2 SoC设计过程
本章概述了SoC设计方法,包括:
- 标准SoC设计
- SoC设计流程
- 规格(Spec)在项目生命周期中的作用
2.1 标准SoC设计
考虑图 2-1 中的芯片设计。我们声称,在某种意义上,这种设计代表了片上系统设计的规范或通用形式。它包括:
- 一个微处理器和它的内存子系统
- 包含外部系统接口的数据路径
- 传输从外部系统接收的数据的模块
- 其他连接外部系统的I/O接口
这种设计是人为的,但它包含了实际SoC设计中的大部分结构和挑战。处理器可以是从8bit的8051到64bit的RISC。内存子系统可以是单级或者多级的,可以包含SRAM和/或DRAM。通信接口可以包括PCI,Ethernet,USB,A-to-D,D-to-A,机电或光电转换器。数据转换块可以是图形处理器或网络路由器。指定此类系统、开发和验证模块以及将它们组装到制造芯片中所需的设计过程包含 SoC 设计的所有基本元素和挑战。
真实的SoC设计远比标准SoC的例子复杂。一个真实的设计包含多组IP接口和数据传输模块,目前很多SoC设计包含多个处理器,以及处理器与DSP的组合。内存结构也非常复杂,包含多级缓存(cache)和共享内存,以及支持特定格式的数据传输模块,比如MPEG2。因此,规范设计只是 SoC 设计的微型版本,它允许我们讨论利用可重用宏开发这些芯片的挑战。
2.2 系统设计流程
为了克服SoC的挑战,芯片设计师需要通过两个方面来改变设计流程:
- 从瀑布模型到螺旋模型
- 从自顶而下的方法论到自顶而下和自底而上的结合
2.2.1 瀑布vs螺旋
传统的ASIC开发流程如图2.2所示,通常称为瀑布模型。项目在开发过程中从一个阶段跳跃到另一个阶段且不会回到前一个阶段。在这个模型中,设计经常从一个团队交接到另一个团队,且团队之间不会有太多交互。
这个过程从定义ASIC的Sp