EDA技术与应用(第3版)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-08-26 09:08:21

点击下载

作者:江国强

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

EDA技术与应用(第3版)

EDA技术与应用(第3版)试读:

新编电气与电子信息类本科规划教材

EDA技术与应用(第3版)

CIP号:第037544号

ISBN:978-7-121-10475-6

中图分类:TN702

关键词:电子电路-电路设计:计算机辅助设计-高等学校-教材

北京,2010/04,电子工业出版社

版次:3

印次:1

价格:32.00

印数:4000册

印张:20

字数:512

开本:787×1092 1/16

语种:中文摘要

本书共7章,包括EDA技术概述、EDA工具软件的使用方法、VHDL、Verilog HDL、常用EDA工具软件、可编程逻辑器件和EDA技术的应用。另外,附录部分介绍伟福EDA6000和友晶DE2等EDA实验开发系统的使用方法,供具有不同实验设备的读者学习或参考。

EDA是当今世界上最先进的电子电路设计技术,其重要作用逐步被我国的产业界、科技界和教育界认可。本书可作为高等院校工科电子类、通信信息类、自动化类专业“EDA技术”课程的教材,也可供相关专业的技术人员参考。江国强 编著凌毅 责任编辑张莉 其他贡献者徐海燕 封面设计第3版前言

在20世纪90年代,国际上电子和计算机技术先进的国家,一直在积极探索新的电子电路设计方法,在设计方法、工具等方面进行了彻底的变革,并取得了巨大成功。在电子设计技术领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到很好的普及,这些器件为数字系统的设计带来极大的灵活性。由于该器件可以通过软件编程而对其硬件结构和工作方式进行重构,使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。

EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线、仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可靠性,减轻了设计者的劳动强度。

本书是在《EDA技术与应用》(第2版)基础上编写的,根据EDA技术的发展,将原书的部分内容进行了更换、补充、修改或删除。主要变化包括:

在第2章介绍EDA工具软件的使用方法时,用最新的EDA软件工具Altera公司的Quartus II(9.0版本)代替原书中的Quartus II(6.0版本)。考虑到Altera公司的MAX+PLUS II已逐步被Quartus II软件替代,因此将这种EDA工具的使用方法从本书中删除。另外,在本书第5章中,增加了Altera公司的Nios II软件的使用方法。

本书共7章,第1章EDA技术概述,介绍EDA技术的发展、EDA设计流程及EDA技术涉及的领域。

第2章介绍EDA工具软件的使用方法。EDA的核心是利用计算机完成电路设计的全程自动化,因此基于计算机环境下的EDA工具软件是不可缺少的。利用EDA技术进行电路设计的大部分工作是在EDA开发设计平台上进行的,离开了EDA工具,电路设计的自动化是不可能实现的。因此,掌握EDA工具软件的使用方法,应该是EDA技术学习的第一步。

第3章和第4章分别介绍VHDL和Verilog HDL两种常用硬件描述语言的基础知识。VHDL和Verilog HDL作为IEEE标准的硬件描述语言,经过20多年的发展、应用和完善,它们以其强大的系统描述能力、规范的程序设计结构、灵活的语言表达风格和多层次的仿真测试手段,在电子设计领域受到了普遍的认同和广泛的接受,成为现代EDA领域的首选硬件描述语言。专家认为,在21世纪,VHDL与Verilog HDL语言将承担起几乎全部的数字系统设计任务。

第5章介绍几种目前世界上最流行和实用的EDA工具软件,包括ModelSim、MATLAB和Nios II,以适应不同读者的需要。这些软件主要是基于PC平台的,面向PLD、SOPC和ASIC设计,比较适合学校教学、项目开发和相关的科研。

第6章介绍FPLA、PLA、GAL、EPLD和FPGA等各种类型可编程逻辑器件的电路结构、工作原理、使用方法和编程方法。

第7章介绍EDA技术在组合逻辑、时序逻辑电路设计及基于EDA技术的数字系统设计。为了方便读者能较系统和较完整地学习EDA技术,本书从教学的目的出发,尽量将有关EDA技术的内容编入书中,并力求内容精练,语言通俗易懂。读者可以根据实际需要,节选学习书中的部分内容,尽快掌握EDA基本技术,然后通过相关EDA技术书籍的学习,达到精通EDA技术的目的。

本书的教学可安排32学时,其中第1章占2学时,第2章占4学时,第3章占8学时,第4章占8学时,第5章作为选学内容(需6~8学时),第6章占2学时,第7章占8学时。另外还需要安排4~8学时的实验,第1个实验安排EDA工具软件的使用方法,其余的实验可安排HDL的编程实验。

本书提供配套的电子课件,可登录电子工业出版社的华信教育资源网:www.hxedu.com.cn,注册后免费下载。

本书由桂林电子科技大学信息科技学院的江国强编著,对于书中的错误和不足之处,恳请读者指正。

编者

2010年1月第1章 EDA技术概述

本章概要:本章介绍EDA技术的发展、EDA设计流程及EDA技术涉及的领域。

知识要点:(1)EDA设计流程;(2)“自顶向下”的设计流程;(3)EDA工具各模块的主要功能。

教学安排:本章教学安排2学时,重点让读者熟悉EDA设计“自顶向下”的流程,了解EDA工具各模块的主要功能。1.1 EDA技术及发展

20世纪末,数字电子技术的飞速发展,有力地推动了社会生产力的发展和社会信息化的提高。在其推动下,数字电子技术的应用已经渗透到人类生活的各个方面。从计算机到手机,从数字电话到数字电视,从家用电器到军用设备,从工业自动化到航天技术,都尽可能采用了数字电子技术。

