1 / 39

主编 李中发 制作 李中发 2005年1月

电子技术. 主编 李中发 制作 李中发 2005年1月. 第11章 电子设计自动化. 学习要点 了解 EDA 技术的发展概况 了解简单可编程逻辑器件的构造和工作原理 掌握用 PROM 和 PLA 实现组合逻辑函数的方法 了解高密度可编程逻辑器件的构造及应用. 第11章 电子设计自动化. 11.1 电子设计自动化概述 11.2 简单可编程逻辑器件 11.3 高密度可编程逻辑器件 11.4 PLD 开发工具 Max+plusⅡ. 11.1 电子设计自动化概述.

weylin
Download Presentation

主编 李中发 制作 李中发 2005年1月

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 电子技术 主编 李中发 制作 李中发 2005年1月

  2. 第11章 电子设计自动化 • 学习要点 • 了解EDA技术的发展概况 • 了解简单可编程逻辑器件的构造和工作原理 • 掌握用PROM和PLA实现组合逻辑函数的方法 • 了解高密度可编程逻辑器件的构造及应用

  3. 第11章 电子设计自动化 • 11.1 电子设计自动化概述 • 11.2 简单可编程逻辑器件 • 11.3 高密度可编程逻辑器件 • 11.4 PLD开发工具Max+plusⅡ

  4. 11.1 电子设计自动化概述 EDA技术:是指以计算机硬件和系统软件为基本工作平台,利用PLD器件和EDA开发工具,在计算机上完成电路的功能设计、逻辑设计、性能分析、时序测试直至印刷电路板(简称PCB)的自动设计。

  5. 11.1.1 EDA技术发展概况 集成电路技术方面:1958年出现了第一块数字集成电路。20世纪60年代初出现了小规模集成电路和中规模集成电路。1967年,数字集成电路跨入大规模集成电路时代,在一块芯片上集成1000个以上的晶体管。1977年出现了在一块芯片上集成13万个晶体管的集成电路,从而使数字集成电路进入了超大规模集成电路时代。1998年,数字集成电路达到了在一块芯片上集成超过一亿个晶体管或基本单元的规模。 从20世纪70年代起,在集成电路版图设计方面,出现了基于门阵列和标准单元的计算机辅助设计工具;在系统设计方面,出现了计算机辅助电路分析工具和逻辑综合与优化工具,以及简单可编程逻辑器件。20世纪80年代出现了PCB自动布局布线工具,标准的硬件描述语言HDL及其仿真工具,以及复杂可编程逻辑器件。20世纪90年代出现了可编程模拟电路,以及标准HDL的综合工具,电子设计才真正进入了自动化时期。进入21世纪,又出现了可编程片上系统。

  6. 11.1.2 EDA技术的特征 现代EDA技术的基本特征是采用高级语言描述,具有系统级仿真和综合能力。与这些基本特征有关的技术有自顶向下设计方法、硬件描述语言(HDL)、逻辑综合优化、开放性和标准化以及库的引入。

  7. 11.1.3电子系统的仿真、综合与实现 电子系统的仿真是用计算机模仿电子系统的实际工作情况。因此,仿真时要在计算机上建立电子元件和模块的功能模型,还要将系统(电路)的构成描述给计算机。此外,设计工程师还要为被仿真的电路设计适当的输入信号,在计算机模拟结果出来后要对其进行分析,从而判定电路正确与否。根据设计验证的不同层次和要求,仿真分为系统仿真、逻辑仿真、时序仿真、电路仿真等。 电子系统的综合是将较高层次的描述转换为由低层次便于实现的模块所装配成的统一实体。综合分高层综合、逻辑综合和版图综合。高层综合是从系统级(算法级)的行为(功能)描述产生功能级的结构描述。逻辑综合是将功能级描述转化为逻辑(门)级的描述。版图综合是在逻辑综合完成后,由门级和电路级向物理版图描述的转换,完成最终的布局布线。 电子系统的实现方式通常有通用集成电路、可编程器件和定制集成电路3种方式。

  8. 11.2 简单可编程逻辑器件 11.2.1 PLD的结构、分类和内部电路表示方法 PLD的基本结构 PLD内部电路的简化画法

  9. SPLD的分类

  10. 11.2.2 PROM及其应用 PROM的阵列结构

  11. 用PROM实现组合逻辑函数的方法与ROM相同,即首先列出要实现的逻辑函数的真值表,然后再根据真值表画出用PROM实现这些逻辑函数的阵列图。用PROM实现组合逻辑函数的方法与ROM相同,即首先列出要实现的逻辑函数的真值表,然后再根据真值表画出用PROM实现这些逻辑函数的阵列图。 例 用PROM实现下列一组函数

  12. 真值表

  13. 阵列图

  14. 11.2.3 PLA及其应用 PLA的阵列结构

  15. 用PLA实现逻辑函数的基本原理是基于函数的最简与或表达式,故首先需要将逻辑函数化为最简与或表达式,然后根据最简与或表达式画出PLA的阵列图。用PLA实现逻辑函数的基本原理是基于函数的最简与或表达式,故首先需要将逻辑函数化为最简与或表达式,然后根据最简与或表达式画出PLA的阵列图。 例 用PLA实现下列一组函数

  16. 化简 阵列图

  17. 11.2.4 PAL及其应用 PAL的阵列结构

  18. 专用输出结构 可编程I/O结构

  19. 带反馈的寄存器结构 异或型输出结构

  20. 如图所示为用PAL实现的一组组合逻辑函数,试写出该组逻辑函数的表达式。 解 根据如图所示PAL与阵列的编程情况可知,函数Y3是由4个与项相加组成的,这4个与项分别为ABC、BCD、ACD和ABD,所以函数Y3的表达式为: 同理,函数Y2是由3个与项、和相加组成的,函数Y1是由2个与项和相加组成的,函数Y0是由个与项AB和相加组成的,所以:

  21. 11.2.5 GAL GAL器件在制造工艺上采用了EECMOS工艺,可以反复编程,且集成度比PAL有了较大的提高,其与阵列的规模大大超过了PAL,每个或门的输入端数增加到8~10个,可实现较为复杂的逻辑函数。在结构上,GAL不但直接继承了PAL器件的由一个可编程与阵列驱动一个固定或阵列的结构,而且还具有可编程的输出逻辑宏单元(简称OLMC)。通过对OLMC编程,可实现多种形式的输出,使用起来比PAL更加灵活方便。

  22. GAL16V8中OLMC的结构

  23. 11.3 高密度可编程逻辑器件 11.3.1 CPLD CPLD基本上沿用了GAL的阵列结构,在一个器件内集成了多个类似GAL的大模块,大模块之间通过一个可编程集中布线区连接起来。在GAL中只有一部分引脚是可编程的(OLMC),其他引脚都是固定的输入脚。而在CPLD中,所有的信号引脚都可编程,既可做输入,又可做输出,故称为I/O脚。 如图所示给出了一个典型CPLD的内部结构框图。总布线区(GRP)是一个二维的开关阵列,负责将输入信号送入通用逻辑模块,并提供通用逻辑模块之间的连接通路。在GRP两侧各有一个巨模块,每个巨模块含8个通用逻辑模块(GLB)、一个输出布线区(ORP)、一组输入总线和16个输入/输出模块(IOC)。

  24. 11.3.2 FPGA FPGA是由普通的门阵列(需在制造厂加工,又称为掩膜门阵列)发展而来的,其结构与CPLD大不相同,其内部含有成千上万个较小的逻辑单元,所以在布局上呈二维分布。要将如此众多的逻辑单元连接起来,需要丰富的连线资源,其布线的难度和复杂性较高。 Xilinx公司的XC系列FPGA器件由可编程输入/输出模块(简称IOB)、可编程逻辑模块(简称CLB)和可编程连线资源(简称PI)3种可编程逻辑单元组成。

  25. XC系列FPGA的内部结构框图 可编程输入/输出模块(I/OB)

  26. XC系列FPGA的CLB结构

  27. XC系列FPGA的PI连接方式

  28. 11.3.3 CPLD/FPGA的编程技术 在系统编程技术ISP:ISP技术采用EECMOS工艺,其编程数据存储在EEPROM中,通过电信号擦写,无需专用的编程器就可编程,可预先将器件安装在电路板上,预留编程口(插座),用微机通过编程电缆就可以在线对器件编程,使用非常方便。ISP技术采取了在信号引脚上增加三态门和增加编程接口与控制电路两项措施来实现在系统编程。 在线配置技术ICR:ICR技术采用SRAM工艺,在线写入,无需专用的写入器。由于SRAM所存信息掉电时无法保存,因此每次通电都必须重新写入编程数据,这类FPGA的编程称为配置。由于SRAM的写入次数没有限制,因此可无穷多次的配置。FPGA有多种在线配置方式可分成被动配置和主动配置两类。 反熔丝编程技术:反熔丝开关是由在多晶硅与扩散层之间夹有特殊介质的可编程低阻元件构成的开关。未编程时多晶硅与扩散层呈高阻状态;在多晶硅和扩散层两端加上编程电压时介质击穿,多晶硅与扩散层导通。由于介质一旦被击穿就无法还原,所以这是一种一次性编程方法。

  29. 11.4 PLD开发工具MAX+plusⅡ 11.4.1 PLD的设计过程 设计输入:将所设计的电路以开发软件要求的某种形式表达出来,并输入到相应的软件中。主要包括原理图输入方式、硬件描述语言输入方式、高级设计输入方式、波形设计输入方式、层次设计输入方式和底层设计输入方式,最常用的是原理图输入方式和硬件描述语言输入方式两种。 设计实现:由EDA开发工具根据设计输入文件自动生成用于器件编程、波形仿真及延时分析等所需的数据文件。通常设计实现是由EDA开发工具自动完成的,设计者只能通过设置一些控制参数来控制设计实现过程。设计实现时主要完成优化和合并、映射、布局和布线以及生成编程文件4个任务。

  30. 设计校验:包括功能仿真和时序仿真两部分,这一步通过功能仿真器和时序分析器来完成,利用编译器产生的数据文件自动完成逻辑功能仿真和时序特性仿真。在仿真文件中加载不同的激励,可以观察中间结果以及输出波形。必要时,可以返回设计输入阶段,修改设计输入,最终达到设计要求。设计校验:包括功能仿真和时序仿真两部分,这一步通过功能仿真器和时序分析器来完成,利用编译器产生的数据文件自动完成逻辑功能仿真和时序特性仿真。在仿真文件中加载不同的激励,可以观察中间结果以及输出波形。必要时,可以返回设计输入阶段,修改设计输入,最终达到设计要求。 下载编程:将设计阶段生成的编程文件(熔丝图文件或位流文件)装入到可编程器件中。由于器件编程需要满足一定的条件,如编程电压、编程时序、编程算法等,因此,对于不能进行在系统编程(ISP)的CPLD器件和不能在线配置(ICR)的FPGA器件,需要编程专用设备(编程器)完成器件编程。

  31. 11.4.2 设计输入 指定项目名称:在管理器窗口的File→Project菜单中选择Name…项打开Project Name对话框,从Project Name对话框中选择适当的驱动器和目录,键入项目名后点击OK。 1.建立原理图设计文件 (1)打开原理图编辑器。在管理器窗口的File 菜单中选择New…打开New列表框。从New列表框中选择Graphic Editor File和.gdf项,然后点击OK。此时便会出现一个原理图编辑窗口。 (2)输入元件和模块。在原理图编辑窗口空白处双击鼠标左键或在Symbol菜单中选择Enter Symbol,打开Enter Symbol对话框。从Enter Symbol对话框中选择适当的库及所需的器件(模块),然后点击OK。这样所选元件(模块)就会出现在编辑窗口。重复这一步,选择需要的所有模块。相同的模块可以采用复制的方法产生。用鼠标左键选中器件并按住左键拖动,可以将模块放到适当的位置。

  32. (3)放置输入、输出引脚。输入、输出引脚的处理方法与元件一样。在原理图编辑窗口空白处双击鼠标左键或在Symbol菜单中选择Enter Symbol便打开了Enter Symbol对话框。在Symbol Name框中键入input、output或bidir,分别代表输入、输出和双向I/O。点击OK。这样输入或输出引脚便会出现在编辑窗口中。重复这一步产生所有的输入和输出引脚,也可以通过复制的方法得到所有引脚。电源和地与输入、输出引脚类似,也作为特殊元件,采用上述方法在Symbol Name中键入VCC(电源)或GND(地),即可使它们出现在编辑窗口中。 (4)连线。将电路图中的两个端口相连的方法:将鼠标指向一个端口,鼠标箭头会自动变成十字“+”。一直按住鼠标左键拖至另一端口。放开左键,则会在两个端口间产生一根连线。连线时若需要转弯,则在转折处松一下左键,再按住继续移动。连线的粗细通过点鼠标右键弹出菜单中的Line Style来选择,粗线代表总线。 (5)输入/输出引脚和内部连线命名。输入/输出引脚命名:在引脚的PIN-NAME位置双击鼠标左键,然后键入信号名。内部连线的命名方法是:选中连线,然后键入信号名。总线的信号名一般用X[n-1..0]表示,其中的单个信号名为Xn-1、Xn-2、…、X0。

  33. (6)保存文件。在File菜单中选择Save As…或Save,如是第一次保存,需输入文件名。 (7)建立默认的符号文件。在层次化设计中,如果当前编辑的文件不是顶层文件,则往往需要为其产生一个符号,将其打包成一个模块,以便在上层电路设计时加以引用。建立符号文件的方法是,在File菜单中选择Create Default Symbol项即可。 2.建立HDL设计文件 (1)打开文本编辑器。在管理器窗口的File 菜单中选择New…打开New列表框。选择Text Editor File, 此时便会出现一个文本编辑窗口。点击OK。 (2)选择HDL种类。在File菜单中选择Save As…或Save,或在工具栏点击按钮,打开Save As对话框,键入文件名并选择文件扩展名,MAX+plusⅡ支持3种HDL:VHDL、Verilog HDL和Altera HDL,对应的扩展名依次为vhd、v和tdf。这一步也可以等到HDL源码输入完以后再做,但先确定HDL种类可以在键入HDL源码时自动检查并显示其中的语法错误。

  34. (3)输入HDL源码。 (4)保存文件。在File菜单中选择Save,保存输入的HDL源码。 (5)建立默认的符号文件。与由原理图生成符号文件的方法一样。 11.4.3 设计实现 1.编译与网络表提取 运行编译器的方法:在MAX+plusⅡ菜单中选Compiler选项。启动编译器后首先进行编译与电路网络表提取工作。做完这一工作后编译器便停下来等待用户的指示。如果编译中未发现错误,则可以点击窗口中的Start,接着做设计实现的工作。 2.参数设置 编译器有很多参数设置,但并不是每一项都需要用户去设置,有些设置编译器可自动选择(如器件选择、引脚分配等),而其他的设置往往有默认值。 3.运行设计实现 做好必要的设置后,在编译器窗口中按Start就可以连续执行后续的设计步骤,产生的数据文件的扩展名会出现在各个执行框的下方。

  35. 11.4.4 设计校验 1.建立波形文件 (1)打开波形图编辑器。在管理器窗口的File菜单中选择New…打开New列表框。选择Waveform Editor File和.scf项,按OK。此时便会出现一个波形图编辑窗口。 (2)设定时间参数。从File菜单中选择End Time…项,键入仿真结束时间,按OK。在Options菜单中选择Grid Time…项,键入显示网格间距的时间,按OK。 (3)确定需观察的信号。在Node菜单中选择Enter Nodes From SNF…(SNF指仿真网络表文件)项,打开Enter Nodes From SNF对话框。在Type框中选择信号类别,最常用的是Input和Output(输入、输出)。点List按钮,将所选类别的所有信号均列于Available Nodes & Groups框中。从Available Nodes & Groups框中选择信号,然后按“=>”箭头,使所选信号名进入Selected Nodes & Groups框。按OK,所选信号将出现在波形图编辑窗口中。然后根据需要编辑输入波形。最后在File菜单中选择Save As…或Save。如是第一次保存,需输入文件名。

  36. 2.运行仿真程序 在MAX+plusII菜单中选Simulator选项,打开仿真对话框。按Start开始仿真。仿真结束后按Open SCF,在波形编辑窗口中将显示出仿真结果(波形)。 3.仿真结果分析 仿真结果分析由用户人工进行。 11.4.5 下载编程 1.选择编程文件 在编程界面下,从File菜单中选择Convert SRAM Object Files…命令可以由*.SOF文件产生*.POF文件,选择Save Programming Data As…命令可读出已编程器件中的数据或由*.JED文件生成*.POF文件。

  37. 2.下载编程步骤 (1)打开编程窗口。在MAX+plusII菜单中选Programmer选项,打开编程窗口。 (2)硬件连接。在编程界面下,从Options菜单中选择Hardware Setup…,再在Hardware Setup对话框中选择ByteBlaster或BitBlaster,然后用下载电缆将PC机并口(若选ByteBlaster)或串口(若选BitBlaster)与电路板上的PLD连接起来(通过接插件)。请注意:这一步工作最好在关断PC机和电路板电源的情况下进行,可以在开机前预先接好。 (3)选择编程文件。默认情况下,编程文件已根据当前项目名选好,并显示在编程窗口的右上角。如果发现编程文件名不对,可在File菜单中点Select Programming File…项进行选择。 (4)下载。在编程窗口中按Program(对CPLD或配置用EPROM,此时文件为*.POF)或Configure(对FPGA,此时文件为*.SOF)。

More Related