EDA技术与VHDL第2章PLD硬件特性与编程技术KX康芯科技中国矿业大学计算机学院数字系统设计基础第2章PLD硬件特性与编程技术2.1PLD概述基本PLD器件的原理结构图输入缓冲电路与阵列或阵列输出缓冲电路输入输出……PLD:ProgrammableLogicDevice可编程逻辑器件中国矿业大学计算机学院数字系统设计基础第2章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章PLD硬件特性与编程技术2.1.2PLD的分类按集成度(PLD)分类可编程逻辑器件(PLD)简单PLD复杂PLDPROMPALPLAGALCPLDFPGA中国矿业大学计算机学院数字系统设计基础第2章PLD硬件特性与编程技术2.1.2PLD的分类1.熔丝(Fuse)型器件。2.反熔丝(Anti-fuse)型器件。3.EPROM型。(紫外线擦除电可编程逻辑器件)4.EEPROM型。5.SRAM型。6.Flash型。从编程工艺上划分:中国矿业大学计算机学院数字系统设计基础第2章PLD硬件特性与编程技术2.2低密度PLD可编程原理2.2.1电路符号表示常用逻辑门符号与现有国标符号的对照中国矿业大学计算机学院数字系统设计基础第2章PLD硬件特性与编程技术2.2.1电路符号表示PLD的互补缓冲器PLD的互补输入PLD中与阵列表示PLD中或阵列的表示阵列线连接表示中国矿业大学计算机学院数字系统设计基础第2章PLD硬件特性与编程技术2.2.2PROMPROM基本结构地址译码器存储单元阵列………0A1A1nA0W1W1pW0F1F1mFnp2中国矿业大学计算机学院数字系统设计基础第2章PLD硬件特性与编程技术2.2.2PROM0111201110110...AAAWAAAWAAAWnnnnPROM中的地址译码器是完成PROM存储阵列的行的选择,其逻辑函数是:中国矿业大学计算机学院数字系统设计基础第2章PLD硬件特性与编程技术2.2.2PROM行单元的值列是存储单元阵列第而,其中1121,1pmMpmpn01,011,111,1101,011,111,1100,010,110,10WMWMWMFWMWMWMFWMWMWMFmmpmpmpppp……...…中国矿业大学计算机学院数字系统设计基础第2章PLD硬件特性与编程技术2.2.2PROM与阵列(不可编程)或阵列(可编程)………0A1A1nA0W1W1pW0F1F1mFnp2PROM的逻辑阵列结构中国矿业大学计算机学院数字系统设计基础第2章PLD硬件特性与编程技术2.2.2PROMPROM表达的PLD阵列图与阵列(固定)或阵列(可编程)0A1A1A1A0A0A1F0F1010AACAAS中国矿业大学计算机学院数字系统设计基础第2章PLD硬件特性与编程技术2.2.2PROM用PROM完成半加器逻辑阵列01110100AAFAAAAF与阵列(固定)或阵列(可编程)0A1A1A1A0A0A1F0F2.2低密度PLD可编程原理中国矿业大学计算机学院数字系统设计基础第2章PLD硬件特性与编程技术2.2.3PLAPLA逻辑阵列示意图与阵列(可编程)或阵列(可编程)0A1A1A1A0A0A1F0F中国矿业大学计算机学院数字系统设计基础第2章PLD硬件特性与编程技术2.2.3PLAPLA与PROM的比较0A1A1F0F2A2F0A1A1F0F2A2F中国矿业大学计算机学院数字系统设计基础第2章PLD硬件特性与编程技术2.2.4PALPAL结构PAL的常用表示0A1A1F0F0A1A1F0F中国矿业大学计算机学院数字系统设计基础第2章PLD硬件特性与编程技术2.2.5GALGAL即通用阵列逻辑器件,首次在PLD上采用了EEPROM工艺,使得GAL具有电可擦除重复编程的特点,彻底解决了熔丝型可编程器件的一次可编程问题。GAL在“与-或”阵列结构上沿用了PAL的与阵列可编程、或阵列固定的结构,但对PAL的输出I/O结构进行了较大的改进,在GAL的输出部分增加了输出逻辑宏单元OLMC(OutputMacroCell)。中国矿业大学计算机学院数字系统设计基础第2章PLD硬件特性与编程技术1.逻辑阵列块(LAB)2.3CPLD的结构与可编程原理分为五部分:逻辑阵列块、可编程逻辑宏单元、扩展乘积项、可编程内部连线、可编程I/OComplexProgrammableLogicDevice)中国矿业大学计算机学院数字系统设计基础第2章PLD硬件特性与编程技术2.3CPLD的结构与可编程原理MAX7000系列的单个宏单元结构2.宏单元中国矿业大学计算机学院数字系统设计基础第2章PLD硬件特性与编程技术2.宏单元全局时钟信号全局时钟信号由高电平有效的时钟信号使能用乘积项实现一个阵列时钟2.3CPLD的结构与可编程原理逻辑阵列MAX7000系列中的宏单元乘积项选择矩阵可编程寄存器中国矿业大学计算机学院数字系统设计基础第2章PLD硬件特性与编程技术3.扩展乘积项局部连线共享扩展项提供的“与非”乘积项宏单元的乘积项逻辑宏单元的乘积项逻辑图2-20共享扩展乘积项结构2.3CPLD的结构与可编程原理中国矿业大学计算机学院数字系统设计基础第2章PLD硬件特性与编程技术4.可编程连线阵列(PIA)PIA信号布线到LAB的方式2.3CPLD的结构与可编程原理中国矿业大学计算机学院数字系统设计基础第2章PLD硬件特性与编程技术5.I/O控制块EPM7128S器件的I/O控制块中国矿业大学计算机学院数字系统设计基础第2章PLD硬件特性与编程技术FPGA一般由三种可编程电路和一个用于存放编程数据的静态存储器SRAM组成。这三种可编程电路是:可编程逻辑块(ConfigurableLogicBlock,CLB)、输入/输出模块(I/OBlock,IOB)和互连资源(InterconnectResource,IR)。2.4.2FPGA器件的结构与原理LAB阵列中国矿业大学计算机学院数字系统设计基础第2章PLD硬件特性与编程技术2.4.1查找表逻辑结构FPGA查找表单元查找表LUT输入1输入2输入3输入4输出2.4FPGA的结构与工作原理中国矿业大学计算机学院数字系统设计基础第2章PLD硬件特性与编程技术2.4.1查找表逻辑结构FPGA查找表单元内部结构中国矿业大学计算机学院数字系统设计基础第2章PLD硬件特性与编程技术2.4.2Cyclone系列器件的结构与原理CycloneLE结构图中国矿业大学计算机学院数字系统设计基础第2章PLD硬件特性与编程技术2.4.2Cyclone系列器件的结构与原理CycloneLE普通模式data1addnsubdata2data34-inputLUT4-inputLUTcindata4RegRegsloadsclearaloadclockenaaclr行、列直连线布线LUT链寄存器链行、列直连线布线行、列直连线布线寄存器链输入中国矿业大学计算机学院数字系统设计基础第2章PLD硬件特性与编程技术同步装载清零逻辑寄存器两个2输入LUT(进位)寄存器控制信号寄存器链输入Data1Data2Data3行、列和直连线布线局部布线两个2输入LUT(和)寄存器链输出addnsub进位输出逻辑进位输入逻辑LAB进位输入进位输入0进位输入1进位输出1进位输出02.4.2Cyclone系列器件的结构与原理CycloneLE动态算术模式中国矿业大学计算机学院数字系统设计基础第2章PLD硬件特性与编程技术2.4.2Cyclone系列器件的结构与原理LE1LE2LE3LE4LE5LE6LE7LE8LE10LE9LE1LE2LE3LE4LE5LE6LE7LE8LE10LE94444444444控制信号局部互连LAB输入信号LUT链和寄存器链LE反馈信号连线CycloneLAB结构中国矿业大学计算机学院数字系统设计基础第2章PLD硬件特性与编程技术2.4.2Cyclone系列器件的结构与原理LAB阵列中国矿业大学计算机学院数字系统设计基础第2章PLD硬件特性与编程技术2.4.2Cyclone系列器件的结构与原理LAB控制信号生成的逻辑图CLR2CLR1ASYNCLOAD/LABPRESYNCLOADCLK1CLKENA1LAB行Clock至每个寄存器/6CLK2CLKENA2SYNCCLRADDNSUB局部互连局部互连局部互连局部互连局部互连局部互连中国矿业大学计算机学院数字系统设计基础第2章PLD硬件特性与编程技术2.4.2Cyclone系列器件的结构与原理快速进位选择链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章PLD硬件特性与编程技术LUT链和寄存器链的使用2.4.2Cyclone系列器件的结构与原理LE1LutDQDQLE2DQDQLEs3-10LUT链寄存器链Lut2.4FPGA的结构与工作原理中国矿业大学计算机学院数字系统设计基础第2章PLD硬件特性与编程技术图2-34LVDS连接2.4.2Cyclone系列器件的结构与原理Cyclone器件接收器件外接电阻网路外接终端电阻2.4FPGA的结构与工作原理中国矿业大学计算机学院数字系统设计基础第2章PLD硬件特性与编程技术2.5硬件测试技术2.5.1内部逻辑测试在ASIC设计中的扫描寄存器,是可测性设计的一种,原理是把ASIC中关键逻辑部分的普通寄存器用测试扫描寄存器来代替,在测试中可以动态地测试、分析设计其中寄存器所处的状态,甚至对某个寄存器加以激励信号,改变该寄存器的状态。边界扫描测试是一种可测试结构技术,它采用集成电路的内部外围所谓的“电子引脚”(边界)模拟传统的在线测试的物理引脚,对器件内部进行扫描测试中国矿业大学计算机学院数字系统设计基础第2章PLD硬件特性与编程技术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章PLD硬件特性与编程技术2.6FPGA/CPLD产品概述2.6.1Lattice公司CPLD器件系列2.6.2Xilinx公司的FPGA和CPLD器件系列1.Virtex-4系列FPGA2.SpartanⅡ&Spartan-3&Spartan3E器件系