主编李中发制作李中发2005年1月电子技术第11章电子设计自动化学习要点•了解EDA技术的发展概况•了解简单可编程逻辑器件的构造和工作原理•掌握用PROM和PLA实现组合逻辑函数的方法•了解高密度可编程逻辑器件的构造及应用•11.1电子设计自动化概述•11.2简单可编程逻辑器件•11.3高密度可编程逻辑器件•11.4PLD开发工具Max+plusⅡ第11章电子设计自动化11.1电子设计自动化概述EDA技术:是指以计算机硬件和系统软件为基本工作平台,利用PLD器件和EDA开发工具,在计算机上完成电路的功能设计、逻辑设计、性能分析、时序测试直至印刷电路板(简称PCB)的自动设计。11.1.1EDA技术发展概况集成电路技术方面:1958年出现了第一块数字集成电路。20世纪60年代初出现了小规模集成电路和中规模集成电路。1967年,数字集成电路跨入大规模集成电路时代,在一块芯片上集成1000个以上的晶体管。1977年出现了在一块芯片上集成13万个晶体管的集成电路,从而使数字集成电路进入了超大规模集成电路时代。1998年,数字集成电路达到了在一块芯片上集成超过一亿个晶体管或基本单元的规模。从20世纪70年代起,在集成电路版图设计方面,出现了基于门阵列和标准单元的计算机辅助设计工具;在系统设计方面,出现了计算机辅助电路分析工具和逻辑综合与优化工具,以及简单可编程逻辑器件。20世纪80年代出现了PCB自动布局布线工具,标准的硬件描述语言HDL及其仿真工具,以及复杂可编程逻辑器件。20世纪90年代出现了可编程模拟电路,以及标准HDL的综合工具,电子设计才真正进入了自动化时期。进入21世纪,又出现了可编程片上系统。11.1.2EDA技术的特征现代EDA技术的基本特征是采用高级语言描述,具有系统级仿真和综合能力。与这些基本特征有关的技术有自顶向下设计方法、硬件描述语言(HDL)、逻辑综合优化、开放性和标准化以及库的引入。11.1.3电子系统的仿真、综合与实现电子系统的仿真是用计算机模仿电子系统的实际工作情况。因此,仿真时要在计算机上建立电子元件和模块的功能模型,还要将系统(电路)的构成描述给计算机。此外,设计工程师还要为被仿真的电路设计适当的输入信号,在计算机模拟结果出来后要对其进行分析,从而判定电路正确与否。根据设计验证的不同层次和要求,仿真分为系统仿真、逻辑仿真、时序仿真、电路仿真等。电子系统的综合是将较高层次的描述转换为由低层次便于实现的模块所装配成的统一实体。综合分高层综合、逻辑综合和版图综合。高层综合是从系统级(算法级)的行为(功能)描述产生功能级的结构描述。逻辑综合是将功能级描述转化为逻辑(门)级的描述。版图综合是在逻辑综合完成后,由门级和电路级向物理版图描述的转换,完成最终的布局布线。电子系统的实现方式通常有通用集成电路、可编程器件和定制集成电路3种方式。11.2简单可编程逻辑器件11.2.1PLD的结构、分类和内部电路表示方法输入电路与门阵列或门阵列……输入输出输入项与项或项输出电路1&≥1ABCDABCDY=A·C·DY=A+B+CAAA××(a)缓冲器画法(b)与门画法(c)或门画法PLD的基本结构PLD内部电路的简化画法11ABY1Y2≥1≥1&&&&11ABY1Y2≥1≥1&&&&AABBY1Y2与阵列或阵列SPLD的分类分类与阵列或阵列输出电路编程方式PROM固定可编程固定熔丝PLA可编程可编程固定熔丝PAL可编程固定固定熔丝GAL可编程固定可组态电可擦除11.2.2PROM及其应用111A2A1A0D2D1D0与阵列(固定)&&&&&&&&≥1≥1≥1或阵列(可编程)PROM的阵列结构例用PROM实现下列一组函数ABCCABBCACBAYADACDCADABYACCBBAYABCDDABCABBAY4321用PROM实现组合逻辑函数的方法与ROM相同,即首先列出要实现的逻辑函数的真值表,然后再根据真值表画出用PROM实现这些逻辑函数的阵列图。真值表ABCDY1Y2Y3Y400000001001000110100010101100111100010011010101111001101111011110000000000010001010001000101010110001010111011111111111111111111阵列图Y1Y2Y3Y4AABBCCDD11.2.3PLA及其应用PLA的阵列结构111I2I1I0O2O1O0与阵列(可编程)&&&&&&≥1≥1≥1或阵列(可编程)用PLA实现逻辑函数的基本原理是基于函数的最简与或表达式,故首先需要将逻辑函数化为最简与或表达式,然后根据最简与或表达式画出PLA的阵列图。例用PLA实现下列一组函数ABCCABBCACBAYADACDCADABYACCBBAYABCDDABCABBAY4321化简CAABYADACABYACBYAY4321阵列图AABBCCDDY1Y2Y3Y411.2.4PAL及其应用PAL的阵列结构111I3I2I1I0O3O2O1O0与阵列(可编程)&≥1或阵列(固定)1&&&&&&&&&&&&&&&≥1≥1≥11I3O3&&&&111I2I1I0≥1≥1≥1≥1O2O1O0专用输出结构1I输入O&≥1可编程I/O结构1I输入、反馈及I/OI/O&≥111EN带反馈的寄存器结构1I输入、反馈及I/OI/O&≥111ENDQCQ异或型输出结构I/O&1I≥1输入、反馈及I/O11ENDQCQ=1例如图所示为用PAL实现的一组组合逻辑函数,试写出该组逻辑函数的表达式。1AY3&&&&111BCD≥1≥1≥1≥1Y2Y1Y0解根据如图所示PAL与阵列的编程情况可知,函数Y3是由4个与项相加组成的,这4个与项分别为ABC、BCD、ACD和ABD,所以函数Y3的表达式为:ABDACDBCDABCY3同理,函数Y2是由3个与项、和相加组成的,函数Y1是由2个与项和相加组成的,函数Y0是由个与项AB和相加组成的,所以:BAABYBABAYDCBBAY01211.2.5GAL111912&1OLMC11813&1OLMC11714&1OLMC11615&1OLMC11516&1OLMC11417&1OLMC11318&1OLMC11219&1OLMC11OEC048121620242811(19)(18)(17)(16)(15)(14)(13)(12)0871516232431323940474855566337111519232731GAL器件在制造工艺上采用了EECMOS工艺,可以反复编程,且集成度比PAL有了较大的提高,其与阵列的规模大大超过了PAL,每个或门的输入端数增加到8~10个,可实现较为复杂的逻辑函数。在结构上,GAL不但直接继承了PAL器件的由一个可编程与阵列驱动一个固定或阵列的结构,而且还具有可编程的输出逻辑宏单元(简称OLMC)。通过对OLMC编程,可实现多种形式的输出,使用起来比PAL更加灵活方便。1110010001≥1=1DQQ011UCCAC0AC1(m)AC1(n)I/O(n)接与阵列反馈COEOECPTMUXTSMUXOMUXFMUX≥1&XOR(n)接邻级输出(m)AC1(n)AC011100100GAL16V8中OLMC的结构OLMC输出状态与结构控制字SYN、AC0、AC1(n)的关系SYNAC0AC1(n)功能说明010寄存器输出纯时序输出011组合与寄存器混合输出本单元组合输出,其他单元至少一个寄存器输出100纯组合输出无内部反馈和使能控制101纯输入方式输入为I/O(m),三态门禁止111组合输出组合I/O输出,第一乘积项控制输出使能11.3高密度可编程逻辑器件CPLD基本上沿用了GAL的阵列结构,在一个器件内集成了多个类似GAL的大模块,大模块之间通过一个可编程集中布线区连接起来。在GAL中只有一部分引脚是可编程的(OLMC),其他引脚都是固定的输入脚。而在CPLD中,所有的信号引脚都可编程,既可做输入,又可做输出,故称为I/O脚。11.3.1CPLD如图所示给出了一个典型CPLD的内部结构框图。总布线区(GRP)是一个二维的开关阵列,负责将输入信号送入通用逻辑模块,并提供通用逻辑模块之间的连接通路。在GRP两侧各有一个巨模块,每个巨模块含8个通用逻辑模块(GLB)、一个输出布线区(ORP)、一组输入总线和16个输入/输出模块(IOC)。11.3.2FPGAFPGA是由普通的门阵列(需在制造厂加工,又称为掩膜门阵列)发展而来的,其结构与CPLD大不相同,其内部含有成千上万个较小的逻辑单元,所以在布局上呈二维分布。要将如此众多的逻辑单元连接起来,需要丰富的连线资源,其布线的难度和复杂性较高。Xilinx公司的XC系列FPGA器件由可编程输入/输出模块(简称IOB)、可编程逻辑模块(简称CLB)和可编程连线资源(简称PI)3种可编程逻辑单元组成。CLBI/OB可编程内部连线输入缓冲器OFFONMUX2DMUX1I/O输出三态控制ST输入输出缓冲器OEQI/O时钟输入通道输出通道XC系列FPGA的内部结构框图可编程输入/输出模块(I/OB)MUX1组合逻辑电路ABCD输入输出XYGFK时钟DSRQ存储电路XC系列FPGA的CLB结构开关矩阵开关矩阵CLBBCKADXYCLBCLBCLBCLBCLB直接连线垂直通用连线垂直长线水平通用连线水平长线XC系列FPGA的PI连接方式11.3.3CPLD/FPGA的编程技术在系统编程技术ISP:ISP技术采用EECMOS工艺,其编程数据存储在EEPROM中,通过电信号擦写,无需专用的编程器就可编程,可预先将器件安装在电路板上,预留编程口(插座),用微机通过编程电缆就可以在线对器件编程,使用非常方便。ISP技术采取了在信号引脚上增加三态门和增加编程接口与控制电路两项措施来实现在系统编程。在线配置技术ICR:ICR技术采用SRAM工艺,在线写入,无需专用的写入器。由于SRAM所存信息掉电时无法保存,因此每次通电都必须重新写入编程数据,这类FPGA的编程称为配置。由于SRAM的写入次数没有限制,因此可无穷多次的配置。FPGA有多种在线配置方式可分成被动配置和主动配置两类。反熔丝编程技术:反熔丝开关是由在多晶硅与扩散层之间夹有特殊介质的可编程低阻元件构成的开关。未编程时多晶硅与扩散层呈高阻状态;在多晶硅和扩散层两端加上编程电压时介质击穿,多晶硅与扩散层导通。由于介质一旦被击穿就无法还原,所以这是一种一次性编程方法。11.4PLD开发工具MAX+plusⅡ11.4.1PLD的设计过程设计输入:将所设计的电路以开发软件要求的某种形式表达出来,并输入到相应的软件中。主要包括原理图输入方式、硬件描述语言输入方式、高级设计输入方式、波形设计输入方式、层次设计输入方式和底层设计输入方式,最常用的是原理图输入方式和硬件描述语言输入方式两种。设计实现:由EDA开发工具根据设计输入文件自动生成用于器件编程、波形仿真及延时分析等所需的数据文件。通常设计实现是由EDA开发工具自动完成的,设计者只能通过设置一些控制参数来控制设计实现过程。设计实现时主要完成优化和合并、映射、布局和布线以及生成编程文件4个任务。设计校验:包括功能仿真和时序仿真两部分,这一步通过功能仿真器和时序分析器来完成,利用编译器产生的数据文件自动完成逻辑功能仿真和时序特性仿真。在仿真文件中加载不同的激励,可以观察中间结果以及输出波形。必要时,可以返回设计输入阶段,修改设计输入,最终达到设计要求。下载编程:将设计阶段生成的编程文件(熔丝图文件或位流文件)装入到可编程器件中。由于器件编程需要满足一定的条件,如编程电压、编程时序、编程算法等,因此,对于不能进行在系统编程(ISP)的CPLD器件和不能在线配置(ICR)的FPGA器件,需要编程专用设备(编程器)完成器件编程。11.4.2设计输入指定项目名称:在管理器窗口的File→Proje