发新话题
打印

[综合布线] [转载]SoPC与嵌入式系统软硬件协同设计

[转载]SoPC与嵌入式系统软硬件协同设计

                                                   SoPC与嵌入式系统软硬件协同设计

                                                         作者:上海商学院 唐思章 黄勇

摘要  软硬件协同设计是电子系统复杂化后的一种设计新趋势,其中SoCSoPC是这一趋势的典型代表。SoPC技术为系统芯片设计提供了一种更为方便、灵活和可靠的实现方式。在介绍系统级芯片设计技术的发展由来后,重点介绍SoPC设计系统芯片中的软硬件协同设计方法,并指出它比SoC实现方式所具有的优势。

 关键词  嵌入式系统软硬件协同设计片上可编程系统(SoPC


收藏到网摘:
本贴地址:http://bbs.shejis.com/viewthread.php?tid=39698&fromuid=0
点这里,把本帖地址在MSN/QQ上发给朋友分享!同时你还可以获得积分!

乐观向上,快乐每一天。

TOP

Re:楼主

1  概述

20世纪90年代初,电子产品的开发出现两个显著的特点:产品深度复杂化和上市时限缩短。基于门级描述的电路级设计方法已经赶不上新形势的发展需要,于是基于系统级的设计方法开始进入人们的视野。随着半导体工艺技术的发展,特别是超深亚微米(VDSM0.25μm)工艺技术的成熟,使得在一块硅芯片上集成不同功能模块(成为系统集成芯片)成为可能。这种将各种功能模块集成于一块芯片上的完整系统,就是片上系统SoCSystem on Chip)。SoC是集成电路发展的必然趋势。

SoC设计技术始于20世纪90年代中期,它是一种系统级的设计技术。如今,电子系统的设计已不再是利用各种通用集成电路ICIntegrated Circuit)进行印刷电路板PCBPtinted Circuit Board)板级的设计和调试,而是转向以大规模现场可编程逻辑阵列FPGAField-Programmable Gate Array)或专用集成电路ASICAp



乐观向上,快乐每一天。

TOP

Re:楼主

到目前为止,Soc还没有一个公认的准确定义,但一般认为它有三大技术特征:采用深亚微米(DSM)工艺技术,IP核(Intellectual Property Core)复用以及软硬件协同设计。SoC的开发是从整个系统的功能和性能出发,利用IP复用和深亚微米技术,采用软件和硬件结合的设计和验证方法,综合考虑软硬件资源的使用成本,设计出满足性能要求的高效率、低成本的软硬件体系结构,从而在一个芯片上实现复杂的功能,并考虑其可编程特性和缩短上市时间。使用SoC技术设计的芯片,一般有一个或多个微处理器芯片和数个功能模块。各个功能模块在微处理器的协调下,共同完成芯片的系统功能,为高性能、低成本、短开发周期的嵌入式系统设计提供了广阔前景。

SOPC技术最早是由美国Altera公司于2000年提出的,是现代计算机辅助设计技术、电子设计自动化EDAElectronics Design Automation)技术和大规模集成电路技术高度发展的产物。SOPC技术的目标是将尽可能大而完整的电子系统在一块FPGA中实现,使得所设计的电路在规模、可靠性、体积、功能、性能指标、上市周期、开发成本、产品维护及其硬件升级等多方面实现最优化。SOPC的设计以IP为基础,以硬件描述语言为主要设计手段,借助以计算机为平台的EDA工具,自动化、智能化地自顶向下地进行。



乐观向上,快乐每一天。

TOP

Re:楼主

2  SoPC设计中的软硬件协同设计

 21  软硬件协同设计的背景

系统级芯片设计是微电子设计领域的一场革命,它主要有3个关键的支撑技术:

①软、硬件的协同设计技术。主要是面向不同目标系统的软件和硬件的功能划分理论(Functional Partition Theory)和设计空间搜索技术。

IP模块复用技术。IP是指那些集成度较高并具有完整功能的单元模块,如MPUDSPDRAMFlash等模块。IP模块的再利用,除了可以缩短芯片的设计时间外,还能大大降低设计和制造的成本,提高可靠性。IP可分为硬IP和软IPSoPC中使



乐观向上,快乐每一天。

TOP

Re:楼主

        22  软硬件协同设计的发展过程

