您的位置: 嵌入式在线 > 技术中心 > FPGA > 让FPGA为嵌入式开发人员工作– 第二部分

让FPGA为嵌入式开发人员工作– 第二部分

2007-06-29      嵌入式在线      收藏 | 打印
 在本文的第2部分,Altium有限公司的产品经理Rob Irwin建议可编程器件的设计必须与嵌入式设计流程更好地集成,以便在嵌入式领域充分利用 FPGA的潜力。
 
 然而,把软件和硬件集成在一起并不容易,需要有非常智能的系统才能为所有嵌入式开发人员带来基于FPGA的“软”系统设计。
 打破障碍
 
 发掘FPGA潜力的关键在于打破传统软件和硬件设计间的障碍。目前FPGA设计流程仍被视为与软件开发流程相分离,而实际上两个流程都隔离在板级设计流程之外。业界仍然按照板卡设计、FPGA设计和软件设计几个相互分隔的方面来认识整个电子产品设计,而且我们使用的设计工具正反映了这种分隔。
 
 FPGA设计发展成为专业的设计学科,其工作流程是从芯片设计方法演变过来的。从嵌入式角度来看,这就把FPGA放到了硬件设计领域,这就使FPGA很少被用于创建嵌入式系统的真正智能,即软件。然而, FPGA跨越了软件和硬件之间的障碍,具有成为电子产品嵌入式智能一部分的潜力,而不仅仅是成为嵌入式智能的平台。实际上,只有把电子产品开发视作一个单一过程,我们才能看出可编程硬件技术所代表的‘宏伟蓝图’。
 
 可编程器件技术并不是把嵌入式软件开发从硬件设计分割开,而是让开发人员在开发软件时可以交互地改变系统硬件。硬件也不再是一个固定的平台。在本质上,系统优化可包括硬件和软件,平台和运行在平台上的软件都可以在线重构。
 
 统一化设计是关键
 
 当然,实现硬件/软件的统一不是简单地改变我们对设计流程的看法即可。为了让开发人员发掘出可编程设计的潜力,我们使用的设计工具必须支持这种流程。为了实现传统分隔设计领域间的自动化,设计系统本身必须支持硬件、软件和可编程硬件开发的统一。

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

 图2:硬件设计和软件开发的统一,使嵌入式开发人员无需成为硬件设计师即可在软件开发阶段影响及修改底层系统硬件。
 
 这超越了对分隔的设计编辑器的简单集成。设计系统必须在根本上支持设计硬件和软件的所有流程。既能有效地对嵌入式开发人员隐含硬件设计流程,但又要允许他们更改底层硬件平台,设计工具必须将代码开发和硬件描述紧密结合。从另一方面,板级设计师必须能够利用可编程器件抽象出处理器和外设器件间的连接,以便创建出一个物理平台,而无需涉及到FPGA器件本身的复杂特性。
 
 然后需要做的就是必须将目前支持硬件、软件和可编程硬件的分立式设计工具统一在单一的环境中 ,以便充分利用FPGA作为嵌入式开发平台的潜力。但统一设计需要什么以及如何在设计工具层进行实现?
 
 统一的硬件设计框架
 
 设计工具厂商 ——Altium Limited在其业界首个统一电子产品开发系统——Altium Designer中实现了这一目标。在Altium Designer中将硬件和软件开发被统一在平台内,从而加快了软件/硬件共同设计的进程。所提供的 基于FPGA的处理器和处理器打包内核可以让设计师轻易地运用Altium Designer或任何支持的第三方处理器,同时保留设计的全部功能,包括方便与FPGA外设的连接。Altium 卓越的Viper编译器保证了该系统支持的所有处理器结构间完全的C级别代码兼容性。
 
 像Altium Designer这样的统一设计系统,其根本需求是开发人员能方便一致地操作分立和基于FPGA的“软”硬件。这通过把传统HDL方法转为FPGA设计,并将现成易用的、 基于组件的设计 用于可编程器件来实现。在这种环境下,使用描述板级电路相同的方法和语言来描述FPGA内部实现的系统组件。

