预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共41页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第八章系统芯片SOC设计SoC概述SoC概述基本概念IP:IntellectualPropertySOC与集成电路设计的区别2.SOC设计过程软硬件协同设计:实际上就是一个系统的软件部分、硬件部分协同开发的过程。在整个设计过程中,考虑系统软硬件部分之间的相互作用以及探索它们之间的权衡划分,实际的软硬件协同设计覆盖设计过程中的许多问题,包括系统说明与建模、异构系统的协同仿真、软硬件划分、系统验证、编译、软硬件集成、界面生成、性能与花费评估、优化等,其中软硬件划分是协同设计中最主要的挑战,它直接影响最后产品的性能与价格。软硬件协同设计软硬件划分,协同指标定义,协同分析,协同模拟,协同验证,接口综合在进行软硬件划分时,通常有两个主要的任务:第一,分配(allocation),也就是选择系统部件的过程,包括选择系统部件的类型、确定每种类型的数量;第二,划分(partitioning),在选择的部件上分配系统的功能,也就是把系统的功能进行合理的分块,使每一块映射到相应合理的部件上。这两个设计任务必须满足设计限制集,包括花费、性能、尺寸、功能、向后兼容等。SOC建模语言SystemCOSCI仿照Linux形式将SystemC的源代码在Web网上公开供用户免费下载,用户可以用这些源代码和编译器开发自己的模型,并与其他用户共享。认同开放式SystemC的公司还包括Actel、Alcatel、Altera、AmericanAppliedResearch、ARCCores、C0-DesignAutomation、IntegratedSiliconSystems、IntellectrualProperty、MIPSTechnologies、SimulationMagic、SummitDesign、SunMicrosystems、ViewlogicSystems、Xilinx等全球著名公司,这些公司都认为SystemC是一种很好的硬件软件联合设计语言。Ericsson公司微电子部主任Jan-OlofKismalm说:“通信系统的复杂性在不断地增加而新的系统却要求以更短的时间推向市场为了以最短的时间开发出复杂的产品,需要我们采用单一的语言描述复杂的行为和IP,我们相信SystemC可以帮助我们以更好的方法描述我们的系统,并在设计过程的初始阶段进行有效的硬件软件联合设计。这可以大大缩短我们开发产品的时间”。Kismalm先生的话表达了世界上众多公司欢迎SystemC的原因。C++编程语言是目前比较流行的计算机语言之一,已被系统结构硬件工程师和软件工程师广泛使用,但却不能准确地描述硬件建模的概念。软件算法和接口规范用C或C++语言写成,C++程序描述了系统的行为,提供了紧凑、有效的系统描述所必需的控制和调用数据。由于大多数设计者对于这些语言都很熟悉,并且有很大数量的开发工作都与之相关联,因而可利用资源比较丰富。在C++语言的基础上,SystemC提供了一种扩展C++类库进行硬件建模的方法和途径,不需要增加C++语言新的语法结构,它既是一个C++类库又是一种设计方法,可以有效地创建软件精确算法和硬件结构模型,以及SoC与系统设计的接口,可以在系统级、行为描述级和RTL级支持系统和硬件建模。同时,允许设计者继续使用所熟悉的C++语言及开发工具。SystemC由一组C++类库组成,是一种可描述硬件和软件的系统建模语言。它提供了一个支持硬件描述的类库和一个解释硬件描述的调度器,并从C++继承了对软件的描述能力。用户可使用SystemC对SOC进行描述,然后使用一般C++编译器及连接器(如MicrosoftVisualC++、BorlandC++和GNUGCC等)对SystemC描述、调度器和相关的硬件类库进行编译、链接,能够产生可执行的系统描述。就SOC本身而言,它解决了系统级设计所面临的挑战,SystemC功能之所以强大,在于它可以作为系统设计师、软件工程师和硬件工程师的共同语言。SystemC允许IP模型的复用,可共用工具的集成开发环境创建,完成从概念到实现的设计过程。同时,Verilog和VHDL语言的RTL级描述,现在也可以用SystemC在SoC设计中实现。SystemC通过在C++中增加了一个新类库的方法,实现对C++的扩充,这个新扩充的类库主要用来描述硬件模型的特性,扩充的内容包括:(1)类模板SC-module:其作用相当于VHDL语言的设计实体ENTITY,由它构成系统模型的基本划分单元。我们可以将硬件划分为许多设计实体,每一个设计实体作为一个SC-module,每个SC-module包括端口、构造函数、数据成员、子模块和进程等描述。(2)函数Process进程:用于处理并发机制,包括SC-module、SC-thread和SC-cthread。