EDA技术概述.docx

上传人:b****3 文档编号:27228359 上传时间:2023-06-28 格式:DOCX 页数:39 大小:272.88KB
下载 相关 举报
EDA技术概述.docx_第1页
第1页 / 共39页
EDA技术概述.docx_第2页
第2页 / 共39页
EDA技术概述.docx_第3页
第3页 / 共39页
EDA技术概述.docx_第4页
第4页 / 共39页
EDA技术概述.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

EDA技术概述.docx

《EDA技术概述.docx》由会员分享,可在线阅读,更多相关《EDA技术概述.docx(39页珍藏版)》请在冰豆网上搜索。

EDA技术概述.docx

EDA技术概述

第1章EDA技术概述

本章简要介绍EDA技术、EDA工具、FPGA结构原理及EDA的应用情况和发展趋势,其中重点介绍基于EDA的FPGA开发技术的概况。

考虑到本章中出现的一些基本概念和名词有可能涉及较多的基础知识和更深入的EDA基础理论,故对于本章的学习仅要求读者做一般性的了解,无须深入探讨。

因为待读者学习完本教程,并经历了本教材配置的必要实践后,对许多问题就会自然而然地弄明白了。

不过需要强调的是,本章的重要性并不能因此而被低估。

1.1EDA技术

现代电子设计技术的核心已日趋转向基于计算机的电子设计自动化技术,即EDA(ElectronicDesignAutomation)技术。

EDA技术就是依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言(HardwareDescriptionLanguage,HDL)为系统逻辑描述手段完成的设计文件。

它自动地完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。

EDA技术使得设计者的主要工作仅限于利用软件的方式来完成对系统硬件功能的实现,这是电子设计技术的一个巨大进步。

EDA技术在硬件实现方面融合了大规模集成电路制造技术、IC版图设计、ASIC测试和封装以及FPGA/CPLD(FieldProgrammableGateArray/ComplexProgrammableLogicDevice)编程下载和自动测试等技术;在计算机辅助工程方面融合了计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)、计算机辅助工程(CAE)技术以及多种计算机语言的设计概念;而在现代电子学方面则容纳了更多的内容,如电子线路设计理论、数字信号处理技术、数字系统建模和优化技术等。

因此EDA技术为现代电子理论和设计的表达与实现提供了可能性。

正因为EDA技术丰富的内容及其与电子技术各学科领域的相关性,其发展的历程同大规模集成电路设计技术、计算机辅助工程、可编程逻辑器件,以及电子设计技术和工艺是同步的。

就过去30年的电子技术的发展历程,可大致将EDA技术的发展分为3个阶段。

第一阶段:

20世纪70年代,在集成电路制作方面,MOS工艺已得到广泛的应用。

可编程逻辑技术及其器件已经问世,计算机作为一种运算工具已在科研领域得到广泛应用。

而在后期,CAD的概念已见雏形,这一阶段人们开始利用计算机取代手工劳动,辅助进行集成电路版图编辑、PCB布局布线等工作,这是EDA技术的雏形。

第二阶段:

20世纪80年代,集成电路设计进入了CMOS(互补场效应管)时代。

复杂可编程逻辑器件已进入商业应用,相应的辅助设计软件也已投入使用;在80年代末,出现了FPGA,CAE和CAD技术的应用更为广泛,它们在PCB设计方面的原理图输入、自动布局布线及PCB分析、逻辑设计、逻辑仿真、布尔代数综合和化简等方面担任了重要的角色。

特别是各种硬件描述语言的出现、应用和标准化方面的重大进步,为电子设计自动化解决电子线路建模、标准文档及仿真测试等问题奠定了基础。

第三阶段:

进入20世纪90年代,计算机辅助工程、辅助分析和辅助设计在电子技术领域获得更加广泛的应用。

与此同时,电子技术在通信、计算机及家电产品生产中的市场需求和技术需求,极大地推动了全新的电子设计自动化技术的应用和发展。

特别是集成电路设计工艺步入了超深亚微米阶段,百万门以上的大规模可编程逻辑器件的陆续问世,以及基于计算机技术的面向用户的低成本大规模ASIC设计技术的应用,促进了EDA技术的形成。