图3: 统一硬件和可编程硬件设计后,板级设计师可以使用熟悉的基于元件的图形设计方法,有效地使用大规模FPGA器件构建嵌入式系统。

 图3: 统一硬件和可编程硬件设计后,板级设计师可以使用熟悉的基于元件的图形设计方法,有效地使用大规模FPGA器件构建嵌入式系统。
 
 开发人员使用大量预先综合并验证过的、“软元件”形式的IP器件库,可以通过图形化块状图或原理图方法在FPGA内部定义系统功能。在统一环境中一个原理图编辑器可用于输入板卡电路和 FPGA级电路,节省分立可编程电路设计输入系统的开销。
 
 在开发时使用预先合成的逻辑块(元件)而不是基于HDL的源库,具有几个优点。首先,在硬件综合时把块视为“黑盒”,从而加快进程的处理。第二,与板级的分立组件的使用一样,在无需了解底层的代码结构的情况下,基于FPGA的组件块即可被使用。尽管,组件背后的原理很复杂,但设计者只需要知道基本的功能就可以使用了。
 

图 4: Altium Designer以组件形式构成的现成易用的、预先综合与预先验证的IP扩展库简化了FPGA系统开发,提供硬件构建在FPGA器件和基础结构间的移植性。

 图 4: Altium Designer以组件形式构成的现成易用的、预先综合与预先验证的IP扩展库简化了FPGA系统开发,提供硬件构建在FPGA器件和基础结构间的移植性。
 
  同样,如果各种FPGA结构的元件块都经过预先综合与验证,那么设计师就可以创建独立于目标FPGA器件的应用。这可以实现设计的可移植性,并且设计师无需特别熟悉特定的FPGA结构。
 
 为分立硬件和可编程硬件提供单一的设计环境,使两种类型的项目可具有紧密联系,这还带来其他的优势。例如,I/O定义和管脚分配可自动合成,板级布线的开发人员可直接利用FPGA的管脚可编程特性优化布线器件。
 
 统一硬件和软件设计
 
 从嵌入式设计师角度看, 统一环境 可直接把软件开发连接到底层的硬件平台设计。这一点很重要,因为这样FPGA内部实现的器件可以在开发阶段以类似传统软件的方式方便地升级。嵌入式开发人员可以轻松地选择硬件和软件方案解决设计问题。
 
 Altium最近在06慕尼黑电子展览会上展出了新的统一硬件/软件编译器技术,该技术可同时从标准C代码中生成高度优化的可执行代码和在FPGA中并行执行的硬件电路,随后在运行时生成所需代码并将二者连接在一起。实际的实施中需要引入FPGA硬件系统元件,在编译时通过嵌入式软件指定其功能。开发人员只需指定在硬件和统一编译器上执行的C函数,然后创建综合所需的硬件描述文件,并编译剩余代码,自动添加必要的指令,从而把功能转移到硬件中。
 
 在设计师看来这一流程完全透明的– 他们只需选上复选框,决定在处理器上或直接在硬件上执行何种特定功能。在代码开发阶段,令程序员迅速有效地创建专用的协处理器。实际的好处是开发人员可以交互地尝试不同实现方法,无需硬件工程师干预或忍受无穷无尽的等待,等待生产出更新的原型板卡却只是为了查看是否有性能改进。在本质上,硬件和软件生成变成了统一编译器的输出选项。
 

图 5:对于嵌入式开发人员来说,在使用大规模FPGA时最令人激动的方面可能就是Altium Designer可以透明地在软件和硬件间切换选定的C函数功能,对应用功能进行快速重分配和并随时实施硬件加速。

 图 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的‘软’系统设计带给所有嵌入式开发人员。


 
本文来源:电子工程专辑    作者:Rob Irwin
热点资讯(一周点击率)
热评博文
评一评已有 0 位网友对此文发表了看法。  我也来评一下

验证码:  看不清?换一张

 

快乐大本营

    无线时代来临,移动产业生态系统将发生一些根本变化。今日头条推荐“芯片是嵌入式4G技术的关键 产业生态系统将发生变化”。

    想了解嵌入式开发工具的市场情况吗?先来体验下我们的在线调查吧!填写调查问卷

工程师之星
朱礼昆
电子信息工程专业,擅长硬件编程
  • 胡菲菲  技术专长:嵌入式系统linux
  • 柳如峰  技术专长:模电,电源
热门招聘
论坛热贴