系统芯片SOC设计.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《系统芯片SOC设计.ppt》由用户(淡淡的紫竹语嫣)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 系统 芯片 SOC 设计
- 资源描述:
-
1、第八章第八章 系统芯片系统芯片SOC设计设计 SoC概述概述 SoC是系统级集成,将构成一个系统的软/硬件集成在 一个单一的IC芯片里。 它一般包含片上总线、MPU核、SDRAM/DRAM、 FLASH ROM、DSP、A/D、D/A、RTOS内核、网络协议 栈、嵌入式实时应用程序等模块,同时,它也具有外 部接口,如外部总线接口和I/O端口。通常,SoC中包 含的一些模块是经过预先设计的系统宏单元部件 (Macrocell)或核(Cores) ,或者例程(Routines), 称为IP模块,这些模块都是可配置的。 SoC概述概述 以超深亚微米VDSM(Very Deep Sub Micron)
2、工艺和 知识产权IP(Intellectual Property)核复用 (Reuse)技术为支撑。 是当今超大规模集成电路的发展趋势,也是21世纪集 成电路技术的主流,为集成电路产业提供了前所未有 的广阔市场和难得的发展机遇。 设计中,设计者面对的不再是电路芯片;而是能实现 设计功能的IP模块库。 设计不能一切从头开始,要将设计建立在较高的基础 之上,利用己有的IP芯核进行设计重用。 建立在IP芯核基础上的系统级芯片设计技术,使设计 方法从传统的电路级设计转向系统级设计。 基本概念基本概念 系统芯片:将一个系统的多个部分集成在一个芯片上系统芯片:将一个系统的多个部分集成在一个芯片上 广义:将
3、信息获取、处理、存储、交换甚至执行功能集广义:将信息获取、处理、存储、交换甚至执行功能集 成成 狭义:将信息处理、存储、交换等功能集成狭义:将信息处理、存储、交换等功能集成 单芯片蓝牙SoC系统框架图 特征:特征: 含有实现复杂功能的含有实现复杂功能的VLSI 使用嵌入式使用嵌入式CPU和和DSP 采用采用IP核进行设计核进行设计 采用采用VDSM技术技术 具有从外部对芯片编程的功能具有从外部对芯片编程的功能 SOC三大支撑技术:三大支撑技术: 软硬件协同设计技术软硬件协同设计技术 IP设计和复用技术设计和复用技术 超深亚微米设计技术超深亚微米设计技术 IP:Intellectual Prop
4、erty IP: 具有知识产权的经过验证、性能优化、可以被复用具有知识产权的经过验证、性能优化、可以被复用 的功能模块或子系统。的功能模块或子系统。 IP核,核,IP模块,系统宏单元,虚拟部件模块,系统宏单元,虚拟部件 IP复用:对系统中的有些模块直接用现成的复用:对系统中的有些模块直接用现成的IP来实现来实现 SOC与集成电路设计的区别与集成电路设计的区别 采用采用IP设计方法,提高产能设计方法,提高产能 软硬件同时进行设计调试软硬件同时进行设计调试 不同系统兼容不同系统兼容 集成度高,设计验证难集成度高,设计验证难 VDSM技术的采用使设计从面相逻辑转向面相互联技术的采用使设计从面相逻辑转
5、向面相互联 EDA工具还未成熟工具还未成熟 集成嵌入式软件集成嵌入式软件 系统芯片:通过系统芯片:通过IP核复用来提高设计产能,通过系核复用来提高设计产能,通过系 统集成来涵盖不同的技术,进行混合技术设计,包统集成来涵盖不同的技术,进行混合技术设计,包 括嵌入式、高性能或低功耗逻辑、模拟、射频等技括嵌入式、高性能或低功耗逻辑、模拟、射频等技 术的集成。术的集成。 2. SOC设计过程设计过程 要求要求系统描述系统描述 设计高层次算法级模型,验证设计高层次算法级模型,验证 对系统进行软硬件划分,定义接口对系统进行软硬件划分,定义接口 进行软硬件协同仿真验证进行软硬件协同仿真验证 对硬件进一步划分
6、成数个宏单元,并集成验证对硬件进一步划分成数个宏单元,并集成验证 系统集成,验证测试系统集成,验证测试 嵌入式系统的典型设计过程 软硬件协同设计:软硬件协同设计: 实际上就是一个系统的软件部分、硬件部分协同开发实际上就是一个系统的软件部分、硬件部分协同开发 的过程。在整个设计过程中,考虑系统软硬件部分的过程。在整个设计过程中,考虑系统软硬件部分 之间的相互作用以及探索它们之间的权衡划分,实之间的相互作用以及探索它们之间的权衡划分,实 际的软硬件协同设计覆盖设计过程中的许多问题,际的软硬件协同设计覆盖设计过程中的许多问题, 包括系统说明与建模、异构系统的协同仿真、软硬包括系统说明与建模、异构系统
7、的协同仿真、软硬 件划分、系统验证、编译、软硬件集成、界面生成、件划分、系统验证、编译、软硬件集成、界面生成、 性能与花费评估、优化等,其中软硬件划分是协同性能与花费评估、优化等,其中软硬件划分是协同 设计中最主要的挑战,它直接影响最后产品的性能设计中最主要的挑战,它直接影响最后产品的性能 与价格。与价格。 3. SOC关键技术和问题关键技术和问题 软硬件协同设计软硬件协同设计 软硬件划分,协同指标定义,协同分析,协同模拟,软硬件划分,协同指标定义,协同分析,协同模拟, 协同验证,接口综合协同验证,接口综合 在进行软硬件划分时,通常有两个主要的任务:第在进行软硬件划分时,通常有两个主要的任务:
8、第 一,分配(一,分配(allocation),),也就是选择系统部件的过也就是选择系统部件的过 程,包括选择系统部件的类型、确定每种类型的数程,包括选择系统部件的类型、确定每种类型的数 量;第二,划分(量;第二,划分(partitioning),),在选择的部件上在选择的部件上 分配系统的功能,也就是把系统的功能进行合理的分配系统的功能,也就是把系统的功能进行合理的 分块,使每一块映射到相应合理的部件上。这两个分块,使每一块映射到相应合理的部件上。这两个 设计任务必须满足设计限制集,包括花费、性能、设计任务必须满足设计限制集,包括花费、性能、 尺寸、功能、向后兼容等。尺寸、功能、向后兼容等。
9、 SOC建模语言建模语言SystemC SystemC: :一种软硬件联合建模语言一种软硬件联合建模语言 在在1999年年11月,以月,以Synopsys、CoWare、Froniter Design、ARM、Cygnus Solution、Ericsson、 Fujitsu、Infineon、Lucent Technologies、 Sony、ST Microelectronics、Taxas Instruments 等为代表的、世界上最主要的等为代表的、世界上最主要的EDA工具开发商、工具开发商、IP供供 应商、半导体厂家、系统和嵌入式软件公司联合宣布成应商、半导体厂家、系统和嵌入式软件公
10、司联合宣布成 立立OSCI(Open SystemC Initiative),),共同合作开共同合作开 发一种发一种C+建模平台,即建模平台,即SystemC,它是一种开放的它是一种开放的 语言。语言。 OSCI仿照仿照Linux 形式将形式将SystemC 的源代码在的源代码在Web 网上网上 公开供用户免费下载公开供用户免费下载,用户可以用这些源代码和编译器开发自己用户可以用这些源代码和编译器开发自己 的模型的模型,并与其他用户共享。认同开放式并与其他用户共享。认同开放式SystemC 的公司还包的公司还包 括括Actel、Alcatel、Altera、American Applied R
11、esearch、 ARC Cores、C0-Design Automation、Integrated Silicon Systems、Intellectrual Property、MIPS Technologies、 Simulation Magic、Summit Design、Sun Microsystems、 Viewlogic Systems、Xilinx等全球著名公司,这些公司都认为等全球著名公司,这些公司都认为 SystemC 是一种很好的硬件软件联合设计语言。是一种很好的硬件软件联合设计语言。Ericsson 公司公司 微电子部主任微电子部主任Jan-Olof Kismalm 说:
12、说:“通信系统的复杂性在不通信系统的复杂性在不 断地增加而新的系统却要求以更短的时间推向市场为了以最短的断地增加而新的系统却要求以更短的时间推向市场为了以最短的 时间开发出复杂的产品,需要我们采用单一的语言描述复杂的行时间开发出复杂的产品,需要我们采用单一的语言描述复杂的行 为和为和 IP,我们相信我们相信SystemC 可以帮助我们以更好的方法描述我可以帮助我们以更好的方法描述我 们的系统,并在设计过程的初始阶段进行有效的硬件软件联合设们的系统,并在设计过程的初始阶段进行有效的硬件软件联合设 计。这可以大大缩短我们开发产品的时间计。这可以大大缩短我们开发产品的时间”。Kismalm 先生的先
13、生的 话表达了世界上众多公司欢迎话表达了世界上众多公司欢迎SystemC 的原因。的原因。 C+编程语言是目前比较流行的计算机语言之一编程语言是目前比较流行的计算机语言之一,已被系已被系 统结构硬件工程师和软件工程师广泛使用统结构硬件工程师和软件工程师广泛使用,但却不能准确地描述但却不能准确地描述 硬件建模的概念硬件建模的概念。软件算法和接口规范用软件算法和接口规范用C或或C+语言写成语言写成, C+程序描述了系统的行为程序描述了系统的行为,提供了紧凑提供了紧凑、有效的系统描述所必有效的系统描述所必 需的控制和调用数据需的控制和调用数据。由于大多数设计者对于这些语言都很熟悉由于大多数设计者对于
14、这些语言都很熟悉, 并且有很大数量的开发工作都与之相关联并且有很大数量的开发工作都与之相关联,因而可利用资源比较因而可利用资源比较 丰富丰富。 在在C+语言的基础上语言的基础上,SystemC提供了一种扩展提供了一种扩展C+类库类库 进行硬件建模的方法和途径进行硬件建模的方法和途径,不需要增加不需要增加C+语言新的语法结构语言新的语法结构, 它既是一个它既是一个C+类库又是一种设计方法类库又是一种设计方法,可以有效地创建软件精可以有效地创建软件精 确算法和硬件结构模型确算法和硬件结构模型,以及以及SoC与系统设计的接口与系统设计的接口,可以在系可以在系 统级统级、行为描述级和行为描述级和RTL
15、级支持系统和硬件建模级支持系统和硬件建模。同时同时,允许设允许设 计者继续使用所熟悉的计者继续使用所熟悉的C+语言及开发工具语言及开发工具。 SystemC由一组由一组C+类库组成类库组成,是一种可描述硬件和软件是一种可描述硬件和软件 的系统建模语言的系统建模语言。它提供了一个支持硬件描述的类库和一个解释它提供了一个支持硬件描述的类库和一个解释 硬件描述的调度器硬件描述的调度器,并从并从C+继承了对软件的描述能力继承了对软件的描述能力。用户可用户可 使用使用SystemC对对SOC进行描述进行描述,然后使用一般然后使用一般C+编译器及连编译器及连 接器接器(如如Microsoft Visual
16、 C+、Borland C+和和GNU GCC 等等)对对SystemC描述描述、调度器和相关的硬件类库进行编译调度器和相关的硬件类库进行编译、链接链接, 能够产生可执行的系统描述能够产生可执行的系统描述。 就就SOC本身而言,它解决了系统级设计所面临的挑战,本身而言,它解决了系统级设计所面临的挑战, SystemC功能之所以强大,在于它可以作为系统设计师、软件工功能之所以强大,在于它可以作为系统设计师、软件工 程师和硬件工程师的共同语言。程师和硬件工程师的共同语言。SystemC允许允许IP模型的复用,模型的复用, 可共用工具的集成开发环境创建,完成从概念到实现的设计过程。可共用工具的集成开
17、发环境创建,完成从概念到实现的设计过程。 同时,同时,Verilog和和VHDL语言的语言的RTL级描述,现在也可以用级描述,现在也可以用 SystemC在在SoC设计中实现。设计中实现。 SystemC通过在通过在C+中增加了一个新类库的方法中增加了一个新类库的方法,实现对实现对 C+的扩充的扩充,这个新扩充的类库主要用来描述硬件模型的特性这个新扩充的类库主要用来描述硬件模型的特性, 扩充的内容包括:扩充的内容包括: (1 1) 类模板类模板SC-module:其作用相当于其作用相当于VHDL语言的设计实体语言的设计实体 ENTITY,由它构成系统模型的基本划分单元由它构成系统模型的基本划分
18、单元。我们可以将硬件我们可以将硬件 划分为许多设计实体划分为许多设计实体,每一个设计实体作为一个每一个设计实体作为一个SC-module, 每个每个SC-module包括端口包括端口、构造函数构造函数、数据成员数据成员、子模块和进子模块和进 程等描述程等描述。 (2 2) 函数函数Process进程:用于处理并发机制进程:用于处理并发机制,包括包括SC-module、 SC-thread和和SC-cthread。它可以实现硬件功能的仿真它可以实现硬件功能的仿真,可以可以 被激活和挂起被激活和挂起(由系统对由系统对C+多线程的调度能力实现多线程的调度能力实现)。 SystemC提供了进程对提供了
19、进程对clock、event和和wait语句的敏感和挂起语句的敏感和挂起 机制机制,同时支持周期仿真机制同时支持周期仿真机制。 (3 3) Clock时钟:用于处理硬件的定时特性时钟:用于处理硬件的定时特性。 (4 4) 支持决断和非决断类型支持决断和非决断类型。 (5 5) 支持支持C+本身所有的数据类型本身所有的数据类型,还定义了一些方便硬件仿真还定义了一些方便硬件仿真 的数据类型的数据类型。 (6 6) 等待和观察机制等待和观察机制,用来处理重激发行为用来处理重激发行为。 (7 7) 多重设计层次的描述能力,具有对系统级到多重设计层次的描述能力,具有对系统级到RTL级的多层次级的多层次
20、描述能力,并且支持不同设计层次之间的混合描述及通信能力。描述能力,并且支持不同设计层次之间的混合描述及通信能力。 为此,增加了模块、端口、信号等描述,用于处理层次机制。为此,增加了模块、端口、信号等描述,用于处理层次机制。 (8 8) 用来处理抽象通信的抽象端口和协议机制用来处理抽象通信的抽象端口和协议机制。 (9 9) 用用System-main将所有的模块链接在一起将所有的模块链接在一起,并提供时钟产生并提供时钟产生 器和调式器器和调式器,可以在可以在SystemC中进行调试中进行调试、分析分析、逐步优化设计逐步优化设计 模型模型。 (1010) 调试波形观察:调试波形观察:SystemC
展开阅读全文