1.2 EDA技术的特征和优势
在现代电子设计领域,EDA技术已经成为电子系统设计的重要手段。无论是设计数字系统还是集成电路芯片,其设计作业的复杂程度都在不断增加,仅仅依靠手工进行设计已经不能满足要求,所有的设计工作都需要在计算机上借助于EDA软件工具进行。在EDA软件的支持下,设计者只需完成对系统功能的描述,就可以由计算机软件进行处理,得到设计结果,修改设计如同修改软件一样方便。利用 EDA 设计工具,设计者可以预知设计结果,减少设计的盲目性,极大地提高了设计的效率。
1.2.1 EDA技术的基本特征
现代 EDA 技术的基本特征是采用高级语言描述,具有系统级仿真和综合能力,具有开放式的设计环境,具有丰富的元器件模型库等。EDA 技术就是依赖功能强大的计算机,在EDA工具软件的平台上,对以硬件描述语言HDL(Hardware Description Language)为系统逻辑描述手段完成的设计文件,自动完成逻辑编译、逻辑化简、逻辑分割、逻辑综合、布局布线和仿真测试,直至实现既定的电子线路系统功能。EDA技术使得设计者的工作仅限于利用软件的方式,即利用硬件描述语言和EDA软件来完成对系统硬件功能的实现。
1.硬件描述语言设计输入
用硬件描述语言进行电路与系统的设计是当前 EDA 技术的一个重要特征,硬件描述语言输入是现代 EDA 系统的主要输入方式。统计资料表明,在硬件描述语言和原理图两种输入方式中,前者约占70%以上,并且这个趋势还在继续增长。与传统的原理图输入设计方法相比,硬件描述语言更适合于规模日益增大的电子系统,它还是进行逻辑综合优化的重要工具。硬件描述语言使得设计者在比较抽象的层次上描述设计的结构和内部特征,其突出优点是:语言的公开可利用性,设计与工艺的无关性,宽范围的描述能力,便于组织大规模系统的设计,便于设计的复用和继承等。
2.“自顶向下”设计方法
近10年来,电子系统的设计方法发生了很大的变化。过去,电子产品设计的基本思路一直是先选用标准通用集成电路芯片,再由这些芯片和其他元器件自下而上地构成电路、子系统和系统。这样设计出的电子系统所用元器件的种类和数量均较多、体积功耗大、可靠性差。随着集成电路技术的不断进步,半导体集成电路也由早期的单元集成、部件电路集成,发展到整机电路集成和系统电路集成。电子系统的设计方法也由过去的集成电路厂家提供通用芯片,整机系统用户采用这些芯片组成电子系统的 Bottom-up(自底向上)设计方法改变为一种新的Top-down(自顶向下)设计方法。在这种新的设计方法中,由整机系统用户对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路ASIC来实现,而且这些专用集成电路是由系统和电路设计师亲自参与设计的,直至完成电路到芯片版图的设计,再交由IC工厂投片加工,或者用可编程ASIC(CPLD和FPGA)现场编程实现。图1.2所示为电子系统的两种不同的设计步骤。
图1.2“自顶向下”与“自底向上”设计
“自顶向下”法是一种概念驱动的设计方法。该方法要求在整个设计过程中尽量运用概念(即抽象)去描述和分析设计对象,而不要过早地考虑实现该设计的具体电路、元器件和工艺,以便抓住主要矛盾,避免纠缠在具体细节上,这样才能控制住设计的复杂性。整个设计在概念上的演化从顶层到底层应当逐步由概括到展开、由粗略到精细。只有当整个设计在概念上得到验证与优化后,才能考虑“采用什么电路、元器件和工艺去实现该设计”这类具体问题。
在进行“自顶向下”的设计时,首先从系统级设计入手,在顶层进行功能方框图的划分和结构设计;在方框图一级进行仿真、纠错,并用硬件描述语言对高层次的系统行为进行描述;在功能一级进行验证,然后用逻辑综合优化工具生成具体的门级逻辑电路的网表,其对应的物理实现级可以是印制电路板或专用集成电路。而“自底向上”的设计方法一般是在系统划分和分解的基础上先进行单元设计,在单元的精心设计后逐步向上进行功能块设计,然后再进行子系统的设计,最后完成系统的总成设计。“自顶向下”的设计方法有利于在早期发现结构设计中的错误,提高设计的一次成功率,因而在现代EDA系统中被广泛采用。
3.逻辑综合与优化
逻辑综合是20世纪90年代电子学领域兴起的一种新的设计方法,是以系统级设计为核心的高层次设计。逻辑综合是将最新的算法与工程界多年积累的设计经验结合起来,自动地将用真值表、状态图或VHDL硬件描述语言等所描述的数字系统转化为满足设计性能指标要求的逻辑电路,并对电路进行速度、面积等方面的优化。
逻辑综合的特点是将高层次的系统行为设计自动翻译成门级逻辑的电路描述,做到了设计与工艺的相互独立。逻辑综合的作用是根据一个系统的逻辑功能与性能的要求,在一个包含众多结构、功能和性能均已知的逻辑元器件的逻辑单元库的支持下,寻找出一个逻辑网络结构的最佳(至少是较佳的)实现方案。
逻辑综合的过程主要包含以下两个方面。
① 逻辑结构的生成与优化:主要是进行逻辑化简与优化,达到尽可能地用较少的元器件和连线形成一个逻辑网络结构(逻辑图),满足系统逻辑功能的要求。
② 逻辑网络的性能优化:利用给定的逻辑单元库,对已生成的逻辑网络进行元器件配置,进而估算实现该逻辑网络的芯片的性能与成本。性能主要指芯片的速度,成本主要指芯片的面积与功耗。速度与面积或速度与功耗是矛盾的。这里有一步,允许使用者对速度与面积或速度与功耗相矛盾的指标进行性能与成本的折中,以确定合适的元器件配置,完成最终的、符合要求的逻辑网络结构。
4.开放性和标准化
开放式的设计环境也称为框架结构(Framework)。框架是一种软件平台结构,它在EDA系统中负责协调设计过程和管理设计数据,实现数据与工具的双向流动,为 EDA 工具提供合适的操作环境。框架结构的核心是可以提供与硬件平台无关的图形用户界面,工具之间的通信、设计数据和设计流程的管理等,以及各种与数据库相关的服务项目。
任何一个 EDA 系统只要建立了一个符合标准的开放式框架结构,就可以接纳其他厂商的EDA工具一起进行设计工作。框架结构的出现,使国际上许多优秀的EDA工具可以合并到一个统一的计算机平台上,成为一个完整的EDA系统,充分发挥每个设计工具的技术优势,实现资源共享。在这种环境下,设计者可以更有效地运用各种工具,提高设计质量和效率。
近年来,随着硬件描述语言等设计数据格式的逐步标准化,不同设计风格和应用的要求导致各具特色的 EDA 工具被集成在同一个工作站上,从而使 EDA 框架标准化。新的 EDA系统不仅能够实现高层次的自动逻辑综合、版图综合和测试码生成,而且可以使各个仿真器对同一个设计进行协同仿真,从而进一步提高了EDA系统的工作效率和设计的正确性。
5.库
EDA 工具必须配有丰富的库(Library),包括元器件图形符号库、元器件模型库、工艺参数库、标准单元库、可复用的电路模块库、IP库等,才能够具有强大的设计能力和较高的设计效率。
在电路设计的每个阶段,EDA系统需要各种不同层次、不同种类的元器件模型库的支持。例如,原理图输入时需要元器件外形库,逻辑仿真时需要逻辑单元的功能模型库,电路仿真时需要模拟单元和器件的模型库,版图生成时需要需要适应不同层次和不同工艺的底层版图库,测试综合时需要各种测试向量库,等等。每一种库又按其层次分为不同层次的单元或元素库,例如,逻辑仿真的库又按照行为级、寄存器级和门级分别设库。而VHDL语言输入所需的库则更为庞大和齐全,几乎包括了上述所有库的内容。各种模型库的规模和功能是衡量EDA工具优劣的一个重要标志。
1.2.2 EDA技术的优势
传统的数字系统设计一般是采用搭“积木块”的手工设计方式,即由元器件搭成电路板,由电路板搭成电子系统。数字系统最初的“积木块”是标准的集成电路,如74/54系列(TTL)、4000/4500系列(CMOS)芯片和一些固定功能的大规模集成电路。在设计数字电路时,一般先按照数字系统的具体功能要求进行功能划分,然后对每个子模块画出逻辑真值表和状态转换真值表,用卡诺图进行手工逻辑化简和状态化简,写出布尔表达式,画出相应的逻辑线路图,再据此选择合适的器件,并按照器件推荐的电路设计电路板,最后进行实测与调试。
手工设计方法有很多缺点:如对于复杂电路的设计,调试十分困难;对设计过程中出现的错误,查找和修改十分不便;设计过程中产生大量文档,不易管理;只有在设计出样机或生产出芯片后才能进行实测;等等。
相比之下,采用EDA技术进行电子系统的设计有着很大的优势。
(1)采用硬件描述语言,便于复杂系统的设计
从电子设计方法学来看,EDA技术的最大优势是能够将所有的设计环节纳入统一的自顶向下的设计方案中。用 HDL 对数字电子系统进行结构描述、功能描述和行为描述,从而可以在电子设计的各个阶段和各个层进行计算机模拟验证,保证了设计过程的正确性,降低了设计成本,缩短了设计周期。此外,某些硬件描述语言(如VHDL)也是文档型的语言,可以极大地简化设计文档的管理。
(2)强大的系统建模和电路仿真功能
EDA 技术中最为瞩目的功能是日益强大的仿真测试技术。EDA 仿真测试技术只需通过计算机就能对所设计的电子系统进行各种不同层次的性能测试和逻辑仿真,在实际系统完成后,还能对系统上的目标器件进行边界扫描测试,极大地提高了大规模电子系统的设计自动化程度。
(3)具有自主的知识产权
无论传统的应用电子系统设计得如何完美,使用了多么先进的功能部件,都掩盖不了一个无情的事实,即该系统对于设计者来说,没有任何的知识产权可言。因为系统中的关键器件往往并非出自设计者之手,这将导致该系统在许多情况下的应用直接受到限制,而且这种情况有时是致命的(如系统中某些关键器件失去供货来源、应用于军事电子装备中的关键器件等)。基于EDA技术的设计则不同,由于用HDL表达的设计在实现目标方面有很大的可选性,它既可以用不同来源的FPGA器件实现,也可以直接以ASIC来实现,设计者拥有完全的自主权,再也不用受制于人。
(4)开发技术的标准化和规范化
传统的电子设计方法至今没有任何标准规范加以约束,设计效率低,系统性能差,开发成本高,市场竞争能力弱。EDA技术的设计语言是标准化的,不会由于设计对象的不同而改变;EDA开发工具是规范化的,它支持任何标准化的设计语言;EDA技术的设计成果是通用性的, IP核具有规范的接口协议;良好的可移植性与可测试性,为系统开发提供了可靠的保证。
(5)全方位地利用计算机的自动设计、仿真和测试技术
EDA不但在整个设计流程上充分利用了计算机的自动设计能力,在各个设计层次上利用计算机完成不同内容的仿真模拟,而且在系统板设计结束后仍可利用计算机对硬件系统进行完整的测试。对于传统的设计方法,如单片机仿真器的使用,仅仅只能在最后完成的系统上进行局部的软件仿真调试,在整个设计的中间过程中则是无能为力的。至于硬件系统测试,由于现在的许多系统主板不但层数多,而且许多器件都是BGA(Ball-Grid Array)封装,所有引脚都在芯片的底面,焊接后普通的仪器仪表无法接触到所需要的信号点,因此无法测试。
(6)对设计者的硬件知识和硬件经验要求低
传统的电子设计对于电子工程师的要求似乎很高:在电子技术理论和设计实际方面必须是行家;不但应该是软件高手,同时还是经验丰富的硬件设计能工巧匠;必须熟悉针对不同单片机或 DSP 器件开发系统的使用方法和性能,还必须知道许多器件的封装形式和电气特性,知道不同的在线测试仪表的使用方法和性能指标;要熟练掌握大量的与设计理论和优化技术毫无关系的技能技巧,不得不事无巨细,事必躬亲。
所有这一切显然不符合现代电子技术的发展需求,首先不符合快速换代的产品的市场要求,不符合需求巨大的人才市场的要求。EDA技术的标准化和HDL设计语言与设计平台对具体硬件的无关性,使设计者能更大程度地将自己的才能和创造力集中在设计项目性能的提高和成本的降低上,而将更具体的硬件实现工作交给专业部门来完成。显然,高技术人才比经验性人才的培养效率要高得多。