新闻中心

EEPW首页 > EDA/PCB > 设计应用 > 在设计过程早期发现并解决问题

在设计过程早期发现并解决问题

——
作者:Gabe Moretti时间:2005-09-21来源:EDN电子设计技术 收藏

在设计过程早期发现并解决问题

在电路和系统设计中,需要昂贵的验证周期这一点证明电子设计师和 EDA 供应商也都是不免要犯错的,所以最好使用能避免大多数错误的工具和方法。
  要 点
  ●  制造能力与工程生产率之间的差距继续在加大。
  ●  现在不存在标准的验证方法。
  ●  形式证明可减小设计师对功能验证的依赖性。
  ●  由于深亚微米加工存在许多电子物理学问题,电路验证的重要性正在增加。
  设计验证需要每个设计小组花费大量的时间和资源。设计验证费用与设计的规模和设计所涉及学科的多样性成正比。要求软硬件协同设计或对于使用数字和模拟两种技术的设计,验证起来最为复杂。工艺技术的发展使工程师可以在外形尺寸递减的情况下使用更多的门电路。如今,一项普通的设计就要使用几百万个门,许多设计则使用几千万个门;最先进的工艺不久将在一块集成电路上制作 1 亿个门。
  验证技术的发展落后于半导体制造能力,这是产生设计差距的重大因素。但这种困难并非刚刚出现。在将产品交付生产,并提供一套足够而又高效的测试程序之前验证一项设计的正确无误,会遇到种种问题,这些问题至少已经存在35 年了。制造能力与设计验证之间的差距逐步在扩大,因而,验证费用也随着设计复杂度的提高而逐步上升。设计验证的目的是保证设计正确无误,但按照设计所处的不同开发阶段,这一目的也具有不同的意义。正确无误就是指符合规范、设计规则、工业标准以及企业设计惯例。正确无误也意味着两种实现方法在不同抽象等级如 RTL(寄存器传送级)和门级上的等效性。
  设计小组还必须保证软硬件接口协议的正确设计与实现。尽管上述所列问题给人印象深刻,但只是部分地描述了你必须测试与验证的可能的设计与实现问题。在 2003 年 9 月 8 日举行的 用户大会上, 主席兼首席执行官 Aart de Geus 在主题演说中说,在所有新的 IC 和 ASIC 中,有 61% 需要至少一次反复。在这些器件中,由于功能逻辑错误引发的问题而出差错的占43%;只有 3% 的故障原因用现在的验证技术无法确认。但是,工程师们没有时间与资源去发现并改正所有的设计问题。设计验证对产品开发成本、开发周期以及开发难度的影响是很大的。
  残缺的风景
  显然,避免问题的发生比解决问题更有效,但很少有设计团队赞同这种观点。例如,VHDL 比 Verilog 更加健全而又定义更严格。使用 VHDL 的设计师可以自动地避免某些类型的错误,而 Verilog 的用户则必须通过验证才能发现这些错误,但是,大多数工程师却选择 Verilog,因为它更易于学习,仿真速度也快于 VHDL。诚然,较为简单的语言不支持设计师开发复杂的设计时所需要的更严格方法。这一局限性就是开发 SystemVerilog 和 Verilog 2005 软件的主要原因。
  验证工程师不能依赖于一种广为接受的行业标准验证方法。验证工具的范围很宽,从软件开发语言,如C语言,到硬件描述语言,如VHDL语言,再到专用测试语言,如 的 OpenVera 和 Verisity 公司的“e”语言,不一而足。这一领域处于不断变化之中,工具的不稳定性直接影响着可反复使用的模块和操作规程的开发。这一问题在做体系结构级的抽取时最为严重,而进行这一抽取级时,避免错误或者至少发现并消除错误,对提高利润率大有裨益。
  NEC 电子公司技术基础开发部总经理Kazu Yamada认为,验证包括系统验证、逻辑验证和时序验证三个主要阶段。他坚持认为,在大多数单片系统设计验证中,最关键的领域是系统验证。由于 NEC 没能找到一个满意的商业化方案来解决这一问题,因此它开发了自己的高级设计环境,以便为其设计师和客户改进系统验证。虽然有些方法,如 NEC 公司的方法,可以缩短设计时间,降低开发成本,但它们远不是最佳的。他们使用的工具仍然存在问题。许多年来,EDA 供应商的销售部门业已指出,一个客户在开发期内较早地发现并解决问题就可节省一大笔钱。遗憾的是,这些阐述并没有说明避免错误的种种好处。实现这一策略的一种方法就是在最高级抽取时进行设计验证。这一方法很有效,因为随着设计的不断进展,将引入越来越多的细节,从而使验证问题更大,因此也更难发现和更难解决。
  在过去两年里,验证工具供应商之所以把注意力转向工作在规范方面的设计师销售专业人员,有两个原因:一是产品设计和开发的初始阶段是一个未开发的市场,二是进入这一领域的技术障碍与财务障碍比开发和推出一个后端工具(如一个集成电路布局产品)的要低。为了减小使用上的障碍,许多 EDA 供应商正在将软件编程语言C或它的派生语言如C++或 SystemC,用作电子产品规范与体系结构设计的描述语言。这些供应商作出这一决定是基于以下事实:C语言和与之相关的 Unix 操作系统都可以廉价买到,维护费用低,大多数大学都使用它进行编程教学。他们指望大多数电子工程师都在一定程度上熟悉 C 语言。
  遗憾的是,C语言不具备精确描述一个电子产品的结构和健全性,C 语言的派生语言C++ 更适用于软件开发,但很难掌握和使用。如果轻率地使用C++的功能强大结构,可能会导致开发人员难以发现而且要花很高代价才能纠正的错误。SystemC 尝试把某些硬件结构引入C++,如时钟周期和并行性,但仍然无法抓住硬件设计的本质。因此,C++不能帮助设计师,例如,在某一设计部分硬件实现方法和软件实现方法之间做出明确的抉择。使用 SystemC 成功地按时完成设计验证的工程师小组都由高水平的和有经验的工程师组成。如何让普通水平的工程师也能用这一方法还是一个未知数。迄今为止的实验仅仅表明:不管使用什么工具,经验都是无法替代的。
  现在已有更多适用的语言,如 Esterel 技术公司使用的 Esterel。EDAptive 计算公司正在开发基于 Rosetta 语言的工具,而 KeesDA 正在开发基于 B 方法的工具。Esterel、B 和 Rosetta 都提供定义和规范设计要求与制约因素的健全方法。使用这些工具的工程师发现,设计中出现错误较少,而且很容易获得设计正确性的形式证明。据 Real Intent 公司总裁兼首席执行官 Prakash Narain说,“抽取与分割处理的范例尚未开发用于功能验证。”他指出:“断言和基于特性的规范就是实现抽取与分割处理的最实际的范例,”但是抽取的设计表述则更进一步。Narain 认为,芯片设计工作是一门精确的艺术,将来会出现什么样的抽取和精确的方法尚不清楚。因此,业界仍在努力发现错误——而不是避免错误。



关键词: Synopsys 公司

评论


相关推荐

技术专区

关闭