微电子技术,即大规模集成电路加工技术的进步是现代数字电子技术发展的基础。目前,在硅片的单位面积上集成的晶体管数量越来越多,1978年推出的8086微处理器芯片集成的晶体管数是4万只,到2000年推出的Pentium 4 微处理器芯片的集成度上升到4200万只晶体管,2005年生产可编程逻辑器件(PLD)的集成度达到5亿只晶体管,包含的逻辑元件(Logic Elements,LEs)有18万个,而2009年生产的PLD中的LEs达到84万个,集成度达到25亿只晶体管。原来需要成千上万只电子元器件组成的计算机主板或彩色电视机电路,现在仅用一片或几片超大规模集成电路就可以代替,现代集成电路已经能够实现单片电子系统SOC(System On a Chip)的功能。

现代电子设计技术的核心是EDA(Electronic Design Automation)技术。EDA技术就是依靠功能强大的电子计算机,在EDA工具软件平台上,对以硬件描述语言HDL(Hardware Description Language)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、优化、仿真,直至下载到可编程逻辑器件CPLD/FPGA或专用集成电路ASIC(Application Specific Integrated Circuit)芯片中,实现既定的电子电路设计功能。EDA技术使得电子电路设计者的工作仅限于利用硬件描述语言和EDA软件平台来完成对系统硬件功能的实现,极大地提高了设计效率,缩短了设计周期,节省了设计成本。

EDA是在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。一般把EDA技术的发展分为CAD、CAE和EDA 这3个阶段。

CAD(Computer Aided Design)是EDA技术发展的早期阶段,在这个阶段,人们开始利用计算机取代手工劳动。但当时的计算机硬件功能有限,软件功能较弱,人们主要借助计算机对所设计的电路进行一些模拟和预测,辅助进行集成电路版图编辑、印制电路板(Printed Circuit Board,PCB)布局布线等简单的版图绘制工作。

CAE(Computer Aided Engineering)是在CAD的工具逐步完善的基础上发展起来的,尤其是人们在设计方法学、设计工具集成化方面取得了长足的进步,可以利用计算机作为单点设计工具,并建立各种设计单元库,开始用计算机将许多单点工具集成在一起使用,大大提高了工作效率。

20世纪90年代以来,微电子工艺有了惊人的发展,2006年工艺水平已经达到了60 nm,目前正向45nm迈进。在一个芯片上已经可以集成上百万只乃至数亿只晶体管,芯片速度达到了Gb/s量级。大容量的可编程逻辑器件陆续面世,对电子设计的工具提出了更高的要求,提供了广阔的发展空间,促进了EDA技术的形成。特别重要的是,世界各EDA公司致力推出兼容各种硬件实现方案和支持标准硬件描述语言的EDA工具软件,有效地将EDA技术推向成熟。

今天,EDA技术已经成为电子设计的重要工具,无论是设计芯片还是设计系统,如果没有EDA工具的支持,都将是难以完成的。EDA工具已经成为现代电路设计师的重要武器,正在发挥着越来越重要的作用。1.2 EDA设计流程

利用EDA技术进行电路设计的大部分工作是在EDA软件工作平台上进行的,EDA设计流程如图1.1所示。EDA设计流程包括设计准备、设计输入、设计处理和器件编程4个步骤,以及相应的功能仿真、时序仿真和器件测试3个设计验证过程。图1.1 EDA设计流程1.2.1 设计准备

设计准备是设计者在进行设计之前,依据任务要求,确定系统所要完成的功能及复杂程度,器件资源的利用、成本等所要做的准备工作,如进行方案论证、系统设计和器件选择等。1.2.2 设计输入

设计输入是将设计的电路或系统按照EDA开发软件要求的某种形式表示出来,并送入计算机的过程。设计输入有多种方式,包括采用硬件描述语言(如VHDL和Verilog HDL)进行设计的文本输入方式、图形输入方式和波形输入方式,或者采用文本、图形两者混合的设计输入方式。也可以采用自顶向下(Top-Down)的层次结构设计方法,将多个输入文件合并成一个设计文件等。

1.图形输入方式

图形输入也称为原理图输入,这是一种最直接的设计输入方式。它使用软件系统提供的元器件库及各种符号和连线画出设计电路的原理图,形成图形输入文件。这种方式大多用在对系统及各部分电路很熟悉的情况,或在系统对时间特性要求较高的场合。优点是容易实现仿真,便于信号的观察和电路的调整。

2.文本输入方式

文本输入是采用硬件描述语言进行电路设计的方式。硬件描述语言有普通硬件描述语言 和行为描述语言,它们用文本方式描述设计和输入。普通硬件描述语言有AHDL、CUPL等,它们支持逻辑方程、真值表、状态机等逻辑表达方式。

行为描述语言是目前常用的高层硬件描述语言,有VHDL、Verilog HDL等,它们具有很强的逻辑描述和仿真功能,可实现与工艺无关的编程与设计,可以使设计者在系统设计、逻辑验证阶段就确立方案的可行性,而且输入效率高,在不同的设计输入库之间转换也非常方便。运用VHDL或Verilog HDL硬件描述语言进行设计已是当前的趋势。

3.波形输入方式

波形输入主要用于建立和编辑波形设计文件及输入仿真向量和功能测试向量。波形设计 输入适合用于时序逻辑和有重复性的逻辑函数,系统软件可以根据用户定义的输入/输出波形自动生成逻辑关系。

波形编辑功能还允许设计者对波形进行复制、剪切、粘贴、重复与伸展,从而可以用内部节点、触发器和状态机建立设计文件,并将波形进行组合,显示各种进制的状态值。还可以通过将一组波形重叠到另一组波形上,对两组仿真结果进行比较。1.2.3 设计处理

设计处理是EDA设计中的核心环节。在设计处理阶段,编译软件对设计输入文件进行逻辑化简、综合和优化,并适当地用一片或多片器件自动地进行适配,最后产生编程用的编程文件。设计处理主要包括设计编译和检查、设计优化和综合、适配和分割、布局和布线、生成编程数据文件等过程。

1.设计编译和检查

设计输入完成之后,立即进行编译。在编译过程中,首先进行语法检验,如检查原理图的信号线有无漏接、信号有无双重来源、文本输入文件中关键词有无错误等各种语法错误,并及时标出错误的类型及位置,供设计者修改。然后进行设计规则检验,检查总的设计有无超出器件资源或规定的限制并将编译报告列出,指明违反规则和潜在不可靠电路的情况以供设计者纠正。

