关于嵌入式系统的软硬件协同设计

分享到:

传统的先硬件后软件嵌入式系统的系统设计模式需要反复修改、反复试验,整个设计过程在很大程度上依赖于设计者的经验,设计周期长、开发成本高,在反复修改过程中,常常会在某些方面背离原始设计的要求。

  软硬件协同设计是为解决上述问题而提出的一种全新的系统设计思想。他依据系统目标要求,通过综合分析系统软硬件功能及现有资源,最大限度地挖掘系统软硬件之间的并发性,协同设计软硬件体系结构,以便系统能工作在最佳工作状态.种设计方法,可以充分利用现有的软硬件资源,缩短系统开发周期、降低开发成本、提高系统性能,避免由于独立设计软硬件体系结构而带来的弊端。

  将这一设计思想应用在实际产品开发上离不开EDA工具的帮助,本文也将对几种比较成熟的协同设计EDA工具加以简单介绍

  
1 协同设计与传统设计方法的比较

  嵌入式系统是由若干个功能模块组成的,这些功能模块按照其性质可以分为软件模块和硬件模块两类。在过去几十年内,系统的设计方法经历了很大的变化,有自上向下的设计方法,也有模块化设计方法,他们总体上都是硬件模块优先的设计方法,将其统称为传统的设计方法。

  这种设计方法将硬件和软件分为两个独立的部分。在整个设计过程中,通常采?quot;硬件优先的原则",即在粗略估计软件任务需求的情况下,首先进行硬件设计,然后在此硬件设计平台上进行软件设计。由于在硬件设计过程中缺乏对软件构架和实现机制的清晰了解,硬件设计工作带有一定的盲目性。他的系统优化由于设计空间的限制,只能改善硬件/软件各自的性能,不可能对系统做出较好的综合优化,得到的最终设计结果很难充分利用硬软件资源,难以适应现代复杂的、大规模的系统设计任务。

  而嵌人式系统软硬件协同设计是让软件设计和硬件设计作为一个整体并行设计,找到软硬件的最佳结合点,从而使系统高效工作。

  软硬件协同设计最主要的一个优点就是在设计过程中,硬件和软件设计是相互作用的,这种相互作用发生在设计过程的各个阶段和各个层次。

  设计过程充分体现了软硬件的协同性。在软硬件功能分配时就考虑到了现有的软硬件资源,在软硬件功能的设计和仿真评价过程中,软件和硬件是互相支持的。这就使得软硬件功能模块能够在设计开发的早期互相结合,从而及早发现问题及早解决,避免了(至少可以减少)在设计开发后期反复修改系统以及由此带来的一系列问题,而且有利于挖掘系统潜能、缩小产品的体积、降低系统成本、提高系统整体性能。

  
2 软硬件协同设计的过程

  总的来说,软硬件协同设计的系统设计过程可以分为系统描述、系统设计、仿真验证与综合实现4个阶段。

  系统描述是用一种或多种系统级描述语言对所要设计的嵌入式系统的功能和性能进行全面的描述,建立系统的软硬件模型的过程。系统建模可以由设计者用非正式语言,甚至是自然语言来手工完成,也可以借助EDA工具实现。手工完成容易导致系统描述不准确,在后续过程中需要修改系统模型,从而使系统设计复杂化等问题,而优秀的EDA工具可以克服这些弊端。

  对于嵌人式系统来说,系统设计可以分为软硬件功能分配和系统映射2个阶段。软硬件功能分配就是要确定哪些系统功能由硬件模块来实现,哪些系统功能由软件模块来实现。硬件一般能够提供更好的性能,而软件更容易开发和修改,成本相对较低。由于硬件模块的可配置性,可编程性以及某些软件功能的硬件化、固件化,某些功能既能用软件实现,又能用硬件实现,软硬件的界限已经不十分明显。此外在进行软硬件功能分配时,既要考虑市场可以提供的资源状况,又要考虑系统成本、开发时间等诸多因素。因此,软硬件的功能划分是一个复杂而艰苦的过程,是整个任务流程最重要的环节。

  系统映射是根据系统描述和软硬件任务划分的结果,分别选择系统的软硬件模块以及其接口的具体实现方法,并将其集成,最终确定系统的体系结构。具体地说,这一过程就是要确定系统将采用哪些硬件模块(如全定制芯片、MCU,DSP,FPGA、存储器、I/O接口部件等)、软件模块(嵌入式操作系统、驱动程序、功能模块等)和软硬件模块之间的通讯方法(如总线、共享存储器、数据通道等)以及这些模块的具体实现方法。

  仿真验证是检验系统设计正确性的过程。他对设计结果的正确性进行评估,以达到避免在系统实现过程中发现问题时再进行反复修改的目的。在系统仿真验证的过程中,模拟的工作环境和实际使用时差异很大,软硬件之间的相互作用方式及作用效果也就不同,这也使得难以保证系统在真实环境下工作的可靠性。因此,系统模拟的有效性是有限的。

  软硬件综合就是软件、硬件系统的具体制作。设计结果经过仿真验证后,可按系统设计的要求进行系统制作,即按照前述工作的要求设计硬件软件,并使他们能够协调一致地工作,制作完成后即可进行现场实验。

  