更为重要的是,各EDA公司致力于推出兼容各种硬件实现方案和支持标准硬件描述语言的EDA工具软件的出现,都有效地将EDA技术推向成熟和实用。

EDA技术在进入21世纪后,得到了更大的发展,突出表现在以下几个方面。

●在FPGA上实现DSP(数字信号处理)应用成为可能,用纯数字逻辑进行DSP模块的设计,使得高速DSP的实现成为现实,并有力地推动了软件无线电技术的实用化和发展。

基于FPGA的DSP技术,为高速数字信号处理算法提供了实现途径。

●嵌入式处理器软核的成熟,使得SOPC(SystemOnaProgrammableChip)步入大规模应用阶段,在一单片FPGA中实现一个完备的可随意重构的嵌入式系统成为可能。

●在仿真和设计两方面支持标准硬件描述语言的功能强大的EDA软件不断推出。

●EDA使得电子领域各学科的界限更加模糊,更加互为包容:

模拟与数字、软件与硬件、系统与器件、ASIC与FPGA等。

●基于EDA的用于ASIC设计的标准单元已涵盖大规模电子系统及复杂IP核模块。

●软硬IP(IntellectualProperty)核在电子行业的产业领域广泛应用。

●SOC高效低成本设计技术的成熟。

●系统级、行为验证级硬件描述语言的出现(如SystemC),使复杂电子系统的设计和验证趋于简单。

1.2EDA技术应用对象

一般地,利用EDA技术进行电子系统设计的最后目标,是完成专用集成电路(ASIC)或印制电路板(PCB)的设计和实现(如图1-1所示)。

其中,PCB设计指的是电子系统的印制电路板设计,从电路原理图到PCB上元件的布局、布线、阻抗匹配、信号完整性分析及板级仿真,到最后的电路板机械加工文件生成,这些都需要相应的计算机EDA工具软件辅助设计者来完成,这仅是EDA技术应用的一个重要方面,但本书限于篇幅不做展开。

ASIC作为最终的物理平台,集中容纳了用户通过EDA技术将电子应用系统的既定功能和技术指标具体实现的硬件实体。

专用集成电路就是具有专门用途和特定功能的独立集成电路器件,根据这个定义,作为EDA技术最终实现目标的ASIC,可以通过3种途径来完成(如图1-1所示)。

图1-1EDA技术实现目标

1.可编程逻辑器件

FPGA和CPLD是实现这一途径的主流器件,它们的特点是直接面向用户、具有极大的灵活性和通用性、使用方便、硬件测试和实现快捷、开发效率高、成本低、上市时间短、技术维护简单、工作可靠性好等。

FPGA和CPLD的应用是EDA技术有机融合软硬件电子设计技术、SOC和ASIC设计,以及对自动设计与自动实现最典型的诠释。

由于FPGA和CPLD的开发工具、开发流程和使用方法与ASIC有类似之处,因此这类器件通常也被称为可编程专用IC或可编程ASIC。

2.半定制或全定制ASIC

基于EDA技术的半定制或全定制ASIC,根据它们的实现工艺,可统称为掩模(Mask)ASIC,或直接称ASIC。

可编程ASIC与掩模ASIC相比,不同之处在于前者具有面向用户灵活多样的可编程性,即硬件结构的可重构特性。

3.混合ASIC

混合ASIC(不是指数模混合ASIC)主要指既含有面向用户的FPGA可编程功能和逻辑资源,同时也含有可方便调用和配置的硬件标准单元模块,如CPU、RAM、ROM、硬件加法器、乘法器、锁相环等。

1.3常用HDL和VerilogHDL

硬件描述语言(HDL)是EDA技术的重要组成部分,目前常用的HDL语言主要有VHDL、VerilogHDL、SystemVerilog和SystemC。

其中VerilogHDL和VHDL在现在的EDA设计中使用最多,几乎得到所有的主流EDA工具的支持。

而SystemVerilog和SystemC这两种HDL语言还处于不断完善过程中,主要加强了系统验证方面的功能。

自从出现VHDL和VerilogHDL语言以来,对于选择何种语言进行系统设计最好的争论就从未停止过。

