(1)在设计描述工具方面,传统的板级电子系统设计主要采用电路原理图和元器件外形封装图作为设计描述语言工具,而现在的芯片级电子系统设计主要采用文本方式的硬件描述语言(HDL——Hardware Description Language)作为设计描述语言工具;
(2) 在设计流程方面,板极电子系统设计主要经历电子系统原理图设计与仿真、印刷电路板(PCB)设计与仿真分板(包括信号完整性分析、电磁兼容性分析等)等二个阶段,而芯片级电子系统设计通常需要经历系统级设计与仿真、算法级设计与仿真、寄存器传输级(RTL)设计与仿真、逻辑综合与验证、版图设计综合与验证等5个阶段;
(3)在软硬件协同设计方面,板级电子系统设计所采用的方法是先进行硬件系统设计后再进行软件系统设计的方法,难以实现软硬同步设计或协同设计,而芯片级电子系统设计可以比较容易实现软硬件同时设计或协同设计;
(4)在设计实现方面,板级电子系统设计主要基于具有特定功能的集成电路器件,而芯片级电子系统设计主要是基于具有特定功能的电路模块——知识产权核(IP核)。因此,板级电子系统设计与芯片级电子系统设计无论是在设计方法上还是在设计工具方面都发生了较大的变化。
随着现代信息技术的发展,电子产品生命周期越来越短,特别是电子工业技术不断发展,基于深亚微米和超深亚微米的超大规模集成电路技术的片上系(SOC) 芯片需求日益扩大,传统的板级电子系统设计方法已不能适应产业界对电子产品需求。因此,基于知识产权(IP)核复用的芯片级电子系统设计方法将成为嵌入式系统设计的主流方式。
2 基于可编程片上系统(SoPC)的设计流程
基于可编程片上系统(SOPC)的芯片级电子系统设计主要有两大支撑点:可编程片上系统器件所能提供的片上资源和可复用IP核库所能提供的IP核资源。其中,可编程片上系统器件所能提供的片上资源是由集成电路工艺技术发展决定的,对于系统设计者来讲,应根据设计要求尽量选择合适的器件;可复用TP核库所能提供的IP核资源需要通过系统设计者自行建设。在基于SOC的电子系统设计中,针对各类专门技术、专门应用、专门工具、专门生产工艺、专门产品的IP资源库的建设和共享已形成一种规范,贯穿在系统设计的全过程。图1为典型的基于IP核库的片上系统(SOC)设计流程。
从图1可以看出,在基于可编程上系统(SOPC)的嵌入式系统设计流程中,除了需要强有力的EDA设计工具支持外,离开充分的资源库的支持,可以说是寸步难行,并且必将失去竞争力。从总体上讲,各个层次的IP库和EDA工具是芯片级电子系统设计者必备的两翼,可选的IP核库资源是一种设计者能力的表征。图 2为芯片级电子系统设计中自顶向下设计方法的流程中所依赖的库支持说明。
在图1的片上系统(SOC)设计流程中,除了需要强有力的IP核库和EDA工具支持外,与传统的专用集成电路(ASIC)设计流程最明显的区别就是——软硬件协同设计,图3给出软硬件协同设计的一般流程。在软硬件协同设计的过程中,传统的硬件描述语言(VHDL、Verilog HDL)和软件设计语言(C/C++)是无法适应软硬件协同设计这一种新的设计方法上的突破,为此必须使用新的系统级描述语言——System C(或其他类似语言)才能完成。
软硬件协同设计通常是从一个给定的系统任务开始的,通过有效地分析系统任务和所需要的资源,采用一系列的变换方法并且遵循特定的准则,自动生成符合系统功能要求的、符合实现代价约束的硬件和软件框架。这种全新的软硬件协同设计思想需要解决许多问题:系统级建模、系统级描述语言、软硬件划分、性能评估、协调综合、协同仿真和协同 验证。
3 基于可编程片上系统(SOPC)的集成设计环境
片上系统(SOC)设计所需要的EDA工具,若从硬件设计角度看,在设计流程的前端与ASIC设计差别不大。但是,从整个芯片设计角度出发,这两种类型的芯片设计区别较大。这是因为,在SOC设计中,一般都含有微处理器,所设计的系统级芯片都必须有设备驱动程序与操作系统或嵌入式实时操作系统接口,必须有应用程序完成数字计算、信号处理变换、控制决策等功能。因此,在设计的前期,需要进行软、硬件协同设计,以便确定那些功能是由硬件完成的,那些功能是由软件完成的,并且进行适当划分。在设计的中后期,要进行软硬件协同验证,即把软硬件设计放到一个虚拟的集成环境中进行仿真验证,以便验证硬件的性能是否达到设计目标,软件功能是否实现设计要求。
根据可编程片上系统(SOPC)设计流程和软硬件协同设计的一般流程,作者提出基于可编程片上系统(SOPC)的芯片级电子系统的集成设计环境,如图4所示。此集成环境是一种典型的软硬协同设计集成环境(或平台),是由二个不同层次、不同功能的EDA集成设计环境组成。
第一层次的EDA集成设计环境是SOC系统级集成设计环境,主要用于完成嵌入式系统的系统级设计。首先,需要根据客户的要求,进行系统的功能定义和性能评估,以便确定系统规格;其次,根据已经确定的系统规格,应用系统级描述语言(C/C++或System C等)进行系统设计描述与设计验证,以便确定所定义的系统规格在功能上是否可以实现;再次,在证明了系统规格在功能上可以实现后,就需要进行系统软硬件功能划分,以便确定系统的哪些功能是由软件系统完成的、哪些功能是由硬件系统完成的、哪些功能需要软硬件协同完成,对于既可以通过软件系统完成也可以通过硬件系统完成的功能,需要进行性能与成本的评估;最后,对已经确定的硬件系统功能,还需要进行芯片与PCB功能的划分,以便确定哪些功能可以在芯片上实现、哪些功能只能在PCB上实现。
第二层次的EDA集成设计环境是SOC硬件系统集成设计环境和SOC软件系统集成设计环境,主要用于完成嵌入式系统的软硬系统设计。首先,根据系统级设计中的功能划分,分别进行SOC的硬件系统设计和SOC的软件系统设计。此时的硬件系统设计和软件系统的设计是并行进行的。在硬件系统设计中,通常经历几个设计阶段:行为描述与验证(包括硬件系统的系统级、算法级、寄存器传输级的行为描述与仿真验证)、逻辑综合与验证、可测性设计综合与逻辑生成、器件适配与仿真验证、器件物理编程与物理验证、版图生成与验证。其中,前4个设计阶段是基于SOPC的硬件系统设计流程。在软件系统设计中,通常经历如下几个阶段:软件系统编辑、软件系统编译、软件系统仿真调试、软件系统编程等。其次,在软硬件系统设计过程中,为了确保系统的性能价格比达到最优,需要不断进行软硬件协同设计。通常在硬件系统行为描述与仿真之后,就可以把所设计的硬件系统与软件系统置于虚拟器件的软硬件协同仿真验证环境中,以便验证硬件系统集成的系统所能达到的功能、性能、成本等,从而使得所实现的芯片级电子系统的性能价格比达到最优。
综上所述,基于可编程片上系统(SOPC)的嵌入式系统集成设计环境是一个相当复杂的集成EDA开发环境,常见的可编程片上系统集成化EDA开发套件—— Altera公司的Quartus II系列的EDA工具套件和Xilinx公司的ISE 5.x系列的EDA工具套件的储存成化程度虽然较高,但也难以达到图4所示的集成化程度。因此,需要系统设计设计者根据现有的商用化EDA工具构建这样的集成设计环境。有理由相信在不久的将来,将会推出类似的集成EDA工具环境。
4 片上系统(SOC)是嵌入式系统发展方向
嵌入式系统的核心部件是微处理器,由于集成电路技术的发展,以及电子产品及时面市的要求,促使微处理器(包括微控制器、数字信号处理器、嵌入式处理器)向单芯片系统方向发展,从而使得基于片上系统(SOC)的电子系统成为嵌入式系统的发展方向和主流。目前国内的基于片上系统(SOC)的嵌入式系统设计大都停留在板级电子系统设计水平,随着可编程片上系统(SOPC)器件的应用发展,相信在今后的若干年内,基于SOC的嵌入式系统设计会逐渐过渡到芯片级电子系统的设计水平。由于芯片级电子系统设计方法与板级电子系统设计方法有着本质的区别,因此了解与掌握芯片级电子系统的设计流程、集成设计环境对于系统设计者来讲是至关重要的,为此本文以图示方式直观地给出基于可编程片上系统(SOPC)的芯片级电子系统设计流程和集成设计环境,全面展示了芯片级电子系统所涉及到的问题。