2.设计优化和综合

设计优化主要包括面积优化和速度优化。面积优化的结果使得设计所占用的逻辑资源(门数或逻辑元件数)最少;时间优化的结果使得输入信号经历最短的路径到达输出,即传输延迟时间最短。综合的目的是将多个模块化设计文件合并为一个网表文件,并使层次设计平面化(即展平)。

3.适配和分割

在适配和分割过程,确定优化以后的逻辑能否与下载目标器件CPLD或FPGA中的宏单元和I/O单元适配,然后将设计分割为多个便于适配的逻辑小块形式映射到器件相应的宏单元中。如果整个设计不能装入一片器件时,可以将整个设计自动分割成多块并装入同一系列的多片器件中去。

分割工作可以全部自动实现,也可以部分由用户控制,还可以全部由用户控制。分割时应使所需器件数目和用于器件之间通信的引脚数目尽可能少。

4.布局和布线

布局和布线工作是在设计检验通过以后由软件自动完成的,它能以最优的方式对逻辑元 件布局,并准确地实现元件间的布线互连。布局和布线完成后,软件会自动生成布线报告,提供有关设计中各部分资源的使用情况等信息。

5.生成编程数据文件

设计处理的最后一步是产生可供器件编程使用的数据文件。对CPLD来说,是产生熔丝图文件,即JEDEC文件(电子器件工程联合会制定的标准格式,简称JED文件);对于FPGA来说,是生成位流数据文件(Bit-stream Generation,简称BG文件)。1.2.4 设计校验

设计校验过程包括功能仿真和时序仿真,这两项工作是在设计处理过程中同时进行的。功能仿真是在设计输入完成之后,选择具体器件进行编译之前进行的逻辑功能验证,因此又称为前仿真。此时的仿真没有延时信息或者只有由系统添加的微小标准延时,这对于初步的功能检测非常方便。仿真前,要先利用波形编辑器或硬件描述语言等建立波形文件或测试向量(即将所关心的输入信号组合成序列),仿真结果将会生成报告文件和输出信号波形,从中便可以观察到各个节点的信号变化。若发现错误,则返回设计输入中修改逻辑设计。

时序仿真是在选择了具体器件并完成布局、布线之后进行的时序关系仿真,因此又称为后仿真或延时仿真。由于不同器件的内部延时不一样,不同的布局、布线方案也会给延时造成不同的影响,因此在设计处理以后,对系统和各模块进行时序仿真,分析其时序关系,估计设计的性能及检查和消除竞争冒险等,是非常有必要的。1.2.5 器件编程

器件编程是指将设计处理中产生的编程数据文件通过软件放到具体的可编程逻辑器件中去。对CPLD器件来说,是将JED文件下载(Down Load)到CPLD器件中去;对FPGA来说,是将位流数据BG文件配置到FPGA中去。

器件编程需要满足一定的条件,如编程电压、编程时序和编程算法等。普通的CPLD器件和一次性编程的FPGA需要专用的编程器来完成器件的编程工作。基于SRAM的FPGA可以由EPROM或其他存储体进行配置。在系统可编程器件(ISP-PLD)则不需要专门的编程器,只要一根与计算机互连的下载编程电缆就可以了。1.2.6 器件测试和设计验证

在完成器件编程之后,可以用编译时产生的文件对器件进行检验、加密,或采用边界扫描测试技术进行功能测试,测试成功后设计工作才算告一段落。

设计验证可以在EDA硬件开发平台上进行。EDA硬件开发平台的核心部件是一片可编 程逻辑器件、FPGA或CPLD,再附加一些输入/输出设备,如按键、数码显示器、指示灯、喇叭等,还提供时序电路需要的脉冲源。将设计电路编程下载到FPGA或CPLD中后,根据EDA硬件开发平台的操作模式要求,进行相应的输入操作,然后检查输出结果,验证设计电路。1.3 硬件描述语言

硬件描述语言HDL是EDA技术中的重要组成部分,常用的硬件描述语言有AHDL、VHDL和Verilog HDL,而VHDL和Verilog HDL是当前最流行并已成为IEEE标准的硬件描述语言。1.3.1 VHDL

VHDL是超高速集成电路硬件描述语言(Very High Speed Integrated Circuit Hardware Description Language)的缩写,在美国国防部的支持下于1985年正式推出,是目前标准化程度最高的硬件描述语言。IEEE(The Institute of Electrical and Electronics Engineers)于1987年将VHDL采纳为IEEE 1076标准(VHDL 1987版本),并于1993年升级为VHDL 1993版本。VHDL经过20多年的发展、应用和完善,以其强大的系统描述能力、规范的程序设计结构、灵活的语言表达风格和多层次的仿真测试手段,在电子设计领域受到了普遍的认同和广泛的接受,成为现代EDA领域的首选硬件描述语言。目前,流行的EDA工具软件全部支持VHDL,它在EDA领域的学术交流、电子设计的存档、专用集成电路(ASIC)设计等方面,担当着不可缺少的角色。专家认为,在21世纪,VHDL与Verilog VHD语言将承担起几乎全部的数字系统设计任务。显然,VHDL是现代电子设计师必须掌握的硬件设计计算机语言。

概括起来,VHDL有以下几个特点。

① VHDL具有强大的功能,覆盖面广,描述能力强。VHDL支持门级电路的描述,也支持以寄存器、存储器、总线及运算单元等构成的寄存器传输级电路的描述,还支持以行为算法和结构的混合描述为对象的系统级电路的描述。

② VHDL有良好的可读性。它可以被计算机接受,也容易被读者理解。用VHDL书写的源文件,既是程序又是文档;既可作为工程技术人员之间交换信息的文件,又可作为合同签约者之间的文件。

③ VHDL具有良好的可移植性。作为一种已被IEEE承认的工业标准,VHDL事实上已成为通用的硬件描述语言,可以在各种不同的设计环境和系统平台中使用。

