您好,  [请登录] [QQ登录]  [支付宝登录[免费注册]

商品分类

分享到: 百度搜藏 搜狐微博 新浪微博 腾讯微博 QQ收藏 人人网 Facebook Twitter

FPGA为嵌入式体系开辟带来的无穷大概-第2部分

发布日期:2011-05-13

         在本文的第2部分,Altium有限公司的产品经理Rob Irwin发起可编程器件的计划必须与嵌入式计划流程更好地集成,以便在嵌入式范畴充分利用 FPGA的潜力。然而,把软件和硬件集成在一起并不容易,必要有非常智能的体系才华为全部嵌入式开辟职员带来基于FPGA的“软”体系计划。

       冲破停滞

        掘客FPGA潜力的关键在于冲破传统软件和硬件计划间的停滞。如今FPGA计划流程仍被视为与软件开辟流程相疏散,而实际上两个流程都断绝在板级计划流程之外。业界仍旧根据板卡计划、FPGA计划和软件计划几个相互退出的方面来了解整个电子产品计划,并且我们利用的计划东西正反应了这种退出。

        FPGA计划生长成为专业的计划学科,其事变流程是从芯片计划要领演变过来的。从嵌入式角度来看,这就把FPGA放到了硬件计划范畴,这就使FPGA很少被用于创建嵌入式体系的真正智能,即软件。然而, FPGA超过了软件和硬件之间的停滞,具有成为电子产品嵌入式智能一部分的潜力,而不但仅是成为嵌入式智能的平台。实际上,只有把电子产品开辟视作一个单一进程,我们才华看出可编程硬件技能所代表的‘高大蓝图’。

        可编程器件技能并不是把嵌入式软件开辟从硬件计划支解开,而是让开辟职员在开辟软件时可以交互地变化体系硬件。硬件也不再是一个牢固的平台。在本质上,体系优化可包括硬件和软件,平台和运行在平台上的软件都可以在线重构。

        同一化计划是关键

        固然,实现硬件/软件的同一不是大略地变化我们对计划流程的见解即可。为了让开辟职员掘客出可编程计划的潜力,我们利用的计划东西必须支持这种流程。为了实现传统退出计划范畴间的主动化,计划体系本身必须支持硬件、软件和可编程硬件开辟的同一。

图2:硬件计划和软件开辟的同一,使<a嵌入式开辟职员无需成为硬件计划师即可在软件开辟阶段影响及修改底层体系硬件。 src="http://image.mcuol.com/News/070409153714820.JPG" width=600 border=0>

        图2:硬件计划和软件开辟的同一,使嵌入式开辟职员无需成为硬件计划师即可在软件开辟阶段影响及修改底层体系硬件。

        这逾越了对退出的计划编辑器的大略集成。计划体系必须在底子上支持计划硬件和软件的全部流程。既能有效地对嵌入式开辟职员隐含硬件计划流程,但又要容许他们变动底层硬件平台,计划东西必须将代码开辟和硬件形貌精密连合。从另一方面,板级计划师必须可以或许利用可编程器件抽象来由理器和外设器件间的连接,以便创建出一个物理平台,而无需涉及到FPGA器件本身的巨大特性。

        然后必要做的便是必须将如今支持硬件、软件和可编程硬件的分立式计划东西同一在单一的环境中 ,以便充分利用FPGA作为嵌入式开辟平台的潜力。但同一计划必要什么以及如安在计划东西层举行实现?

        同一的硬件计划框架

        计划东西厂商 ——Altium Limited在其业界首个同一电子产品开辟体系——Altium Designer中实现了这一目标。在Altium Designer中将硬件和软件开辟被同一在平台内,从而加快了软件/硬件共同计划的进程。所提供的 基于FPGA的处理惩罚器和处理惩罚器打包内核可以让计划师方便地运用Altium Designer或任意支持的第三方处理惩罚器,同时保存计划的全部成果,包括方便与FPGA外设的连接。Altium 杰出的Viper编译器包管了该体系支持的全部处理惩罚器布局间完全的C级别代码兼容性。

       像Altium Designer如许的同一计划体系,其底子需求是开辟职员能方便同等地操纵分立和基于FPGA的“软”硬件。这通过把传统HDL要领转为FPGA计划,并将现成易用的、 基于组件的计划 用于可编程器件来实现。在这种环境下,利用形貌板级电路雷同的要领和语言来形貌FPGA内部实现的体系组件。

图3: 同一硬件和可编程硬件计划后,板级计划师可以利用熟习的基于元件的图形计划要领,有效地利用大范围<a href=FPGA器件构建嵌入式体系。" src="http://image.mcuol.com/News/070409153714820.JPG" width=600 border=0>

        图3: 同一硬件和可编程硬件计划后,板级计划师可以利用熟习的基于元件的图形计划要领,有效地利用大范围FPGA器件构建嵌入式体系。

        开辟职员利用大量预先综归并验证过的、“软元件”情势的IP器件库,可以通过图形化块状图或原理图要领在FPGA内部定义体系成果。在同一环境中一个原理图编辑器可用于输入板卡电路和 FPGA级电路,节流分立可编程电路计划输入体系的开销。

        在开辟时利用预先合成的逻辑块(元件)而不是基于HDL的源库,具有几个好处。起首,在硬件综适时把块视为“黑盒”,从而加快进程的处理惩罚。第二,与板级的分立组件的利用一样,在无需相识底层的代码布局的环境下,基于FPGA的组件块即可被利用。只管,组件背后的原理很巨大,但计划者只必要知道根本的成果就可以利用了。

 

图 4: Altium Designer以组件情势构成的现成易用的、预先综合与预先验证的IP扩展库简化了<a href=FPGA体系开辟,提供硬件构建在FPGA器件和底子布局间的移植性。" src="http://image.mcuol.com/News/070409153714820.JPG" width=2392 border=0>


图 4: Altium Designer以组件情势构成的现成易用的、预先综合与预先验证的IP扩展库简化了FPGA体系开辟,提供硬件构建在FPGA器件和底子布局间的移植性。

 

同样,要是种种FPGA布局的元件块都颠末预先综合与验证,那么计划师就可以创建独立于目标FPGA器件的应用。这可以实现计划的可移植性,并且计划师无需分外熟习特定的FPGA布局。

为分立硬件和可编程硬件提供单一的计划环境,使两种范例的项目可具有精密接洽,这还带来其他的上风。比方,I/O定义和管脚分派可主动合成,板级布线的开辟职员可直接利用FPGA的管脚可编程特性优化布线器件。

同一硬件和软件计划

嵌入式计划师角度看, 同一环境 可直接把软件开辟连接到底层的硬件平台计划。这一点很紧张,由于如许FPGA内部实现的器件可以在开辟阶段以雷同传统软件的方法方便地升级。嵌入式开辟职员可以轻松地选择硬件和软件方案办理计划题目。

Altium近来在06慕尼黑电子展览会上展出了新的同一硬件/软件编译器技能,该技能可同时从标准C代码中天生高度优化的可实行代码和在FPGA中并行实行的硬件电路,随后在运行时天生所需代码并将二者连接在一起。实际的实行中必要引入FPGA硬件体系元件,在编译时通过嵌入式软件指定其成果。开辟职员只需指定在硬件和同一编译器上实行的C函数,然后创建综合所需的硬件形貌文件,并编译剩余代码,主动添加须要的指令,从而把成果转移到硬件中。

在计划师看来这一流程完全透明的– 他们只需选上复选框,决定在处理惩罚器上或直接在硬件上实行何种特定成果。在代码开辟阶段,令步伐员敏捷有效地创建专用的协处理惩罚器。实际的长处是开辟职员可以交互地实行差别实现要领,无需硬件工程师干涉或忍受无穷无尽的等待,等待生产出更新的原型板卡却只是为了查察是否有性能改造。在本质上,硬件和软件天生变成了同一编译器的输出选项。

 

图 5:对付<a href=嵌入式开辟职员来说,在利用大范围FPGA时最令人冲动的方面大概便是Altium Designer可以透明地在软件和硬件间切换选定的C函数成果,映射用成果举行快速重分派和并随时实行硬件加快。" src="http://image.mcuol.com/News/070409153714820.JPG" width=2252 border=0>

      图 5:对付嵌入式开辟职员来说,在利用大范围FPGA时最令人冲动的方面大概便是Altium Designer可以透明地在软件和硬件间切换选定的C函数成果,映射用成果举行快速重分派和并随时实行硬件加快。

      在早期转向开辟

       Altium Designer同一平台嵌入式开辟最紧张的方面,大概便是把计划师从必须在计划早期就锁定关键计划元素的窘境中摆脱出来。在开辟阶段 处理惩罚器、外设器件和目标FPGA都可以相对容易地变化,软件和硬件成果的分别也是云云。整个计划流程可以或许以全新的方法举行。

       比如我们计划一个应用,将移动的3D图像 – 比如一个公司的标记 – 表如今屏幕上。在Altium Designer的同一环境中,硬件工程师可以或许利用库中可得到的FPGA元件,在原理图中举行连接,创建由处理惩罚器、通用协处理惩罚器、内存、键盘输入驱动和表现驱动构成的根本硬件平台。

       在同一环境中我们可以把嵌入式项目连接到硬件计划,并从原理图主动转换I/O和内存映射,主动装载包括外设驱动代码的软件库。代码编写完成后,可以把硬件和软件下载到符合的FPGA开辟板举行调试。要因此为图形渲染太慢,那么可以配置协处理惩罚器,从元件配置对话框列表中选择成果,实行3D到2D的成果映射。要是有须要,也可以回到原理图,把处理惩罚器范例从软内核改为分立器件,得到更高速率。

 

图 6: 在 Altium Designer的同一计划环境中,关键计划参数如外设和内存地点映射等,可在硬件和软件开辟进程中主动配置。

       图 6: 在 Altium Designer的同一计划环境中,关键计划参数如外设和内存地点映射等,可在硬件和软件开辟进程中主动配置。

       关键是体系硬件不再牢固。可以在一个缺省的平台下举行开辟,然后随着体系生长不绝举行,餍足不绝变革的需求。这就无需在开辟初始阶段就严格定义硬件– 此时体系需求还不完全明白,其后随着开辟进程的举行可自由修改硬件以餍足软件需求。

       嵌入式智能的鼓起

       高性价、大容量FPGA的出现为嵌入式开辟职员开创了一个期间,容许他们充分利用可编程器件所具有的潜力。在得当的开辟环境和同一的计划要领下,当前 FPGA提供的大型可重构的计划空间为嵌入式体系带来了新要领,计划师可以或许以改造的方法创建电子产品。这种革命乃至可与几十年前引入微处理惩罚器后带来的软件计划革命相提并论。

       雷同Altium Designer的同一计划环境让开辟职员连合了软件和可编程硬件,更快地创建智能产品。开辟职员不再把产品智能完全置于软件之中,而是利用可重构逻辑创建包括软件和硬件部分的嵌入式智能。

       计划师可以自由选择恣意算法的最佳实现路径,无需为信号处理惩罚成果专门定义牢固的硬件,即可控制成果怎样实行。别的,他们可以在开辟时在线自由修改代码实行的方法,乃至变化底层的处理惩罚器。

       大概最紧张的是,嵌入式开辟职员通过同一计划体系,无需成为硬件计划师就能利用可编程器件的好处。就像C曾经为全部工程师打开嵌入式开辟大门一样,同一计划环境也把基于FPGA的‘软’体系计划带给全部嵌入式开辟职员。