嵌入式系统设计早期,主要有两种方式:一是针对一个特定的硬件进行软件开发;二是根据一个已有的软件实现其具体的硬件结构。前者是一个软件开发问题;后者是一个软件固化的问题。早期的这种设计没有统一的软硬件协同表示方法;没有设计空间搜索,从而不能自动地进行不同的软硬件划分,并对不同的划分进行评估;不能从系统级进行验证,不容易发现软硬件边界的兼容问题;上市周期较长。因此,早期的设计存在各种缺陷和不足。使用软硬件协同设计后,从系统功能描述开始,将软硬件完成的功能作全盘考虑并均衡,在设计空间搜索技术下,设计出不同的软硬件体系结构并进行评估,最终找到较理想的目标系统的软硬件体系结构,然后使用软硬件划分理论进行软硬件划分并设计实现。在设计实现时,始终保持软件和硬件设计的并行进行,并提供互相通信的支持。在设计后期对整个系统进行验证,最终设计出满足条件限制的目标系统。以FPGlA为基础的SoPC的软硬件协同设计,为芯片设计实现提供了更为广阔自由的空间。



乐观向上,快乐每一天。

TOP

Re:楼主

        23  软硬件协同设计涉及的内容

目前,SoPC中的软硬件协同设计主要涉及到以下内容:系统功能描述方法、设计空间搜索(DSE)支持、资源使用最优化的评估方法、软硬件划分理论、软硬件详细设计、硬件综合和软件编译、代码优化、软硬件协同仿真和验证等几个方面,以及同系统设计相关的低压、低功耗、多布线层数、高总线时钟频率、IO引脚布线等相关内容。

系统功能描述方法解决系统的统一描述。这种描述应当是对软硬件通用的,目前一般采用系统描述语言的方式。在软硬件划分后,能编译并映射成为硬件描述语言和软件实现语言,为目标系统的软硬件协同工作提供强有力的保证。

设计空间搜索提供了一种实现不同设计方式、理解目标系统的机制,设计出不同的软硬件体系结构,使最优化的设计实现成为可能。

最优化的评估方法解决软硬件的计量和评估指标,从而能够对不同的设计进行资源占用评估,并进而选出最优化的设计。

FPGA的评估可以做到以引脚为基本核算单位。软硬件划分理论从成本和性能出发,决定软硬件的划分依据和方法。基本原则是高速、低功耗由硬件实现;多品种、小批量由软件实现;处理器和专用硬件并用以提高处理速度和降低功耗。划分的方法从两方面着手:一是面向软件,从软件到硬件满足时序要求;二是面向硬件,从硬件到软件降低成本。在划分时,要考虑目标体系结构、粒度、软硬件实现所占用的成本等各种因素。划分完后,产生软硬件分割界面,供软硬件沟通、验证和测试使用。

软硬件详细设计完成划分后的软件和硬件的设计实现。硬件综合是在厂家综合库的支持下,完成行为级、RTL以及逻辑级的综合。代码优化完成对设计实现后的系统进行优化,主要是与处理器相



乐观向上,快乐每一天。

TOP

Re:楼主

         24  软硬件协同设计的系统结构

软硬件协同设计在实际应用中表现为软硬件协同设计平台的开发。从系统组成的角度,可以用图1来表述软硬件协同设计平台的系统组成。其中设计空间搜索部分自体系结构库、设计库、成本库、系统功能描述和系统设计约束条件组成。设计空问搜索的任务是对不同的目标要求到恰当的解决办法。体系结构库是存放协同设计支持的各种体系结构数据库,一般是通过不同的模型表现出来。到目前为止,使用较多的模型有状态转换模型(有限状态机)、事件驱动模型、物理结构组成模型、数据流程模型和混合模型等。体系结构的丰富程度决定了对目标系统的软硬件协同设计的支持力度。设计库中包含可以使用的程序或网表的设计执行数据库,为新的设计提供参考依据。成本库中提供设计成本的计算方法以及由目标系统的资源消耗、电源消耗、芯片面积、实时要求等组成的数据库,是工作在给定平台上的明确界定。在设计空间搜索中还有一个比较重要的步骤,是对一个给定设计进行评估,主要有评估目标系统的成本、性能、正确性等。经过评估后的设计可以进行软硬件划分,产生硬件描述、软件描述和软硬件界面描述三个部分,以及各个部分的具体实现并优化。最后进行硬件综合、软硬件集成和系统仿真和测试。



乐观向上,快乐每一天。

TOP

Re:楼主

        25  软硬件协同设计流程