3 协同设计.EDA工具简介

  软硬件协同设计比较有代表性的EDA工具有CORSAIR,COOL和POLIS。这几个系统都是从系统级的系统行为描述开始,经过成本的估计,软硬件划分、软硬件的协同综合、模拟,最后到板级的快速原型(除CO()L外)。原型板一般包含MCU以及ASIC或FPGA。软件部分在微处理器或者微控制器上运行,硬件部分在ASIC或FPGA上实现。


  CORSAIR的系统描述阶段用SDL和PMSC两者相结合对系统进行建模。SDL是一种基于有限状态机语义的面向对象的系统说明描述语言。CORSAIR用他来描述系统的行为功能。而系统的性能需求则由PMSC来描述。COOL使用VHDL语言作为系统的描述语言。在POLIS中,设计者使用某种具有扩展有限状态机语义的高级语言(比如VHDL的可综合的子集)进行系统描述。这几个系统的计算模型基本上都是限定在扩展的FSM。当前,在系统的设计中,使用UlMI。作为系统建模语言是很有前景的发展方向。

  软硬件划分方面,POLIS需要由手工实现,其他两种工具可以自动划分。CORSAIR的目标体系结构是多处理器多FPGA,COOL是多处理器,而POUS是单处理器。

  这几种系统协同综合阶段的目的就是生成硬件的硬件描述语言和软件的C代码,并对他们进行协同模拟。

  
4 结 语

  作为一种全新的设计思想,软硬件协同设计通过挖掘软硬件之间的协同性,可以克服传统设计方法中把软件和硬件分开设计而带来的弊端,使整个设计过程以及设计出来的产品能够高效地工作。随着CAD技术的发展,EDA工具对软硬件协同设计技术的支持将越来越多,协同设计技术在系统设计中的作用也将越来越重要。

 

继续阅读
物联网标准之争:高通、ARM、英特尔三国争霸

物联网不是一个产品,一项技术,一个片段或者一个市场。而是很多东西,很多市场,甚至很多技术的结合。然而,目前有一个东西可以把所有的东西连接在一起,那就是从大数据到云端的设备。这可能会带来更多复杂的问题,大量数据在大量的异构设备,多种M2M协议,多种通信协议之下传输,安全问题如何保障?过程如何实现?在没有解决这些问题的情况下,物联网怎样变成下一次革命?

软件自动化测试技术与工具

随着软硬件协同应用复杂性日益增加,其中软件必须通过全面的测试才可以保证质量和可靠性。但由于研发时间的限制,软件测试需要选择合适的方法,同时选择合适的测试工具,以便达到足够的测试效率。在一个基于FPGA的软硬件协同应用中,本文从占用资源、运行速度等方面比较了Rational Visual Test和QuickTest Professional两大自动化测试工具,得出前者有较好的速度和可用性。

嵌入式系统设计方法的演化——从单片机到单片系统

计算机硬件平台性能的大幅度提高,使很多复杂算法和方便使用的界面得以实现,大大提高了工作效率,给复杂嵌入式系统辅助设计提供了物理基础。

嵌入式系统设计三层次

20世纪90年代后,开始了从“集成电路”级设计不断转向“集成系统”级设计。目前已进入单片系统SOC(System o-n a chip)设计阶段,采取以IP内核库为设计基础,软硬件协同设计技术的设计方法。

©2018 Microchip Corporation
facebook google plus twitter linkedin youku weibo rss