新闻  |   论坛  |   博客  |   在线研讨会
开放式系统设计:选择的自由
lulu888 | 2009-06-24 07:07:36    阅读:1194   发布文章

充分利用开放式系统设计方法的优点

就其本质和历史而言,电子设计工业的发展同半导体器件技术的进步息息相关。随着技术在继承基础上的每一次进步,当新型器件技术的潜能被完全开发出来时,就会出现产品设计的真正进步和变革。在一些创新的工程想法触及设计工具时(该工具不但可以提供运用这些技术的新方法,而且还能以一种没有约束且易于理解的方式进行设计),这种进步便随之发生。

低成本微处理器最初是作为一种生产袖珍计算器的更有效的方法来设计和构想的,结果它的出现折射出了使用软件编码来增强、增加产品功能的可能性。然而正是那些使用更高级语言工具的新型器件的创新应用,因为允许使用以软设计为中心的方法来进行设计,而实现了技术革新。通过探究所有设计可能性,工程人员能够将大部分的硬件逻辑转移到可更改的软件领域。工程人员对工具和技术的充分利用,促使定义产品价值的功能性“智能”开始向软件领域转移。

当前,诸如 FPGA 的低成本、可编程高智能器件的出现已经给我们的设计方法带来了又一次技术革新。这些智能设计不但涉及传统意义上的软件,同时也包括实施在一个 FPGA 中的“软”硬件。不要仅仅把该项技术用作作为其基本潜能的胶合逻辑贮存器,这样才能实现产品的独特功能方面以及由此带来的市场竞争优势在可更改的软件域中来定义。

嵌入式系统的设计人员现在有了一个可用来创建创新型产品的全新的设计平台。当使用一个完全可配置的设计平台来实践“软”设计方法时,FPGA 带来了空前的设计自由,这其中一部分得益于包括逻辑块、外围器件和微处理器在内的大量可用 IP 内核。这些都能按照设计要求的发展进行变更,在设计周期中一些关键设计决定可以在以后进行,同时产品的软硬件可以实时实地进行更新。

当技术潜能被充分利用时,固有的“软”设计方法为产品开发工艺带来了新的自由。想要利用这一技术创建出具有真正市场差异化的产品,意味着要克服运用该技术过程中出现的诸多实施问题。而这一成功的实施无疑与我们使用的设计工具的革新有着密切的关系。

局限性介绍

传统的设计流程中,可编程器件带来的设计可能性总是伴随着整个产品开发流程中不断增加的复杂性这一传统出现。被引进到产品开发工具链的一个新的层次(或一个新的“领域”)传统上都是基于一个嵌入式硬件开发工具集,而该工具集不但独立于现有设计工艺,而且与现有的设计工艺毫不相干。当一个独立的基于 FPGA 的部件与整个产品设计相集成时,这不仅带来了很高的复杂性,同时还要求您掌握一套新的设计技能,以充分利用这些嵌入开发工具。

出现这些挑战的主要原因在于源自 ASIC 设计领域的传统 IDE 工具系列(集成开发环境),该领域使用 HDL(硬件描述语言)来描述产品生产前芯片的硬件设计。使用一个传统的 IDE 工具链意味着在一个独立的设计环境下进行设计,并要成为一个 HDL 专家,同时还要应用这些目标 FPGA 基础架构的知识。

最常见的情况是,IDE 是 FPGA 器件厂商拥有所有权的工具链。它们是被开发用来支持每个厂商的产品并促进销售,自然而然也就不具备对竞争产品的支持。一个厂商 IDE 的使用限制了固有的灵活性以及嵌入式硬件设计的自由度,这是由于 FPGA 器件的范围、厂商 IP 内核以及您能使用的设计方法都受到了限制。另外,如果想要更改设计使用的可编程器件,您就会前功尽弃。

在实践中,开发工具自身的局限性使追求创新的过程中可以使用的设计选择大打折扣。

厂商中立的设计

为了充分挖掘当今嵌入式设计工艺的设计可能性,就需要有一个可编程器件开发环境,从而使您能够轻松选定来自不同厂商的多种器件。创建一个完全独立于厂商以及器件的设计环境,就可以打开一扇通往所有目标可能性的大门,从而让嵌入式开发人员为当前的设计选择最好的器件。

这样的一个系统在嵌入式设计中本身就具有中立性,允许在不损害设计源文件有效性的情况下对目标器件进行更改。这样的话,就可以按照自己的想法对目标器件进行更改,并在能更清楚理解所需的规范时,在设计流程后期再做出最终的决策。嵌入式设计流程可以在所有器件仍可选时进行,而无需在重要的嵌入式设计开始之前开发硬件。

独立于厂商的设计系统还可以提供范围更广的 IP 内核,因为使你能够通过对目标器件进行简单的更改来实现与目标厂商提供的内核的兼容(如一个特定的高性能微处理器)。如果使用系统中的器件中立框架来开发 IP 内核库,随之而来的软硬件模块会显示出与系统一样的中立性。这就带来了引人注目的发展前景,即在最初的开发中使用一个中立的 32 位微处理器内核,之后再在对已完成的设计影响最小的情况下,将 IP 模块更改成厂商提供的内核。

