1
第1 章
SoC 简介
近10 年来,无论是消费类
产品如电视、录像机,还是通信类产品如电话、
网络设备,这些产品的核心部分都开始采用芯片作为它们的“功能中枢”,这
一切都是以嵌入式系统技术得到飞速发展作为基础的。
SoC (System on Chip,片上系统) 是ASIC(Application Specific Integrated
Circuits) 设计方法学中的新技术,是指以嵌入式系统为核心,以IP 复用技术
为基础,集软、硬件于一体,并追求产品系统最大包容的集成芯片。狭意些理
解,可以将它翻译为“系统集成芯片”,指在一个芯片上实现信号采集、转换、
存储、处理和I/O 等功能,包含嵌入软件及整个系统的全部内容;广义些理解,
可以将它翻译为“系统芯片集成”,指一种芯片设计技术,可以实现从确定系
统功能开始,到软硬件划分,并完成设计的整个过程。
1.1 SoC
1.1.1 SoC 概述
SoC 最早出现在20 世纪90 年代中期,1994 年MOTOROLA 公司发布的
Flex CoreTM 系统,用来制作基于68000TM 和Power PCTM 的定制微处理器。
1995 年,LSILogic 公司为SONY 公司设计的SoC,可能是基于IP ( Intellectual
Property)核进行SoC 设计的最早报道。由于SoC 可以利用已有的设计,显著
地提高设计效率,因此发展非常迅速。
SoC 是市场和技术共同推动的结果。从市场层面上看,人们对集成系统的
需求也在提高。计算机、通信、消费类
电子产品及军事等领域都需要集成电路。
例如,在军舰、战车、飞机、导弹和航天器中集成电路的成本分别占到总成本
SOC 设计初级培训(
Altera 篇)
2
的22%、24%、33%、45%和66%。随着通讯行业的迅猛发展和信息家电的
迅速普及,迫使集成电路产商不断发展IC 新品种,扩大IC 规模,增强IC 性
能,提高IC 的上市时间(Time to maeket) ,同时还需要实现品种的通用性和
标准化,以利于批量生产,降低成本。据预测,SoC 销售额将从2002 年的136
亿美元,增长到2007 年的347 亿美元,年增长率超过20%。
从技术层面上看,以下几个方面推动了SoC 技术的发展:
(1) 微电子技术的不断创新和发展,大规模集成电路的集成度和工艺水平
不断提高,已从亚微米(0.5 到1 微米)进入到深亚微米(小于0.5 微米),和超深
亚微米(小于0.25 微米)。其特点为:工艺特征尺寸越来越小、芯片尺寸越来越
大、单片上的晶体管数越来越多、时钟速度越来越快、电源电压越来越低、布
线层数越来越多、I/O 引线越来越多。这使得将包括的微处理器、存储器、DSP
和各种接口集成到一块芯片中成为可能。
(2) 计算机性能的大幅度提高,使很多复杂
算法得以实现,为嵌入式系统
辅助设计提供了物理基础。
(3)
EDA(Electronic Design Automation,采用CAD 技术进行电子系统和专
用集成
电路设计) 综合开发工具的自动化和智能化程度不断提高,为嵌入式系
统设计提供了不同用途和不同级别的一体化开发集成环境。
(4) 硬件描述语言HDL(Hardware Description Language)的发展为电子系
统设计提供了建立各种硬件模型的工作媒介。目前,比较流行的HDL 语言包
括已成为IEEE STD1076 标准的
VHDL、IEEE STD 1364 标准的Verilog HDL
和Altera 公司企业标准的AHDL 等。
1.1.2 IP 复用技术
SoC 的设计基础是IP(Intellectual Property)复用技术。
SoC 芯片需要集成一个复杂的系统,这导致了它具有比较复杂的结构,
如果是从头开始完成芯片设计,显然将花费大量的人力物力。另外,现在电子
产品的生命期正在不断缩短,这要求芯片的设计可以在更短的周期内完成。为
了加快SoC 芯片设计的速度,人们将已有的IC 电路以模块的形式,在SoC 芯
片设计中调用,从而简化芯片的设计,缩短设计时间,提高设计效率。这些可
以被重复使用的IC 模块就叫做IP 模块(或者系统宏单元、芯核、虚拟器件)。
IP 模块是一种预先设计好,已经过
验证,具有某种确定功能的集成电路、
器件或部件。它有3 种不同形式:软IP 核(soft IP core)、固IP 核(firm IP core)
和硬IP 核(hard IP core)。
1.软IP 核
软IP 核主要是基于IP 模块功能的描述。
它在抽象的较高层次上对IP 的功能进行描述,并且已经过行为级设计优
第1 章 SoC 简介
3
化和功能验证。它通常以HDL 文档的形式提交给用户,文档中一般包括逻辑
描述、网表,以及一些可以用于测试,但不能物理实现的文件。
使用软IP,用户可以综合出正确的门电路级网表,进行后续结构设计,
并借助EDA 综合工具与其他外部逻辑电路结合成一体,设计出需要的器件。
虽然,软IP 的灵活性大,可移植性好,但同硬IP 相比,因为它不含有
任何具体的物理信息,所以如果后续设计不当,很可能导致设计失败。另外,
后续的布局布线工作也将花费大量的时间。
2.硬IP 核
硬IP 核主要是基于IP 模块物理结构的描述。
它提供给用户的形式是电路物理结构掩模版图和全套工艺文件,是可以拿
来就用的全套技术。其优点为,完成了全部的前端和后端设计,已有固定的电
路布局局和具体工艺,可以确保性能,并缩短SoC 的设计时间。但因为其电
路布局和工艺是固定的,同时也导致了灵活性较差,难以移植到不同的加工工
艺。
3.固IP 核
固IP 核主要是基于IP 模块结构的描述,可以理解为介于硬IP 和软IP 之
间的IP 核。
固IP 一般以门电路级网表和对应具体工艺网表的混合形式提交用户使
用。以便用户根据需要进行修改,使它适合某种可实现的工艺流程。
近年来电子产品的更新换代周期不断缩短,而系统芯片的复杂程度却在增
长,为了缓和这一矛盾,SoC 设计普遍采用基于IP 模块的设计方法。因为IP
模块是预先设计好的,并通过了验证,设计者可以把注意力集中于整个系统,
而不必考虑各个模块的正确性和性能,这除了能缩短SoC 芯片设计的时间外,
还能降低设计和制造成本,提高可靠性。
IP 重用技术使芯片设计从以硬件为中心,逐渐转向以软件为中心,从门
级的设计,转向IP 模块和IP 接口级的设计。
构建一个系统是个复杂的过程,实际应用中,设计者往往到设计的后期才
可以明确软件和硬件要实现的功能,系统要达到的性能等具体指标。而这些指
标又实际决定了该选择哪个IP 模块。
当然,不是所需要的IP 内核模块都可以从市场上买得到,为了垄断市场,
一些公司开发出来的关键IP 内核模块是不愿意授权转让的。像这样的IP 内核
模块就只有自己组织力量来开发了。
1.1.3 SoC 技术的优缺点
SoC 具有以下几方面的优势。
SOC 设计初级培训(Altera 篇)
4
(1) 降低耗电量:随电子产品向小型化、便携化发展,对其省电需求将大
幅提升,由于SoC 产品多采用内部讯号的传输,可以大幅降低功耗。
(2) 减少体积:数颗IC 整合为一颗SoC 后,可有效缩小电路板上占用的
面积,达到重量轻、体积小的特色。
(3) 丰富系统功能:随微电子技术的发展,在相同的内部空间内,SoC 可
整合更多的功能元件和组件,丰富系统功能。
(4) 提高速度:随着芯片内部信号传递距离的缩短,信号的传输效率将提
升,而使产品性能有所提高。
(5) 节省成本:理论上,IP 模块的出现可以减少研发成本,降低研发时间,
可适度节省成本。不过,在实际应用中,由于芯片结构的复杂性增强,也有可
能导致测试成本增加,及生产成品率下降。
虽然,使用基于IP 模块的设计方法可以简化系统设计,缩短设计时间,
但随着SoC 复杂性的提高和设计周期的进一步缩短,也为IP 模块的重用带来
了许多问题:
(1) 要将IP 模块集成到SoC 中,要求设计者完全理解复杂IP 模块的功能、
接口和电气特性,如微处理器、存储器控制器、总线仲裁器等。
(2) 随着系统的复杂性的提高,要得到完全吻合的时序也越来越困难。即
使每个IP 模块的布局是预先定义的,但把它们集成在一起仍会产生一些不可
预见的问题,如噪声,这些对系统的性能有很大的影响。
IP 模块的标准化可以在一定程度上解决上述问题。过去,各个芯片设计
公司、IP 厂商和EDA 公司以自己内部的规范作为设计标准,但随着SoC 设
计的中心向用户端的转移,IP 模块的广泛使用,以及越来越多EDA 工具的出
现,这些内部标准已经无法适应SoC 设计的需要。
为了解决IP 模块的接口和通信协议问题,SoC 的主要供应商开发了自己
的SoC 片上总线结构标准,如IBM 的Core Connect 和ARM 的AMBA,这些
总线结构通常与一个处理器体系结构相关联,如PowerPC 或ARM。
对公共通信原理、公共设计格式以及设计质量测量和保证的统一方法的需
求推动了SoC 标准化的发展。所以,国际上出现了多个类似VSIA 这样的SoC
标准化组织,VSIA 于1996 年成立,目前有200 多个成员,其目标是建立统
一的系统级芯片业的目标和技术标准,通过规定开放标准,方便不同IP 模块
的集成。
1.1.4 嵌入式系统设计方法
常见嵌入式系统经常采用以下3 种设计方法。
1.使用
PCB CAD 软件和在线仿真器(ICE)
这种方法主要如下:
第1 章 SoC 简介
5
(1) 根据嵌入式应用系统要实现的功能要求,对系统功能细化,分成若干
功能模块,画出系统功能框图,再对功能模块进行硬件和软件功能实现的分配。
(2) 硬件设计主要是根据性能参数要求对各功能模块所需要使用的元器
件进行选择和组合,经过功能检验和性能测试后,找到相对优化的方案,画出
电路原理图。接着,使用印制板(PCB)计算机辅助设计(CAD)软件对系统的元
器件进行布局和布线,印制板加工、装配和硬件调试。
(3) 软件设计贯穿了整个系统的设计过程,包括任务分析、资源分配、模
块划分、流程设计和细化、编码调试等。软件设计的工作量主要集中在程序调
试,最有效的调试工具就是在线仿真器。
2. 使用EDA 工具软件和EOS 为开发平台
随着半定制逻辑器件技术经历了可编程逻辑阵列PLA、可编程阵列逻辑
PAL、通用阵列逻辑GAL、复杂可编程逻辑器件CPLD 和现场可编程门阵列
FPGA 的发展过程,器件的集成度和性能不断提高。
使用这些半定制器件,设计人员可以把原先要用印制板线路互连的若干标
准逻辑器件自制成专用集成电路(ASIC),这样,不但可以降低系统综合成本、
提高系统性能,而且还不需要设计人员精通半导体工艺和片内集成电路布局和
布线的知识。
使用该方法,设计人员从选择和使用标准通用集成电路器件,逐步转向使
用EDA 工具软件自己设计和制作需要的集成电路器件。然后通过自下而上的
设计方法,把自制的集成电路、可编程外围器件与嵌入式微处理器或微控制器
在印制板上布局、布线构成系统。
3.使用SoC 的设计技术
SoC 的设计技术,是从“集成电路”级设计到“集成系统”级设计转变的结
果。其设计是从整个系统性能出发,把微处理器、模型算法、外围器件乃至器
件的设计紧密结合起来,并通过系统软件和硬件的协同设计,在单个芯片上完
成整个系统的功能。当然,实际应用时,不是所有的系统都能在一个芯片上实
现的,也许要使用几个芯片。
SoC 设计的基础就是通过授权,使用成熟优化的IP 内核模块来进行设计
集成和二次开发,提高系统设计周期和可靠性。总的来说,购买IP 内核模块
不仅可以降低开发风险,还能节省开发费用。
这3 种设计方法各有各的应用范围。一般,前2 种方法多是用来设计较为
简单的应用系统,而复杂的系统则多采用第3 种方法。
1.1.5 简单设计流程
用SoC 技术设计系统芯片,一般先要进行软硬件划分,将设计基本分为
SOC 设计初级培训(Altera 篇)
6
两部分:芯片硬件设计和软件协同设计。芯片硬件设计包括:
1.功能设计阶段。
设计人员产品的应用场合,设定一些诸如功能、操作速度、接口规格、环
境温度及消耗功率等规格,以做为将来电路设计时的依据。更可进一步规划软
件模块及硬件模块该如何划分,哪些功能该整合于SOC 内,哪些功能可以设
计在电路板上。
2.设计描述和行为级验证
能设计完成后,可以依据功能将SOC 划分为若干功能模块,并决定实现
这些功能将要使用的IP 核。此阶段将接影响了SOC 内部的架构及各模块间互
动的讯号,及未来产品的可靠性。
决定模块之后,可以用VHDL 或Verilog 等硬件描述语言实现各模块的设
计。接着,利用VHDL 或Verilog 的电路仿真器,对设计进行功能验证(function
simulation,或行为验证 behavioral simulation)。
注意,这种功能仿真没有考虑电路实际的延迟,但无法获得精确的结果。
3.逻辑综合
确定设计描述正确后,可以使用逻辑综合工具(synthesizer)进行综合。
综合过程中,需要选择适当的逻辑器件库(logic cell library),作为合成逻辑
电路时的参考依据。
硬件语言设计描述文件的编写风格是决定综合工具执行效率的一个重要
因素。事实上,综合工具支持的HDL 语法均是有限的,一些过于抽象的语法
只适于做为系统评估时的仿真模型,而不能被综合工具接受。
逻辑综合得到门级网表。
4.门级验证(Gate-Level Netlist Verification)
门级功能验证是寄存器传输级验证。主要的工作是要确认经综合后的电路
是否符合功能需求,该工作一般利用门电路级验证工具完成。
注意,此阶段仿真需要考虑门电路的延迟。
5.布局和布线
布局指将设计好的功能模块合理地安排在芯片上,规划好它们的位置。布
线则指完成各模块之间互连的连线。
注意,各模块之间的连线通常比较长,因此,产生的延迟会严重影响SOC
的性能,尤其在0.25 微米制程以上,这种现象更为显著。
第1 章 SoC 简介
7
6.电路仿真
在这个阶段,除了重复验证SOC 的功能是否外,还需要确认在考虑门电
路延迟和连线延迟的条件之下,电路能否正常运作。
电路仿真是基于最终时序的版图后仿真,往往作为流片前签收sign-off 的
条件。所有时序的仿真,一般是使用SDF(标准延时)文件来输入延时信息。
由于需要考虑的参考很多,这次仿真时间将数倍于先前的仿真。
同时进行的软件协同设计,要考虑指令集、指令编译系统、开发集成环境、
模拟仿真设备等。在硬件和软件设计的过程中,需要进行系统验证,一般对于
数字电路采用FPGA 基本就可以实现验证过程,而对于数模混合电路的系统
芯片来说,验证则要复杂得多。
如图1-1 所示,就是SOC 开发的一个简单流程。
图1-1 SOC 开发的简单流程
除了拥有经验丰富的设计团队,成功的SoC 芯片设计还需要如下几个方
面的准备和整合:
(1) 先进的设计工具及可靠的设计方法。设计工具和方法决定了SoC 设计
效率和芯片性能的基础。对于在进行具体的SoC 设计的同时,高效和及时的
EDA 厂商的设计工具本地化支持,以及先进设计方法的交流也是一个SoC 芯
片设计成功及能持续提高的重要保证。
(2) 适当的IP(包括IP 提供商及其IP 的选择)和可靠的Library(包括
Library 提供商的选择)。
(3) Foundry 及其工艺的考虑和选择。
SOC 设计初级培训(Altera 篇)
8
对于SoC 芯片设计,除了重视EDA 设计工具和方法的确定,整个芯片
Tape-out 的供应链的管理也非常重要,尤其是深亚微米(Deep Sub-Micron)的
设计。其中包括,Foundry 及其制造工艺的确定,和与该工艺相对应的IP 和
Library 的选择。先进的EDA 设计工具和方法,适当的工艺、IP 和Library 的
确定可以降低芯片设计和制造中不必要的风险、时间延误、和费用支出,并提
高芯片设计一次成功的可能。
1.2 SoPC
以往的SoC 设计依赖于固定的ASIC。其设计方法通常采用全定制和半定
制电路设计方法,设计完成后如果不能满足要求,经常需要重新设计再进行验
证,这将导致开发周期变长,开发成本增加。另外,如果要对固定ASIC 的设
计进行修改、升级,也将花费昂贵的代价进行重复设计。与ASIC 比较,可编
程逻辑器件(PLD)的设计要灵活得多,它不仅开发周期较短,而且规模效应具
有成本优势。因此,著名的可编程逻辑器件生产厂家美国Altera 公司提出了基
于PLD 的SoC 设计方案———SoPC (System on a Programmable Chip,片上可
编程系统)。
SoPC 是SoC 技术和可编程逻辑技术结合的产物,是一种特殊的嵌入式系
统。首先它是SoC,即可以由单个芯片完成整个系统的主要逻辑功能;其次,
它还是可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备
一定的系统可编程功能。
1.2.1 SoPC 的特点
SoPC 设计技术涵盖了嵌入式系统设计技术的全部内容,包括:以处理器
和实时多任务操作系统(RTOS)为中心的软件设计技术、以PCB 和信号分析
为基础的高速电路设计技术、软硬件协同设计技术。
SoPC 结合了SoC、PLD 和FPGA 各自的优点,具备以下特点:
?至少包含一个嵌入式处理器内核
?具有小容量片内高速RAM 资源
?丰富的IP Core 资源可供选择
?足够的片上可编程逻辑资源
?处理器调试接口和FPGA 编程接口
?可能包含部分可编程模拟电路
?单芯片、低功耗、微封装
目前,0.13 微米的ASIC 产品制造价格仍然相当昂贵,相反,集成了硬核
或软核CPU、DSP、存储器、外围I/O 及可编程逻辑的SoPC 芯片在应用的灵
第1 章 SoC 简介
9
活性和价格上有极大的优势。
1.2.2 SoPC 解决方案
近年来PLD 器件密度的提高,芯片规模的扩大和性能的提升为SoPC 提
供了物质基础。下面以Altera 公司的SoPC 解决方案为例,介绍一下SoPC 技
术的应用。
Altera 公司起初是生产可编程逻辑器件及其开发工具,并拥有一些IP 核
的公司。随着技术的发展,尤其是通信技术的发展,对带宽和速度的要求越来
越高,Altera 率先推出自己的SoPC 解决方案,将处理器、存储器、I/O 口、
LVDS、CDR 等系统设计需要的东西集成到一个PLD 器件上,构建成一个可
编程的片上系统。
1.Nios 软核
在2000 年,Altera 发布了Nios 处理器,推出了一个基于APEX 系列FPGA
的嵌入式处理器解决方案,这是Altera Excalibur 嵌入处理器计划中的第一个
产品,它将可编程逻辑器件和处理器的能力结合到了一起,成为业界第一款为
可编程逻辑优化的可配置处理器。
这种Nios 处理器是1 种参数化的软核,设计人员可以通过编写一些新的
HDL 模块或改写已有HDL 模块中的参数来对软核进行优化,及增加外围电路
的功能。使用Nios 软核的SoPC 解决方案具有如下特点:
(1) 可配置为32 位或16 位的CPU,使设计人员能够在速度与占用资源上
做出最优选择。
(2) 带有大量的外设和接口库,如UART、时钟、DMA、SDRAM、并行
I/O 等。这些特性使得SoC 的设计变得简单化,提高了设计可靠性,降低了设
计成本。
Nios 软核主要面向对速度的要求不高的低端应用,因为Nios 软核只占用
芯片内部很少的一部分逻辑单元,所以成本较低。同ASIC 相比较,如果将处
理器放到ASIC 中,不但需要付给处理器厂商专利费,而且ASIC 的投资大,
风险也大。Nios 则没有这个问题,由于它是可配置的,所以还可以应用于Altera
公司其他的FPGA 芯片上,如Stratix、APEX II 等。值得一提的是,Stratix 系
列带有DSP 功能块,将Nios 核嵌入其中,可以提供比一般的DSP 更高的性
能,加上本身具有的可编程功能,它将提供更高性能的DSP 应用。
2.ARM922T 硬核
在速度要求较高的高端应用,如通信领域,软核的处理速度不够,Altera
就推出了基于ARM 硬核的SoPC 解决方案。例如,Excalibur EPXA1 中就使
用了嵌入的ARM922T 硬核做为处理器,它具有如下特点:
SOC 设计初级培训(Altera 篇)
10
(1) 芯片内嵌入了200MHz (210MIPS)的ARM922T RISC(精简指令集计算
机) CPU,并带有容量各为8K 字节的指令和数据缓冲区。
(2) 芯片内包含存储器管理单元(MMU),可以给RTOS (实时操作系统)提
供多线程的支持。
(3) 片上集成了存储器和多种外部设备接口,包括:SRAM/DPRAM、
UART、32 位时钟、存储器控制器等。
Excalibur 系列将ARM 处理器的高速计算能力和可编程功能结合到一起,
使设计人员从繁重的处理器设计工作中解脱出来,从而将大部分精力用在系统
功能的实现上。
当应用要求更高的性能时,Altera 还推出了更高速的硬核和更先进的PLD
结构,提供给客户一个更快速的解决方案。
3.EDA 开发工具
为了支持SoPC 的开发,Altera 公司还推出了一系列EDA 设计工具,如
Quartus II,以及SoPC Builder。
Quartus II 是一个集成开发环境,设计人员可在里面完成SoPC 的全部设
计,包括系统的生成、编译、仿真,并可以下载到开发器件中,进行实时评估
和验证。尤其,该软件还可以集成SoPC Builder 开发工具,令SoPC 的开发
更为便捷。
SoPC Builder 是一个自动化的系统开发工具,可以简化SoPC 的设计工作。
它提供了一个强大的设计平台以搭建基于总线的系统,其内部包含了一系列的
模块,如处理器、存储器、总线、DSP 等IP 核。使用SoPC Buider,设计人员
能够快速地调用和集成内建的IP 核库,定义一个从硬件到软件的完整系统。
1.3 常用总线和Ip
1.3.1 常用总线结构
为了使IP 核集成更快速、更方便,缩短进入市场的时间,迫切需要一种
标准的互联方案,在这一背景下产生的片上总线OCB(on-chip bus)技术。目
前,基于IP 核互连的总线结构较有影响力的有三种:IBM公司的Core Connect,
ARM 公司的AMBA(Advanced MicrocontrollerBusArchitecture)和SilicoreCorp
公司的Wishbone。
文章评论(0条评论)
登录后参与讨论