第1章 绪论 1.1 EDA技术的涵义 1.2 EDA技术的发展历程 1.3 EDA技术的主要内容 1.4 EDA软件系统的构成 第1章 绪论 1.1 EDA技术的涵义 1.2 EDA技术的发展历程 1.3 EDA技术的主要内容 1.4 EDA软件系统的构成 1.5 EDA工具的发展趋势 1.6 EDA的工程设计流程 1.7 数字系统的设计 1.8 EDA技术的应用展望 习题
1.1 EDA技术的涵义 什么叫EDA技术?EDA技术就是指以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,自动完成用软件方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术.
利用EDA技术进行电子系统的设计,具有以下几个特点:① 用软件的方式设计硬件;② 用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;③ 设计过程中可用有关软件进行各种仿真;④ 系统可现场编程,在线升级;⑤ 整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。因此,EDA技术是现代电子设计的发展趋势。
1.2 EDA技术的发展历程 1. 20世纪70年代的计算机辅助设计CAD阶段 早期的电子系统硬件设计采用的是分立元件,随着集成电路的出现和应用,硬件设计进入到发展的初级阶段。初级阶段的硬件设计大量选用中、小规模标准集成电路。 由于设计师对图形符号使用数量有限,因此传统的手工布图方法无法满足产品复杂性的要求,更不能满足工作效率的要求。
2. 20世纪80年代的计算机辅助工程设计CAE阶段 初级阶段的硬件设计是用大量不同型号的标准芯片实现电子系统设计的。随着微电子工艺的发展,相继出现了集成上万只晶体管的微处理器、集成几十万直到上百万储存单元的随机存储器和只读存储器。
伴随着计算机和集成电路的发展,EDA技术进入到计算机辅助工程设计阶段。20世纪80年代初推出的EDA工具则以逻辑模拟、定时分析、故障仿真、自动布局和布线为核心,重点解决电路设计没有完成之前的功能检测等问题。利用这些工具,设计师能在产品制作之前预知产品的功能与性能,能生成产品制造文件,使设计阶段对产品性能的分析前进了一大步。
3. 20世纪90年代电子系统设计自动化EDA阶段 为了满足千差万别的系统用户提出的设计要求,最好的办法是由用户自己设计芯片,让他们把想设计的电路直接设计在自己的专用芯片上。微电子技术的发展,特别是可编程逻辑器件的发展,使得微电子厂家可以为用户提供各种规模的可编程逻辑器件,使设计者通过设计芯片实现电子系统功能。
EDA工具的发展,又为设计师提供了全线EDA工具。这个阶段发展起来的EDA工具,目的是在设计前期将设计师从事的许多高层次设计工作由工具来完成,如可以将用户要求转换为设计技术规范,有效地处理可用的设计资源与理想的设计目标之间的矛盾,按具体的硬件、软件和算法分解设计等。由于电子技术和EDA工具的发展,设计师可以在不太长的时间内使用EDA工具,通过一些简单标准化的设计过程,利用微电子厂家提供的设计库来完成数万门ASIC和集成系统的设计与验证。
20世纪90年代,设计师逐步从使用硬件转向设计硬件,从单个电子产品开发转向系统级电子产品开发(即片上系统集成,System on a chip)。
进入21世纪后,EDA技术得到更大发展 ①在FPGA上实现DSP应用成为可能,用纯数字逻辑进行DSP模块的设计,使得高速DSP成为现实,并为高速数字信号处理算法提供了实现途径。 ②嵌入式处理器软核的成熟,使得SOPC(System On a Programmable Chip)步入大规模应用阶段,在一片FPGA中实现一个完备的数字处理系统成为可能。 ③使电子设计成果以自主知识产权的方式得以明确表达和确认成为可能。
④在仿真和设计两方面支持标准硬件描述语言且功能强大的EDA软件不断推出。 ⑤EDA使得电子领域各学科的界限更加模糊,更加互为包容:模拟与数字、软件与硬件、系统与 器件、ASIC 与FPGA、行为与结构等。 ⑥更大规模的FPGA和CPLD器件不断推出。 ⑦基于EDA的用于ASIC 设计的标准单元已涵盖大规模电子系统及复杂IP核模块。 ⑧软硬IP(Intellectual Property)核在电子行业的产业领域广泛应用。 ⑨SOC高效低成本设计技术的成熟。 ⑩系统级、行为验证级硬件描述语言出现,使复杂电子系统的设计和验证趋于简单。
1.3 EDA技术的主要内容 EDA技术 ASIC设计 作为EDA技术最终实现目标的ASIC,通过三种途径来完成: FPGA/CPLD SOPC/SOC 门阵列 (MPGA); 标准单元 (CBIC); 全定制; (FCIC); ASIC设计 FPGA/CPLD 可编程ASIC 设计 混合 ASIC 设计
1.3 EDA技术的主要内容 1. 大规模可编程逻辑器件 可编程逻辑器件(简称PLD)是一种由用户编程以实现某种逻辑功能的新型逻辑器件。FPGA和CPLD分别是现场可编程门阵列和复杂可编程逻辑器件的简称。现在,FPGA和CPLD器件的应用已十分广泛,它们将随着EDA技术的发展而成为电子设计领域的重要角色。
FPGA 在结构上主要分为三个部分,即可编程逻辑单元,可编程输入/输出单元和可编程连线三个部分。CPLD在结构上主要包括三个部分,即可编程逻辑宏单元,可编程输入/输出单元和可编程内部连线。 高集成度、高速度和高可靠性是FPGA/CPLD最明显的特点,其时钟延时可小至ns级。结合其并行工作方式,在超高速应用领域和实时测控方面有着非常广阔的应用前景。
2. 硬件描述语言(HDL) 常用的硬件描述语言有VHDL、Verilog、ABEL。 VHDL:作为IEEE的工业标准硬件描述语言,在电子工程领域,已成为事实上的通用硬件描述语言。 Verilog:支持的EDA工具较多,适用于RTL级和门电路级的描述,其综合过程较VHDL稍简单,但其在高级描述方面不如VHDL。
ABEL:一种支持各种不同输入方式的HDL,被广泛用于各种可编程逻辑器件的逻辑功能设计,由于其语言描述的独立性,因而适用于各种不同规模的可编程器件的设计。 有专家认为,在新世纪中,VHDL与Verilog语言将承担几乎全部的数字系统设计任务。
3. 软件开发工具 目前比较流行的、主流厂家的EDA的软件工具有Altera的MAX+plus II、Lattice的ispEXPERT、Xilinx的Foundation Series。 MAX+plus II:支持原理图、VHDL和Verilog语言文本文件以及以波形与EDIF等格式的文件作为设计输入,并支持这些文件的任意混合设计。它具有门级仿真器,可以进行功能仿真和时序仿真,能够产生精确的仿真结果。
在适配之后,MAX+plus II生成供时序仿真用的EDIF、VHDL和Verilog这三种不同格式的网表文件。它界面友好,使用便捷,被誉为业界最易学易用的EDA的软件,并支持主流的第三方EDA工具,支持除APEX20K系列之外的所有Altera公司的FPGA/CPLD大规模逻辑器件。
ispEXPERT:ispEXPERT System是ispEXPERT的主要集成环境。通过它可以进行VHDL、Verilog及ABEL语言的设计输入、综合、适配、仿真和在系统下载。ispEXPERT System是目前流行的EDA软件中最容易掌握的设计工具之一,它界面友好,操作方便,功能强大,并与第三方EDA工具兼容良好。
Foundation Series:Xilinx公司最新集成开发的EDA工具。它采用自动化的、完整的集成设计环境。 Foundation项目管理器集成了Xilinx实现工具,并包含了强大的Synopsys FPGA Express综合系统,是业界最强大的EDA设计工具之一。 这三个软件的基本功能相同,主要差别在于:① 面向的目标器件不一样;② 三者的性能各有优劣。
4. 实验开发系统 实验开发系统提供芯片下载电路及EDA实验/开发的外围资源(类似于用于单片机开发的仿真器),以供硬件验证用。一般包括:① 实验或开发所需的各类基本信号发生模块,包括时钟、脉冲、高低电平等;② FPGA/CPLD输出信息显示模块,包括数码显示、发光管显示、声响指示等;③ 监控程序模块,提供“电路重构软配置”;④ 目标芯片适配座以及上面的FPGA/CPLD目标芯片和编程下载电路。
1.4 EDA软件系统的构成 EDA技术研究的对象是电子设计的全过程,有系统级、电路级和物理级三个层次的设计。其涉及的电子系统是指从低频、高频到微波,从线性到非线性,从模拟到数字,从通用集成电路到专用集成电路构造的电子系统,因此,EDA技术研究的范畴相当广泛。从专用集成电路(ASIC)开发与应用角度看,EDA软件系统应当包含以下子模块:设计输入子模块、设计数据库子模块、分析验证子模块、综合仿真子模块、布局布线子模块等。
(1) 设计输入子模块:该模块接受用户的设计描述,并进行语义正确性、语法规则的检查,检查通过后,将用户的设计描述数据转换为EDA软件系统的内部数据格式,存入设计数据库,以便被其他子模块调用。 (2) 设计数据库子模块:该模块存放系统提供的库单元以及用户的设计描述和中间设计结果。 (3) 分析验证子模块:该模块包括各个层次的模拟验证、设计规则的检查、故障诊断等。
(4) 综合仿真子模块:该模块包括各个层次的综合工具。理想的情况是从高层次到低层次的综合仿真全部由EDA工具自动实现。 (5) 布局布线子模块:该模块实现由逻辑设计到物理实现的映射,因此与物理实现的方式密切相关。例如,最终的物理实现可以是门阵列、可编程逻辑器件等。由于对应的器件不同,因此各自的布局布线工具会有很大的差异。
EDA工具不只面向ASIC的应用与开发,还有涉及电子设计各个方面的EDA工具,包括数字电路设计、模拟电路设计、数模混合设计、系统设计、仿真验证等电子设计的许多领域EDA工具。这些工具对硬件环境要求高,一般的运行平台要求是工作站和UNIX操作系统,其功能齐全、性能优良,一般由专门开发EDA软件工具的软件公司提供,如Cadence、Mentel Graphics、Viewlogic、Synopsys等软件公司都有其特色工具。
Viewlogic公司的EDA工具就有基本工具、系统设计工具和ASIC/FPGA设计工具三大类20多个工具。其中: 基本工具包括:原理图输入工具ViewDraw、数字仿真器VeiwSim、波形编辑与显示器ViewTrace、静态时序分析工具Motive、设计流程管理工具ViewFlow等。 系统设计工具包括:模拟电路仿真器ViewSpice、PLD开发工具包ViewPLD、库开发工具ViewLibrarian、PCB信号串扰分析工具XTK、PCB布线前信号分析工具PDQ、电磁兼容设计工具QUIET、PCB版面规划工具ViewFloorplanner等。
ASIC/FPGA设计工具包括:VHDL仿真器SpeedWave、SpeedWave Verilog仿真器VCS、逻辑综合工具ViewSynthesis、自动测试向量生成工具Test Gen/Sunrise、原理图自动生成工具ViewGen、有限状态机设计工具ViewFSM、Datapath设计工具ViewDatapath、VHDL与Veri og混合仿真环境FusionHDL等。
1.5 EDA工具的发展趋势 1. 设计输入工具的发展趋势 早期EDA工具设计输入普遍采用原理图输入方式,以文字和图形作为设计载体和文件,将设计信息加载到后续的EDA工具中,完成设计分析工作。原理图输入方式的优点是直观,能满足以设计分析为主的一般要求,但是原理图输入方式不适合用EDA综合工具。
2. 具有混合信号处理能力的EDA工具 目前,数字电路设计的EDA工具远比模拟电路的EDA工具多。模拟集成电路EDA工具开发的难度较大,但是,由于物理量本身多以模拟形式存在,所以实现高性能的复杂电子系统的设计离不开模拟信号。
3. 更为有效的仿真工具的发展 通常,可以将电子系统设计的仿真过程分为两个阶段:设计前期的系统级仿真和设计过程的电路级仿真。系统级仿真主要验证系统的功能;电路级仿真主要验证系统的性能,决定怎样实现设计所需的精度。 4. 更为理想的设计综合工具的开发 今天,电子系统和电路的集成规模越来越大,几乎不可能直接面向版图做设计,若要找出版图中的错误,更是难上加难。
仍将起到重要的作用,自动综合工具将有效地提高优化设计效率。 设计综合工具由最初的只能实现逻辑综合,逐步发展到可以实现设计前端的综合,直到设计后端的版图综合以及测试综合的理想且完整的综合工具。
面对当今飞速发展的电子产品市场,电子设计人员需要更加实用、快捷的EDA工具,使用统一的集成化设计环境,改变传统设计思路,即优先考虑具体物理实现方式,而将精力集中到设计构思、方案比较和寻找优化设计等方面,以最快的速度开发出性能优良、质量一流的电子产品。
1.6 EDA的工程设计流程 假设我们需要建造一栋楼房,第一,我们需要进行“建筑设计”——用各种设计图纸把我们的建筑设想表示出来;第二,我们要进行“建筑预算”——根据投资规模、拟建楼房的结构及有关建房的经验数据等计算需要多少基本的建筑材料(如砖、水泥、预制块、门、窗户等);
第三,根据建筑设计和建筑预算进行“施工设计”——这些砖、水泥、预制块、门、窗户等具体砌在房子的什么部位,相互之间怎样连接;第四,根据施工图进行“建筑施工”——将这些砖、水泥、预制块、门、窗户等按照规定施工建成一栋楼房;最后,施工完毕后,还要进行“建筑验收”——检验所建楼房是否符合设计要求。同时,在整个建设过程中,我们可能需要做出某些“建筑模型”或进行某些“建筑实验”。
那么,对于目标器件为FPGA和CPLD的VHDL设计,其工程设计步骤如何呢?EDA的工程设计流程与上面所描述的基建流程类似:第一需要进行“源程序的编辑和编译”——用一定的逻辑表达手段将设计表达出来;第二要进行“逻辑综合”——将用一定的逻辑表达手段表达出来的设计,经过一系列的操作,分解成一系列的基本逻辑电路及对应关系(电路分解);
第三要进行“目标器件的布线/适配”——在选定的目标器件中建立这些基本逻辑电路及对应关系(逻辑实现);第四,目标器件的编程/下载——将前面的软件设计经过编程变成具体的设计系统(物理实现);最后,要进行硬件仿真/硬件测试——验证所设计的系统是否符合设计要求。同时,在设计过程中要进行有关“仿真”——模拟有关设计结果与设计构想是否相符。综上所述,EDA的工程设计的基本流程如图1.1所示,现具体阐述如下。
图1.1 EDA工程设计流程图
1. 源程序的编辑和编译 利用EDA技术进行一项工程设计,首先需利用EDA工具的文本编辑器或图形编辑器将它用文本方式或图形方式表达出来,进行排错编译,变成VHDL文件格式,为进一步的逻辑综合做准备。 常用的源程序输入方式有三种。
(1) 原理图输入方式:利用EDA工具提供的图形编辑器以原理图的方式进行输入。原理图输入方式比较容易掌握,直观且方便,所画的电路原理图(请注意,这种原理图与利用Protel画的原理图有本质的区别)与传统的器件连接方式完全一样,很容易被人接受,而且 编辑器中有许多现成的单元器件可以利用,自己也可以根据需要设计元件。然而原理图输入法的优点同时也是它的缺点:
① 随着设计规模的增大,设计的易读性迅速下降,对于图中密密麻麻的电路连线,极难搞清电路的实际功能;② 一旦完成,电路结构的改变将十分困难,因而几乎没有可再利用的设计模块;③ 移植困难、入档困难、交流困难、设计交付困难,因为不可能存在一个标准化的原理图编辑器。
(2) 状态图输入方式:以图形的方式表示状态图进行输入。当填好时钟信号名、状态转换条件、状态机类型等要素后,就可以自动生成VHDL程序。这种设计方式简化了状态机的设计,比较流行。 (3) VHDL软件程序的文本方式:最一般化、最具普遍性的输入方法,任何支持VHDL的EDA工具都支持文本方式的编辑和编译。
2. 逻辑综合和优化 欲把VHDL的软件设计与硬件的可实现性挂钩,需要利用EDA软件系统的综合器进行逻辑综合。 所谓逻辑综合,就是将电路的高级语言描述(如HDL、原理图或状态图形的描述)转换成低级的,可与FPGA/CPLD或构成ASIC的门阵列基本结构相映射的网表文件。
编译器和综合功能比较 CPU指令/数据代码: COMPILER 010010 100010 1100 硬件描述语言 SYNTHESIZER C、ASM... 程序 软件程序编译器 COMPILER CPU指令/数据代码: 010010 100010 1100 (a)软件语言设计目标流程 硬件描述语言 综合器 SYNTHESIZER VHDL/VERILOG. 程序 为ASIC设计提供的 电路网表文件 (b)硬件语言设计目标流程
由于VHDL仿真器的行为仿真功能是面向高层次的系统仿真,只能对VHDL的系统描述作可行性的评估测试,不针对任何硬件系统,因此基于这一仿真层次的许多VHDL语句不能被综合器所接受。
3. 目标器件的布线/适配 所谓逻辑适配,就是将由综合器产生的网表文件针对某一具体的目标器进行逻辑映射操作,其中包括底层器件配置、逻辑分割、逻辑优化、布线与操作等,配置于指定的目标器件中,产生最终的下载文件,如JEDEC格式的文件。
适配所选定的目标器件(FPGA/CPLD芯片)必须属于原综合器指定的目标器件系列。对于一般的可编程模拟器件所对应的EDA软件来说,一般仅需包含一个适配器就可以了,如Lattice的PAC–DESIGNER。通常,EDA软件中的综合器可由专业的第三方EDA公司提供,而适配器则需由FPGA/CPLD供应商自己提供,因为适配器的适配对象直接与器件结构相对应。
4. 目标器件的编程/下载 如果编译、综合、布线/适配和行为仿真、功能仿真、时序仿真等过程都没有发现问题,即满足原设计的要求,则可以将由FPGA/CPLD布线/适配器产生的配置/下载文件通过编程器或下载电缆载入目标芯片FPGA或CPLD中。 通常,对CPLD的下载称为编程(Program),对FPGA中的SRAM进行直接下载的方式称为配置(Configure),但对于OTP FPGA的下载和对FPGA的专用配置ROM的下载仍称为编程.
5. 设计过程中的有关仿真 设计过程中的仿真有三种,它们是行为仿真、功能仿真和时序仿真。 所谓行为仿真,就是将VHDL设计源程序直接送到VHDL仿真器中所进行的仿真。该仿真只是根据VHDL的语义进行的,与具体电路没有关系。在这种仿真中,可以充分发挥VHDL中的适用于仿真控制的语句及有关的预定义函数和库文件。
所谓功能仿真,就是将综合后的VHDL网表文件再送到VHDL仿真器中所进行的仿真。
6. 硬件仿真/硬件测试 所谓硬件仿真,就是在ASIC设计中,常利用FPGA对系统的设计进行功能检测,通过后再将其VHDL设计以ASIC形式实现的过程。 所谓硬件测试,就是FPGA或CPLD直接用于应用系统的设计中,将下载文件下载到FPGA后,对系统的设计进行的功能检测的过程。
硬件仿真和硬件测试的目的,是为了在更真实的环境中检验VHDL设计的运行情况,特别是对于VHDL程序设计上不是十分规范、语义上含有一定歧义的程序。
EDA与传统电子设计方法的比较
1.7 数字系统的设计 1.7.1 数字系统的设计模型 数字系统指的是交互式的、以离散形式表示的,具有存储、传输、信息处理能力的逻辑子系统的集合。用于描述数字系统的模型有多种,各种模型描述数字系统的侧重点不同。下面介绍一种普遍采用的模型。这种模型根据数字系统的定义,将整个系统划分为两个模块或两个子系统:数据处理子系统和控制子系统,如图1.2所示。
图1.2 数字系统的设计模型
数据处理子系统主要完成数据的采集、存储、运算和传输。数据处理子系统主要由存储器、运算器、数据选择器等功能电路组成。数据处理子系统与外界进行数据交换,在控制子系统(或称控制器)发出的控制信号作用下,数据处理子系统将进行数据的存储和运算等操作。数据处理子系统将接收由控制器发出的控制信号,同时将自己的操作进程或操作结果作为条件信号传送给控制器。应当根据数字系统实现的功能或算法设计数据处理子系统。
控制子系统是执行数字系统算法的核心,具有记忆功能,因此控制子系统是时序系统。控制子系统由组合逻辑电路和触发器组成,与数据处理子系统共用时钟。 把数字系统划分成数据处理子系统和控制子系统进行设计,这只是一种手段,不是目的。它用来帮助设计者有层次地理解和处理问题,进而获得清晰、完整、正确的电路图。因此,数字系统的划分应当遵循自然、易于理解的原则。
设计一个数字系统时,采用该模型的优点是: (1) 把数字系统划分为控制子系统和数据处理子系统两个主要部分,使设计者面对的电路规模减小,二者可以分别设计。 (2) 由于数字系统中控制子系统的逻辑关系比较复杂,将其独立划分出来后,可突出设计重点和分散设计难点。 (3) 当数字系统划分为控制子系统和数据处理子系统后,逻辑分工清楚,各自的任务明确,这可以使电路的设计、调测和故障处理都比较方便。
1.7.2 数字系统的设计方法 数字系统设计有多种方法,如模块设计法、自顶向下设计法和自底向上设计法等。 数字系统的设计一般采用自顶向下、由粗到细、逐步求精的方法。
采用自顶向下的设计方法有如下优点: (1) 自顶向下设计方法是一种模块化设计方法。对设计的描述从上到下逐步由粗略到详细,符合常规的逻辑思维习惯。 (2) 适合多个设计者同时进行设计。随着技术的不断进步,许多设计由一个设计者已无法完成,由多个设计者分工协作完成一项设计的情况越来越多。
针对具体的设计,实施自顶向下的设计方法的形式会有所不同,但均需遵循以下两条原则:逐层分解功能和分层次进行设计。同时,应在各个设计层次上,考虑相应的仿真验证问题。
1.7.3 数字系统的设计准则 进行数字系统设计时,通常需要考虑多方面的条件和要求,如设计的功能和性能要求,元器件的资源分配和设计工具的可实现性,系统的开发费用和成本等。虽然具体设计的条件和要求千差万别,实现的方法也各不相同,但数字系统设计还是具备一些共同的方法和准则的。
1.分割准则 自顶向下的设计方法或其他层次化的设计方法,需要对系统功能进行分割,然后用逻辑语言进行描述。分割过程中,若分割过粗,则不易用逻辑语言表达;分割过细,则带来不必要的重复和繁琐。
2.系统的可观测性 在系统设计中,应该同时考虑功能检查和性能的测试,即系统观测性的问题。一些有经验的设计者会自觉地在设计系统的同时设计观测电路,即观测器,指示系统内部的工作状态。 建立观测器,应遵循以下原则:具有系统的关键点信号,如时钟、同步信号和状态等信号;具有代表性的节点和线路上的信号;具备简单的“系统工作是否正常”的判断能力。
3.同步和异步电路 异步电路会造成较大延时和逻辑竞争,容易引起系统的不稳定,而同步电路则是按照统一的时钟工作,稳定性好。因此,在设计时应尽可能采用同步电路进行设计,避免使用异步电路。在必须使用异步电路时,应采取措施来避免竞争和增加稳定性。
4.最优化设计 由于可编程器件的逻辑资源、连接资源和I/O资源有限,器件的速度和性能也是有限的,用器件设计系统的过程相当于求最优解的过程,因此,需要给定两个约束条件:边界条件和最优化目标。
所谓边界条件,是指器件的资源及性能限制。最优化目标有多种,设计中常见的最优化目标有:器件资源利用率最高;系统工作速度最快,即延时最小;布线最容易,即可实现性最好。具体设计中,各个最优化目标间可能会产生冲突,这时应满足设计的主要要求。
5.系统设计的艺术 一个系统的设计,通常需要经过反复的修改、优化才能达到设计的要求。一个好的设计,应该满足“和谐”的基本特征,对数字系统可以根据以下几点做出判断: 设计是否总体上流畅,无拖泥带水的感觉;资源分配、I/O分配是否合理,设计上和性能上是否有瓶颈,系统结构是否协调;是否具有良好的可观测性;是否易于修改和移植;器件的特点是否能得到充分的发挥。
1.7.4 数字系统的设计步骤 1.系统任务分析 数字系统设计中的第一步是明确系统的任务。在设计任务书中,可用各种方式提出对整个数字系统的逻辑要求,常用的方式有自然语言、逻辑流程图、时序图或几种方法的结合。当系统较大或逻辑关系较复杂时,系统任务(逻辑要求)逻辑的表述和理解都不是一件容易的工作。所以,分析系统的任务必须细致、全面,不能有理解上的偏差和疏漏。
2.确定逻辑算法 实现系统逻辑运算的方法称为逻辑算法,也简称为算法。一个数字系统的逻辑运算往往有多种算法,设计者的任务不但是要找出各种算法,还必须比较优劣,取长补短,从中确定最合理的一种。数字系统的算法是逻辑设计的基础,算法不同,则系统的结构也不同,算法的合理与否直接影响系统结构的合理性。确定算法是数字系统设计中最具创造性的一环,也是最难的一步。
3.建立系统及子系统模型 当算法明确后,应根据算法构造系统的硬件框架(也称为系统框图),将系统划分为若干个部分,各部分分别承担算法中不同的逻辑操作功能。如果某一部分的规模仍嫌大,则需进一步划分。划分后的各个部分应逻辑功能清楚,规模大小合适,便于进行电路级的设计。
4.系统(或模块)逻辑描述 当系统中各个子系统(指最低层子系统)和模块的逻辑功能和结构确定后,则需采用比较规范的形式来描述系统的逻辑功能。设计方案的描述方法可以有多种,常用的有方框图、流程图和描述语言等。 对系统的逻辑描述可先采用较粗略的逻辑流程图,再将逻辑流程图逐步细化为详细逻辑流程图,最后将详细逻辑流程图表示成与硬件有对应关系的形式,为下一步的电路级设计提供依据。
5.逻辑电路级设计及系统仿真 电路级设计是指选择合理的器件和连接关系以实现系统逻辑要求。电路级设计的结果常采用两种方式来表达:电路图方式和硬件描述语言方式。EDA软件允许以这两种方式输入,以便作后续的处理。
6.系统的物理实现 物理实现是指用实际的器件实现数字系统的设计,用仪表测量设计的电路是否符合设计要求。现在的数字系统往往采用大规模和超大规模集成电路,由于器件集成度高、导线密集,故一般在电路设计完成后即设计印刷电路板,在印刷电路板上组装电路进行测试。需要注意的是,印刷电路板本身的物理特性也会影响电路的逻辑关系。
1.8 EDA技术的应用展望 1. EDA技术将广泛应用于高校电类专业的实践教学工作中 用VHDL语言可以对各种数字集成电路芯片进行方便的描述,经过生成元件后可作为一个标准元件进行调用。同时,借助于VHDL开发设计平台,可以进行系统的功能仿真和时序仿真;借助于实验开发系统可以进行硬件功能验证等,因而,可大大地简化数字电子技术的实验,并可根据学生的设计不受限制地开展各种实验。
2. EDA技术将广泛应用于科研工作和新产品的开发中
3. EDA技术将广泛应用于专用集成电路的开发 可编程器件制造厂家可按照一定的规格以通用器件形式大量生产,用户可按通用器件从市场上选购,然后按自己的要求通过编程实现专用集成电路的功能。因此,对于集成电路制造技术与世界先进的集成电路制造技术尚有一定差距的我国,开发具有自主知识产权的专用集成电路,已成为相关专业人员的重要任务。
4. EDA技术将广泛应用于传统机电设备的升级换代和技术改造
习 题 1.1 EDA的英文全称是什么?EDA的中文含义是什么? 1.2 什么叫EDA技术? 习 题 1.1 EDA的英文全称是什么?EDA的中文含义是什么? 1.2 什么叫EDA技术? 1.3 利用EDA技术进行电子系统的设计有什么特点? 1.4 从使用的角度来讲,EDA技术主要包括几个方面的内容?这几个方面在整个电子系统的设计中分别起什么作用?
1.5 什么叫可编程逻辑器件(简称PLD)? FPGA和CPLD的中文含义分别是什么?国际上生产FPGA/CPLD的主流公司,并且在国内占有较大市场份额的主要有哪几家?其产品系列有哪些?其可用逻辑门/等效门数大约在什么范围? 1.6 FPGA和CPLD各包括几个基本组成部分? 1.7 FPGA/CPLD有什么特点?二者在存储逻辑信息方面有什么区别?在实际使用中,在什么情况下选用CPLD,在什么情况下选用FPGA?
1.8 常用的硬件描述语言有哪几种?这些硬件描述语言在逻辑描述方面有什么区别? 1.9 目前比较流行的、主流厂家的EDA的软件工具有哪些?这些开发软件的主要区别是什么? 1.10 对于目标器件为FPGA/CPLD的VHDL设计,其工程设计包括几个主要步骤?每步的作用是什么?每步的结果是什么? 1.11 名词解释:逻辑综合、逻辑适配、行为仿真、功能仿真、时序仿真。 1.12 谈谈你对EDA技术应用的展望。