软件硬件协同设计方法研究软件硬件协同设计,就是指对系统中的软件和硬件使用相同的描述和开发工具进行集成开发,这不仅可以完成系统的设计验证,更有利于跨系统的转移。大家都知道,在电子信息技术迅猛发展的今天,每个系统的设计再也不是简单的模块叠加,更应该考虑的是各种软件硬件的协同设计,从而系统才能更好的工作,这就需要对软件和硬件进行在统一的开发环境中开发。而要进行统一的开发就需要协同作业。所以来说,一种比较理想的方法就是先设计出一种开发环境,然后在此环境中对软件和硬件进行开发。但很明显这是不太可行的。一方面,每进行一次开发就要自己设计一种环境,代价太大。另外,这也不利于系统之间的移植。另外,这样会造成开发环境越来越多,越来越杂乱,最后,这还有一个坏处就是可能会造成以前的硬件没法运行,因为从开发的角度来说我们要考虑向前兼容,如果那样的话会造成以前的硬件大批报废,造成极大浪费。所以,一种比较成熟的方法应该是通过定一个标准,也就是相当于建造一个标准的环境,大家的开发制作都在这一个标准框架下。这样,各种硬件软件都在相同的环境下进行开发设计,也就增加了可移植性。这样的话,还有一个问题,那就是现在广泛应用的硬件描述语言是否有效,如何定义一个系统的软件功能描述或硬件功能描述,到现在为止,还没有一个大家公认的且可以使用的系统功能描述语言可以供大家使用。而且,即使这种全新的软硬件协同设计理论被研究出来了,我们又该如何确定最优性原则。显然,以往的最优性准则是不够用的,这样的话,我们就需要研究出来新的原则,例如运行速度、面积、等以前的标准都不足以用来衡量。不过,因为当前的国内行业在软件硬件方面普遍较国外有较大差距,所以对于我们国内的行业来说,应该走的事联合的道路,而不能恶性竞争。为什么不找一种双赢的道路呢,这不仅对自己是个好方法,更能带动一个行业的发展。但是不得不说,很多国内业界还没有这个意识,只是想着自己怎么能够赚钱。不为以后考虑,最终只会自掘坟墓。我们不仅要进行行业内联合,还要进行业间联合。因为没有哪个部门是独立于其他部门之外的,这是给自己的成功拓宽了道路。同时,这是我们作为一个个人应该有的觉悟。但如果没有国家支持,还是很难做到。试想下如果国家不鼓励科研创造,那最终国家肯定会跨,因为国不强,甚至于可能会失去生存的权利。故,软件硬件协同设计需要大家的支持。作为软件,顾名思义,即为在一些系统中实现特定功能的模块,他的好处就是可以进行方便的修改,但自然,缺点就紧接而来,计算机是进行一些数字信号的处理的,而人在生活中接受的基本都是模拟信号。所以计算机处理的信号很多对人来说会感觉比较生硬。故需要进行硬件的处理。硬件一般输出的是模拟信号。可以满足我们对信号的要求。但缺点也是有的,例如硬件设计周期长,而且代价比较大。所以我们在使用时肯定是要软件和硬件一起使用,共同作用,从而得到满意的信号。嵌入式系统是由若干个功能模块组成的,这些功能模块按照其性质可以分为软件模块和硬件模块两类。在过去几十年内,系统的设计方法经历了很大的变化,有自上向下的设计方法,也有模块化设计方法,他们总体上都是硬件模块优先的设计方法,将其统称为传统的设计方法。这种设计方法将硬件和软件分为两个独立的部分。在整个设计过程中,通常采用硬件优先的原则,即在粗略估计软件任务需求的情况下,首先进行硬件设计,然后在此硬件设计平台上进行软件设计。由于在硬件设计过程中缺乏对软件构架和实现机制的清晰了解,硬件设计工作带有一定的盲目性。他的系统优化由于设计空间的限制,只能改善硬件/软件各自的性能,不可能对系统做出较好的综合优化,得到的最终设计结果很难充分利用硬软件资源,难以适应现代复杂的、大规模的系统设计任务。而嵌人式系统软硬件协同设计是让软件设计和硬件设计作为一个整体并行设计,找到软硬件的最佳结合点,从而使系统高效工作。软硬件协同设计最主要的一个优点就是在设计过程中,硬件和软件设计是相互作用的,这种相互作用发生在设计过程的各个阶段和各个层次。设计过程充分体现了软硬件的协同性。在软硬件功能分配时就考虑到了现有的软硬件资源,在软硬件功能的设计和仿真评价过程中,软件和硬件是互相支持的。这就使得软硬件功能模块能够在设计开发的早期互相结合,从而及早发现问题及早解决,避免了(至少可以减少)在设计开发后期反复修改系统以及由此带来的一系列问题,而且有利于挖掘系统潜能、缩小产品的体积、降低系统成本、提高系统整体性能。总的来说,软硬件协同设计的系统设计过程可以分为系统描述、系统设计、仿真验证与综合实现4个阶段。系统描述是用一种或多种系统级描述语言对所要设计的嵌入式系统的功能和性能进行全面的描述,建立系统的软硬件模型的过程。系统建模可以由设计者用非正式语言,甚至是自然语言来手工完成,也可以借助EDA工具实现。手工完成容易导致系统描述不准确,在后续过程中需要修改系统模型,从而使系统设计复杂化等问题,而优秀的EDA工具可以克服这些弊端。对于嵌人式系统来说,系统设计可以分为软硬件功能分配和系统映射2个阶段。软硬件功能分配就是要确定哪些系统功能由硬件模块来实现,哪些系统功能由软件模块来实现。硬件一般能够提供更好的性能,而软件更容易开发和修改,成本相对较低。由于硬件模块的可配置性,可编程性以及某些软件功能的硬件化、固件化,某些功能既能用软件实现,又能用硬件实现,软硬件的界限已经不十分明显。此外在进行软硬件功能分配时,既要考虑市场可以提供的资源状况,又要考虑系统成本、开发时间等诸多因素。因此,软硬件的功能划分是一个复杂而艰苦的过程,是整个任务流程最重要的环节。系统映射是根据系统描述和软硬件任务划分的结果,分别选择系统的软硬件模块以及其接口的具体实现方法,并将其集成,最终确定系统的体系结构。具体地说,这一过程就是要确定系统将采用哪些硬件模块(如全定制芯片、MCU,存储器、I/O接口部件等)、软件模块(嵌入式操作系统、驱动程序、功能模块等)和软硬件模块之间的通讯方法(如总线、共享存储器、数据通道等)以及这些模块的具体实现方法。仿真验证是检验系统设计正确性的过程。他对设计结果的正确性进行评估,以达到避免在系统实现过程中发现问题时再进行反复修改的目的。在系统仿真验证的过程中,模拟的工作环境和实际使用时差异很大,软硬件之间的相互作用方式及作用效果也就不同,这也使得难以保证系统在真实环境下工作的可靠性。因此,系统模拟的有效性是有限的。软硬件综合就是软件、硬件系统的具体制作。设计结果经过仿真验证后,可按系统设计的要求进行系统制作,即按照前述工作的要求设计硬件软件,并使他们能够协调一致地工作,制作完成后即可进行现场实验。以上即为软件硬件进行协同设计的一般方法。在实际工作中可以大大减少设计等需要花费的时间,同时可以大大提高效率。同时,在可移植性上也大大提高。这对于以后的发展是具有重要意义的。而且,在以后的软件硬件设计实现过程中,更可以充分考虑兼容性。只有实现更好的兼容,才能做得更好。