论文部分内容阅读
嵌入式计算机系统是用于完成特定功能的计算机系统,例如,激光打印机、移动电话、微波炉、汽车的防抱死控制器等,它一般是由微处理器、ASIC、总线、存储器等组成。随着微电子技术中的深亚微米技术的发展,嵌入式系统可以被集成到一块芯片上,形成片上系统“SOC”。如果说靠手工可以满足一些简单的,低性能的嵌入式系统的设计的话,那么,对于复杂的、高性能的嵌入式系统,手工设计将会非常困难。解决这个问题的有效方法是采用嵌入式系统的设计自动化技术。 嵌入式系统的设计自动化技术可以缩短系统的开发周期,降低开发费用,提高设计质量,使产品具有更强的市场竞争力。因此,它已经成为当前EDA领域的热点研究问题。目前,国内外许多大学、公司都有项目组在从事这项技术的研究工作。本文研究了嵌入式系统自动化设计技术中的一些问题,主要进行了以下4个方面的工作: 1.介绍和分析了具有代表性的嵌入式系统设计自动化系统,如Cool、Cosyma、SpecSyn、Chinook、Polis和Corsair等。提出了一个基于UML系统描述的,SystemC模拟验证的,利用CoCentric SystemC Complier进行硬件综合的自动化设计方案,这个方案最大特点是可实现性强。UML是一个面向对象的图形化语言,它提供的多种视图可以从静态和动态两个方面来描述系统,它的面向对象的特性不仅为系统的描述提供了便利条件,而且这个特性还有利于将UML描述的系统转换成SystemC。SystemC是一种适合于进行硬/软件协同设计和模拟的语言,它在C++语言的基础上扩充了硬件系统的描述功能。相对于C~x,HardwareC和SpecC来说,SystemC的优势在于,其一它本身有很强大的软件/硬件描述功能,其二由于有众多公司的支持,它的描述功能不断增强,其三是与它相关的支持软件系统的不断推出,例如,Synopsys公司的模拟工具CoCentric SystemCStudio和硬件综合工具Cocentric SystemC Complier等。因此,SystemC很有希望成为标准的硬/软件协同设计和模拟语言。 2.提出了一个基于UML的嵌入式系统的描述和设计方法。其中,用例图用来描述系统设计中的设计需求和约束条件,约束条件主要包括最大功率、硬件逻辑门的最大使用数和软件代码的最大长度等。类用来描述所要设计系统的功能,类对象之间的相互作用在顺序图中描述。顺序图不仅描述对象之间通过消息的发送和接收所进行的相互作用,而且还描述了对象所必须满足的时间约束。状态图则用来描述对象内部的动态行为,在每个状态中都要完成一定的活动,这个活动用活动图来描述。为了在UML中描述系统的实时性能,本文设计了一个用于系统实时性能描述的实时包,在这个包中包括时钟类、定时器类和通讯类。其中,时钟类用于对象读取时间值,定时器类用于对象在活动过程中的计时功能,通讯类用于对象之间的通讯。此外,在本文中,还提出了用于顺序图与状态图的一致性、顺序图消息的连通性的形式化验证的算法。 3.UML描述的系统的模拟验证是用SystetnC来完成。目前,市场上还没有工具支持将UML描述的视图转换成SystemC代码。为此,本文提出并初步实现了一个将UML的用例图、顺序图、状态图和活动图中系统描述信息转换成SystemC代码的算法。转换算法分两步。第一步是分析UML的描述文件,并从文件中抽取用例图中的设计性能约束信息和顺序图中的时间约束信息生成约束文件 constraint,从顺序图信息生成 sequence文件和多幅顺序图综合后的文件srpseq,从类图生成class文件,从状态图生成state文件,从活动图生成activity文件;第二步是根据这些文件中的信息生成SystemC文件。其中,用synseq去生成主函数swain*文件,用 state和 class去生成模块文件,用 activity去生成进程文件。 4.硬/软件划分算法是嵌入式系统自动化设计中关键技术之一,本文在比较了现有硬/软件划分算法的基础上提出了一个约束驱动和松弛时间消除相结合的硬/软件划分算法,它是 GCLP/IBS[对测分算法的改进和扩充。该算法由两部分组成。第一部分是根据约束的紧迫度决定节点用硬件还是用软件执行;第二部分则通过消除节点之间的松弛时间进一步优化硬/软件划分。这个算法与GCLP/IBS算法相比,时间复杂度下降了n倍,其中n是节点个数。此外,还提出了一个获取硬/软件划分所需要的硬/软件面积和其对应的执行时间的方法。