嵌入式系统软硬件协同设计方法
在嵌入式系统中,软件和硬件的结合更加紧密,软硬件之间的功能划分,以及软件和硬件的实现都没有固定的模式,而是随着应用的不同千差万别。针对这一特点,软硬件协同设计(Hardware-tware Co-design)的研究受到包括产品设计者和工具开发者在内的多方的重视,自20世纪90年代初兴起以来,一直是一个非常活跃的研究领域。软硬件协同设计的目标是在设计中把软件硬件结合起来,作为一个系统综合考虑,实现整个嵌入式系统设计的最优化,以及设计工作的自动化。软硬件协同设计方法涉及系统描述、软硬件划分、软硬件协同综合、软硬件协同仿真。
系统描述(System Specifation)的目的是在一个较高的抽象层次上描述整个系统的行为,获取用户需求,以便在详细设计开始之前,验证需求分析和系统描述的正确性,进行必要的系统分析,并作为后续设计的基础。系统描述独立于后续的实现过程,可以模拟运行。目前经常采用的系统描述模型有:数据流图、有限状态自动机、Petri网、并发通信进程、程序状态机等几大类,每一大类中还包括若干针对于特定需求的变种。描述方法则是在系统描述模型的基础上的具体的描述手段。通常采用文本的描述语言或辅以一定的图形描述方式。系统级描述语言要考虑语言的描述能力,配套的验证手段(编译和模拟运行环境),以及和后续设计阶段的衔接等问题。系统级描述语言的分为三类:(l)创建新的描述语言;(2)基于硬件描述语言(如VHDL或verilog)进行扩充;(3)基于软件描述语言(如c++)进行扩充。目前,Syst已经成为系统描述领域最广泛使用的语言,在具体算法方面,考虑到系统性能,C语言依然广泛使用。
硬件划分(Hardware-software Partition)的任务是把系统功能划分为软件实现的部分和硬件实现的部分,并使得整个系统的性能指标(如速度、功耗、造价等等)达到最优。软硬件划分问题通常为NP完全问题。目前对于划分问题的研究还很不成熟,尚没有实用化的自动划分工具。
软硬件综合(Synthesis)的任务是把高层次的描述自动转化为低层次的实现。软件综合通常又称为代码生成(Code Generation),硬件综合通常分为高层次综合和逻辑综合两种层次。目前,硬件的逻辑综合己经发展的比较成熟,但是软件综合以及硬件的高层次综合都还没有进入实用阶段。因此,就目前来说,还难以从软硬件划分所得的高层描述自动综合出在功能和性能上满足要求的软硬件。
硬件的设计、生产比较长,软硬件协同仿真(Hardware-Software CO-simulation)的目的是在硬件生产出来之前,通过仿真的手段验证软硬件集成方面的问题。软硬件协同仿真面向的对象比较复杂。在不同的设计阶段、不同的设计领域以及采用不同的设计工具的情况下,参与协同仿真的软硬件模块呈现多层次、多领域、多模型的特点。并且,随着设计方法和设计工具的进步,软硬件协同仿真还要不断面临新的需求。在软件和硬件的模拟中都存在着不同的抽象层次;抽象层次越高,模拟速度越快,但是,反映的细节也越少。为了叙述方便,我们把模拟的抽象层次简单地分为高层次和低层次两种。硬件RTL级以下的描述和软件的可执行代码级为低层次模拟;在此之上的称为高层次模拟。对于软硬件协同仿真也相应地可以分为高层、低层、混合层次三种情况。
- 上一篇:基于虚拟原型的设计方法
- 下一篇:什么是片上系统设计方法学?