课程简介•《脉冲与数字电路》为基础:学习了数字电路的基本设计方法。•《可编程逻辑器件》:面向实际工程应用,紧跟技术发展,掌握数字系统新的设计方法。•《数字信号处理》:后续课程,应用的一个方面,由FPGA代替DSP来实现算法,提高系统的速度。课程宗旨•更新数字电路的设计观念,建立用PLD器件取代传统TTL器件设计数字电路的思想•更新数字系统设计手段,学会使用硬件描述语言(HardwareDescriptionLanguage)代替传统的数字电路设计方法来设计数字系统。可编程逻辑器件的定义•逻辑器件:用来实现某种特定逻辑功能的电子器件,最简单的逻辑器件是与、或、非门(74LS00,74LS04等),在此基础上可实现复杂的时序和组合逻辑功能。•可编程逻辑器件(PLD--ProgrammableLogicDevice):器件的功能不是固定不变的,而是可根据用户的需要而进行改变,即由编程的方法来确定器件的逻辑功能。课程内容•器件为什么能够编程–了解大规模可编程逻辑器件的结构及工作原理•怎样对器件编程–熟悉一种EDA软件的使用方法(工具)•以Altera公司的MaxPlusII为例–掌握一种硬件描述语言(方法),以设计软件的方式来设计硬件(重点)•以VHDL语言为例教学安排•理论教学(12学时)•上机实践(20学时)•考核方式–实验成绩(实验报告)–理论笔试(考试)–上机考试(上机操作)参考书•王金明,数字系统设计与VerilogHDL,电子工业出版社。•杨晖,大规模可编程逻辑器件与数字系统设计,北京航空航天大学出版社。•褚振勇,FPGA设计及应用,西安电子科技大学出版社。•脉冲与数字电路课程的回顾•布尔函数--数字系统数学基础(卡诺图)•数字电路设计的基本方法–组合电路设计问题逻辑关系真值表化简逻辑图–时序电路设计列出原始状态转移图和表状态优化状态分配触发器选型求解方程式逻辑图脉冲与数字电路课程的回顾•使用中、小规模器件设计电路(74、54系列)–编码器(74LS148)–译码器(74LS154)–比较器(74LS85)–计数器(74LS193)–移位寄存器(74LS194)–………脉冲与数字电路课程的回顾•设计方法的局限–卡诺图只适用于输入比较少的函数的化简。–采用“搭积木”的方法的方法进行设计。必须熟悉各种中小规模芯片的使用方法,从中挑选最合适的器件,缺乏灵活性。–设计系统所需要的芯片种类多,且数量很大。脉冲与数字电路课程的回顾•采用中小规模器件的局限–电路板面积很大,芯片数量很多,功耗很大,可靠性低--提高芯片的集成度–设计比较困难--能方便地发现设计错误–电路修改很麻烦--提供方便的修改手段•PLD器件的出现改变了这一切PLD出现的背景•电路集成度不断提高–SSIMSILSIVLSI•计算机技术的发展使EDA技术得到广泛应用•设计方法的发展–自下而上自上而下•用户需要设计自己需要的专用电路–专用集成电路(ASIC-ApplicationSpecificIntegratedCircuits)开发周期长,投入大,风险大–可编程器件PLD:开发周期短,投入小,风险小PLD器件的优点•集成度高,可以替代多至几千块通用IC芯片–极大减小电路的面积,降低功耗,提高可靠性•具有完善先进的开发工具–提供语言、图形等设计方法,十分灵活–通过仿真工具来验证设计的正确性•可以反复地擦除、编程,方便设计的修改和升级•灵活地定义管脚功能,减轻设计工作量,缩短系统开发时间•保密性好•管脚数目:–208个•电源:–3.3V(I/O)–2.5V(内核)•速度–250MHz•内部资源–4992个逻辑单元–10万个逻辑门–49152bit的RAMPLD的发展趋势•向高集成度、高速度方向进一步发展–最高集成度已达到400万门•向低电压和低功耗方向发展,5V3.3V2.5V1.8V更低•内嵌多种功能模块–RAM,ROM,FIFO,DSP,CPU•向数、模混合可编程方向发展大的PLD生产厂家•–最大的PLD供应商之一•–FPGA的发明者,最大的PLD供应商之一•–ISP技术的发明者•–提供军品及宇航级产品PLD器件的分类--按集成度•低密度–PROM,EPROM,EEPROM,PAL,PLA,GAL–只能完成较小规模的逻辑电路•高密度,已经有超过400万门的器件–EPLD,CPLD,FPGA–可用于设计大规模的数字系统集成度高,甚至可以做到SOC(SystemOnaChip)PLD器件的分类--按结构特点•基于与或阵列结构的器件--阵列型–PROM,EEPROM,PAL,GAL,CPLD–CPLD的代表芯片如:Altera的MAX系列•基于门阵列结构的器件--单元型–FPGAPLD器件的分类--按编程工艺•熔丝或反熔丝编程器件--Actel的FPGA器件–体积小,集成度高,速度高,易加密,抗干扰,耐高温–只能一次编程,在设计初期阶段不灵活•SRAM--大多数公司的FPGA器件–可反复编程,实现系统功能的动态重构–每次上电需重新下载,实际应用时需外挂EEPROM用于保存程序•EEPROM--大多数CPLD器件–可反复编程–不用每次上电重新下载,但相对速度慢,功耗较大数字电路的基本组成•任何组合电路都可表示为其所有输入信号的最小项的和或者最大项的积的形式。•时序电路包含可记忆器件(触发器),其反馈信号和输入信号通过逻辑关系再决定输出信号。输入电路输出电路或阵列与阵列输入项乘积项或项PLD的逻辑符号表示方法与门乘积项PROM结构•与阵列为全译码阵列,器件的规模将随着输入信号数量n的增加成2n指数级增长。因此PROM一般只用于数据存储器,不适于实现逻辑函数。•EPROM和EEPROM用PROM实现组合逻辑电路功能实现的函数为:BABAF1BABAF2BAF3固定连接点(与)编程连接点(或)PLA结构•PLA的内部结构在简单PLD中有最高的灵活性。PAL结构•与阵列可编程使输入项增多,或阵列固定使器件简化。•或阵列固定明显影响了器件编程的灵活性BnAn“或”阵列(固定)SnCn+1“与”阵列(可编程)CnnnnnnnnnnnnnnnnnnnnnCBCABACCBACBACBACBAS1AnBnCnAnBnCnAnBnCnAnBnCnAnBnAnCnBnCn用PAL实现全加器GAL结构•GAL器件与PAL器件的区别在于用可编程的输出逻辑宏单元(OLMC)代替固定的或阵列。可以实现时序电路。逻辑宏单元OLMCGAL器件的OLMCOutputLogicMacroCell•每个OLMC包含或阵列中的一个或门•组成:–异或门:控制输出信号的极性–D触发器:适合设计时序电路–4个多路选择器输出使能选择反馈信号选择或门控制选择输出选择CPLD内部结构(Altera的MAX7000S系列)逻辑阵列模块I/O单元连线资源逻辑阵列模块中包含多个宏单元宏单元内部结构乘积项逻辑阵列乘积项选择矩阵可编程触发器可编程的I/O单元•能兼容TTL和CMOS多种接口和电压标准•可配置为输入、输出、双向、集电极开路和三态等形式•能提供适当的驱动电流•降低功耗,防止过冲和减少电源噪声•支持多种接口电压(降低功耗)–1.2~0.5um,5V–0.35um,3.3V–0.25um,internal2.5V,I/O3.3V–0.18um,internal1.8V,I/O2.5Vand3.3V可编程连线阵列•在各个逻辑宏单元之间以及逻辑宏单元与I/O单元之间提供信号连接的网络•CPLD中一般采用固定长度的线段来进行连接,因此信号传输的延时是固定的,使得时间性能容易预测。FPGA结构原理图•内部结构称为LCA(LogicCellArray)由三个部分组成:•可编程逻辑块(CLB)•可编程输入输出模块(IOB)•可编程内部连线(PIC)IOBCLB包含多个逻辑单元PICLE内部结构查找表的基本原理实际逻辑电路LUT的实现方式a,b,c,d输入逻辑输出地址RAM中存储的内容00000000000001000010....0...01111111111N个输入的逻辑函数需要2的N次方的容量的SRAM来实现,一般多个输入的查找表采用多个逻辑块级连的方式查找表的基本原理N个输入的逻辑函数需要2的N次方的容量的SRAM来实现,一般多于输入的查找表采用多个逻辑块级连的方式查找表与门查找表与门查找表与门d[3..0]d[7..4]d[11..0]FPGA中的嵌入式阵列(EAB)•可灵活配置的RAM块•用途–实现比较复杂的函数的查找表,如正弦、余弦等。–可实现多种存储器功能,如RAM,ROM,双口RAM,FIFO,Stack等–灵活配置方法:256×8,也可配成512×4内部晶体震荡器•高速反向放大器用于和外部晶体相接,形成内部晶体振荡器。•提供将振荡波形二分频成对称方波的功能。CPLD与FPGA的区别CPLDFPGA内部结构Product-termLook-upTable程序存储内部EEPROMSRAM,外挂EEPROM资源类型组合电路资源丰富触发器资源丰富集成度低高使用场合完成控制逻辑能完成比较复杂的算法速度慢快其他资源-EAB,锁相环保密性可加密一般不能保密FPGA与CPLD的区别•FPGA采用SRAM进行功能配置,可重复编程,但系统掉电后,SRAM中的数据丢失。因此,需在FPGA外加EPROM,将配置数据写入其中,系统每次上电自动将数据引入SRAM中。CPLD器件一般采用EEPROM存储技术,可重复编程,并且系统掉电后,EEPROM中的数据不会丢失,适于数据的保密。FPGA与CPLD的区别•FPGA器件含有丰富的触发器资源,易于实现时序逻辑,如果要求实现较复杂的组合电路则需要几个CLB结合起来实现。CPLD的与或阵列结构,使其适于实现大规模的组合功能,但触发器资源相对较少。FPGA与CPLD的区别•FPGA为细粒度结构,CPLD为粗粒度结构。FPGA内部有丰富连线资源,CLB分块较小,芯片的利用率较高。CPLD的宏单元的与或阵列较大,通常不能完全被应用,且宏单元之间主要通过高速数据通道连接,其容量有限,限制了器件的灵活布线,因此CPLD利用率较FPGA器件低。FPGA与CPLD的区别•FPGA为非连续式布线,CPLD为连续式布线。FPGA器件在每次编程时实现的逻辑功能一样,但走的路线不同,因此延时不易控制,要求开发软件允许工程师对关键的路线给予限制。CPLD每次布线路径一样,CPLD的连续式互连结构利用具有同样长度的一些金属线实现逻辑单元之间的互连。连续式互连结构消除了分段式互连结构在定时上的差异,并在逻辑单元之间提供快速且具有固定延时的通路。CPLD的延时较小。PLD器件的命名与选型•EPM7128SLC84-10–EPM7:产品系列为EPM7000系列–128:有128个逻辑宏单元–S:电压为5V,AE为3.3V,B为2.5V–L:封装为PLCC,Q代表PQFP等–C:商业级(Commercial)0~70度,I:工业级(Industry),-40~85度M:军品级(Military),-55~125度–84:管脚数目–10:速度级别管脚的定义•特殊功能的管脚–电源脚VCC和GND,VCC一般分为VCCINT和VCCIO两种–JTAG管脚:实现在线编程和边界扫描–配置管脚(FPGA):用于由EEPROM配置芯片•信号管脚–专用输入管脚:全局时钟、复位、置位–可随意配置其功能为:输入、输出、双向、三态PLD的设计步骤设计输入设计处理下载编程功能仿真时序仿真在线测试设计输入•原理图输入–使用元件符号和连线等描述–比较直观,但设计大规模的数字系统时则显得繁琐•HDL语言输入–逻辑描述功能强–成为国际标准,便于移植•原理图与HDL的联系与高级语言与汇编语言类似设计处理•综合和优化–优化:将逻辑化简,去除冗余