首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

通过LabVIEW FPGA加速嵌入式系统原型化的过程

通过LabVIEW FPGA加速嵌入式系统原型化的过程

嵌入式系统的发展趋势
嵌入式系统一般是指一个独立且具有专门用途的系统,随着半导体技术的飞速发展,嵌入式系统正在渗入现代社会的各个方面,被广泛应用于航空航天、通信设备、消费电子、工业控制、汽车、船舶等领域。巨大的市场需求推动了嵌入式系统向更高的技术水平发展。
嵌入式系统的开发流程,一般可以分为三个阶段:设计,原型化及发布。设计主要是对产品本身以及其中牵涉到的算法、概念进行设计,原型化是对设计的可行性进行验证或评估,发布是产品的最终实现。大部分情况下,整个开发流程中需要牵涉到多种软件开发工具。比如在设计的时候,可能会使用文本数学工具进行算法设计、建模、仿真,在原型化验证阶段,图形化的开发环境现在已经成为仿真、验证的主流工具。在发布阶段,可能会采用微处理器或FPGA,就会牵涉到相关的开发环境比如C或VHDL,甚至汇编语言。传统的开发模式中,文本编程工具占了主流地位。
嵌入式软件及其开发人员目前似乎都处于各自发展的十字路口。Venture Development公司(VDC)提供的行业统计数字表明,尽管软件代码的行数以每年大约26%的速度增长,但嵌入式开发人员的年增长速度却只有8

%。对嵌入式系统设计人员而言,这两个统计数字意味着工作量的增多。不过,事情还远不止于此。除了以相对更少的人员完成更多的工作外,嵌入式开发者还必须在保证产品可靠性的前提下缩短系统设计周期。日益激烈的竞争使得今天的电子产品市场对上市时间的压力极为敏感。以消费市场为例,一个典型的嵌入式产品设计周期是9个月,而推出产品的市场机会可能只有1~2个月之短。如果没有从一开始就抓住市场先机推出产品,很可能会造成市场份额的大幅减少,甚至导致产品推广的失败。这些因素大大增加了嵌入式系统设计“一次设计成功” 的压力,反过来也推动了系统级快速、高效、可靠的验证的需求,系统原型化,也就是创建实速运行在系统环境中的设计原型,这种必要性正日益增加。
FPGA在嵌入式系统中的优势
实现这种原型验证的最具成本效益的技术是建立一个基于FPGA的原型。FPGA是一种具有可重配置逻辑门的芯片,与供应商提供功能定义的 ASIC芯片不同,FPGA可根据每个应用的不同需要而进行配置和重新配置。由于FPGA允许在硬件中实现自定义算法,因此它具有精确时序和同步、快速决策及并行任务同时执行等优点。在PC或带有实时操作系统(RTOS)和微处理器的平台上,处理器必须对多个任务进行分时处理,而FPGA则可以配置为多个独立的并行计算资源,简言之,就像芯片上有多个微处理器一样,且这些微处理器都针对特定的任务进行了优化。
FPGA的性能和灵活性使其成为处理输入输出非常有效的技术。通过自定义数字协议进行通信和生成PWM信号是这种类型很好的例子,比如,可以对FPGA进行配置以利用自定义数字协议进行通信,如对输入信息进行解码,然后将信息组合编码作为输出数据包再发送出去。在一些情况下甚至需要同时进行多个操作,并使得这些操作互相同步,且和其他输入和输出任务同步。如果是用一个基于软件的系统完成此项工作,即使使用RTOS,输出的性能也不一定能满足要求。FPGA对于输入输出、并行性和实时性的出色性能使得它成为嵌入式系统原型化验证的理想工具。Intel新一代多核处理器就选择了FPGA作为其原型化的平台。
通过LabVIEW FPGA加速系统原型化
将FPGA集成到嵌入式系统最大的挑战是如何配置FPGA的逻辑,以及将传感器输入和控制输出与它连接起来。许多嵌入式系统设计人员对于在实时操作系统下运行的微处理器上编程非常熟练,但他们不喜欢在芯片级对硬件进行定义,这需要有设计工具和语言如VHDL方面的知识。当然,进入芯片级领域还意味着需要设计和构建芯片周边的电路板,虽然这对于一些嵌入式系统设计人员来说已经过时了,但仍然有许多设计人员宁愿尽可能地使用现成的硬件,特别是当硬件必须精确地测量出传感器数据并对其作数字化处理时。
FPGA配置工具的比较和选择
目前有许多FPGA配置工具,有些工具需要VHDL或其他语言编码完成硬件定义,有些工具提供了图形配置环境,还有的工具允许你使用熟悉的工具编写软件,然后将代码下载到FPGA中。在选择哪种方式适合时需要考虑几个问题,其中一个考虑因素是你的背景。你是否是一个富有经验的硬件开发人员,并对FPGA的基本操作有深入的认识?如果是,就可以利用低级工具充分发挥你的经验并深入实地进行配置。也许你不是硬件工程师,但你是一位优秀的程序员并且能很容易掌握新的编程语言,那么你可能需要选择一个能够让你充分运用数据结构和程序细节进行编程的工具。另外一个可能是你既不是硬件专家也不是软件专家,但由于你对整个系统内在的理论或系统所投入的应用非常熟悉而来设计系统,如果是这种情况那么应该选择一个可以让你以自己的语言进行设计的工具,而不必学习复杂的FPGA或硬件描述语言。
另一个很重要的考虑因素是你计划设计的系统所要求达到的功能是什么。如果正在设计多个不同类型的系统,可能通用硬件设计工具最为适合。有许多人花费很多时间成为使用这些工具的专家,你也可以加入其中。如果想将涉及面缩小一些,那么也有工具去处理那些“常规”事务,而让你专注于可以自己的研究领域。举个例子,有许多工具可以帮助你很快开发出信号处理系统并将其发布到FPGA中去,也有一些经优化的工具专门用来增加测量和控制功能。
还需要考虑系统配置的问题。要有怎样的尺寸?与PC连接吗?有的FPGA开发工具要求你开发FPGA周边所有硬件,另一些则要求使用一种特殊的内建有FPGA的电路板。对于后者,很多和板上其他资源如I/O与总线连接的工作都已做好,这样可以大大加快开发的进度,因为你无须关注诸如抗噪性、稳定时间和串扰之类的事项。如果系统需要大量与运行Windows或RTOS的PC连接,那么应选择那些能够跨平台的设计工具。
返回列表