多数偏好VerilogHDL的用户能拿出的最有“说服力”的论据是VerilogHDL编程与C最接近。

这似乎意味着对C熟练的人,更容易学好和掌握VerilogHDL。

其实恰恰相反。

事实证明,如果缺少硬件概念,越是熟悉C/C++等软件描述语言的,越不容易学好、用好硬件描述语言。

这是因为C和HDL本质上是截然不同的计算机语言,这个结论并不会因为C的某些语句类同于VerilogHDL就有会所改变。

因为HDL语言的编程风格、编程思路、编程目标、编程优劣标准、程序验证方法、对程序员知识结构的要求等都有巨大差别。

如果以这些标准来判别计算机语言的相似度,那么VerilogHDL与VHDL的相似度至少达90%,而与C或C++的相似度则远低于5%。

由此可见,绝对不能把C等语言的编程经验和编程风格带到HDL的程序设计中,而是应该紧密结合硬件电路基础知识从一个全新的角度去了解、学习和掌握HDL,摆脱C等软件描述语言编程习惯和风格的不良影响!

VerilogHDL是电子设计主流硬件的描述语言之一,本书将重点介绍它的编程方法和使用技术。

VerilogHDL(简称Verilog)最初由GatewayDesignAutomation公司(简称GDA)的PhilMoorby在1983年创建。

起初,Verilog仅作为GDA公司的Verilog-XL仿真器的内部语言,用于数字逻辑的建模、仿真和验证。

Verilog-XL推出后获得了成功和认可,从而促进了VerilogHDL的发展。

1989年GDA公司被Cadence公司收购,Verilog语言成为了Cadence公司的私有财产。

1990年Cadence公司成立了OVI(OpenVerilogInternational)组织,公开了Verilog语言,并由OVI负责促进Verilog语言的发展。

在OVI的努力下,1995年,IEEE制定了VerilogHDL的第一个国际标准——IEEEStd1364—1995,即Verilog1.0。

2001年,IEEE发布了VerilogHDL的第二个标准版本(Verilog2.0),即IEEEStd1364—2001,简称为Verilog-2001标准。

由于Cadence公司在集成电路设计领域的影响力和Verilog的易用性,Verilog成为基层电路建模与设计中最流行的硬件描述语言。

Verilog的部分语法是参照C语言的语法设立的(但与C有本质区别),因此,具有很多C语言的优点,从形式表述上来看,代码简明扼要,使用灵活,且语法规定不是很严谨,很容易上手。

Verilog具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性。

在语言易读性、层次化和结构化设计方面表现了强大的生命力和应用潜力。

因此,Verilog支持各种模式的设计方法:

自顶向下与自底向上或混合方法。

在面对当今许多电子产品生命周期缩短,需要多次重新设计以融入最新技术、改变工艺等方面,Verilog具有良好的适应性。

用Verilog进行电子系统设计的一个很大的优点是当设计逻辑功能时,设计者可以专心致力于其功能的实现,而不需要对不影响功能的、与工艺有关的因素花费过多的时间和精力;当需要仿真验证时,可以很方便地从电路物理级、晶体管级、寄存器传输级乃至行为级等多个层次来做验证。

SystemVerilog是一种新的硬件描述语言,它基于Verilog-2001,是由Accellera开发的(Accellera的前身就是OVI)。

SystemVerilog在Verilog-2001的基础上做了扩展,将Verilog语言推向了系统级空间和验证级空间,极大地改进了高密度、基于IP的、总线敏感的芯片设计效率。

SystemVerilog主要定位于集成电路的实现和验证流程,并为系统级设计流程提供了强大的链接能力。

SystemVerilog改进了Verilog代码的生产率、可读性以及可重用性。

SystemVerilog提供了更简约的硬件描述,还为测试平台开发、随机约束的测试平台开发、覆盖驱动的验证以及基于断言的验证提供了广泛的支持。

2005年,IEEE批准了SystemVerilog的语法标准,即IEEEP1800标准。

SystemC是C++语言的硬件描述扩展,主要用于ESL(电子系统级)建模与验证。

