复杂设计更须注重数据管理
首 页 > 技术支持 > EDA技术

复杂设计更须注重数据管理

随着越来越多的中国工程师开始设计和管理大型工程项目,设计方法已变得非常重要。过去,工程师一般根据手头的硬件和软件工具去开发产品,但随着设计越来越复杂,这种传统设计方法的效率已越来越低,本文讨论的面向数据而不是工具的设计方法可以大幅提高工程开发效率。

在设计过程中,数据是关键,可以说没有数据就没有设计。采用传统方法的设计工程师过多地依赖于以工具为主的途径来完成任务,整个设计流程就是一个根据设计者需要一个接一个打开设计工具并完成设计的线性处理过程。例如,一个设计工程师首先打开一个模拟工具,并加载数据,这是一种有争议的假定相关数据均存储在一个HDL文件中的线性处理流程。不过,当设计者需要模拟一个包含状态机、HDL文本和复杂门电路的原理图时,这种线性处理流程很快就会出现问题。在这种情况下,设计者在模拟之前必须采取几个人工数据处理步骤,包括从状态机和原理图中产生HDL代码,以及更新各种数据文件。

面向数据的管理工具

设计工程师现在可以采用一种新的以数据为中心的方法来解决这些问题。通过这种方法,设计者可以从数据管理器中选取恰当的操作来实现特定的设计单元。如果设计单元像上述例子一样复杂,以数据为中心的管理工具将在产生正确的模拟文件之后马上自动执行模拟工具,以数据为中心的功能特性可产生并加载所有的HDL文件、激励、库和SDF文件。

目前,利用面向工具的设计方法来模拟原理图中的分层模块需要大量的人工操作,如拷贝、粘贴和编辑等,而面向数据的管理工具则将所需操作的分层提取出来,并基于分层为模拟准备必要的数据,这样的面向数据的策略可简化设计工程师的处理过程。

通过在设计者和各设计工具之间增加一个抽象层,面向数据的操作为复杂度不断增长的系统、ASIC和FPGA设计的成功管理奠定了基础。尽管各设计工具可有效执行一系列特定的操作,但设计工程师必须先提供必要的输入数据。因此,随着设计复杂程度的增加,数据输入就会成为一项繁重的工作。目前,面向工具的设计流程已不能满足当今复杂FPGA设计的要求,而面向数据的工具将可极大地提升设计效率。

过程是关键

设计开发涉及到大量的数据文件,不仅包括设计数据,而且还包括约束和验证数据。如果设计工程师必须通过手工方式来管理这些贯穿整个开发流程的设计文件,他们就会被费时、费力的流程所困扰,这将大大降低生产率,严重制约开发进程。

尽管设计工程师担心数据输入工作在开发过程中会浪费大量宝贵时间,但有一个更为重要的问题需要注意。设计者都希望采用最佳的设计管理技术,以便能在给定的开发时间内进行深入探讨并得到尽可能好的设计方案。由于数据管理流程脆弱的本性,如果不能发现并妥善处理欠佳的构思或设计中产生的管理问题,那么一旦在开发流程后期遇到重大的设计更改,将可能导致整个设计工程的崩溃。

软件和硬件开发有诸多相似之处。管理软件开发、缩短开发时间和提高设计质量方面的大量信息表明,良好的数据管理流程是有效控制软件开发进程的关键。此外,良好的数据管理也是降低风险、保持进度和资源管理的基本保证。硬件设计会使数据管理更加复杂,因为硬件设计本身比软件设计复杂得多。

在软件开发领域,代码产生过程通常经过三个阶段:源代码(*.cpp)、目标代码(*.obj)和可执行代码(*.exe)。每一阶段都是一个不可逆转的流程,且不同的文件类型格式完全不同。

然而,在硬件开发领域,即使一个最简单的代码生成流程都要包括:行为描述代码(*.vhd)、RTL描述代码(*.vhd)和结构描述代码(*.vhd、*.sdf及*.edf)。每下一步流程采用抽象度更高的VHDL代码,最后产生三个主要文件:一个结构化的VHDL设计文件、一个通过VHDL设计进行时序验证的SDF设计文件,以及一个用于布线工具输入的EDIF网表文件。

硬件开发还需要一系列工具,包括原理图、图形输入、文本输入、模拟、综合及静态时序分析等。硬件设计实际上是一种将算法从抽象级转换到门晶体管级的过程,显然,如果几个工程师共同完成一个硬件设计,就必然会涉及到数据管理问题,而且它可能成为影响最终设计成功的一大障碍。

数据管理危机

尽管设计者常常会忽略,但在设计构思和论证阶段对高密度开发进程构成重大威胁的设计数据管理问题正在逐渐受到重视,因为在一段很短的时期内,设计小组就必须定义、分割、生成和强化某个设计。如果在这个阶段设计发生变化,数据也必须相应改变。设计完成后便进入生产阶段,这时设计数据管理任务就由产品数据管理(PDM)系统接管。