面向SoPC的软硬件协同设计流程从目标系统构思开始。对一个给定的目标系统,经过构思,完成其系统整体描述,然后交给软硬件协同设计的开发集成环境,由计算机自动完成剩余的全部工作。一般而言,还要经过模块的行为描述、对模块的有效性检查、软硬件划分、硬件综合、软件编译、软硬件集成、软硬件协同仿真与验证等各个阶段。软硬件协同设计流程如图2所示。其中软硬件划分后产生硬件部分、软件部分和软硬件接口界面三个部分。硬件部分遵循硬件描述、硬件综合与配置、生成硬件组建和配置模块;软件部分遵循软件描述、软件生成和参数化的步骤,生成软件模块。最后把生成的软硬件模块和软硬件界面集成,并进行软硬件协同仿真,以进行系统评估和设计验证.



乐观向上,快乐每一天。

TOP

Re:楼主

       3  SoPC的软硬件协同设计的优势

 SoPC相比,SoC具有如下缺点:首先,使用ASIC的试制和流片风险大、成本高、成功率不高,一旦制片后就不能再进行修改。其次,使用ASIC设计芯片系统时,由于微控制器、功能模块等IP是根据目标系统性能进行选择的,一旦选定,所选择的IP的性能就不能再修改,也就基本上决定了目标系统的性能,使得目标系统的性能优化空间相当狭窄,同时也使得设计完成后的目标系统的硬件升级变得不可能。再有,就是这种方式的硬件设计只能是流于拼装和连接选定的硬件系统结构,指令不可更改,根据指令系统来进行编程。设计人员的创造发挥自由度狭小,限制了人的能动性在设计中应有的作用。

SoPC的可编程特性对这些问题没有限制。SoPC技术在电子设计上给出了一种以人的基本能力为依据的软硬件综合解决方案;同时涉及到底层的硬件系统设计和软件设计,在系统化方面有了广大的自由度。开发者在软硬件系统的综合与构建方面可以充分发挥创造性和想象力,使得多角度、多因素和多结构层面的大幅度优化设计成为可能,使用其可编程特性与IP核相结合,可以快速、低廉地开发出不同的协处理器,从而真正实现硬件编程、升级和重构。随着FPGA制造工业的发展,这种优势将会更加明显。



乐观向上,快乐每一天。

TOP

Re:楼主

       4  支持SoPC软硬件协同设计的工具

 1Cadence Virtual Component Co-designVOC

第一个为IP复用所设计的工业系统级HWSW co-design开发平台环境。在早期设计时就可以确认软硬件划分的临界体系结构。它通过电子供给链进行交流和交换设计信息,为系统库和SoC提供必要的框架。

2System C

一种通过类对象扩展的基于CC + + 的建模平台,支持系统级软硬件协同设计仿真和验证,是建立在C++基础上的新型建模方法,方便了系统级设计和IP交换。在System C语言描述中,最基本的构造块是进程。一个完整的系统描述



乐观向上,快乐每一天。

TOP

Re:楼主

   (3)美国Altera公司的Quartus II软件

集成良好的工具。它具有不寻常的综合结构及平面规划和布局布线能力,可以进行时序和资源优化;强有力的验证功能是业内惟一支持在系统更新RAMROM和常量的软件,可以方便地在系统执行试验而不必重新编译设计或重新配置FPGA的其余部分,大大减小了设计周期;容易使用,保持了可编程逻辑器件领域上的性能领导地位。作为系统生成工具的SoPC Builder,集成在Quartus II软件的所有版本中。SoPC Builder提高了FPGA设计人员的工作效率。以其新特性及面向SoPC Builder知识产权的IP内核,设计人员采用PCIElDDRDDR2外部存储器,可以迅速生成系统,进行引脚分配,提高设计集成度和可重用性。



乐观向上,快乐每一天。

TOP

Re:楼主

    结 

 软硬件协同设计作为系统级设计的支持技术,理论上和技术上还在不断地发展和完善中。研究开发功能强大的软硬件协同设计平台,是这一技术逐渐走向成熟的标志,而基于FPGA实现的SoPC技术,比基于ASIC实现的SoC技术提供了一种更灵活而成本低廉的系统级芯片设计方式。国内外都在研发支持SoPC技术的软硬件协同设计平台。在国内,这方面的研究开发已经展开并取得了初步的成果。北京大学计算机系杨芙清院士和程旭教授等人,已经开发成功国内第一个微处理器软硬件协同设计平台;上海嵌入式系统研究所开发的基于FPGA实现处理器的ECNUX开发平台,10版本已经完成,功能强大的20版本正在开发过程中。在不久的将来,随着软硬件协同设计技术研究的深入,支持FPGA设计实现的功能强大的软硬件协同设计平台将会出现,并加速推进嵌入式系统的设计开发进程。



乐观向上,快乐每一天。

TOP

Re:楼主

很好


愿意结识更多的朋友,共同学习,共同进步,不断提高自身的设计水平

TOP

发新话题
统计代码