④ 使用VHDL可以延长设计的生命周期。用VHDL描述的硬件电路与工艺无关,不会因工艺变化而使描述过时。与工艺有关的参数可以通过VHDL提供的属性加以描述,工艺改变时,只需要修改相应程序中的属性参数即可。

⑤ VHDL支持对大规模设计的分解和已有设计的再利用。VHDL可以描述复杂的电路系统,支持对大规模设计的分解,由多人、多项目组来共同承担和完成。标准化的规则和风格,为设计的再利用提供了有力的支持。

⑥ VHDL有利于保护知识产权。用VHDL设计的专用集成电路(ASIC),在设计文件下载到集成电路时可以采用一定的保密措施,使其不易被破译和窃取。1.3.2 Verilog HDL

Verilog HDL也是目前应用最为广泛的硬件描述语言,并被IEEE采纳为IEEE 1364-1995标准(Verilog-1995版本),2001年升级为Verilog-2001版本,2005年升级为System Verilog-2005版本。Verilog HDL可以用来进行各种层次的逻辑设计,也可以进行数字系统的逻辑综合、仿真验证和时序分析。Verilog HDL适合算法级(Algorithm)、寄存器传输级(RTL)、逻辑级(Logic)、门级(Gate)和版图级(Layout)等各个层次的电路设计和描述。

采用Verilog HDL进行电路设计的最大优点是设计与工艺无关性,这使得设计者在进行电路设计时可以不必过多考虑工艺实现时的具体细节,只需要根据系统设计的要求施加不同的约束 条件,即可设计出实际电路。实际上,利用计算机的强大功能,在EDA工具的支持下,把逻辑验证与具体工艺库相匹配,将布线及延迟计算分成不同的阶段来实现,可减少设计者的繁重劳动。

Verilog HDL和VHDL都是用于电路设计的硬件描述语言,并且都已成为IEEE标准。Verilog HDL也具有与VHDL类似的特点,稍有不同的是,Verilog HDL早在1983年就已经推出,应用历史较长,拥有广泛的设计群体,设计资源比VHDL丰富。另外,Verilog HDL是在C语言的基础上演化而来的,因此只要具有C语言的编程基础,设计者就很容易学会并掌握这种语言。1.3.3 AHDL

AHDL(Altera Hardware Description Language)是Altera公司根据自己公司生产的MAX系列器件和FLEX系列器件的特点,专门设计的一套完整的硬件描述语言。

AHDL是一种模块化的硬件描述语言,它完全集成于Altera公司的MAX+PLUS II和Quartus II的软件开发系统中。AHDL特别适合于描述复杂的组合电路、组(group)运算及状态机、真值表和参数化的逻辑。用户可以通过MAX+PLUS II的软件开发系统对AHDL源程序进行编辑,并通过对源文件的编译建立仿真、时域分析和器件编程的输出文件。

AHDL的语句和元素种类齐全、功能强大,而且易于应用。用户可以使用AHDL建立完整层次的工程设计项目,或者在一个层次的设计中混合其他类型的设计文件,如VHDL设计文件或Verilog HDL设计文件。1.4 可编程逻辑器件

可编程逻辑器件(Programmable Logic Device,PLD)是一种半定制集成电路,在其内部集成了大量的门和触发器等基本逻辑单元电路,用户通过编程来改变PLD内部电路的逻辑关系或连线,就可以得到所需要的设计电路。可编程逻辑器件的出现,改变了传统的数字系统设计方法,其设计方法为采用EDA技术开创了广阔的发展空间,并极大地提高了电路设计的效率。

在PLD没有出现之前,数字系统的传统设计往往采用“积木”式的方法进行,实质上是对电路板进行设计,通过标准集成电路器件搭建成电路板来实现系统功能,即先由器件搭成电路板,再由电路板搭成系统。数字系统的“积木块”就是具有固定功能的标准集成电路器件,如TTL的74/54系列、CMOS的4000/4500系列芯片和一些具有固定功能的大规模集成电路等。用户只能根据需要选择合适的集成电路器件,按照此种器件推荐的电路搭成系统并调试成功。设计中,设计者没有灵活性可言,搭成的系统需要的芯片种类多且数目大。

PLD的出现,给数字系统的传统设计法带来了新的变革。采用PLD进行的数字系统设计,是基于芯片的设计或称为“自底向上”(Bottom-Up)的设计,与传统的积木式设计有本质上的不同。它可以直接通过设计PLD芯片来实现数字系统功能,将原来由电路板设计完成的大部分工作放在PLD芯片的设计中进行。这种新的设计方法能够由设计者根据实际情况和要求定义器件的内部逻辑关系和引脚,通过芯片设计实现多种数字系统功能。同时,由于引脚定义的灵活性,不但大大减轻了系统设计的工作量和难度,提高了工作效率,而且还可以减少芯片数量,缩小系统体积,降低能源消耗,提高系统的稳定性和可靠性。

硬件描述语言(HDL)给PLD和数字系统的设计带来了新的设计方法和理念,产生了目前最常用且称为“自顶向下”(Top-Down)的设计法。自顶向下的设计采用功能分割的方法,从顶层设计开始,逐次向下将设计内容进行分块和细化。在设计过程中,采用层次化和模块化方式,将使系统设计变得简捷和方便。层次化设计是分层次、分模块地进行设计描述的。描述器件总功能的模块放在最上层,称为顶层设计;描述器件某一部分功能的模块放在下层,称为底层设计;底层模块还可以再向下分层,直至最后完成硬件电子系统电路的整体设计。1.5 常用EDA工具

EDA工具在EDA技术中占据极其重要的位置,EDA的核心是利用计算机完成电路设计的全程自动化,因此,基于计算机环境的EDA工具软件的支持是必不可少的。

用EDA技术设计电路可以分为不同的技术环节,每个环节中必须由对应的软件包或专用的EDA工具独立处理。EDA工具大致可以分为设计输入编辑器、仿真器、HDL综合器、适配器(或布局布线器)及下载器5个模块。1.5.1 设计输入编辑器