设计数据管理问题的大小与任一给定产品的数据量成正比,当增加新的功能时设计数据量也会相应增加,因为设计实现和验证需要更多的数据。如今的FPGA已具有上百万门容量,尽管这可让设计者为其设计提供更多的功能,但同时也带来了数据管理方面的巨大挑战。

随着工程师逐渐采用新的设计方法来提高其生产率,新的可以加快设计定义、分析和实现的EDA工具也不断出现。这些新的设计工具和方法产生了大量的设计数据文件:测试向量源文件(VHDL、Verilog或图形仿真文件);测试向量辅助文件(用于HDL测试向量的ASCII文件、向输出波形加载激励和/或存储输出波形);设计源文件(VHDL、Verilog、原理图、图形方框图和EDIF);辅助数据文件(用户定义的HDL库文件、HDL源文件和RAM/ROM加载文件的ASCII文件、综合约束文件及布局布线约束文件)。其它设计数据文件还包括:派生数据文件(从图形源文件产生的RTL HDL、由宏生成器产生的原理图、框图、流程图、EDIF和RTL HDL);布局和布线生成文件;工程技术文档文件(如Word、Excel、PDF和HTML文件)。这些文件在数量和复杂性方面都增加了设计难度。

某些流程和设计技术也会产生大量的数据文件。例如,在不断修改和调整设计的过程中,经常会发现各个子层块可能处于不同的阶段,有些可能是RTL级设计,而有的可能已经是门级设计了,而且在设计过程的不同阶段都会产生许多新的文件。而综合RTL文件和FPGA中的布局布线将会产生更多的文件。

每个抽象层实现形式或设计思路都反映为一定的VHDL结构,这是各子层块统一的接口,但每个子层块可以有多种表现形式,包括RTL、行为级描述或结构描述等。偶尔,设计者需要尝试不同的实现方式来获取理想的设计尺寸和速度规格。在这种情况下,各子层块在每个描述级上都可能包含几种不同的表现形式。因此,在同一个抽象级上可能并存多种实现形式。

更深层次的问题

FPGA设计以前仅简单地包括原理图和门电路,这对当时典型的器件密度而言已经够了。不过,现在设计者处理的器件密度平均为2万门左右,仍沿用原理图和门电路设计思路将严重影响设计效率。如果设计者能够将设计功能用图表而不是原理图和逻辑门表示,将会大大提高设计效率。除了编写HDL代码外,扩展设计生成技术使之包括原理图、状态机、流程图和真值表也会给设计管理带来更为广阔的空间。

每个子层块描述均可能包含多个源文件。由于每个子层块包含多种实现形式,而每种实现形式又包含多个文件,因此随着复杂程度的增加,设计工程师将面临可能降低设计效率的繁杂文本输入工作。

这些设计数据管理问题还仅仅是一些表面现象,如果还要在一个项目分层设计结构的多个层次上开发测试基准,那么将会导致任务复杂程度的急剧增加。

测试基准也对数据管理系统的开发提出了挑战。与设计功能描述类似,测试基准也可能采用同样格式或语言的源文件。多个子层块拥有多个测试基准也进一步增加了文件管理的需求。

一般来说,模拟器采用测试基准,而综合工具则不采用,因此它们对数据管理的要求也截然不同。此外,测试基准必须在整个设计转换过程中提供可复用性。例如,同一测试基准应该能够同时满足综合前及布局布线后的要求。

如果对整个工程项目的子系统采用不同的设计方法有助于在规范所要求的尺寸、速度及功耗方面达到一定的平衡,那么我们对项目开发过程中的设计数据管理要求的理解也能更深入一些(见图1)。当要求某个功能块(如PCI总线)必须满足给定运行速度要求时,设计者可能愿意在综合优化和布局布线约束方面花费更多的时间以满足时序需求,其中一种应对策略是为速度而牺牲空间,设计的其余部分则可获益于空间优化。显然,如果每个功能块要求采用不同的设计方法及优化参数,那么就会带来另外一个设计数据管理问题:设计工程师如何对子层进行分离并管理相关文件?

尽管大部分芯片供应商都为方便EDA使用而提供了标准化库,但设计者在设计流程中通常仍需要将技术库的不同描述连接到不同的工具。例如,开发商提供原理图库用于原理图输入,宏生成器可用于生成符号,验证库用于布局前后的模拟,开发商的布局布线工具提供了一个SDF文件用于时序分析。此外,综合目标库以及用户生成的库和参数选项可能也需要管理,用户需要通过文件去指导综合及布局布线工具。另一个普遍的做法是利用VHDL或Verilog文本文件在模拟之前加载RAM/ROM块的初始值。显然,库管理为设计数据管理方法带来了更多需要注意的事项。

面向数据设计

设计工程师采用了几种不同的方法来解决这一问题:利用软件开发工具来构建硬件开发数据管理系统;采用VHDL语言的配置功能;手工管理所有设计数据文件;利用一些EDA供应商提供的以数据为中心的功能。