由OSCI(OpenSystemCInitiative)组织进行发展。

SystemC并非是好的RTL语言(即可综合的、硬件可实现描述性质的语言),而是一种系统级建模语言。

将SystemC和SystemVerilog组合起来,能够提供一套从ESL至RTL验证的完整解决方案。

SystemC源代码可以使用任何标准C++编译环境进行编译,生成可执行文件;运行可执行文件,可生成VCD格式的波形文件。

SystemC的综合还不完善,但已经有工具支持。

Verilog语言的特点:

(1)按照设计目的,Verilog程序可以划分为面向仿真和面向综合两类,而可综合的Verilog程序能分别面向FPGA和ASIC开发两个领域。

(2)能在多个层次上对所设计的系统加以描述,从开关级、门级、寄存器传输级(RTL)至行为级都可以加以描述。

(3)灵活多样的电路描述风格。

1.4EDA技术的优势

在传统的数字电子系统或IC设计中,手工设计占了很大的比例。

设计流程中,一般先按电子系统的具体功能要求进行功能划分,然后对每个子模块画出真值表,用卡诺图进行手工逻辑简化,写出布尔表达式,画出相应的逻辑线路图,再据此选择元器件,设计电路板,最后进行实测与调试。

传统数字技术的手工设计方法的缺点如下。

●复杂电路的设计、调试十分困难。

●由于无法进行硬件系统仿真,如果某一过程存在错误,查找和修改十分不便。

●设计过程中产生大量文档,不易管理。

●对于IC设计而言,设计实现过程与具体生产工艺直接相关,因此可移植性差。

●只有在设计出样机或生产出芯片后才能进行实测。

●所能设计完成的系统规模通常很小,抗干扰能力差,工作速度也很低。

相比之下,EDA技术有很大的不同。

(1)用HDL对数字系统进行抽象的行为与功能描述到具体的内部线路结构描述,从而可以在电子设计的各个阶段、各个层次进行计算机模拟验证,保证设计过程的正确性,可以大大降低设计成本,缩短设计周期。

(2)EDA工具之所以能够完成各种自动设计过程,关键是有各类库的支持,如逻辑仿真时的模拟库、逻辑综合时的综合库、版图综合时的版图库、测试综合时的测试库等。

这些库都是EDA公司与半导体生产厂商紧密合作、共同开发的。

(3)某些HDL本身也是文档型的语言(如Verilog),极大地简化了设计文档的管理。

(4)EDA技术中最为瞩目的功能,即最具现代电子设计技术特征的功能是日益强大的逻辑设计仿真测试技术。

EDA仿真测试技术只需通过计算机就能对所设计的电子系统从各种不同层次的系统性能特点完成一系列准确的测试与仿真操作。

在完成实际系统的安装后,还能对系统上的目标器件进行所谓“边界扫描测试”,及嵌入式逻辑分析仪的应用。

这一切都极大地提高了大规模系统电子设计的自动化程度。

(5)无论传统的应用电子系统设计得如何完美、使用了多么先进的功能器件,都掩盖不了一个无情的事实,即设计者对该系统没有任何自主知识产权,因为系统中的关键性的器件往往并非出自设计者之手,这将导致该系统在许多情况下的应用直接受到限制。

基于EDA技术的设计则不同,由于用HDL表达的成功的专用功能设计在实现目标方面有很大的可选性,它既可以用不同来源的通用FPGA/CPLD实现,也可以直接以ASIC来实现,设计者拥有完全的自主权,再无受制于人之虞。

(6)传统的电子设计方法至今没有任何标准规范加以约束,因此设计效率低、系统性能差、规模小、开发成本高、市场竞争能力小。

相比之下,EDA技术的设计语言是标准化的,不会由于设计对象的不同而改变;它的开发工具是规范化的,EDA软件平台支持任何标准化的设计语言;它的设计成果是通用性的,IP核具有规范的接口协议;它具有良好的可移植与可测试性,为系统开发提供了可靠的保证。

(7)从电子设计方法学来看,EDA技术最大的优势就是能将所有设计环节纳入统一的自顶向下的设计方案中。