通常,专业的EDA工具供应商或各可编程逻辑器件厂商都提供EDA开发工具,在这些 EDA开发工具中都含有设计输入编辑器,如Xilinx公司的Foundation、Altera公司的Quartus II和MAX+PLUS II等。

一般的设计输入编辑器都支持图形输入和HDL文本输入。图形输入通常包括原理图输入、状态图输入和波形图输入3种常用的方式。原理图输入方式沿用传统的数字系统设计方式,即根据设计电路的功能和控制条件,画出设计的原理图或状态图或波形图,然后在设计输入编辑器的支持下,将这些图形输入到计算机中,形成图形文件。

图形输入方式与PROTEL作图相似,设计过程形象直观,而且不需要掌握硬件描述语言,便于初学或教学演示。但图形输入方式存在没有标准化、图形文件兼容性差、不便于电路模块的移植和再利用等缺点。

HDL文本输入方式与传统的计算机软件语言编辑输入基本一致,就是在设计输入编辑器的支持下,使用某种硬件描述语言(HDL)对设计电路进行描述,形成HDL源程序。HDL文本输入方式克服了图形输入方式存在的所有弊端,为EDA技术的应用和发展打开了一片广阔的天地。

当然,在用EDA技术设计电路时,也可以利用图形输入与HDL文本输入方式各自的优势,将它们结合起来,实现一个复杂的电路系统的设计。1.5.2 仿真器

在EDA技术中,仿真的地位非常重要,行为模型的表达、电子系统的建模、逻辑电路的验证及门级系统的测试,每一步都离不开仿真器的模拟检测。在EDA发展的初期,快速地进行电路逻辑仿真是当时的核心问题。即使在现在,各个环节的仿真仍然是整个EDA设计流程中最重要、最耗时的一个步骤。因此,仿真器的仿真速度、仿真的准确性和易用性成为衡量仿真器的重要指标。

按仿真器对硬件描述语言不同的处理方式,可以分为编译型仿真器和解释型仿真器。编译型仿真器速度较快,但需要预处理,因此不能及时修改;解释型仿真器的速度一般,但可以随时修改仿真环境和条件。

几乎每个EDA厂商都提供基于VHDL和Verilog DHL的仿真器。常用的仿真器有Model Technology公司的ModelSim、Cadence公司的Verilog-XL和NC-Sim、Aldec公司的Active HDL、Synopsys公司的VCS等。1.5.3 HDL综合器

硬件描述语言诞生的初衷是用于设计逻辑电路的建模和仿真,但直到Synopsys公司推出了HDL综合器后,才使HDL直接用于电路设计。

HDL综合器是一种将硬件描述语言转化为硬件电路的重要工具软件,在使用EDA技术实施电路设计中,HDL综合器完成电路化简、算法优化、硬件结构细化等操作。HDL综合器在把可综合的HDL(VHDL或Verilog HDL)转化为硬件电路时,一般要经过两个步骤:第一步,HDL综合器对VHDL或Verilog HDL进行处理分析,并将其转换成电路结构或模块,这时不考虑实际器件实现,即完全与硬件无关,这个过程是一个通用电路原理图形成的过程;第二步,对实际实现目标器件的结构进行优化,并使之满足各种约束条件,优化关键路径,等等。

HDL综合器的输出文件一般是网表文件,是一种用于电路设计数据交换和交流的工业标准化格式的文件,或是直接用HDL表达的标准格式的网表文件,或是对应FPGA/CPLD器件厂商的网表文件。

HDL综合器是EDA设计流程中的一个独立的设计步骤,它往往被其他EDA环节调用,以便完成整个设计流程。HDL综合器的调用具有前台模式和后台模式两种。用前台模式调用时,可以从计算机的显示器上看到调用窗口界面;用后台模式(也称为控制模式)调用时,不出现图形窗口界面,仅在后台运行。1.5.4 适配器(布局布线器)

适配也称为结构综合,适配器的任务是完成在目标系统器件上的布局布线。适配通常都由可编程逻辑器件厂商提供的专用软件来完成,这些软件可以单独存在,也可嵌入在集成EDA开发环境中。

适配器最后输出的是各厂商自己定义的下载文件,下载到目标器件后即可实现电路设计。1.5.5 下载器(编程器)

下载器的任务是把电路设计结果下载到实际器件中,实现硬件设计。下载软件一般由可编程逻辑器件厂商提供,或嵌入到EDA开发平台中。本章小结

现代电子设计技术的核心是EDA技术。EDA技术就是依靠功能强大的电子计算机,在EDA工具软件平台上,对以硬件描述语言(HDL)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、优化、仿真,直至下载到可编程逻辑器件、CPLD/FPGA或专用集成电路ASIC芯片中,实现既定的电子电路设计功能。EDA技术极大地提高了电子电路设计效率,缩短了设计周期,节省了设计成本。

EDA技术包括硬件描述语言(HDL)、EDA工具软件、可编程逻辑器件(PLD)等方面的内容。目前国际上流行的硬件描述语言主要有VHDL、Verilog HDL和AHDL。EDA工具在EDA技术应用中占据着极其重要的位置,利用EDA技术进行电路设计的大部分工作是在 EDA软件工作平台上进行的。EDA工具软件主要包括设计输入编辑器、仿真器、HDL综合器、适配器(或布局布线器)及下载器5个模块。

今天,EDA技术已经成为电子设计的重要工具,无论是设计芯片还是设计系统,如果没有EDA工具的支持,都将是难以完成的。EDA工具已经成为现代电路设计师的重要武器,正在发挥着越来越重要的作用。思考题和习题

1.1 简述EDA技术的发展历程,EDA技术的核心内容是什么?

1.2 简述用EDA技术设计电路的设计流程。

1.3 VHDL有哪些主要特点?

1.4 Verilog HDL有哪些主要特点?

1.5 什么叫“综合”?一般综合包含哪些过程?

