您好,欢迎光临电子应用网![登录] [免费注册] 返回首页 | | 网站地图 | 反馈 | 收藏
在应用中实践
在实践中成长
  • 应用
  • 专题
  • 产品
  • 新闻
  • 展会
  • 活动
  • 招聘
当前位置:中国电子应用网 > 技术应用 > 正文

设计抽象——暴政还是胜利?

2011年07月01日10:24:18 本网站 我要评论(2)字号:T | T | T
关键字:应用 

几十年前,当 Microsoft 面向全球推出 Windows 时,一位同事将这种全新操作环境称为“穿着小丑服装的 DOS”。他这么说也不无道理。虽然当时 Microsoft 为 Windows 大造声势,但它只不过就是一个附加在普通老式 DOS 上的图形用户界面 (GUI) 和应用层而已。

不过,作为一款将 DOS 操作系统提升到更易于访问界面的先驱而言,Windows 是成功的。它解决了 DOS 命令行形式的低级别复杂操作问题,使用户能在更适应实际需要的高级图形化界面上展开工作。

虽然过程让人觉得有点艰苦,但 Windows 现在已经发展到了相当复杂的程度,和刚推出时作为“真实”操作系统的专用界面已不可同日而语了。Windows 是界面抽象发展演进的实例,充分展现了从“小丑的服装”(或者说“图形化服装”)到连接不同应用与系统的易用性工作环境的转变之路。

这一发展过程还说明,成功的进程抽象不仅仅是给进程包裹或添加一个界面层这么简单。进程通常不会孤立存在,因此应用抽象系统需连接并响应于其周围的系统,只有这样才能发挥出其全部潜力。

高级设计

此外,我们对用于电子和软件设计领域的抽象系统并不陌生。实际上,这种熟悉程度让我们认为其就是按正常的、而非抽象的方式工作的。以前,从分立组件转向集成电路就是提高设计抽象度的硬件实例。IC 使工程师能够采用更高级的“黑盒子”方案进行设计,而不用考虑(或在意)芯片内部的情况。工程师假定上述黑盒子能够按照技术规范正常工作,然后将它们作为功能块直接连接,并在某种硬件开发板上进行测试即可。

软件设计经历了编程语言和系统的长期发展,较终使开发人员摆脱了汇编语言的困扰。利用熟悉的编程接口、代码语法和编译程序等实施方法,软件开发能通过 Pascal、对象导向型语言和 C++ 等各种语言充分利用高级抽象。简洁、出色的嵌入式应用软件与 PC 应用软件一样,在很大程度上也采用相同的原理和系统。

显而易见,可编程硬件作为电子开发领域的新生事物,尚处在设计抽象发展的早期阶段。硬件描述语言 (HDL) 用于在寄存器 (RTL) 级描述设计,并较终合成到门级,用于选定器件(以前通常是 ASIC,不过现在更多采用 FPGA)的实施。但是,与复杂的汇编语言相比,本就晦涩难解的 HDL 通常会让嵌入式硬件的开发工作变得非常困难。

因此,为减化上述设计工作,我们开发了许多设计抽象系统。这些不同的抽象系统虽然在设计方法上大相径庭,但通常都是图形化系统、图形流程图方法或者是 C 语言的变体或扩展。与其他设计领域(硬件和应用软件)类似,实施高级设计系统以降低设计复杂性的公认方法也得到了应用。

不过,还存在一个潜在的问题,就是可编程硬件的开发有着自身独特的一系列特点,会限制高级设计方案优势的发挥。

关联设计、独立进程

可编程硬件的一个重要特性就是其在很大程度上依赖于设计方案中容纳的物理硬件(如 FPGA 器件)以及在其上运行的所有应用软件。实际上这种特性是设计方案中将可编程硬件和软硬件关联起来的较关键因素。

换言之,FPGA 开发不能孤立于目前已经是统一且相互关联的设计进程。但是,无论对其附加何种抽象层,常规的设计工具通常都是各自独立、互不关联的设计域。