(8)EDA不但在整个设计流程上充分利用计算机的自动设计能力、在各个设计层次上利用计算机完成不同内容的仿真模拟,而且在系统板设计结束后仍可利用计算机对硬件系统进行完整的测试。

1.5面向FPGA的EDA开发流程

完整地了解利用EDA技术进行设计开发的流程对于正确地选择和使用EDA软件、优化设计项目、提高设计效率十分有益。

一个完整的、典型的EDA设计流程既是自顶向下设计方法的具体实施途径,也是EDA工具软件本身的组成结构。

1.5.1设计输入

图1-2是基于EDA软件的FPGA开发流程框图。

以下将分别介绍各设计模块的功能特点。

对于目前流行的用于FPGA开发的EDA软件,图1-2的设计流程具有一般性。

将电路系统以一定的表达方式输入计算机,是在EDA软件平台上对FPGA/CPLD开发的最初步骤。

通常,使用EDA工具的设计输入可分为两种类型。

图1-2基于EDA的FPGA开发流程

1.图形输入

图形输入通常包括电路原理图输入和状态图输入。

状态图输入方法就是根据电路的控制条件和不同的转换方式,用绘图的方法在EDA软件的状态图编辑器上绘出状态图,然后由EDA编译器和综合器将此状态变化流程图编译综合成电路网表。

电路原理图输入方法是一种类似于传统电子设计方法的原理图编辑输入方式,即在EDA软件的图形编辑界面上绘制能完成特定功能的电路原理图。

原理图由逻辑器件(符号)和连接线构成,图中的逻辑器件可以是EDA软件库中预制的功能模块,如与门、非门、或门、触发器以及各种含74系列器件功能的宏功能块,甚至还有一些类似于IP的宏功能块。

2.硬件描述语言代码文本输入

这种方式与传统的计算机软件语言编辑输入基本一致。

就是将使用了某种硬件描述语言的电路设计代码,如Verilog或VHDL的源程序,进行编辑输入。

1.5.2综合

综合(Synthesis),就其字面含义应该是:

把抽象的实体结合成单个或统一的实体。

因此,综合就是把某些东西结合到一起,把设计抽象层次中的一种表述转化成另一种表述的过程。

在电子设计领域,综合的概念可以表述为:

将用行为和功能层次表达的电子系统转换为低层次的、便于具体实现的模块组合装配的过程。

事实上,自上而下的设计过程中的每一步都可称为一个综合环节。

现代电子设计过程通常从高层次的行为描述开始,以底层的结构甚至更低层次描述结束,每个综合步骤都是上一层次的转换。

(1)从自然语言转换到Verilog语言算法表述,即自然语言综合。

(2)从算法表述转换到寄存器传输级(RegisterTransportLevel,RTL)表述,即从行为域到结构域的综合,也称行为综合。

(3)从RTL级表述转换到逻辑门(包括触发器)的表述,即逻辑综合。

(4)从逻辑门表述转换到版图级表述(如ASIC设计),或转换到FPGA的配置网表文件,可称为版图综合或结构综合。

有了版图信息就可以把芯片生产出来了。

有了对应的配置文件,就可以使对应的FPGA变成具有专门功能的电路器件了。

显然,综合器就是能够将一种设计表述形式自动向另一种设计表述形式转换的计算机程序,或协助进行手工转换的程序。

它可以将高层次的表述转化为低层次的表述,可以将行为域转化为结构域,可以将高一级抽象的电路描述(如算法级)转化为低一级的电路描述(如门级),并可以用某种特定的“技术”(如CMOS)实现。

对设计者而言有两种情况,一是在高抽象层次进行系统设计并利用综合工具将设计转化为低层次的表述;二是直接在低抽象层次上设计系统。

这类似于一个程序员用高级语言编程并用编译器将程序编译成机器代码和直接用机器代码进行编程的情况。

在前一种情况下,设计者可以将精力主要集中在系统级问题上,而不必关心低级结构设计的细节问题。

因此将减少设计和编程所花费的时间和精力,并且减少错误的发生。

另一方面,尽管从表面上看,Verilog等硬件描述语言综合器和软件程序编译器都是一种“翻译器”,它们都能将高层次的设计表达转化为低层次的设计表达,但它们却具有许多本质的区别。