1.6 简述在PLD没有出现前,传统的数字系统设计的“积木”式过程。

1.7 简述“自顶向下”的设计流程。

1.8 EDA工具大致可以分为哪几个模块?各模块的主要功能是什么?

1.9 目前被IEEE采纳的硬件描述语言有哪几种?

1.10 FPGA/CPLD在EDA技术中有什么用处?第2章 EDA工具软件的使用方法

本章概要:本章以Altera公司的Quartus II为主,介绍EDA工具软件的使用方法,作为EDA设计的基础。通过本章的学习,读者可初步采用Quartus II软件的原理图输入法,设计数字电路和系统,掌握用实验开发系统或开发板对设计电路进行硬件验证的方法。

读者在具有数字逻辑电路知识的基础上,通过本章的学习,即可初步掌握EDA软件的使用方法,实现电路设计。

知识要点:(1)Quartus II(9.0版本)的使用方法;(2)Quartus II的原理图输入法;(3)Quartus II的宏功能模块的使用方法;(4)Quartus II嵌入式逻辑分析仪的使用方法;(5)Quartus II嵌入式锁相环的使用方法。

教学安排:本章安排4学时,主要让读者掌握Quartus II的原理图输入法和实现多层次系统电路设计的方法,Quartus II的宏功能模块、嵌入式逻辑分析仪和嵌入式锁相环的使用方法可作为选修内容。在本章的学习前,读者应具有数字逻辑电路方面的基础知识。

EDA技术的核心是利用计算机完成电路设计的全程自动化,因此基于计算机环境下的EDA工具是不可缺少的。掌握EDA工具的使用方法,应该是EDA技术学习的第一步。

Quartus II是Altera公司近几年推出的新一代、功能强大的EDA工具,至今已公布了9.0以上版本。Quartus II软件提供了EDA设计的综合开发环境,是EDA设计的基础。Quartus II集成环境支持EDA设计的设计输入、编译、综合、布局、布线、时序分析、仿真、编程下载等设计过程。

Quartus II支持多种编辑输入法,包括图形编辑输入法,VHDL、Verilog HDL和AHDL的文本编辑输入法,符号编辑输入法,以及内存编辑输入法。下面以Quartus II 9.0版本为例,介绍Quartus II软件的基本操作。2.1 Quartus II软件的安装

Quartus II软件的安装比较简单,只要把Quartus II软件的光盘放入计算机的光驱中,安装光盘将自动引导完成Quartus II的安装。软件安装结束之后,还必须在软件中指定Altera公司的授权文件(License.dat),才能正常使用Quartus II软件。

在正常使用Altera的Quartus II软件完成电路设计之后,还必须安装Altera的硬件驱动程序,才能使设计结果通过计算机的通信接口编程下载到目标芯片中。如果使用计算机的并行通信接口(即并行打印机接口)编程下载,安装Altera的硬件驱动程序过程如下。

执行“控制面板”→“添加硬件”命令,弹出如图2.1所示的“添加硬件向导”(第1页面)对话框。选择“是,我已经连接了此硬件”选项后单击“下一步”按钮,弹出如图2.2所示的“添加硬件向导”(第2页面)对话框。在该对话框的“已安装的硬件”栏下选择“添加新的硬件设备”选项后单击“下一步”按钮,弹出如图2.3所示的“添加硬件向导”(第3页面)对话框。在该对话框中选择“安装我手动从列表选择的硬件”选项后单击“下一步”按钮,弹出如图2.4所示的“添加硬件向导”(第4页面)对话框。在该对话框的“常见硬件类型”栏下选择“声音、视频和游戏控制器”选项后单击“下一步”按钮,弹出如图2.5所示的“添加硬件向导”(第5页面)对话框。在该对话框中单击“从磁盘安装”按钮,在弹出如图2.6所示的“从磁盘安装”对话框的“厂商文件复制来源”栏下找到并打开安装盘“F:\altera\90\quartus\drivers\win2000”(本文件安装在F盘中)路径下的“win2000”文件,然后单击“确定”按钮,此时在“添加硬件向导”(第5页面)对话框的“型号”栏下列出了Quartus的硬件驱动程序“Altera ByteBlaster”,如图2.7所示。单击“下一步”按钮,弹出如图2.8所示的“添加硬件向导”(第6页面)对话框。在对话框中单击“下一步”按钮,完成Altera的硬件驱动程序的安装。

硬件驱动程序安装完成后,计算机会自动提示需要重新开机,硬件驱动程序才能生效。图2.1 添加硬件向导(第1页面)图2.2 添加硬件向导(第2页面)图2.3 添加硬件向导(第3页面)图2.4 添加硬件向导(第4页面)

另外,如果开发板(或实验开发系统)使用PC的USB接口编程下载,则当开发板第一次与PC的USB接口连接时,Windows操作系统将会自动引导编程下载硬件启动程序的安装。Altera 的硬件启动程序放在“F:\altera\90\quartus\drivers\usb-blaster”目录中。图2.5 添加硬件向导(第5页面)图2.6 添加硬件向导的“从磁盘安装”对话框图2.7 Quartus的硬件驱动程序图2.8 添加硬件向导(第6页面)2.2 Quartus II软件的主界面

MAX+PLUS II(Multiple Array Matrix+Programmable Logic User System II)是Altera公司早期开发的EDA工具软件,该软件界面友好、方便易用、功能全面,是非常流行的大众化EDA平台,在教学、科研开发等多种场合有广泛的应用群体。Quartus II软件为适应广大MAX+PLUS II软件应用工程人员的需要,提供了Quartus II和与MAX+PLUS II兼容的两种主界面。

在Quartus II的主界面,右击工具栏附近的空白处,弹出如图2.9所示的打开窗口快捷菜单,该快捷菜单用于打开工程引导(Project Navigator)、编译状态(Status)等窗口。单击该窗口中的“Customize…”命令(或执行“Tools”→“Customize”命令),弹出如图2.10所示的Customize(定制)对话框的General(总体)页面。如果选择Quartus II主界面,则在Customize对话框的General界面中单击“Quartus II”项(其前方的圆中出现黑点),呈现如图2.11所示的主界面窗口;若选择MAX+PLUS II界面,则单击“MAX+PLUS II”项,呈现如图2.12所示的主界面窗口。