这种方法的成功部分依赖于可添加新器件硬件支持的系统升级的可用性。您可以自由地将最新的可编程器件用于您的设计中,它们具有完全的系统库 IP 内核兼容性。同时,它们还支持最新的“软”及离散微处理器和那些嵌入到 FPGA 结构中的,因为该系统的嵌入式软件工具链也被升级了。

在一个真正的厂商中立的产品开发环境中设计使设计人员有了轻松地探究所有设计可能性的自由。随着设计的进步,我们可以充分地选择使用可编程器件、微处理器和 IP 内核来创建最具竞争力的产品,而不需要做任何妥协。

抽象透明度

传统嵌入式设计流程对于器件和 IP 范围的限制性,以及基于 HDL 的设计捕捉的神秘性(其复杂程序堪比汇编语言),均要求专家级的技能,而且使工程师不能专注于创新设计。

这里需要的是一个可提升设计流程抽象程度的系统,这样设计工程师们就能够使用和拓展已有的设计技能,也能够在一个更高的层次上进行设计。高级别嵌入式设计方法的潜在好处是使硬件或软件工程师能够通过一种方式简单地将预校验IP模块连接到一起,这种方式不但易于达到而且隐藏了器件架构潜在的复杂性。

通过提供基于示意图或图表的设计接口,嵌入式设计工艺得到了改善,而无需专家级的 HDL 技能(尽管 HDL 输入也可以包含在内)。当这种系统作为一个厂商中立的嵌入式设计环境存在时,更换处理器、外围器件和存储器的过程可能会变为通过图形接口进行的简单的模块级操作。

这种系统的主要优点是设计人员可以完全将注意力集中于产品开发本身――功能性“软”智能。高级别的接口选择可以轻松地捕捉到设计意图,并且没有任何复杂性和其他会分散注意力的干扰。

当集成于一个本身支持常见高级设计范例的系统中时,底层硬件的复杂性就被有效地隐藏了。嵌入式硬件抽象可以包括高级 IP 接口系统(例如Y 型总线)以及引入处理器、外围器件和存储器周围的透明互联层的硬件接口 IP 内核。通过使用支持降低复杂程度的设计接口的低级接口架构,嵌入式设计实际上变成一道“连点”试题。

通过一体化实现自由

跳出基于 IDE 的传统设计流程就可以为工程师们提供现有选择基础上的有价值的拓展,并提供创建嵌入式设计的创新方法。厂商以及器件独立的嵌入式硬件设计系统带来了这一切,并提供了高级别的设计抽象。然而,该系统与设计环境其他部分如何连接也同样值得人们注意。

为了达到完全有效,设计抽象及开放式器件选择需要在整个产品开发链中反映出来。这样,传统设计中将所有设计元件(硬件、软件和可编程硬件)放置在一起而带来的复杂过程就变得简易和透明。

一体化的设计系统通过将所有设计域统一放置在一个单一、连贯的应用中来获得这种效果。设计模型变为贯穿所有域的单一实体,(例如)允许库 IP 模块包含多个器件支持、图形模型和硬件接口层。嵌入式设计的变化可以被直接地传递至使用高级自动过程(例如FPGA 引脚优化)的相关域中。这些成为可能是因为设计过程中所有部分均共用设计数据的相同单一模型。

将一体化的厂商独立的设计环境应用于其逻辑的下一阶段意味着要将那些属性包含到一个联合硬件开发平台中。独立于厂商以及器件(可能通过插件FPGA板的系统)并与一体化应用直接通信的硬件平台可以将需要的灵活性和开放式设计选择反映到现实世界中。需要对设计项目进行改进和调试的设计迭代可以实时地出现在真实硬件中,而且还可以减少对设计仿真的需要。

当此类可重配硬件平台同整个设计系统统一时,从设计捕捉直到物理硬件,做出的器件和 IP 设计选择可以透明地贯穿于整个设计链。这样,整个产品开发系统就变得统一和连贯。

如果设计环境也能提供高层次的设计抽象,那么系统开发人员将不在受限于器件选择和用于捕捉设计意图的方法。最终得到的是一种嵌入式系统开发的开放式方法,使设计人员得到解放,以将其注意力集中于设计本身――创建可提供真正意义上产品差异化的功能性器件智能。


图1:自动处理底层硬件复杂性的高级设计捕获系统使设计人员能够集中精神专注于创新。


图2:除传统的HDL入口之外,合适的开发工具能够使用基于原理图的捕获或基于图标的连续性控制将嵌入式设计抽象到更高的层次。


图3:在理想的设计环境中, 包括硬件开发平台在内的所有设计系统都能统一在单一的厂商中立的产品开发系统中。


图4:不依赖于FPGA器件并能提供高级设计抽象的设计系统能提供创建具有竞争力产品所需的所有选择,而不需做出任何妥协。

作者:Rob Evans
技术编辑
Altium Limited


作者简介:Rob Evans 毕业于澳大利亚皇家墨尔本理工大学(RMIT)电子工程系。他曾经在Electronics Australia担任技术编辑很多年,在电子设计和出版领域有超过二十年的丰富经验。Rob Evans现任Altium Limited的技术编辑。

[大 中 小][打印]

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客