如图1-3所示,编译器将软件程序翻译成基于某种特定CPU的机器代码,这种代码仅限于这种CPU而不能移植,它并不代表硬件结构,更不能改变CPU的结构,只能被动地为其特定的硬件电路所利用。

如果脱离了已有的硬件环境(CPU),机器代码将失去意义。

此外,编译器作为一种软件的运行,除了某种单一目标器件,即CPU的硬件结构外,不需要任何与硬件相关的器件库和工艺库参与编译。

因而,编译器的工作单纯得多,编译过程基本属于一种一一对应式的、机械转换式的“翻译”行为。

图1-3编译器和综合的功能比较

(b)

(a)

综合器则不同,同样是类似的软件代码(如Verilog程序代码),综合器转化的目标是底层的电路结构网表文件,这种满足原设计程序功能描述的电路结构不依赖于任何特定硬件环境,因此可以独立地存在,并能轻易地被移植到任何通用硬件环境中,如ASIC、FPGA等。

换言之,电路网表代表了特定的且可独立存在和具有实际功能的硬件结构,因此具备了随时改变硬件结构的依据,综合的结果具有相对独立性。

另一方面,综合器在将硬件描述语言表达的电路功能转化成具体的电路结构网表过程中,具有明显的能动性(例如状态机的优化),它不是机械的一一对应式的“翻译”,而是根据设计库、工艺库以及预先设置的各类约束条件,“自主”地选择最优的方式完成电路结构的设计。

这就是说,对于相同的Verilog表述,综合器可以用不同的电路结构实现相同的功能。

图1-4HDL综合器运行流程

如图1-4所示,与编译器相比,综合器具有更复杂的工作环境。

综合器在接收Verilog程序并准备对其综合前,必须获得与最终实现设计电路硬件特征相关的工艺库的信息,以及获得优化综合的诸多约束条件。

一般地,约束条件有多种,如设计规则、时间约束(包括速度约束)、面积约束等。

通常,时间约束的优先级高于面积约束。

设计优化要求当综合器把Verilog源码翻译成通用原理图时,将识别状态机、加法器、乘法器、多路选择器和寄存器等。

这些运算功能根据Verilog源码中的符号(如加、减、乘、除),都可用多种方法实现。

如加法可实现的方案有多种,有的面积小,速度慢;有的速度快,面积大。

Verilog行为描述强调的是电路的行为和功能,而不是电路如何实现。

而选择电路的实现方案正是综合器的任务。

综合器选择一种能充分满足各项约束条件且成本最低的实现方案。

现在的许多综合器还允许设计者指定在做映射优化时综合器应付出多大“努力”。

“努力”一般可分为低、中、高3档。

需要注意的是,Verilog(也包括VHDL、SystemVerilog)方面的IEEE标准,主要指的是文档的表述、行为建模及其仿真,至于在电子线路的设计方面,Verilog并没有得到全面的标准化支持。

这就是说,HDL综合器并不能支持IEEE标准的Verilog的全集(全部语句程序),而只能支持其子集,即部分语句,并且不同的HDL综合器所支持的Verilog子集也不完全相同。

这样一来,对于相同的Verilog源代码,不同的HDL综合器可能综合出在结构和功能上并不完全相同的电路系统。

对此,设计者应给予充分注意:

对于不同的综合结果,不应对综合器的特性贸然做出评价,而应在设计过程中,尽可能全面了解所使用的综合工具的特性。

当然,随着EDA技术的不断进步,可综合的Verilog正逐渐走向标准化。

目前已经推出的IEEEStd1364[1].1—2002标准正为VerilogHDL的RTL级(即可综合级)综合定义一系列的建模准则。

1.5.3适配(布线布局)

适配器(Fitter)也称结构综合器,它的功能是将由综合器产生的网表文件配置于指定的目标器件中,使之产生最终的下载文件,如JEDEC、JAM、POF、SOF等格式的文件。

适配所选定的目标器件必须属于原综合器指定的目标器件系列。

通常,EDA软件中的综合器可由专业的第三方EDA公司提供,而适配器

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1