节点文献
嵌入式系统的硬/软件协同设计研究
Hardware/Software Co-Design Research for Embedded Systems
【作者】 程国达;
【导师】 彭澄廉;
【作者基本信息】 复旦大学 , 计算机软件与理论, 2003, 博士
【摘要】 嵌入式计算机系统是用于完成特定功能的计算机系统,例如,激光打印机、移动电话、微波炉、汽车的防抱死控制器等,它一般是由微处理器、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是节点个数。此外,还提出了一个获取硬/软件划分所需要的硬/软件面积和其对应的执行时间的方法。
【Abstract】 Embedded computer systems use off-the-shelf microprocessors, application specific integrated circuits (ASICs), buses and memories to implement specialized system functions. Examples include laser printers, cellular phones, microwave ovens, and automobile anti-lock brake controller. With deep submicron technology, an embedded system can be integrated into a single chip and becomes "system on chip" for many applications. While hand-crafted techniques were sufficient to design small, low-performance systems in the past, it becomes very difficulty to design complex, high-performance systems by manual design. So the only method is to apply the design automation techniques of embedded systems.Applying the automatic design techniques to embedded systems can not only reduce the development cycle, but also raise the quality of design. It results in high competence of products in market. Such techniques now become the hot issues of the field of Electronic Design Automation (EDA). There are many Universities and companies worldwide which are under the investigation of such techniques. The main work of this thesis is in the fields of design automation techniques of embedded systems. It mainly consists of the following four parts:1. Introducing and analyzing some representative design automation systems of embedded systems. They are Cool Cosyma SpecSyn Chinook Polis and Corsair. Then, a new design automation methodology is put forward which uses UML for specification, SystmeC for simulation and Synopsys tools (CoCentric SystemC Compiler) for hardware synthesis. The main feature of this methodology is its high possibility of implementation. UML is an object-oriented graphic language which provides a set of diagrams to describe systems both from static and dynamic views. Its object-oriented feature makes analyzing and designing of systems more efficient and also converting from UML to SystemC possible because of the same object-oriented feature of SystemC. SystemC is a system level design language which can be used efficiently in hardware/software co-design and co-simulation. It extends the abilities to describe hardware systems in the basis of C++ language. Compared to Cx, HardwareC and SpecC, SystemC can be expected to be the standard language for hardware/software co-design and co-simulation because SystemC has the great power on describing the hardware/software heterogeneous systems and it will continuallydevelop and many virtual tools will appear under great support of many leading EDA vendors. For example, CoCentric SystemC Studio and Cocentric SystemC Compiler are powerful tools provided now by the Synopsys Corporation.2. Introducing a specification and design method for embedded systems. Among UML diagrams, Use Cases are used to describe the requirements and constraints in the system design, e.g. the maximum power of systems, the maximum logic gates used for hardware and the maximum length of the software code, etc. The functionality of system can be encapsulated in a class using object-oriented technique. Sequence diagrams are used to describe the interaction among objects which reflect the functionality of system. Detailed sequence diagrams not only describe the interaction among objects based on sending and receiving messages, but also the time constraints of objects should meet in real-time systems. The dynamic behaviors inside objects are pictured using statecharts. Every state can perform specific activities which are presented in activity diagrams. A real-time package is developed to describe the performance of real-time systems with UML. It includes clock class to access the time, timer class to fulfill the timer functionality in the activity process of objects and communication class to implement the interaction among objects. Another work is emphasizing on a formal verification algorithm for consistence of the sequence diagrams and the statecharts and connectivity of the sequence diagrams messages.3. Designing and implementing an algorithm which is used to convert the UML information wit