发 帖  
原厂入驻New
如何进行SoPC与嵌入式系统软硬件协同设计?
80 SoPC 嵌入式系统 FPGA
分享

软硬件协同设计是电子系统复杂化后的一种设计新趋势,其中SoC和SoPC是这一趋势的典型代表。

0
2019-11-11 07:35:04   评论 分享淘帖 邀请回答
2个回答
SoPC技术为系统芯片设计提供了一种更为方便﹑灵活和可靠的实现方式。在介绍系统级芯片设计技术的发展由来后,重点介绍SoPC设计系统芯片中的软硬件协同设计方法,并指出它比SoC实现方式所具有的优势。
  
1、概述

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

SoC设计技术始于20世纪90年代中期,它是一种系统级的设计技术。如今,电子系统的设计已不再是利用各种通用集成电路 IC(Integrated Circuit)进行印刷电路板PCB(Printed Circuit Board)板级的设计和调试,而是转向以大规模现场可编程逻辑阵列 FPGA (Field?Programmable Gate Array)或专用集成电路 ASIC (Application Specific Integrated Circuit)为物理载体的系统级的芯片设计。使用ASIC为物理载体进行芯片设计的技术称为片上系统技术,即SoC;使用FPGA作为物理载体进行芯片设计的技术称为可编程片上系统技术,即SoPC(System on Programmable Chip)。SoC技术和SoPC技术都是系统级的芯片设计技术(统称为广义SoC)。

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

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

系统级芯片设计是一种高层次的电子设计方法,设计人员针对设计目标进行系统功能描述,定义系统的行为特性,生成系统级的规格描述。这一过程中可以不涉及实现工艺。一旦目标系统以高层次描述的形式输入计算机后,EDA系统就能以规则驱动的方式自动完成整个设计。为了满足上市时间和性能要求,系统级芯片设计广泛采用软硬件协同设计的方法进行。

2019-11-11 16:01:15 评论

举报

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

2.1 软硬件协同设计的背景

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

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

② IP模块复用技术。IP是指那些集成度较高并具有完整功能的单元模块,如MPU、DSP、DRAM、Flash等模块。IP模块的再利用,除了可以缩短芯片的设计时间外,还能大大降低设计和制造的成本,提高可靠性。IP可分为硬IP和软IP。SoPC中使用的IP多数是软IP。软IP可重定制、剪裁和升级,为优化资源和提高性能提供了很大的灵活性。
  
③ 模块以及模块界面间的综合分析和验证技术。综合分析和验证是难点,要为硬件和软件的协同描述、验证和综合提供一个自动化的集成开发环境。
  
过去,最常用的设计方法是层次式设计,把设计分为3个域:行为域描述系统的功能;结构域描述系统的逻辑组成;物理域描述具体实现的几何特性和物理特性。采用自顶向下的层次式设计方法要完成系统级、功能级、寄存器传输级、门级、电路级、版图级(物理级)的设计,经历系统描述、功能设计、逻辑设计、电路设计、物理设计、设计验证和芯片制造的流程,是一个每次都从头开始的设计过程。传统的IC设计方法是先设计硬件,再根据算法设计软件。在深亚微米设计中,硬件的费用是非常大的。当设计完成后,发现错误进行更改时,要花费大量的人力、物力和时间,且设计周期变长。
  
现在,芯片的设计是建立在IP复用的基础之上的,利用已有的芯核进行设计重用,完成目标系统的整体设计以及系统功能的仿真和验证。一般采用从系统行为级开始的自顶向下设计方法,把处理机制、模型算法、软件、芯片结构、电路直至器件的设计紧密结合起来,在单个芯片上完成整个系统的功能。同IC组成的系统相比,由于采用了软硬件协同设计的方法,能够综合并全盘考虑整个系统的各种情况,可以在同样的工艺技术条件下实现更高性能的系统指标。既缩短开发周期,又有更好的设计效果,同时还能满足苛刻的设计限制。
  
2.2 软硬件协同设计的发展过程
  
嵌入式系统设计早期,主要有两种方式:一是针对一个特定的硬件进行软件开发;二是根据一个已有的软件实现其具体的硬件结构。前者是一个软件开发问题;后者是一个软件固化的问题。早期的这种设计没有统一的软硬件协同表示方法;没有设计空间搜索,从而不能自动地进行不同的软硬件划分,并对不同的划分进行评估;不能从系统级进行验证,不容易发现软硬件边界的兼容问题;上市周期较长。因此,早期的设计存在各种缺陷和不足。使用软硬件协同设计后,从系统功能描述开始,将软硬件完成的功能作全盘考虑并均衡,在设计空间搜索技术的支持下,设计出不同的软硬件体系结构并进行评估,最终找到较理想的目标系统的软硬件体系结构,然后使用软硬件划分理论进行软硬件划分并设计实现。在设计实现时,始终保持软件和硬件设计的并行进行,并提供互相通信的支持。在设计后期对整个系统进行验证,最终设计出满足条件限制的目标系统。以FPGA为基础的SoPC的软硬件协同设计,为芯片设计实现提供了更为广阔自由的空间。

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

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

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

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

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

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

软硬件详细设计完成划分后的软件和硬件的设计实现。硬件综合是在厂家综合库的支持下,完成行为级、RTL以及逻辑级的综合。代码优化完成对设计实现后的系统进行优化,主要是与处理器相关的优化和与处理器无关的优化。与处理器相关的优化受不同的处理器类型影响很大,一般根据处理器进行代码选择、主要是指令的选择;指令的调度(并行、流水线等)、寄存器的分配策略等;与处理器无关的优化主要有常量优化、变量优化和代换、表达式优化、消除无用变量、控制流优化和循环内优化等。

软硬件协同仿真和验证完成设计好的系统的仿真和验证,保证目标系统的功能实现、满足性能要求和限制条件,从整体上验证整个系统。
2019-11-11 16:01:20 评论

举报

只有小组成员才能发言,加入小组>>

166个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表