摘要:EDA集成开发环境是电子系统开发必备的工具与手段。本文根据目前的EDA工具软件及其套件结构和电子系统的开发需要,提出三种不同类型的典型EDA集成开发环境框架结构——板级、芯片级和综合型电子系统EDA集成开发环境框架结构,并以图示的方式进行描述。
关键词:电子系统 电子设计自动化(EDA) 集成开发环境(IDE) SoC 框架结构
引 言
电子系统EDA集成开发环境IDE(Integrated Development Environment)是指根据电子系统设计流程,将设计流程中各个阶段所需要的不同的EDA工具软件集成在一个硬件平台上,进行项目设计开发的软硬工作环境。在此环境中,项目的设计数据通过文件方式在各个EDA工具之间流转,就像工厂里生产流水线上的产品流动一样,直到产品生产全过程结束。
由于各个EDA工具开发商在不同的设计环节有不同的专长,其EDA工具也有不同的特色。有的EDA工具行为描述能力强,不仅具有算法级和寄存器传输级行为设计描述能力,而且还具有系统级行为设计描述能力;有的EDA工具的逻辑综合效率高,占用资源少;有的EDA工具时序仿真较为精确,设计的项目能够工作于较高的频率;有的EDA工具界面友好,容易使用。选择优秀的EDA工具,构成超级的电子系统EDA集成开发环境是项目开发工程师首要的任务之一。通常,选择优秀的EDA工具有如下几个约束条件:①EDA工具的使用授权限制;②设计语言、设计数据、设计格式的兼容性;③EDA工具与计算机及其操作系统的兼容性问题;④设计项目实际需要的限制。
不同的设计对象,其EDA集成开发环境架构有很大的差别。例如,在经典的板级电子系统设计中,通常是将许多专用集成电路(ASIC)芯片、通用的门电路芯片设计在一块印刷电路板(PCB)上来完成整个电子系统设计,其设计的基本素材的集成电路芯片;在现代的芯片级电子系统设计中,通常是将许多的软、硬知识产权(IP)核或电路模块设计在一个超在规模集成电路芯片上来完成整个电子系统设计,其设计的基本素材是可复用的IP核或电路模块。随着集成电路技术的发展,电子系统设计开始逐渐从经典的板级系统设计转化为现代的芯片级系统设计,因此电子系统设计工程师的开发工作也逐渐从板上电子系统设计转向片上系统(SoC)设计,设计的基本构件也从通用的IC转为复用的IP。
本文根据目前的EDA工具软件或套件的结构,从电子系统的设计开发需要出发,把电子系统EDA集成开发环境分为三种类型:板级电子系统EDA集成开发环境、芯片级电子系统EDA集成开发环境和综合型电子系统EDA集成开发环境,并且提出此三种类型的EDA集成开发环境的框架结构,以便电子系统设计者从总体上了解和掌握电子系统集成开发环境使用方法和构造方法。
1 板级电子系统EDA集成开发环境
典型的板级电子系统EDA集成开发环境如图1所示。此种类型的集成开发环境通常是由板级电子系统的硬件系统集成设计环境(即PCB集成设计环境)和软件系统集成设计环境两个部分构成的。
任何一种板级电子系统都是由硬件和软件两个子系统组成的,因此一个完整的板级电子系统集成开发环境,除了用于硬件系统开发的EDA集成设计环境外,还应当包括软件实时仿真开发调试环境。对于低端的微控制器应用系统,通常是由硬件仿真器及其配套仿真软件组成的(见图1中部);对于高端32位嵌入式处理器应用系统,通常是一种基于嵌入式实时操作系统RTOS(Real-Time Operating System)平台(见图1底部)。
2 芯片级电子系统EDA集成开发环境
芯片级电子系统EDA集成开发环境,也是一种集成电路(IC)EDA集成开发环境。在集成电路设计中,不同的设计方法和设计流程需要不同的EDA集成开发环境。根据设计对象的不同,芯片级电子系统EDA集成开发环境可分为专用集成电路(ASIC)集成设计环境和片上系统(SoC)集成设计环境。这里需特别指出的是SoC和ASIC概念的区别。从电子线路的角度理解可以认为:ASIC是一种具有某种特定功能的大规模集成电路芯片,如VGA图像处理芯片、PCI接口芯片、视频放大芯片等;而SoC是一种集成了微处理器、存储器、外围电路和软件系统程序的自成系统的超大规模集成电路芯片。
(1)ASIC集成设计环境
典型的ASIC集成设计环境如图2所示。由图2可以得出,在此集成设计环境的设计流程中,可以生成五种不同类型的产品:①经过功能验证后的软IP核;②经逻辑综合验证后的固IP核,③可编程的专用集成电路(ASIC)器件;④由ASIC版图生成的硬IP核;⑤由代工厂生产的ASIC芯片。
(2)SoC集成设计环境
典型的SoC集成设计环境如图3所示。此集成环境是一种典型的软硬协同设计集成环境(或平台)。在此集成设计环境的设计流程中,也可以生成五种不同类型的产品:①经过功能验证后的软IP核;②经逻辑综合验证后的固IP核,③可编程的片上系统(SoPC)器件;④由SoC版图生成的硬IP核;⑤由代工厂生产的SoC芯片。
片上系统(SoC)设计所需要的EDA工具,若从硬件设计角度看,在设计流程的前端设计与ASIC设计差别不大;但是,从整个芯片设计角度出发,这两种类型的芯片设计有较大区别。这是因为在SoC设计中,一般都含有微处理器核,所设计的系统级芯片都必须具备有设备驱动程序与操作系统或嵌入式实时操作系统接口,并且具备有应用程序完成数字计算、信号处理变换、控制决策等功能。因此,在设计的前期,要软、硬件协同设计,确定哪些功能是由硬件完成的,哪些软件功能是由软件完成的,需要进行一个适当划分。在设计的中后期,要进行软硬件协同验证,即把软硬件设计放到一个虚拟的集成环境中进行仿真验证,以便验证硬件的性能是否达到设计目标,软件功能是否实现设计要求。
3 综合型电子系统EDA集成开发环境
典型的综合型电子系统EDA集成开发环境如图4所示,通常称其为整机型或混合型电子系统EDA集成开发环境。这种类型集成开发环境综合集成了芯片级和板级电子系统设计的EDA工具,可以完成如下三个方面工作:印刷电路板(PCB)设计、专用集成电路(ASIC)芯片设计和片上系统(SoC)芯片设计。在此集成开发环境中,PCB设计平台完成经典的板级电子系统设计工作,ASIC设计平台完成专用集成电路芯片设计工作,SoC设计平台完成现代芯片级电子系统设计工作,而PLD设计平台完成可编程型的ASIC和SoC芯片(包括CPLD/FPGA、SOPC等芯片)的设计工作。
4 电子系统EDA集成开发环境比较分析
无论是板级电子系统EDA集成开发环境,还是芯片级电子系统EDA集成开发环境,都不能全面地反应现代电子系统设计的实际现状,即在板级电子系统设计中存在有专用芯片设计问题,而在芯片级电子系统设计中存在印刷电路板(PCB)设计问题。存在这一实际问题的主要原因有如下两个方面:①在板级电子系统设计中,为了某种特殊需要(如简化系统逻辑设计、缩小PCB体积、提高系统的运行速度和可靠性等),或特殊功能要求(如特殊算法功能、特殊的数字信号处理功能等),需要采用一些用户自行设计的专用芯片,特别是可编程专用芯片。因此,在板级电子系统集成开发环境中需要融入芯片级电子系统设计的EDA工具。②在芯片级电子系统设计中,就目前的技术现状而言,即使是系统级芯片(SoC),由于集成电路规模和集成电路技术的限制,不可能把整个实际的电子系统电路完全集成在一个芯片内,需要把不能集成在芯片内的功能用另一个或多个芯片或器件来实现,而把多个芯片组合成一个电子系统就需要通过PCB,这就需要在芯片级电子系统集成环境中嵌入板级电子系统设计的EDA工具。正是基于上述原因,在综合型电子系统集成环境中,通常需要在板级电子系统EDA集成开发环境中融入芯片级电子系统设计的EDA工具,而在芯片级电子系统EDA集成开发环境中嵌入板级电子系统设计的EDA工具,因此称之为“综合型或混合型电子系统EDA集成开发环境”。这种综合型电子系统集成开发环境,是目前EDA工程技术的一种发展趋势。虽然,从表面上看,综合型电子系统集成环境只是板级电子系统EDA集成开发环境和芯片级电子系统EDA集成开发环境的一种组合,但是其与简单的组合有着本质的差别。这种差别源于EDA集成环境中的一个重要概念——EDA系统的框架结构。
EDA系统框架结构是一套创建电子系统集成设计环境和使用EDA工具软件的规范,能将来自不同EDA厂商的EDA工具软件进行优化组合,集成在一个易于管理的统一环境之下,支持任务之间、项目之间、设计工程师之间的信息传输和工程数据共享。这是并行设计工作和自顶向下设计方法的基础,也是构建电子系统集成设计环境或集成设计平台的基本规范。目前,主要的EDA系统都建立了框架结构,并且它们都遵循国际计算机辅助设计框架结构组织——CFI(CAD Framework International)的统一技术标准。