1 引 言
随着微电子技术与计算机技术的日益成熟,电子设计自动化(EDA)技术在电子产品与集成电路(IC)芯片特别是单片集成(SOC)芯片的设计应用中显得越来越重要。EDA技术采用“自上至下”的设计思想,允许设计人员能够从系统功能级或电路功能级进行产品或芯片的设计,有利于产品在系统功能上的综合优化,从而提高了电子设计项目的协作开发效率,降低新产品的研发成本。
近十年来,EDA电路设计技术和工程管理方面的发展主要呈现出两个趋势:
(1) 电路的集成水平已经进入了深亚微米的阶段,其复杂程度以每年58%的幅度迅速增加,芯片设计的抽象层次越来越高,而产品的研发时限却不断缩短。
(2) IC芯片的开发过程也日趋复杂。从前期的整体设计、功能
划分,到具体的逻辑综合、仿真测试,直至后期的电路封装、排版布线,都需要反复的验证和修改,单靠个人力量无法完成。IC芯片的开发已经实行多人分组协作。
由此可见,如何提高设计的抽象层次,在较短时间内设计出较高性能的芯片,如何改进EDA工程管理,保证芯片在多组协作设计下的兼容性和稳定性,已经成为当前EDA工程中最受关注的问题。
针对这些问题,人们提出了软硬件协同建模设计的思想,将统一建模语言(UML)与SoC设计流程相结合,产生了新型的SoC设计方法,同时对EDA工程的分组协作采用层次化管理,提高了芯片研发团队的协调合作能力,进一步加快SoC产品的开发速度。本文从建模的思想出发,主要阐述了结合UML建模技术的新型SoC设计流程的原理及其优势,介绍了支持SystemC的UML架构及其应用,最后针对EDA工程的分组协作的管理问题,介绍了一种层次化管理的原理和改进方案。
2 基于UML建模的SoC设计方法
SoC设计的关键在于异类模块之间的协作兼容程度以及这些模块在高抽象层次上的工作能力。常规的SoC设计过程,如图1所示,是从最初的系统的需求描述开始的,然后根据该需求描述,系统被划分成多个功能模块,例如存储器部分,放大器部分等。功能划分的正确性,将在较高层次的功能仿真中得到检验。

功能划分之后,系统进入最重要的软硬件分离阶段,分离开的硬件和软件部分有其各自的设计流程。通常,软件部分使用程序语言(如C/C++)编写代码,形成目标文件后即可进行仿真测试。而硬件部分被分离出来之后,需要进一步细化、抽象才能进入寄存器传输级(RTL)的描述阶段。在这个阶段,硬件采用硬件描述语言(如HDL)来描述,然后通过进一步逻辑综合,形成常规元件库或预定义元件库中已有的逻辑单元。这些逻辑单元有固定的封装,再经过版图规划,时钟模拟和自动布线以后,形成最终的物理版图。然而,硬件部分从分离出来到进入RTL级的设计过程缺乏有效的衔接,制约了SoC设计抽象程度的提高。
在这种常规的SoC设计流程中,软硬件的设计包含了一系列的仿真和验证活动:硬件的RTL级描述和软件的目标代码通过运行指令设置仿真器,检验各自ISS(指令设置)的正确性;在逻辑单元的综合过程中不断进行封装验证、时序分析和版图验证;最后生成的物理版图还要与逻辑单元进行一致性校验。但是由于这些验证要在硬件的RTL级描述和软件的目标代码都完成之后才能进行,因此检测出的错误通常是难以修复的。这些错误无疑将影响到芯片在高抽象层次上的工作性能和各模块之间的协作交互能力。
为了改进SoC的设计,人们将抽象建模结合到芯片设计过程中,采用UML语言为芯片设计过程进行建模,提出了基于UML的SoC设计方法。他充分利用了UML定义良好、易于表达、支持各种抽象程度的综合的优势,弥补了常规SoC设计方法的上述不足。