作者:BobbyZD
链接:https://www.zhihu.com/question/297982254/answer/2575183405SoC即系统级芯片又称片上系统(SoC,System on Chip)。SoC将系统的主要功能综合到一块芯片中,本质上是在做一种复杂的IC设计。SoC是集成电路设计和制造工艺发展的产物,它可以将整个系统集成在一个芯片上。主要由多个主处理器、多个处理引擎(PE,Processing Engine)、多个外设及主存储器单元组成,具有高并行性的特点,同时可以完成多个功能。现在的SoC芯片上可整体实现CPU、DSP、数字电路、模拟电路、存储器、片上可编程逻辑等多种电路;综合实现图像处理、语音处理、通信协议、通信机能、数据处理等功能。
SoC 按用途可分为两种类型:一种是专用SoC芯片,是专用集成电路(ASIC)向系统级集成的自然发展;另一种是通用SoC芯片,将绝大部分部件,如CPU、DSP、RAM、I/O等集成在芯片上,同时提供用户设计所需要的逻辑资源和软件编程所需的软件资源。
SoC设计与传统的ASIC设计最大的不同在于以下两方面。
优势:
1. 可以实现更为复杂的系统
2. 具有较低的设计成本
3. 具有更高的可靠性
4. 缩短产品设计时间
5. 减少产品反复的次数
6. 可以满足更小的设计要求
7. 可达到低功耗的设计要求
劣势:
1. 生产周期长。SoC芯片从设计到制造出货整个过程在6个月到1年左右。
2. 设计验证时间长。SoC芯片的设计验证环节约占总周期的70%。
3. IP核的授权和兼容情况大大影响产品上市时间。
4. 制造成本指数型增长。
一个完整的 SoC 设计包括系统架构设计,软件结构设计和硬件(芯片)设计。
SoC 设计是从整个系统的角度出发,把处理机制、模型算法、芯片架构、各层次电路直至器件的设计紧密结合起来。SoC芯片设计是以IP核为基础,以分层次的硬件描述语言为系统功能和架构的主要描述手段,并借助于EDA工具进行芯片设计的过程。
SoC芯片设计步骤,主要包括模块定义、代码编写、功能及性能验证、综合优化、物理设计等环节,
一个完整的 SoC 设计应该包括系统架构设计(System Architecture Design)和硬件设计 (Hardware Design)。系统架构设计包括处理器的选择、存储器的选择、外设的选择、连接方式的选择和软件架构(Software Structure)的设计等。系统架构设计主要是指将高层次产品需求精化为对硬件和软件的详细技术需求,做一个整体的规划的过程。系统架构设计的一个关键任务是将设计划分为一系列硬件模块和软件任务,以及定义各部分之间的接口规范。例如,是多处理器还是单处理器?选用什么类型的处理器?选择什么类型的总线标准?总线的架构是什么样子?系统需要哪些存储器?因此,系统架构设计是SoC中至关重要的一步。