2006-8-12 -- eXvision's Blog

来源:百度文库 编辑:神马文学网 时间:2024/10/02 18:11:58
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 篇)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 的功能进行描述,并且已经过行为级设计优化和功能验证。它通常以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 具有以下几方面的优势。

(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) 根据嵌入式应用系统要实现的功能要求,对系统功能细化,分成若干功能模块,画出系统功能框图,再对功能模块进行硬件和软件功能实现的分配。
(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 篇)两部分:芯片硬件设计和软件协同设计。芯片硬件设计包括:
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 微米制程以上,这种现象更为显著。
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 芯片设计,除了重视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.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 硬核做为处理器,它具有如下特点:
(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。
1.CoreConnect 总线
IBM 公司的CoreConnect 总线提供了三种基本结构:处理器内部总线PLB(Processor Local Bus)、片上外围总线OPB(On-ChipPeripheral Bus)和设备控制总线DCR(Device Control Register)。
(1) PLB 标准是为总线传输的主要发出者和接受者之间提供高带宽、低延迟的连接。其主要特征为:
高性能处理器内部总线;
交叠的读和写功能(最快每周期两次传输);
支持分段传输;
读和写分开;
32~64 位数据总线;
32 位地址空间;
支持16~64 字节突发传输模式;
4 级仲裁优先权;
特殊DMA(Direct Memory Access)模式。
(2) OPB 标准为连接具有不同的总线宽度及时序要求的外设和内存提供了一条途径,并尽量减小对PLB 性能的影响。其主要特性如下:
片上外围总线、支持多个主设备;
32 位地址空间;
读和写数据总线分开;
8~32 位数据总线;
动态总线宽度;
支持重试模式(如果主设备要求的从设备忙,主设备隔一段时间再次请求);
支持突发(burst)传输模式;
支持DMA。
(3) DCR 是用来规范CPU 通用寄存器设备,控制寄存器之间传输数据。DCR 总线在内存地址映射中取消了配置寄存器,减少取操作,增加处理器内部总线的带宽。其主要特征如下:
10 位地址总线;
32 位数据总线;
同步和异步的传输;
分布式结构。
CoreConnect 拥有完备的一整套技术文档,在技术上可行性较强,可以应用在类似于工作站这样的高性能系统的连接,对于简单的嵌入式应用来说可能有点太复杂,提供的许多特性无法用到。
2.AMBA 总线
AMBA 总线体系结构定义了2 种总线:AHB(Advanced High-performance Bus)和APB(Advance Peripheral Bus),如图1-2 所示。
图1-2 AMBA 总线体系结构
(1) AHB 主要用于连接高性能、高吞吐率的设备,完成ARM 芯核与CPU外围部分例如存储通道控制器,DMA 控制器,SPI 接口等的整合。它的主要特性包括:
多控制器;
分段传输;
单周期总线控制权移交;
32~128 位总线宽;
包含一种访问保护机制,用来区别特权访问和无特权访问模式,或指令和数据提取等;
突发传输模式最大为16 节;
访问空间限制在32 位;
支持仲裁、REQ、GNT 和LOCK;
支持字节、半字和字传输。
(2) APB 是专为降低功耗以及接口复杂性而设计的外围互联总线,它常被用于连接一些低带宽、低速传输的外设,主要特征如下:
低性能、低功率外围总线;
单控制器;
32 位地址空间;
32 位数据总线;
分开读和写数据总线。
3.Wishbone 总线
Wishbone 总线是Silicore 公司推出的片上总线协议。它的结构极其简单、灵活,又完全公开、完全免费,获得众多支持。主要特征如下:
所有应用使用一个总线体系结构;
支持多控制器;
64 位地址空间;
8~64 位数据总线(可扩展);
单周期读和写;
支持重试;
支持内存映射,FIFO(FISRT IN FIRSTO U T )和十字互连接口;
由终端用户定义仲裁方式。
同前2 种总线结构相比,Wishbone 只定义了一种高速总线,在既需要高速总线又需要低速总线的系统中,使用两个Wishbone 接口,比起设计两个不同的接口要简单些。
4.Avalon 总线
这里,再介绍下将要用到的Avalon 总线。Avalon 总线发布于2000 年的秋天,是Altera 公司针对FPGAs 而设计的
一种SOPC 接口标准。它提供了各设备之间连接的接口,可以用于片上处理器和外设之间的连接。Avalon 总线具有支持SOPC,结构简单和可参数化配置等特点。主要特征如下:
32 位地址空间,共计4Gbytes;
所有Avalon 总线信号都是和Avalon 总线时钟同步的,这种设计简化了Avalon 总线的时序行为,便于和高速外设的连接;
地址、数据和控制信号使用独立的端口,以简化外设的设计;
Avalon 总线自动为所有外设产生片选信号,简化了Avalon 总线外设的设计;
支持多主设备结构。多个主设备可以共存于Avalon 总线之中,Avalon 总线会自动产生仲裁逻辑;
基于向导的配置。用户可以使用图形化的向导来配置Avalon 总线的相关参数;
动态的总线宽度。Avalon 总线会自动处理不同位宽设备间的信号,使不同位宽的设备可以顺利通讯;
1.3.2 常用IP
众多的IP 提供商包括纯IP 提供商、设计服务公司等都可以向设计者提供各种各样的IP 核。目前,比较著名的IP 提供商包括ARM、Rambus、Synopsys、TTPCom、ParthusCeva、Virage Logic、Artisan、MIPS、Mentor 和Mosys 等公司。如图1-3 所示为2002 年各嵌入式内核所占的市场份额。
图1-3 2002 年各嵌入式内核所占的市场份额
ARM 作为业内领先的32 位嵌入式RISC(Reduced Instruction Set Computer CPU)微处理器解决方案供应商,自1990 年正式成立以来,发展迅速。下面就以ARM 公司为例,进行介绍。ARM 的IP 核技术包括芯片内核、结构延伸、软件开发工具和片上系统解决方案,具有功耗低、性能高、成本低等特点。适用于多种领域,ARM 的用户遍及多个行业,包括:汽车、消费、娱乐、成像、工业、控制、网络、存储、安保和无线应用。ARM 公司的“chipless”模式非常独特,它从不直接介入芯片的生产和销售领域,而是一直以IP 提供者的身份向各大半导体制造商出售知识产权。这种独特的模式,使设计公司、OEM、软件及工具开发公司及制造公司都与ARM结成了合作伙伴关系,使其半导体行业产业链上游的上游,成为许多全球性RISC 标准的缔造者。目前,采用ARM 公司IP 核的半导体公司已多达103 家,包括Intel、TI、Motorola、ST、IBM、ADI、美国国家半导体、Infineon、NEC、LSI 等半导体巨擘,RTOS 软件厂商超过50 家如微软、WindRiver 等公司,EDA工具厂商超过30 家如Cadence、Synopsys 等。ARM 处理器核当前有6 个系列产品ARM7,ARM9,ARM9E,ARM10E,SecurCore 以及ARM11 系列。进一步还包括与其合作伙伴一同研发的产品,如Intel XScale 微体系结构和StrongARM 产品。其中每一类又根据其包含的不同功能模块而分成多种型号。在ARM 内核中常用的四个模块分别用T、D、M 和I 来表示,它们可供生产厂商根据不同用户的需求来选择配置。
(1) T 表示Thumb,该内核可从16 位指令集扩充到32 位ARM 指令集。
(2) D 表示Debug,该内核中包含可用于调试的结构,通常为一个边界扫
描链JTAG,以便进入CPU 调试模式,从而进行断点设置、单步调试等工作。
(3) M 表示Multiplier,是8 位乘法器。
(4) I 表示Embedded ICE Logic,包含用于实现断点观测及变量观测的逻辑电路,其中的TAP 控制器可接入到边界扫描链。
1.ARM7
ARM7采用ARMV4T结构,分为三级流水,空间统一的指令与数据Cache,平均功耗为0.6mW/MHz,时钟速度为20MHz~133MHz,每条指令平均需要1.9 个时钟周期,处理速度为0.9MIPS/MHz。其中的ARM710,ARM720 和ARM740 为内带Cache 的ARM 核。ARM 7 的运算速度一般为150DMIPS。ARM7 是小型、快速、低能耗、集成式RISC 内核,广泛应用于手持式计
算、数据通信和消费类多媒体。
2.ARM9
ARM9 采用ARMV4T 结构,采用五级流水处理以及分离的Cache 结构,平均功耗为0.7mW/MHz。时钟速度为100MHz~233MHz,每条指令平均需要1.5 个时钟周期,处理速度为1.1MIPS/MHz。其中,ARM920、ARM940 和ARM9E 为含Cache 的CPU 核。性能为132MIPS(120MHz 时钟,3.3V 供)或220MIPS(200MHz 时钟)。ARM 9 的运算速度一般为300DMIPS。
ARM9 是低价、低能耗、高性能系统微处理器,配有Cache、内存管理和写缓冲。多应用于高级引擎管理、保安系统、顶置盒、便携计算机和高档打印机。
ARM9E 应该属于ARM10 系列,它也采用了ARMV5TE 结构,其性能得到了大大提高。其中,ARM968E-S(tm)是ARM9E 系列的最新产品,它同时也是ARM9E 系列内核中最小的、最低功耗的产品,可以为网络、汽车、电子消费娱乐品、无线方案等提供理想的技术方案。ARM968E-S 内核含有低延迟的AMBA(tm) AHB-lite 总线接口,内核与DMA 时钟分离, 在闲置状态下的功耗更低。ARM968E-S 内核比ARM966E-S(tm)内核的面积小20%,功耗至少降低10%。延长了电池使用寿命。
3.ARM10
ARM10 采用ARMV5TE 结构,采用六级流水处理,指令与数据分离的Cache 结构。时钟速度为300MHz,每条指令平均需要1.2 个周期。其中ARM1020 为带Cache 的版本。ARM 10 的运算速度一般为500DMIPS。ARM10 速度快,能够支持多种商用操作系统,适用于高性能手持式因特网设备及数字式消费类产品。
3.ARM11
ARM11 采用ARMV6 结构,采用8 级流水处理,动态分支预测与返回堆栈。ARM11 的时钟速度达到550MHz,采用了0.13 微米的工艺技术,支持IEM技术,可以大大减少功耗。ARM 11 的运算速度一般为1000DMIPS。ARM还发布了四个新的ARM11 系列微处理器内核(ARM1156T2-S 内核、ARM1156T2F-S 内核、ARM1176JZ-S 内核和ARM11JZF-S 内核)、应用ARM1176JZ-S 和ARM11JZF-S 内核系列的PrimeXsys 平台、相关的CoreSight技术。ARM1156T2-S 和ARM1156T2F-S 是首批含有ARM Thumb-2 内核技术的产品,主要用于多种深嵌入式存储器、汽车网络和成像应用产品,提供了更高的CPU 性能和吞吐量,并增加了许多特殊功能,可解决新一代装置的设计难题。它们采用AMBA 3.0 AXI 总线标准,可满足高性能系统的大量数据存取需求。Thumb-2 内核技术结合了16 位、32 位指令集体系结构,提供更低的功耗、更高的性能、更短的编码,该技术提供的软件技术方案较现用的ARM 技术方案减少使用26%的存储空间、较现用的Thumb 技术方案增速25%。ARM1176JZ-S 和ARM1176JZF-S 内核是首批以ARM TrustZone 技术实现手持装置和消费电子装置中公开操作系统的超强安全性的产品,同时也是首次对可节约高达75%处理器功耗的ARM 智能能量管理(ARM Intelligent Energy Manager)进行一体化支持。主要为服务供应商和运营商所提供的新一代消费电子装置的电子商务和安全的网络下载提供支持。
4.StrongARM
StrongARM 处理器采用ARMV4T 的五级流水结构,性能较高。它最初是与DEC 联合研制的,后来授权给Intel,Intel 公司用SA110 命名该通用嵌入式标准处理器。该系列还包括SA1100 PDA 系统芯片和SA1500 多媒体处理器芯片。ARM 芯片的选择要根据实际需求而定。例如,如果希望使用WinCE 或Linux 等操作系统以减少软件开发时间,就需要选择ARM720T 以上带有
MMU(memory management unit)功能的ARM 芯片,ARM720T、StrongARM、ARM920T、ARM922T、ARM946T 都带有MMU 功能。而ARM7TDMI 没有MMU,不支持Windows CE 和大部分的Linux,但目前有uCLinux 等少数几种Linux 不需要MMU 的支持