EDA技术与VHDL第2章PLD硬件特性与编程技术2.1PLD概述图2-1基本PLD器件的原理结构图输入缓冲电路与阵列或阵列输出缓冲电路输入输出……2.1.1PLD的发展历程熔丝编程的PROM和PLA器件AMD公司推出PAL器件GAL器件FPGA器件EPLD器件CPLD器件内嵌复杂功能模块的SoPC20世纪70年代20世纪70年代末20世纪80年代初20世纪80年代中期20世纪80年代末进入20世纪90年代后2.1PLD概述2.1.2PLD的分类可编程逻辑器件(PLD)简单PLD复杂PLDPROMPALPLAGALCPLDFPGA图2-2按集成度(PLD)分类2.1PLD概述2.1.2PLD的分类1.熔丝(Fuse)型器件。2.反熔丝(Anti-fuse)型器件。3.EPROM型。称为紫外线擦除电可编程逻辑器件。4.EEPROM型。5.SRAM型。6.Flash型。2.1PLD概述从编程工艺上划分:2.2低密度PLD可编程原理2.2.1电路符号表示图2-3常用逻辑门符号与现有国标符号的对照2.2.1电路符号表示图2-4PLD的互补缓冲器图2-5PLD的互补输入图2-6PLD中与阵列表示图2-7PLD中或阵列的表示图2-8阵列线连接表示2.2.2PROM图2-9PROM基本结构地址译码器存储单元阵列………0A1A1nA0W1W1pW0F1F1mFnp22.2低密度PLD可编程原理2.2.2PROM0111201110110...AAAWAAAWAAAWnnnnPROM中的地址译码器是完成PROM存储阵列的行的选择,其逻辑函数是:2.2低密度PLD可编程原理2.2.2PROM行单元的值列是存储单元阵列第而,其中1121,1pmMpmpn2.2低密度PLD可编程原理01,011,111,1101,011,111,1100,010,110,10WMWMWMFWMWMWMFWMWMWMFmmpmpmpppp……...…2.2.2PROM与阵列(不可编程)或阵列(可编程)………0A1A1nA0W1W1pW0F1F1mFnp2图2-10PROM的逻辑阵列结构2.2低密度PLD可编程原理2.2.2PROM图2-11PROM表达的PLD阵列图与阵列(固定)或阵列(可编程)0A1A1A1A0A0A1F0F1010AACAAS2.2低密度PLD可编程原理2.2.2PROM图2-12用PROM完成半加器逻辑阵列01110100AAFAAAAF与阵列(固定)或阵列(可编程)0A1A1A1A0A0A1F0F2.2低密度PLD可编程原理2.2.3PLA图2-13PLA逻辑阵列示意图与阵列(可编程)或阵列(可编程)0A1A1A1A0A0A1F0F2.2低密度PLD可编程原理2.2.3PLA图2-14PLA与PROM的比较0A1A1F0F2A2F0A1A1F0F2A2F2.2低密度PLD可编程原理2.2.4PAL图2-15PAL结构图2-16PAL的常用表示0A1A1F0F0A1A1F0F2.2低密度PLD可编程原理图2-17一种PAL16V8的部分结构图11100100R11100100RQQD11100100R11100100RVccSG1SL07SL17SG0SL0619I/O711100100R11100100RQQD11100100R11100100RVccSG1SL06SL16SG1SL0618I/O61CLK/I02I13I2078150347812111516192023242728312.2.5GAL2.2低密度PLD可编程原理GAL即通用阵列逻辑器件,首次在PLD上采用了EEPROM工艺,使得GAL具有电可擦除重复编程的特点,彻底解决了熔丝型可编程器件的一次可编程问题。GAL在“与-或”阵列结构上沿用了PAL的与阵列可编程、或阵列固定的结构,但对PAL的输出I/O结构进行了较大的改进,在GAL的输出部分增加了输出逻辑宏单元OLMC(OutputMacroCell)。2.3CPLD的结构与可编程原理图2-18MAX7000系列的单个宏单元结构图2-19MAX7128S的结构1.逻辑阵列块(LAB)2.3CPLD的结构与可编程原理2.宏单元全局时钟信号全局时钟信号由高电平有效的时钟信号使能用乘积项实现一个阵列时钟2.3CPLD的结构与可编程原理逻辑阵列MAX7000系列中的宏单元乘积项选择矩阵可编程寄存器3.扩展乘积项局部连线共享扩展项提供的“与非”乘积项宏单元的乘积项逻辑宏单元的乘积项逻辑图2-20共享扩展乘积项结构2.3CPLD的结构与可编程原理3.扩展乘积项图2-22并联扩展项馈送方式共享扩展项并联扩展项4.可编程连线阵列(PIA)图2-22PIA信号布线到LAB的方式2.3CPLD的结构与可编程原理5.I/O控制块图2-23EPM7128S器件的I/O控制块2.4.1查找表逻辑结构图2-24FPGA查找表单元查找表LUT输入1输入2输入3输入4输出2.4FPGA的结构与工作原理2.4.1查找表逻辑结构图2-25FPGA查找表单元内部结构2.4.2Cyclone系列器件的结构与原理图2-26CycloneLE结构图2.4.2Cyclone系列器件的结构与原理图2-27CycloneLE普通模式data1addnsubdata2data34-inputLUT4-inputLUTcindata4RegRegsloadsclearaloadclockenaaclr行、列直连线布线LUT链寄存器链行、列直连线布线行、列直连线布线寄存器链输入同步装载清零逻辑寄存器两个2输入LUT(进位)寄存器控制信号寄存器链输入Data1Data2Data3行、列和直连线布线局部布线两个2输入LUT(和)寄存器链输出addnsub进位输出逻辑进位输入逻辑LAB进位输入进位输入0进位输入1进位输出1进位输出02.4.2Cyclone系列器件的结构与原理图2-28CycloneLE动态算术模式2.4.2Cyclone系列器件的结构与原理LE1LE2LE3LE4LE5LE6LE7LE8LE10LE9LE1LE2LE3LE4LE5LE6LE7LE8LE10LE94444444444控制信号局部互连LAB输入信号LUT链和寄存器链LE反馈信号连线图2-29CycloneLAB结构2.4.2Cyclone系列器件的结构与原理图2-30LAB阵列2.4.2Cyclone系列器件的结构与原理图2-31LAB控制信号生成的逻辑图CLR2CLR1ASYNCLOAD/LABPRESYNCLOADCLK1CLKENA1LAB行Clock至每个寄存器/6CLK2CLKENA2SYNCCLRADDNSUB局部互连局部互连局部互连局部互连局部互连局部互连2.4.2Cyclone系列器件的结构与原理图2-32快速进位选择链Le1Le2Le3Le4和1和2和3和4A1B1A2B2A3B3A4B4LE4LE2Le3LE101LE3LE5和5A5B5LE6LE7LE801LE9LE10和6和7和8和9和10LAB进位输出A6B6A7B7A8B8A9B9A10B10Le1Le2Le3Le4A1B1A2B2A3B3A4B4LE4LE2Le3LE101LAB进位输入LE3LE5A5B5LE6LE7LE801LE9LE10A6B6A7B7A8B8A9B9A10B10A+B+1ABA+B+0LAB进位输入10进位输入0进位输出0A+B+1A+B+0进位输出1和100101进位输入12输入LUT图2-33LUT链和寄存器链的使用2.4.2Cyclone系列器件的结构与原理LE1LutDQDQLE2DQDQLEs3-10LUT链寄存器链Lut2.4FPGA的结构与工作原理图2-34LVDS连接2.4.2Cyclone系列器件的结构与原理Cyclone器件接收器件外接电阻网路外接终端电阻2.4FPGA的结构与工作原理2.5硬件测试技术2.5.1内部逻辑测试在ASIC设计中的扫描寄存器,是可测性设计的一种,原理是把ASIC中关键逻辑部分的普通寄存器用测试扫描寄存器来代替,在测试中可以动态地测试、分析设计其中寄存器所处的状态,甚至对某个寄存器加以激励信号,改变该寄存器的状态。2.5.2JTAG边界扫描测试引脚描述功能TDI测试数据输入(TestDataInput)测试指令和编程数据的串行输入引脚。数据在TCK的上升沿移入。TDO测试数据输出(TestDataOutput)测试指令和编程数据的串行输出引脚,数据在TCK的下降沿移出。如果数据没有被移出时,该引脚处于高阻态。TMS测试模式选择(TestModeSelect)控制信号输入引脚,负责TAP控制器的转换。TMS必须在TCK的上升沿到来之前稳定。TCK测试时钟输入(TestClockInput)时钟输入到BST电路,一些操作发生在上升沿,而另一些发生在下降沿。TRST测试复位输入(TestResetInput)低电平有效,异步复位边界扫描电路(在IEEE规范中,该引脚可选)。表2-1边界扫描IO引脚功能2.5硬件测试技术2.6FPGA/CPLD产品概述2.6.1Lattice公司CPLD器件系列2.6.2Xilinx公司的FPGA和CPLD器件系列1.Virtex-4系列FPGA2.SpartanⅡ&Spartan-3&Spartan3E器件系3.XC9500&XC9500XL系列CPLD4.XilinxFPGA配置器件SPROM2.6FPGA/CPLD产品概述2.6.3Altera公司FPGA和CPLD器件系列1.StratixII系列FPGA2.ACEX系列FPGA3.MAX系列CPLD4.Cyclone系列FPGA低成本FPGA5.CycloneII系列FPGA6.MAXII系列器件7.Altera宏功能块及IP核2.6FPGA/CPLD产品概述2.6.4Actel公司的FPGA器件2.6.5Altera公司的FPGA配置方式与配置器件2.7编程与配置表2-2各引脚信号名称基于电可擦除存储单元的EEPROM或Flash技术。基于SRAM查找表的编程单元。基于反熔丝编程单元。引脚12345678910PS模式DCKGNDCONF_DONEVCCnCONFIG-nSTATUS-DATA0GNDJATG模式TCKGNDTDOVCCTMS---TDIGND2.7编程与配置2.7.1JTAG方式的在系统编程图2-35CPLD编程下载连接图2.7编程与配置2.7.2使用PC并行口配置FPGAAltera的FPGA有如下几种常用编程配置方式:1.配置器件模式,如用EPC器件进行配置。2.PS(PassiveSerial被动串行)模式。3.JTAG模式,用于配置SRAM的SOF文件,或JTAG间接对配置器件编程模式。4.AS(ActiveSerial),这个模式是针对EPCS系列配置器件而。2.7编程与配置2.7.3FPGA配置器件图2-36FPGA使用EPC配置器件的配置时序2.7编程与配置2.7.3FPGA配置器件图2-37FPGA的配置电路原理图(注,此图来自Altera资料,中间一上拉线应串1K电阻)2.7编程与配置2.7.3FPGA配置器件图2-38EPCS器件配置FPGA的电路原理图