1、第1讲 可编程逻辑器件原理,水声工程学院,课程简介,数字电子技术电路为基础:复习数字电路的基本原理,并与可编程逻辑器件原理相结合。 CPLD/FPGA设计及应用:面向实际工程应用,紧跟技术发展,掌握数字系统新的设计方法。 数字信号处理:面向工程信号处理应用的,由FPGA代替DSP来实现算法,提高系统的速度。,课程宗旨,更新数字电路的设计观念,建立用PLD器件取代传统TTL器件设计数字电路的思想 更新数字系统设计手段,学会使用硬件描述语言(Hardware Description Language)代替传统的数字电路设计方法来设计数字系统。,可编程逻辑器件的定义,逻辑器件:用来实现某种特定逻辑功
2、能的电子器件,最简单的逻辑器件是与、或、非门(74LS00,74LS04等),在此基础上可实现复杂的时序和组合逻辑功能。 可编程逻辑器件(PLDProgrammable Logic Device):器件的功能不是固定不变的,而是可根据用户的需要而进行改变,即由编程的方法来确定器件的逻辑功能。,课程内容,器件为什么能够编程 了解大规模可编程逻辑器件的结构及工作原理 怎样对器件编程 熟悉一种EDA软件的使用方法(工具) 以Altera公司的QuartusII为例 掌握一种硬件描述语言(方法),以设计软件的方式来设计硬件(重点) 以VHDL语言为例,数字电路课程的回顾,布尔函数数字系统数学基础(卡诺
3、图) 数字电路设计的基本方法 组合电路设计 问题逻辑关系真值表化简逻辑图 时序电路设计 列出原始状态转移图和表状态优化状态分配触发器选型求解方程式逻辑图,数字电路课程的回顾,使用中、小规模器件设计电路(74、54系列) 编码器(74LS138) 译码器(74LS154) 比较器(74LS85) 计数器(74LS193) 移位寄存器(74LS194) ,数字电路课程的回顾,设计方法的局限 卡诺图只适用于输入比较少的函数的化简。 采用“搭积木”的方法进行设计。必须熟悉各种中小规模芯片的使用方法,从中挑选最合适的器件,缺乏灵活性。 设计系统所需要的芯片种类多,且数量很大。,数字电路课程的回顾,采用中
4、小规模器件的局限 电路板面积很大,芯片数量很多,功耗很大,可靠性低提高芯片的集成度 设计比较困难能方便地发现设计错误 电路修改很麻烦提供方便的修改手段 PLD器件的出现改变了这一切,PLD出现的背景,电路集成度不断提高 SSIMSILSIVLSI 计算机技术的发展使EDA技术得到广泛应用 设计方法的发展 自下而上自上而下 用户需要设计自己需要的专用电路 专用集成电路(ASICApplication Specific Integrated Circuits)开发周期长,投入大,风险大 可编程器件PLD:开发周期短,投入小,风险小,数字电路课程的回顾,数字电路课程的回顾,数字电路课程的回顾,数字电
5、路课程的回顾,PLD器件的优点,集成度高,可以替代多至几千块通用IC芯片 极大减小电路的面积,降低功耗,提高可靠性 具有完善先进的开发工具 提供语言、图形等设计方法,十分灵活 通过仿真工具来验证设计的正确性 可以反复地擦除、编程,方便设计的修改和升级 灵活地定义管脚功能,减轻设计工作量,缩短系统开发时间 保密性好,PLD的发展趋势,向高集成度、高速度方向进一步发展 最高集成度已达到400万门 向低电压和低功耗方向发展,5V3.3V2.5V1.8V更低 内嵌多种功能模块 RAM,ROM,FIFO,DSP,CPU 向数、模混合可编程方向发展,PLD器件的分类按集成度,低密度 PROM,EPROM,
6、EEPROM,PAL,PLA,GAL 只能完成较小规模的逻辑电路 高密度,已经有超过400万门的器件 EPLD ,CPLD,FPGA 可用于设计大规模的数字系统,集成度高,甚至可以做到SOC(System On a Chip),PLD器件的分类按结构特点,基于与或阵列结构的器件阵列型 PROM,EEPROM,PAL,GAL,CPLD CPLD的代表芯片如:Altera的MAX系列 基于门阵列结构的器件单元型 FPGA,PLD器件的分类按编程工艺,熔丝或反熔丝编程器件Actel的FPGA器件 体积小,集成度高,速度高,易加密,抗干扰,耐高温 只能一次编程,在设计初期阶段不灵活 SRAM大多数公司
7、的FPGA器件 可反复编程,实现系统功能的动态重构 每次上电需重新下载,实际应用时需外挂EEPROM用于保存程序 EEPROM大多数CPLD器件 可反复编程 不用每次上电重新下载,但相对速度慢,功耗较大,PLD的逻辑符号表示方法,与门,乘积项,PROM结构,与阵列为全译码阵列,器件的规模将随着输入信号数量n的增加成2n指数级增长。因此PROM一般只用于数据存储器,不适于实现逻辑函数。 EPROM和EEPROM,用PROM实现组合逻辑电路功能,实现的函数为:,固定连接点 (与),编程连接点 (或),PLA结构,PLA的内部结构在简单PLD中有最高的灵活性。,PAL结构,与阵列可编程使输入项增多,
8、或阵列固定使器件简化。 或阵列固定明显影响了器件编程的灵活性,AnBnCn,AnBn,AnCn,BnCn,用PAL实现全加器,GAL结构,GAL器件与PAL器件的区别在于用可编程的输出逻辑宏单元(OLMC)代替固定的或阵列。可以实现时序电路。,逻辑宏单元,OLMC,GAL器件的OLMC Output Logic Macro Cell,每个OLMC包含或阵列中的一个或门 组成: 异或门:控制输出信号的极性 D触发器:适合设计时序电路 4个多路选择器,输出使能选择,反馈信号选择,或门控制选择,输出选择,CPLD内部结构(Altera的MAX7000S系列),逻辑阵列模块,I/O单元,连线资源,逻辑
9、阵列模块中包含多个宏单元,宏单元内部结构,乘积项逻辑阵列,乘积项选择矩阵,可编程 触发器,可编程的I/O单元,能兼容TTL和CMOS多种接口和电压标准 可配置为输入、输出、双向、集电极开路和三态等形式 能提供适当的驱动电流 降低功耗,防止过冲和减少电源噪声 支持多种接口电压(降低功耗) 1.20.5um,5V 0.35um,3.3V 0.25um,internal 2.5V,I/O3.3V 0.18um,internal 1.8V,I/O2.5V and 3.3V,可编程连线阵列,在各个逻辑宏单元之间以及逻辑宏单元与I/O单元之间提供信号连接的网络 CPLD中一般采用固定长度的线段来进行连接,
10、因此信号传输的延时是固定的,使得时间性能容易预测。,FPGA结构原理图,内部结构称为LCA(Logic Cell Array)由三个部分组成: 可编程逻辑块(CLB) 可编程输入输出模块(IOB) 可编程内部连线(PIC),IOB,CLB包含多个逻辑单元,PIC,LE内部结构,查找表的基本原理,N个输入的逻辑函数需要2的N次方的容量的SRAM来实现,一般多个输入的查找表采用多个逻辑块级连的方式,查找表的基本原理,N个输入的逻辑函数需要2的N次方的容量的SRAM来实现,一般多于输入的查找表采用多个逻辑块级连的方式,FPGA中的嵌入式阵列(EAB),可灵活配置的RAM块 用途 实现比较复杂的函数的
11、查找表,如正弦、余弦等。 可实现多种存储器功能,如RAM,ROM,双口RAM,FIFO,Stack等 灵活配置方法:2568,也可配成5124,内部晶体震荡器,高速反向放大器用于和外部晶体相接,形成内部晶体振荡器。 提供将振荡波形二分频成对称方波的功能。,CPLD与FPGA的区别,FPGA与CPLD的区别,FPGA采用SRAM进行功能配置,可重复编程,但系统掉电后,SRAM中的数据丢失。因此,需在FPGA外加EPROM,将配置数据写入其中,系统每次上电自动将数据引入SRAM中。CPLD器件一般采用EEPROM存储技术,可重复编程,并且系统掉电后,EEPROM中的数据不会丢失,适于数据的保密。,
12、FPGA与CPLD的区别,FPGA器件含有丰富的触发器资源,易于实现时序逻辑,如果要求实现较复杂的组合电路则需要几个CLB结合起来实现。CPLD的与或阵列结构,使其适于实现大规模的组合功能,但触发器资源相对较少。,FPGA与CPLD的区别,FPGA为细粒度结构,CPLD为粗粒度结构。FPGA内部有丰富连线资源,CLB分块较小,芯片的利用率较高。CPLD的宏单元的与或阵列较大,通常不能完全被应用,且宏单元之间主要通过高速数据通道连接,其容量有限,限制了器件的灵活布线,因此CPLD利用率较FPGA器件低。,FPGA与CPLD的区别,FPGA为非连续式布线,CPLD为连续式布线。FPGA器件在每次编
13、程时实现的逻辑功能一样,但走的路线不同,因此延时不易控制,要求开发软件允许工程师对关键的路线给予限制。CPLD每次布线路径一样,CPLD的连续式互连结构利用具有同样长度的一些金属线实现逻辑单元之间的互连。连续式互连结构消除了分段式互连结构在定时上的差异,并在逻辑单元之间提供快速且具有固定延时的通路。CPLD的延时较小。,PLD器件的命名与选型,EPM7 128 S L C 8410 EPM7:产品系列为EPM7000系列 128:有128个逻辑宏单元 S:电压为5V,AE为3.3V,B为2.5V L:封装为PLCC,Q代表PQFP等 C:商业级(Commercial)070度,I:工业级(In
14、dustry),4085度M:军品级(Military),55125度 84:管脚数目 10:速度级别,管脚的定义,特殊功能的管脚 电源脚VCC和GND,VCC一般分为VCCINT和VCCIO两种 JTAG管脚:实现在线编程和边界扫描 配置管脚(FPGA):用于由EEPROM配置芯片 信号管脚 专用输入管脚:全局时钟、复位、置位 可随意配置其功能为:输入、输出、双向、三态,PLD的设计步骤,设计输入,原理图输入 使用元件符号和连线等描述 比较直观,但设计大规模的数字系统时则显得繁琐 HDL语言输入 逻辑描述功能强 成为国际标准,便于移植 原理图与HDL的联系与高级语言与汇编语言类似,设计处理,
15、综合和优化 优化:将逻辑化简,去除冗余项,减少设计所耗用的资源 综合:将模块化层次化设计的多个文件合并为一个网表,使设计层次平面化 映射 把设计分为多个适合特定器件内部逻辑资源实现的逻辑小块的形式 布局与布线 将已分割的逻辑小块放到器件内部逻辑资源的具体位置并利用布线资源完成各功能块之间的连接 生成编程文件 生成可供器件编程使用的数据文件,模拟仿真,功能仿真 不考虑信号传输和器件的延时 时序仿真 不同器件的内部延时不一样,不同的布局、布线延时也会有比较大的不同 在线验证 利用实现手段测试器件最终功能和性能指标,在系统编程技术ISP In System Program,对PLD的逻辑功能可随时进
16、行修改。由Lattice公司率先发明 优点: 方便硬件的调试 方便硬件版本的升级,类似于软件升级,在系统编程技术ISP In System Program,边界扫描测试技术BST Boundary Scan Test,据IEEE1149.1标准JTAG,用于解决大规模集成电路的测试问题。 现在新开发的可编程器件都支持边界扫描技术,并将其作为ISP接口。 在DSP开发和嵌入式处理器的开发中应用得非常广泛。,基本组合逻辑,与运算,或运算,异或运算, 与非运算,2选1多路选择器,两位比较器,基本时序器件,D触发器,T触发器,J-K触发器, 时序器件移位寄存器,基本简单数学运算, 加法器, 计数器,逐位进位加法器,超前进位加法器,进位选择加法器,逐位进位计数器,格雷码逐位计数器,流水式超前进位计数器, 乘法器,组合逻辑实现的乘法器,移位相加乘法器,查找表乘法器,加法器树乘法器,