随着计算机及其相关技术的发展,一门崭新的技术正在世界范围内兴起,这就是CAD(Compu te r Ai ded Design)技术。CAD技术是电子信息技术发展的杰出成果,它的发展与应用正引发着一场工业设计和制造领域的革命。EDA(Electronic Design Automa TI on,电子设计自动化)技术,就是采用CAD技术进行电子系统和专用集成电路设计的技术。
EDA技术可面向三个不同的层次,即系统级、电路级和物理实现级。进入20世纪90年代以来,EDA技术逐渐以高级语言描述、系统仿真(system simula TI on)和综合优化(synthesis)为特征。此时的EDA技术经常被称为ESDA(Electronics System Design Automa TI on)。
传统的电子系统设计基本上采用自底向上(bottom-up)的设计方法,利用S PI CE完成模拟验证。这种方法要求设计者具有丰富的设计经验。大部分电子系统的设计工作需要设计专家人工完成,同时任何一次设计方案的修改,都意味着一次详细设计过程的重复,再加上模拟验证速度较慢,因此无论在设计时间还是在设计精度上都不十分令人满意。因此,采用人工的自底向上设计方法,已很难满足当今电子系统的设计要求;而现在EDA所采用的自顶向下(top-down)的设计方法则有效地实现了设计周期、系统性能和系统成本之间的最佳权衡。这是一种层次化的设计方法。设计在尽可能高的层次上开始进行,从而使设计者能在更大的空间内进行设计搜索,理解整个系统的工作状态,完成设计的权衡和相关的设计决策。自上而下的设计方法,首先从系统设计入手,从顶层进行功能方框图划分和结构设计,这时的设计与工艺无关。在方框图一级先进行仿真和纠错,用VHDL语言对高层次的系统行为级进行描述并在系统级进行验证。然后,用逻辑综合优化工具生成具体的门级逻辑电路的EDIF(Electronic Design Interchange Format,电子设计转换格式)网表,对应的物理实现级可以是PCB板或者是 ASIC 芯片。设计的主要仿真和调试过程是在高层次完成,这一方面有利于早期发现结构设计上的错误,避免设计工作的浪费,同时也减少了逻辑仿真的工作量。目前,一般的硬件平台已经可以支持系统设计的CAD软件的运行。自顶向下的设计方法方便了从系统级划分和管理整个项目;简化了设计队伍的管理;减少了不必要的重复;提高了设计的一次成功率。同时,自顶向下的设计方法还提供整个设计过程中的各设计阶段的统一规范管理,包括系统的测试和各层次的模拟验证。
一般认为衡量一个电子设计自动化系统的优劣主要有以下三个方面的标准。① 一般性:用该自动化设计系统成功实现的电路和性能要求范围;② 精确性:使用该自动化设计系统能达到的设计精度;③ 有效性:把电路设计编译成设计系统的输入格式所用的时间和综合优化所用的 CPU 时间。 当今流行的电子系统设计环境还存在一些弊端:层次单一;库单元十分有限,而且结构固定,不易修改和扩充;自动化程度低,需要大量的人工设计;核心的算法在设计时间和设计精度上都不能达到理想的要求。针对这些弊端,我们借鉴以前已有设计环境的长处,提出了一个新颖的电子系统设计环境即ASEDA。
一、 ASEDA设计环境及流程
在ASEDA中,用符号模拟技术建立电路的符号模型。由于符号模拟技术对电路形式和性能要求没有特殊的约定,从而解决了一般性的问题。电路议程的自动化生成,使得预准备的时间大大缩短;层次化的宏模型库及其自动化建立工具使得综合优化的时间得到大幅度减少,解决了有效性的问题。电路的宏模型用非参数统计分析方法建立,解决了以前线性回归模型函数形式固定带来的精确性差的问题。
由于最新 MATLAB for Windows的4.0版是一种功能强、效率高、便于进行科学和工程计算的交互式软件包。它除了传统的交互式编程之外,还提供了大量的MATLAB配套工具箱,有优化工具箱(op TI mization toolbox)、信号处理工具箱(signal processing toolbox)、 神经网络 工具箱(neural network toolbox)、控制系统工具箱(control system toolbox)等。此外,它还提供了与其它语言的接口(C、FORTRAN等),使得其功能日益强大。因此在 ASEDA中,被用来进行系统级仿真。
电子系统自动化设计的设计流程可以抽象为图1所示的模式。首先,设计师根据所要求设计的电子系统的性能描述和设计限制建立设计概念,即建立该系统的信号流程框图。在ASEDA中选出这些模块后,进入ASEDA的层次化综合、优化设计框架。然后,以电路图或者是文本格式的文件输出,作为版图设计级的输入,最后形成VHDL描述。
图1 电子系统自动化设计流程
层次化的综合设计是将系统和设计限制逐级分解为更小的部件和设计限制进行设计综合,而在每一层中电路的分析综合和优化过程是一致的。首先,是读入性能要求和设计限制文件,这些性能要求和设计限制在最高层是由用户直接提出的,而在低层次上是由上一层自动生成的,这样用户在设计时并不需要了解底层的详细设计情况,从而方便了用户设计。第二步,是根据性能要求和设计限制在相应层次的宏模型库中选取适当的宏模型拓扑结构,在选取上可采用模糊匹配的原则,为用户提供一个或若干个拓扑结构以供选择。
若用户对系统自动选择的拓扑结构满意,可以直接进行下一步的设计,否则可以自行修改拓扑结构甚至重新构造新的拓扑结构。然后,由宏模型自动建立工具对修改后的或新建的拓扑结构进行分析,建立相应的宏模型,并补充到相应层次的宏模型库中,进行下一步的设计。由于电路,尤其是模拟电路的拓扑结构千变万化,一个单元库不可能满足所有用户需求,往往需要构造新的电路拓扑,因而,电路宏模型的自动建立对提高设计效率至关重要。
在确定拓扑结构后就可以进行参数优化和宏模型仿真。优化以输入的设计要求和设计限制作为优化目标,可以是性能指标的优化,也可以是产量的优化。优化方法包括最速下降法、模拟退火法等。最速下降法求解速度快,往往只能得到局部最优解;模拟退火法虽然求解速度很慢,但可以得到全局最优解。随着计算机技术的不断发展,模拟退火法逐步受到重视,并得到了广泛的应用。
宏模型仿真方面既可以使用符号模拟也可以使用数值模拟来进行模拟验证工作,用以验证优化结果。当验证结果不满足设计要求时,需要重新进行拓扑选择和参数优化。在每一层次中都做这样的仿真,尽管增加了设计的工作量,然而,由于这样做避免了将某一层中的设计错误带入到下一层中,因而使自顶向下的设计能够一次完成,不仅提高了设计成功率,而且提高了整个设计系统的效率。
当通过宏模型仿真后就该为进行下一层次的设计做准备工作。首先,将该层的拓扑结构分解成各子模块;然后,根据各子模块分解性能要求和设计限制,即为各子模块确定各自的性能指标与设计限制。这部分的工作也十分重要,它直接关系到下一层的设计能否顺利进行,并得到所需的设计结果。OASYS在这方面作了大量的研究工作,取得了一定的进展,并有一些成功应用。分解完后可转入对各子模块的设计,即进行下一层次的设计,该过程与以上介绍的设计过程是一致的。不断进行该设计过程,直至完成整个系统的设计工作。
在实际的设计过程中,各层次模块的单元不一定严格划分,并且可能采取混合的模块选取构成电路和系统的拓扑结构,因此在库单元文件的构成中把各层次的模块设置于同一层,以方便各层次模块的选取。各层次的模块下有各种不同类型的模块定义,针对某一模块而言,其功能描述是一一对应的,而实现其功能的结构形式可以是多样的。在功能描述和结构描述的目录下包含各自的属性描述。功能描述的属性描述是该模块实现的功能特征,以便在综合过程中搜索调用。每一个结构描述给出了实现功能特征的不同结构形式及各自的性能特征。最后,为了系统的稳定和安全,功能和结构描述的属性都具有当前和备份两个文件。
此外,用户还可以根据需要将自己定义的模块或多级模块加入功能块库中。这些自定义的模块实际上是用户编写的代表特定功能的源程序,一旦将这些模块所代表的行为通过源程序定义下来,ASEDA就会自动产生所需的库文件和数据库。这些自定义模块和多级模块生成之后,可以像单元库中的其它模块一样来使用。
二、 ASEDA设计环境特点
ASEDA提供的工具使设计者能够实现各种电子系统的设计,包括设计输入、仿真、测试和实现。ASEDA主要有以下特点:
· 电子系统设计和仿真具有统一的图形用户界面;
· 用MATLAB进行系统级仿真,有利于早期发现结构设计上的错误,避免设计工作的浪费;
· 具有层次化的电路综合设计框架,这适应了自顶向下的系统设计需要;
· 支持反馈回路的多级嵌套,以适应多级、复杂的系统设计要求;
· 建有层次化、可扩充的单元电路宏模型库,为进行分层次系统设计提供保障,同时增加了设计的灵活性,减少了设计时间;
· 利用高效的综合优化算法,采用灵活的方式,由用户人工干预的方式或者由计算机自动生成各层次的宏模型;
· 具有开放的体系结构,不仅能提供与其它设计工具的接口,还允许设计人员在系统中扩充和自建设计工具,大大方便各种设计人员进行电子系统设计,特别是有利于进行模数混合电子系统的设计;
· 提供多种电路模拟与验证手段,除了使用传统的SPICE等数值模拟工具外,还可使用符号模拟工具对电路进行模拟验证工作,这样可以有利于设计人员在设计精度和设计时间上做合适的折衷