不同设计进程的彼此孤立意味着必须在设计进程早期阶段就确定并锁定软硬件分区等关键决策——不同域之间不能交互而导致不能再进行后期变动。若想将软处理器换成硬件处理器或者在可编程硬件中实施软件算法,均会造成各域之间成本高昂的重大重新设计。不难看出这是一种呆板的顺序设计方法,其中必须要先开发物理硬件,然后再开发可编程硬件,较后才是应用软件。在此过程中探索不同的设计方案来避开问题或者实现更好结果的机会微乎其微。

使 FPGA 设计的抽象程度上升到更高水平并不能突破上述局限,有时甚至还会让上述问题雪上加霜,导致域及其设计数据更加具有排他性。虽然可编程硬件设计已经得以简化,但仍然不能实现与相互依存的软硬件域进行交互。

一体化设计抽象

若将设计抽象理念提升到一个全新的高度,则需要一个完全融合上述理念的完整设计环境,以便让所有域都能自由交互,而不用考虑个体设计抽象的水平如何。这就需要平台级上的一体化设计系统,其中整个设计进程只使用统一的应用和统一的设计数据池。

这样,嵌入式硬件设计就能随之成为可深入到硬件和应用软件域的设计进程的有机组成部分。任何域的更改都将修改统一的数据集并即时应用于其他域,而且设计系统的其他部分也都能自然“了解”任何高级设计进程。嵌入式硬件领域的设计抽象已经从置于普通进程之上的简单、孤立的层转而成为了在整个设计系统中互动渗透的设计方法。

借助这类系统,在设计方案中实施 USB 级等一般性任务就会获得大幅简化。此情况下,USB 级可能已经具备了需要集成到所有域中的元素,如物理空间的连接器和接口硬件、可编程硬件中的总线接口以及应用软件域中的驱动程序和协议层等。这种包含了库部件的统一设计数据池提供了融合所有元素的 USB 模块的统一模型。这种模型可直接放入设计方案中,无论各个域的设计抽象水平如何,它都能够反映在所有域之中。这种方法同样适用于 IP 内核或已经保存的设计方案。

系统级的高级设计

这种复杂程度的设计抽象也使我们能在电子产品开发中采用基于系统的方法。由于能够更方便地修改设计方案并减少对设计工作的干扰,设计进程自此不再彼此孤立,同时也大大降低了严格按顺序实施工作流程的必要性。

目前在全球实施的高级开发进程使设计人员能够免受低级别设计复杂性问题的困扰,从而集中精力改善较终用户的体验。硬件决策可在已经全面了解设计要求的设计周期的稍后阶段进行确定,此外还能简化软硬件分区,并能使用迭代性更强的探索性开发方法。

使用不能与系统其他部分实现根本性互连的抽象设计进程与使用仅用作底层操作系统接口的 Windows 并无二致。如果没有编程互联的底层基础架构、系统调用或 API,Windows 仍将是当初的小丑外衣而已——尽管这件外衣现在看起来已经非常光鲜艳丽。

就目前复杂的电子设计任务而言,高级设计抽象已不再是某个进程可能从中受益的插件了。相反,随着设计任务不可避免地日益复杂、不同设计领域之间的界限逐步淡化,“一体化”设计抽象正快速变得不可或缺。

这种方案不仅使新一代电子设计成为可能,而且还能将设计人员解放出来,使其将精力集中在可实现真正竞争优势的创新与互连设计等关键任务上。

相关阅读:

    没有相关新闻...
网友评论:已有2条评论 点击查看
登录 (请登录发言,并遵守相关规定)
如果您对新闻频道有任何意见或建议,请到交流平台反馈。【反馈意见】
关于我们 | 联系我们 | 本站动态 | 广告服务 | 欢迎投稿 | 友情链接 | 法律声明
Copyright (c) 2008-2024 01ea.com.All rights reserved.
电子应用网 京ICP备12009123号-2 京公网安备110105003345号