基于定制的硬件设计数据管理系统存在固有的局限性,其文件规则不能反映设计状态。 VDHL配置提供了强大但较困难的解决方案。如果开发工具能够可靠地支持配置,那么它将允许设计工程师管理用于模拟和综合的设计数据。不过,由于VHDL配置只能以VHDL语言格式来表达设计数据,因此它无法提高可读性。

只要设计规模较小,即使采用传统方法,许多设计工程师还是能够获得可接受的效果,但在质量控制及可重复性方面却得不到保证。我们通常会问这样的问题:我们是否给开发商提供了与模拟结果完全一致的设计呢?

实际上,所有构建阶段的设计管理问题都揭示了一个共同的现象,即在设计过程中这些问题都与设计结构相关。这一发现为Veribest ( Mentor Graphics公司)这样的公司提供了灵感,他们因此开发了一种可让设计者详细浏览设计分层的技术(见图2)。

Dataquest最近所做的一项用户调查表明,1998年大部分FPGA设计规模在5,000到10,000门之间,今年这一规模将增加到30,000到50,000门。当前面向工具的设计方法在这些密度条件下已严重威胁到市场主流用户的设计效率,这表明面向数据的设计技术将从高端用户向主流市场渗透。

新的管理模式

Veribest ( Mentor Graphics公司)的Designview工具为FPGA用户解决了设计构建过程中的数据管理问题。例如,Actel就在其设计生成工具包中采用了这个工具,它通过用户和核心工具之间的抽象层向用户提供了一个观察和管理数据的窗口。用户可选择从文件、分层或模拟角度来观察设计数据。一旦选定数据元素并设置好恰当的文件位置、选项、库和输出文件位置,管理工具就会自动激活相应的设计工具,这种工具摆脱了完全依赖人工操作的设计方法。

基于文件的观察方法通过文件系统目录结构来展示项目内容,它将原理图、图表、HDL文件和模拟测试基准分别归入相应的目录。分层列表不仅揭示了层次结构,而且能够识别出由于文件丢失或产生错误而导致的子层丢失,并不断地检查分层结构以确保正确的构造。此外,它还支持配置管理、虚拟路径管理和子层块框图等。

在设计工具管理数据的同时,配置管理还提供了一种可快速比较设计实现选项的简便方法。当设计者在不同供应商提供的配置间进行切换时,设计流程可及时调整以显示特定供应商的综合结果、布局布线文件和布线后的模拟文件。配置结构还可为特定的功能块提供可支持或比较尺寸与速度优化组合的选项。每一功能块都可包含多种实现方式或观察点,一系列有效的或选定的观察点就构成一个配置结构。这种配置能力可让设计工程师构建一种可针对速度及尺寸而优化各种功能块的设计实现。

虚拟路径管理可让设计者隔离出用于设计、验证和FPGA布局布线的子层,用户可通过逐个点击子层来设置新的路径。现在,有了这项可支持混合设计原理图、图形和文本输入生成方法的功能,设计工具就可执行所有的数据操作。

模拟管理贯穿于模拟设计的全过程,它负责处理源、测试基准和布线后SDF文件之间的所有数据关系。用户可选择模拟HDL文件和与测试基准相关的选项,测试基准首先对待模拟I/O进行初始化,然后将自己关联到这一特定功能。在设计实现过程中(如综合和布局布线),设计工具可生成布线后HDL和SDF文件,Designview可自动对先期生成的测试基准与布线后结果进行关联,并一直保持这种关联。

过去,配置、虚拟路径和模拟管理都是通过设计分割、拷贝和编辑等手工操作来实现的,但FPGA设计在数据管理复杂性方面已超出了传统数据管理的极限。在设计者开发和比较设计生成方法和优化技术的同时,FPGA设计也产生了庞大的数据量。不过,数据仍是设计者设计工作中最有价值的东西,设计方法必须能够反映出数据的重要性。采用面向数据的开发方法来有效管理数据必定能够提供面向工具的设计方法所无法企及的设计效率。

作者简介:

Bob Potock已在Veribest公司(现已经被Mentor Graphics公司收购,成为Mentor Graphics公司系统设计部门的一部分)工作三年,现在是CAE解决方案总监。他有十余年的EDA行业工程和管理经验,曾在Cadnetix、NeoCAD、Intel、AT&T Bell Labs和Unisys等公司工作。

David Brady是Veribest公司CAE结构设计师,曾任职于Mentor Graphics和Trimiter Technologies等公司,有10余年的EDA行业经验。在从事EDA工作之前,Dave是Northrop 技术和研究中心的IC设计工程师。

录入时间:2007-10-09 来源:中国电子技术信息网  

相关文章:

射频EDA仿真软件介绍
蓝牙HCI-UART与并口的FPGA控制接口设计
用EDA设计LED汉字滚动显示器
中、小尺寸TFT-LCD系统时序控制模块的设计
基于CPLD的多波形信号发生器设计
基于FPGA自适应数字频率计的设计
用CPLD实现单片机与ISA总线并行通信
电子系统EDA集成开发环境框架结构
基于多种EDA工具的FPGA设计
FPGA系统的仿真和测试