嵌入式系统软硬件
随着计算机技术的发展,嵌入式系统的应用领域不断扩大,大至航天飞机自动导航系统,小至移动电话、智能家用电器。嵌入式系统是一种典型的软硬件混合系统,目前的产品一般包括嵌入式微处理器和相应的控制软件。
一、嵌入式系统与软硬件协同开发的简介
早期的微处理器都是4位和8位的。随着制造技术的不断发展,集成的8位微控制器开始出现,并且16位微处理器也开始用于更复杂的嵌入式系统中,32位结构的设备和高度集成的微控制器逐渐占领了高端应用的市场。尽管如此,功能更强大的微处理器并没有取代早期的微处理器,而只是给嵌入式系统设计人员提供更大的选择范围,使其可以根据功能、特点、可用性和价格,选择合适的微处理器产品。
早期由于系统功能单一,嵌入的软件部分都是由厂家自己单独设计的代码组成,所以非常简单。但随着应用的扩大,系统越来越复杂,尤其是对于高档嵌入式微处理器系统,多任务模型被广泛应用于软件开发,并且许多厂家还选择了第三方的商用嵌入式实时操作系统产品(RTOS)。嵌入式系统中的硬件资源环境一般比较苛刻,内存一般都不大,要在如此紧张的资源下完成复杂的功能,这就要求嵌入式系统的软件部分必须尽量的小巧、稳定和高效。
二、软硬件联合设计的一般方法
软硬件联合设计方法是在软硬件混合数字系统的设计过程中,针对传统的设计方法割裂了软件和硬件开发过程的缺陷而提出的,它是指软件和硬件使用统一的设计方法及采用一致的设计工具来进行综合、验证、模拟的设计方法。
软硬件联合设计的主要步骤如下:(1)系统级建模描述:建立一个完整的系统描述,以便在不考虑实现细节的情况下验证系统的行为,驱动功能验证和软硬件划分;(2)软硬件联合综合:包括软硬件划分和调度、约束代码生成、硬件及接口综合。(3)软硬件联合模拟、调试和验证:在已知软件和硬件部件行为的基础上对系统的行为进行建模,并验证系统的功能和评价系统的性能。
三、软硬件联合设计方法的运用与发展
如前所述,嵌入式系统是一种典型的软硬件混合系统。在设计的开始,设计者要对系统进行软硬件划分。这里的软件及硬件不仅可以是分离的部件,也可以是同一个物理部件的不同抽象层次。在这两种情况下,软硬件之间的相互依赖关系都会导致在它们各自实现方法上的折衷。同时,由于嵌入式系统应用需求变化大,对性能、实时性和灵活性的要求较强,最初的设计和划分对于整个系统的设计质量影响很大;又由于高端产品的复杂性使得许多问题在软硬件集成过程中才会暴露出来。这些都对联合综合和联合模拟提出了需求,因此,嵌入式系统的设计有必要而且迫切需要引入软硬件联合设计的方法。
从方法学的角度来看,嵌入式系统的软硬件联合设计遵循上述一般方法和规律。而随着微电子技术和嵌入式系统本身的发展,其设计方法还会呈现出一些新的特色。
1、软硬件划分
同其它软硬件混合系统的设计一样,软硬件划分是嵌入式系统设计中十分关键的一步。如何提高划分算法的效率,降低时间复杂性,是研究的重点。已有的研究成果从多方面提高划分的有效性,除了最基本的模拟退火算法,还提出了基于编译器指导的方法、基于图的最小代价算法、软硬件流水线化、交互式划分等方案。
2、商用组件的标准化和高度集成化对软硬件设计的影响
随着微电子技术的发展,更多的标准商用组件投入市场,同时高度集成的设备减少了芯片的数量。许多设计人员现在都非常乐意使用合并更多功能的微处理器和微控制器。相应地,软件的设计也出现了变化。软件开发工作量急剧增长,经常达到全部工作的70%~80%。为了缩短开发周期,伴随着硬件标准化的趋势,软件内容也从自行设计转向尽量采用具有知识产权的产品。利用可移植代码和标准的实时操作系统,成为设计嵌入式系统应用软件的方向。当然,对于嵌入式系统开发人员而言,涉及标准部件的集成和选择知识产权的决策也是非常复杂的,现在和将来都必须面对。
从上述的变化中,可以看出:随着标准化软硬件组件的日益丰富,嵌入式系统设计中软硬件划分的粒度增大,从而系统描述相对明确化,软硬件设计工作明显简化,更注重接口设计和整体性能,设计空间灵活性和多样性大大增加。这些变化对现有的设计方法和相关技术提出了新的需求,比如如何精化划分算法,使之无需考虑不必要的细节,又比如进一步提高联合模拟和验证的抽象层次,缩短开发周期等等问题。
3、嵌入式系统设计中的“联合”与“分散”
在传统的设计方法中,软件的设计往往滞后于硬件,而软硬件联合设计方法中所采取的联合模拟技术、虚拟原型技术正是要弥补这种差距,因此,软件和硬件设计工程师一起工作成为一种发展潮流。通过联合设计,特别是联合验证技术,软件工程师能够尽早在真实硬件上测试,而硬件工程师能够尽早在原型设计周期中验证他们的设计。要达到这个目标必须提供集成的开发环境,在这个环境中可以完成软硬件建模、联合模拟及评价。目前已有一些解决方案,如指令集仿真器和标准的低价格的商业评估版。另外,低成本的主-目标机连接技术已经得到广泛应用。
嵌入式系统发展的另一特点是,需要的开发人员越来越多。为了有效管理开发队伍,必须将一些专有技术封装起来,以便使非专业人员可以安全、可靠和直接的方式使用。因而,在嵌入式系统的设计中还要引入面向对象的思想。在许多大公司中,软件开发队伍不是简单的增长,而是正在分散化,成员的工作地点可以分布于不同的地域或不同的国家。这种情况导致了“技术中心”的出现,因而使用“软件部件”变得越来越现实。
四、SOPC 嵌入式系统中软硬件协同简介
随着半导体技术的高速发展,集成电路的规模不断增大,以及大规模可编程逻辑器件的出现,使得整个系统集成在单个芯片上并实现在系统可编程成为可能,这就是片上可编程系统SOPC(System on a Programmable Chip)。它支持并行SOPC技术具有灵活的设计方式:可裁减、可扩充、可升级,并具有软硬件在系统可编程的功能。
基于FPGA(Field-Programmable Gate Array,即现场可编程门阵列)的片上可编程系统SOPC设计近年来在半导体领域中呈现出高速增长态势,成为系统级设计者的首选,但是随着系统规模的不断增大,使得整个系统的设计变得非常困难,系统开发周期越来越长,而现今的嵌入式电子产品对系统的开发周期是非常敏感的,因此快速、高效的设计方法是一个值得探讨和研究的问题。对于嵌入式系统设计中存在的这些问题,研究者提出了一种软硬件协同设计的新方法。
SOPC系统是软件和硬件的综合体,系统中许多功能模块既可以由硬件来完成,也可以由软件来实现。硬件实现的特点是性能高、速度快,但是成本较高、灵活性差;而软件实现的特点是灵活性好、成本较低,但是性能差。因此,设计实现过程中如何兼顾系统的功能和性能(如功耗、成本、面积等)需求,使它们达到一种最优组合,这正是软硬件协同设计方法所要解决的主要问题。
五、传统电子设计方法
目前,国内外的企业普遍采用的是传统的嵌入式系统设计方法。这种方法的步骤是首先对系统的需求描述进行定义,然后进行系统的软硬件划分,划分好以后就开始分别进行硬件和软件的设计,如果硬件和软件设计中发现错误将直接返回到软硬件的划分。传统的嵌入式系统设计流程如图1所示。
这种方法的缺点如下:
1)系统的软件设计和硬件设计的并行性低,设计周期较长。这种设计流程采用先对硬件进行设计,然后是软件设计。即硬件设计好之后,在此硬件基础之上进行软件设计。此串行化的设计方法当硬件设计完成再进行软件的调试时,如果发现硬件设计出现错误,纠正错误就要付出高昂的人力、物力代价。不能对系统的软硬件进行协同验证,导致了设计重复性工作的次数大幅度增多,加大了设计成本。
2)系统设计层次低,系统级设计依赖于手工,设计的大规模超出了设计人员的能力,系统的软硬件的开发流程缺少沟通与协调,导致设计效率的降低。
3)对于定制的嵌入式处理器不支持,嵌入式处理器为固定的模块,不支持设计的可重用。
六、软硬件协同设计方法的特点
因为传统的嵌入式系统设计方法的这些缺点,人们开始探索新的设计方法来适应高速发展的嵌入式系统,这种方法就是软硬件协同设计方法。它早在1993年就已经成为嵌入式系统中系统级设计领域的研究方向和热点。
软硬件协同设计方法的特点如下:
1)软硬件协同设计技术采用并行设计和协同设计的思想,使得设计开发周期缩短,设计效率大大提高。
2)软硬件协同设计采用了统一工具和表示方法,对软硬件合理进行划分,合理分配系统功能,对成本、性能、功耗等各个方面进行权衡,尽可能得到最优化的设计。
3)软硬件协同设计采用软硬件协同仿真的方法,对整个系统进行全局的设计验证。
软硬件协同设计对于设计的抽象层次有了很大的提高,而且拓宽了设计的覆盖范围,它可以使嵌入式系统的设计效率更高,速度更快。软硬件协同设计是一种新的设计方法和思想,它不仅仅是一种设计技术,它是要把软件和硬件的设计联系起来,以免这两部分设计过早的独立起来。软硬件协同设计技术现在正处于发展阶段,有很多理论还不成熟,然而这种技术极大地提高了嵌入式系统的设计效率,有很大的研究价值和社会意义。
七、软硬件协同设计的开发流程
嵌入式系统设计的主要任务包括:系统任务描述,系统建模,用来实现系统的功能需求;对系统进行适当的软硬件划分,用以满足性能要求、降低成本和功耗;系统的协同综合和对系统实现及规范性进行仿真。软硬件协同设计的目的是使系统的各影响因素之间可以相互协调地完成系统功能。软硬件协同设计基本流程如图2所示。
1、系统任务描述
要想设计一个SOPC系统,第一步是要明确系统的需求,也就是系统的性能和要实现的功能,接下来是对系统进行建模。SOPC系统的模型主要有有限状态机模型、数据流图模型、任务流图模型、离散事件模型、Petri网模型等。建立一个对软硬件通用的系统功能描述方法,来解决系统的统一描述问题,目前通常情况下是采用系统描述语言的方式。这样在软硬件划分后,才能编译并映射成硬件描述语言和软件实现语言,为系统的软硬件协同工作提供有力的保证。
2、系统软硬件划分
在传统的嵌入式设计方法中,软件和硬件的开发过程是割裂开的,它们之间缺乏沟通。这样就使得系统的设计效率很低。针对这一缺点,提出软硬件协同设计的方法,这种方法中软硬件系统的划分是软硬件协同设计中关键的步骤之一。系统中硬件实现部分对系统的性能有决定作用,通常硬件实现部分速度较快,但是成本控制在这部分也起着决定性的作用。系统中软件实现部分通常具有很大的灵活性,决定着系统配置的灵活性,但是要占用一定的FPGA逻辑单元和耗费一定的时间。如表1所示。表1指出了系统是由硬件实现还是软件实现对芯片面积、功耗、性能和人力与时间资源需求的影响,合理的软硬件协同设计方案,对嵌入式系统的设计有很重要的作用。软硬件的合理划分,在满足系统功能的基础上,能够充分发挥硬件处理的快速和软件控制灵活的特点。
软硬件划分的结果追求的是提高系统运行速度、减小面积、降低成本、减少功耗。但软硬件划分通常是一个传统的难题,由于划分问题本身就具有很大的难度,而且SOPC具有巨大的搜索空间,所以情况更加严峻。现如今自动划分算法仍然不能取代有经验的设计者。划分的方法基本上从两个方面入手:一是面向软件,从软件到硬件要求满足时序的特点;二是面向硬件,从硬件到软件要求降低成本。在进行划分时,要考虑整个目标系统的体系结构、粒度、软硬件实现的成本等各个因素。划分完成后,产生软硬件系统的分割的界面,提供给软硬件进行沟通、验证和测试使用。常用的软硬件协同划分算法有模拟退火算法、遗传算法等。遗传算法和模拟退火算法的互补性比较好,将这两种算法相结合而形成的遗传退火算法将继承这两者的优点,在软硬件划分上的效能很好,现在这种智能算法是软硬件划分算法领域的一个研究热点。
3、软硬件协同综合步骤
软硬件划分完成以后,分别进行软件系统和硬件系统的设计实现。对划分完成的系统进行设计的阶段叫做综合。这个步骤的主要任务是将划分完成的系统的描述转换成为可以综合的硬件描述和可以编译的软件程序。构建包含软件和硬件的实现结构描述的设计转换过程。比如说划分后的描述可以翻译成为Verilog HDL(硬件模块)和C(软件模块)。软硬件协同综合包含以下三个步骤:
1)处理单元分配,决定嵌入式系统由哪些处理器、DSP及专用硬件等体系结构级别的单元组成;
2)任务指派,决定系统当中哪些功能由硬件处理单元实现,哪些功能由处理器用软件来实现;
3)任务调度,决定分配给每个处理单元上任务的开始时间和执行顺序。
4、软硬件协同仿真
软硬件协同仿真验证是对整个系统设计的正确性和性能指标确定的一个评估阶段。在嵌入式系统设计的各个阶段,可以把仿真验证分为系统级仿真、行为级仿真、寄存器传输级(RTL级)仿真和门级仿真。系统级仿真一般情况下用来评估系统的整体功能和对算法的正确性的验证;行为级仿真可以对所设计的逻辑进行仿真,但不会考虑目标器件的特性,比如容量,延迟等,行为级仿真可以使用高级的语句,比如报错语句、文件读写语句、浮点格式等,但这些语句通常都是不能在目标器件中实现的;寄存器传输级仿真检查各模块的逻辑功能是否正确,然后,将通过仿真的各模块集成在一起,对整个系统进行功能仿真,这一阶段的仿真没有包括硬件电路的时间信息,因此,只能从逻辑功能方面对设计进行验证;门级仿真是将使用综合软件综合后生成的门级网表或者是实现后生成的门级模型进行仿真,不加入时延文件的仿真。
典型的软硬件协同仿真一般是在CPLD或FPGA的开发环境下,在Quartus II下运行。系统如果采用的IP核等一些资源已经进行了单独的验证,则对它的门级或者RTL级的仿真验证可以省略。
八、嵌入式系统软硬件协同设计总结
基于SOPC的软硬件协同设计方法能够在宏观上把握复杂系统,克服了传统设计方法存在的缺点,能够充分挖掘软件和硬件之间的协同性,对系统的软硬件进行正确划分,并能够选取合适的IP,建立系统的设计平台和验证平台,推动软件和硬件的并行研发,降低设计风险,缩短开发周期,在嵌入式系统的设计中发挥着重要的作用。随着逻辑设计和EDA工具的支持,基于SOPC的软硬件协同设计技术在嵌入式应用系统的设计中发挥越来越重要的作用,将是今后IP-SOPC设计领域中的最核心技术。
嵌入式系统具有强大的生命力,广阔的市场和深远的应用前景使它的发展日新月异。为了更快捷、更有效地开发各种嵌入式应用,研究软硬件联合设计方法具有很重要的学术和商业价值。系统建模、软硬件划分、虚拟原型等技术仍然是嵌入式系统设计中的关键问题,并随着微电子技术和计算技术的发展不断地补充和发展。
以上就是我们深圳市组创微电子有限公司为您介绍的嵌入式系统软硬件联合设计方法。如果您有智能电子产品的软硬件功能开发需求,可以放心交给我们,我们有丰富的电子产品定制开发经验,可以尽快评估开发周期与IC价格,也可以核算PCBA报价。我们是多家国内外芯片代理商,有MCU、语音IC、蓝牙IC与模块、wifi模块。我们的拥有硬件设计与软件开发能力。涵盖了电路设计、PCB设计、单片机开发、软件定制开发、APP定制开发、微信公众号开发、语音识别技术、蓝牙wifi开发等。还可以承接智能电子产品研发、家用电器方案设计、美容仪器开发、物联网应用开发、智能家居方案设计、TWS方案开发、蓝牙音频开发、儿童玩具方案开发、电子教育产品研发。
- 返回顶部