打印

让FPGA为嵌入式开发人员工作(续)

[复制链接]
1609|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wangjun88|  楼主 | 2010-8-25 11:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
图2:硬件设计和软件开发的统一,使嵌入式开发人员无需成为硬件设计师即可在软件开发阶段影响及修改底层系统硬件。

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


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

开发人员使用大量预先综合并验证过的、“软元件”形式的IP器件库,可以通过图形化块状图或原理图方法在
FPGA内部定义系统功能。在统一环境中一个原理图编辑器可用于输入板卡电路和 FPGA级电路,节省分立可编程
电路设计输入系统的开销。
在开发时使用预先合成的逻辑块(元件)而不是基于HDL的源库,具有几个优点。首先,在硬件综合时把块视为
“黑盒”,从而加快进程的处理。第二,与板级的分立组件的使用一样,在无需了解底层的代码结构的情况下
,基于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函数功能,对应用功能进行快速重分配和并随时实施硬件加速。

在早期转向开发
Altium Designer统一平台嵌入式开发最重要的方面,可能就是把设计师从必须在设计早期就锁定关键设计元素的困境中解脱出来。在开发阶段处理器、外设器件和目标FPGA都可以相对容易地改变,软件和硬件功能的划分也是如此。整个设计流程能够以全新的方式进行。
比如我们设计一个应用,将移动的3D图像 – 比如一个公司的标志 – 显示在屏幕上。在Altium Designer的统一环境中,硬件工程师能够使用库中可得到的FPGA元件,在原理图中进行连接,创建由处理器、通用协处理器、内存、键盘输入驱动和显示驱动组成的基本硬件平台。
在统一环境中我们可以把嵌入式项目连接到硬件设计,并从原理图自动转换I/O和内存映射,自动装载包含外设驱动代码的软件库。代码编写完成后,可以把硬件和软件下载到合适的FPGA开发板进行调试。如果觉得图形渲染太慢,那么可以配置协处理器,从元件配置对话框列表中选择功能,执行3D到2D的功能映射。如果有必要,也可以回到原理图,把处理器类型从软内核改为分立器件,获得更高速度。

图 6: 在 Altium Designer的统一设计环境中,关键设计参数如外设和内存地址映射等,可在硬件和软件开发过程中自动配置。

关键是系统硬件不再固定。可以在一个缺省的平台下进行开发,然后随着系统发展不断进行,满足不断变化的需求。这就无需在开发初始阶段就严格定义硬件– 此时系统需求还不完全明确,其后随着开发进程的进行可自由修改硬件以满足软件需求。

嵌入式智能的兴起
高性价、大容量FPGA的出现为嵌入式开发人员开创了一个时代,允许他们充分利用可编程器件所具有的潜力。在适当的开发环境和统一的设计方法下,当前 FPGA提供的大型可重构的设计空间为嵌入式系统带来了新方法,设计师能够以革新的方式创建电子产品。这种革命甚至可与几十年前引入微处理器后带来的软件设计革命相提并论。
类似Altium Designer的统一设计环境让开发人员结合了软件和可编程硬件,更快地创建智能产品。开发人员不再把产品智能完全置于软件之中,而是利用可重构逻辑创建包含软件和硬件部分的嵌入式智能。
设计师可以自由选择任意算法的最佳实现路径,无需为信号处理功能专门定义固定的硬件,即可控制功能如何执行。此外,他们可以在开发时在线自由修改代码执行的方式,甚至改变底层的处理器。
可能最重要的是,嵌入式开发人员通过统一设计系统,无需成为硬件设计师就能利用可编程器件的优点。就像C曾经为所有工程师打开嵌入式开发大门一样,统一设计环境也把基于FPGA的‘软’系统设计带给所有嵌入式开发人员。

作者简介
Rob Irwin 获得澳大利亚悉尼大学工程(电气)学士学位。他在电子设计领域具有20多年的经验,其中包括澳大利亚消费协会的高级电子测试工程师经验和几年的澳大利亚电子工程编辑经验。Rob 目前是Altium 有限公司的产品经理。如果有问题或建议,请发email到 Rob 的电子信箱: rob.irwin@altium.com.au

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

80

主题

251

帖子

5

粉丝