不管选择哪一种主界面,Quartus II软件的各种命令和图标的功能都是相同的。本书介绍的EDA设计,基本是在Quartus II软件的Quartus II主界面下进行的。

在Quartus II的Customize对话框中(见图2.10),除了General页面外,还有Toolbars(工具栏)、Commands(命令)和Tcl页面。在Customize的Toolbars页面中,可以单击打开Quartus II软件主界面上的各类工具栏,如Utility Windows、Applications、Processing等工具栏,添加或隐藏命令按钮。在Customize的Commands工具栏页面中,可以按住鼠标左键进行拖动,将Quartus II的命令按钮添加到主界面上,如添加Applications类、assignment Editor类、assignment类、compiler类等命令按钮。也可以用鼠标拖动的方法将主界面上不常用的命令按钮拖回到Commands栏中(隐藏)。Quartus II命令按钮的相关命令也包含在主菜单的命令栏中。图2.9 打开窗口快捷菜单图2.10 Quartus II的Customize对话框图2.11 Quartus II的Quartus主界面窗口图2.12 Quartus II的MAX+PLUS II主界面窗口2.3 Quartus II的图形编辑输入法

图形编辑输入法也称为原理图输入设计法。用Quartus II的原理图输入设计法进行数字系统设计时,不需要任何硬件描述语言知识,在具有数字逻辑电路基本知识的基础上,就能使用Quartus II提供EDA平台,设计数字电路或系统。

Quartus II的原理图输入设计法可以与传统的数字电路设计法接轨,即把传统方法得到的设计电路的原理图,用EDA平台完成设计电路的输入、仿真验证和综合,最后编程下载到可编程逻辑器件FPGA/CPLD或专用集成电路(ASIC)中。在EDA设计中,将传统电路设计过程的布局布线、绘制印制电路板、电路焊接、电路加电测试等过程取消,提高了设计效率,降低了设计成本,减轻了设计者的劳动强度。然而,原理图输入设计法的优点不仅如此,它可以极为方便地实现数字系统的层次化设计,这是传统设计方式无法比拟的。层次化设计也称为“自底向上”的设计方法,即将一个大的设计工程分解为若干个子项目或若干个层次来完成。先从底层的电路设计开始,然后在高层次的设计中逐级调用低层次的设计结果,直至顶层系统电路的实现。对于每个层次的设计结果,都经过严格的仿真验证,尽量减少系统设计中的错误。每个层次的设计可以用原理图输入法实现,也可以用其他方法(如用HDL文本输入法)实现,这种方法称为“混合设计输入法”。层次化设计为大型系统设计及SOC(System On a Chip)或SOPC(System On a Programmable Chip)的设计提供了方便、直观的设计路径。

在Quartus II平台上,使用图形编辑输入法设计电路的操作流程包括编辑(设计输入)、编译、仿真和编程下载等基本过程。用Quartus II图形编辑方式生成的图形文件默认的扩展名为.bdf(也可以用.gdf)。为了方便电路设计,设计者首先应当在计算机中建立自己的工程目录,例如,在D盘建立“myeda”文件夹来存放设计文件。

注意:工程文件夹的名称由字母开始,加若干字母或数字组成,最好不要使用汉字。

下面以8位加法器adder8的设计为例,介绍Quartus II软件使用的基本方法。设计结果用南京伟福实业有限公司的EDA6000试验开发系统(以下简称为EDA6000)和友晶公司的Altera DE2开发板(以下简称为DE2开发板)进行硬件验证。2.3.1 编辑输入图形设计文件

使用Quartus II设计电路系统之前,需要先建立设计工程(Project)。例如,用图形编辑法设计8位加法器adder8时,需要先建立adder8的设计工程(或称为工程)。在Quartus II集成环境下,执行“File”→“New Project Wizard”命令,弹出如图2.13所示的新建设计工程对话框的“New Project Wizard:Directory,Name,Top-Level Entity[page 1 of 5]”页面(新建设计工程对话框共5个页面)。图2.13 新建项目对话框-1

此页面用于登记设计文件的地址(文件夹)、设计工程的名称和顶层文件实体名。在对话框的第一栏中输入工程所在的文件夹名,如D:\myeda;第二栏是设计工程名,需要输入新的设计工程名,如adder8;第三栏是顶层文件实体名,需要输入顶层文件实体的名称。设计工程名和顶层文件实体名可以同名,一般在多层次系统设计中,以与设计工程同名的设计实体作为顶层文件名。

单击图2.13下方的“Next”按钮,进入如图2.14所示的新建工程对话框-2。此页面用于增加设计文件,包括顶层设计文件和其他底层设计文件。如果顶层设计文件和其他底层设计文件已经包含在工程文件夹中,则在此页面中将这些设计文件增加到新建工程中。

单击图2.14下方的“Next”按钮,进入如图2.15所示的新建工程对话框-3。此页面用于设置编程下载的目标芯片的类型与型号。图2.14 新建项目对话框-2图2.15 新建项目对话框-3

在编译设计文件前,应先选择下载的目标芯片,否则系统将以默认的目标芯片为基础完成设计文件的编译。目标芯片选择应根据支持硬件开发和验证的开发板或试验开发系统上提供的可编程逻辑器件来决定。EDA6000提供了不同的适配板,如Altera FLEX10K10适配板、Altera MAX7128S适配板和Altera EP1C6适配板(详见附录A)。不同适配板上的可编程逻辑不同,对于小系统设计(如8位加法器电路),可以选择Altera FLEX10K10适配板来完成硬件验证,该适配板上的目标芯片是FLEX10K系列EPF10KLC84-4型号的可编程逻辑器件。对于复杂系统可以选择Altera EP1C6适配板来完成硬件验证,适配板上的目标芯片是Cyclone系列EP1C6Q240C8型号的可编程逻辑器件。如果使用DE2开发板来完成实验验证,则应选择Cyclone II系列的EP2C35F672C6为目标芯片(详见附录B)。

单击图2.15下方的“Next”按钮,进入如图2.16所示的新建工程对话框-4。此页面用于设置第三方EDA工具软件的选用,一般情况下可以设置为“不使用”(在第三方工具软件选择框不出现“√”)。

单击图2.16下方的“Next”按钮,进入如图2.17所示的新建工程对话框-5。此页面用于显示新建设计工程的摘要(Summary)。单击“Finish”按钮,完成新设计工程的建立。图2.16 新建项目对话框-4图2.17 新建项目对话框-5图2.18 编辑文件类型对话框

新的工程建立后,便可进行电路系统设计。在Quartus II集成环境下,执行“File”→“New”命令,弹出如图2.18所示的编辑文件类型对话框,选择“Block Diagram/Schematic File”(模块/原理图文件)方式后单击“OK”按钮,或者直接单击主窗口上的“创建新的图形文件”命令按钮,进入Quartus II图形编辑方式的窗口界面。

在原理图编辑窗口中的任何一个位置双击,将弹出一个如图2.19所示的元件选择窗口。或者在编辑窗口右击,在弹出的选择对话框中选择“Insert”的“Symbol as Block…”项,也可以弹出元件选择窗口。在元件选择窗口中,Quartus II列出了存放在\Quartus\Libraries文件夹中的各种元件库。其中,megafunctions是参数可设置的强函数元件库;others是MAX+PLUS II老式宏函数库,包括加法器、编码器、译码器、计数器、移位寄存器等74系列器件;Primitives是基本元件库,包括缓冲器和基本逻辑门,如门电路、触发器、电源、输入、输出等。图2.19 元件选择窗口

在元件选择窗口的符号库“Libraries”栏中,选择基本逻辑元件库(primitives)文件夹中的逻辑库(logic)后,该库的基本元件的元件名将出现在“Libraries”栏中。例如and2(2输入端的与门)、xor(异或门)、vcc(电源)、input(输入)、output(输出)等。在元件选择窗口的“Name”栏内直接输入元件名,或者在“Libraries”栏中,单击元件名,可得到相应的元件符号。元件选中后单击“OK”按钮,选中的元件符号将出现在原理图编辑窗口中。

在8位加法器adder8的设计中,用上述方法将电路设计需要的两个4位加法器74283及输入/输出元件符号调入图形编辑框中,根据8位加法器设计的原理图,用鼠标完成电路内部的连接及与输入/输出元件的连接,并将相应的输入元件符号名分别更改为“A[7..0]”和“B[7..0]”,把输出元件的名称分别更改为“SUM[7..0]”和“COUT”,如图2.20所示。其中A[7..0]和B[7..0]是两个8位加数输入端,SUM[7..0]是8位和数输出端,COUT是向高位进位输出端。电路设计完成后,用“adder8.bdf”为文件名保存在工程目录中。

在图2.20中,A[7..0]输入端分别与两个4位加法器74283(4 BIT ADDER)的A1~A4输入端连接,其中第1片74283的A1~A4分别与A[7..0]输入端的A0~A3连接,作为A输入端的低4位加数输入;第2片74283的A1~A4分别与A[7..0]输入端的A4~A7连接,作为A输入端的高4位加数输入。这种连接方式是通过74283的A1~A4输入端加连线和符号标注完成的。例如,在A1输入端前加一条连线和“A[0]”符号标注,表示该输入端与A[7..0]输入端的A[0]连接。在加连线和符号标注时,首先在A1输入端画一条连线,然后右击此连线,在弹出的连线命令菜单中选择“Properties”(属性)命令,在弹出的属性对话框中的“Name”栏中输入符号标注名,单击“确定”按钮后完成连线的标注操作。图2.20 8位加法器的原理图2.3.2 编译设计文件

执行Quartus II主窗口中的“Processing”→“Start Compilation”命令,或者在主窗口上直接单击“开始编译”命令按钮,开始对adder8.bdf文件进行编译。编译工具的编译进程可以在如图2.21所示的状态(Status)窗口上看到(该状态窗口可以关闭,也可以在图2.9中单击Status命令打开)。编译过程包括分析与综合、适配、编程和时序分析4个环节。图2.21 Quartus II编译状态窗口

1.分析与综合(Analysis&Synthesis)

在编译过程中,首先对设计文件进行分析和检查,如检查原理图的信号线有无漏接、信号有无双重来源、文本输入文件中有无语法错误等。如果设计文件存在错误,则报告出错信息并标出错误的位置,供设计者修改。如果设计文件不存在错误,接着进行综合,通过综合完成设计逻辑到器件资源的技术映射。

2.适配(Fitter)

适配是编译的第二个环节,只有当分析与综合成功完成之后才能进行。在适配过程中,完成设计逻辑在器件中的布局和布线、选择适当的内部互连路径、引脚分配、逻辑元件分配等操作。

3.编程(Assembler)

成功完成适配之后,才能进入编程环节。在编程过程中,产生多种形式的器件编程映像文件,如可以通过MasterBlaster或ByteBlaster电缆将设计逻辑下载到目标芯片中的编程文件。对CPLD来说,是产生熔丝图文件,即JEDEC文件(电子器件工程联合会制定的标准格式,简称JED文件);对于FPGA来说,是生成位流数据文件BG(Bit-stream Generation)。

4.时序分析(Timing Analyzer)

成功完成适配之后,设计编译还要进入时序分析环节。在时序分析中,计算给定设计与器件上的延时,完成设计分析的时序分析和所有逻辑的性能分析。

在编译开始后,软件自动弹出如图2.22所示的编译结果概要报告框,报告工程文件编译的相关信息,如下载目标芯片的型号名称、占用目标芯片中逻辑元件LE(Logic Elements)的数目、占用芯片的引脚数目等。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载