chap1CPLDFPGA概述_第1页
chap1CPLDFPGA概述_第2页
chap1CPLDFPGA概述_第3页
chap1CPLDFPGA概述_第4页
chap1CPLDFPGA概述_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

CPLD/FPGA设计,教学安排,学时理论教学(26学时)上机实践(6学时)考核方式平时成绩(随机点名3-5次,共10分)上机成绩(3次,共30分)理论笔试/课程报告(共60分),2,课程目标,学会使用硬件描述语言代替传统的数字电路设计方法来设计数字系统;掌握Alter/XilinxFPGA开发工具及仿真环境。,Chap1CPLD/FPGA概述,目录,1.1CPLD/FPGA的发展历程,1.2CPLD/FPGA的设计流程,1.1CPLD/FPGA的发展历程,1、名词解释CPLDComplexProgrammableLogicDevice复杂可编程逻辑器件FPGAFieldProgrammableGateArray现场可编程逻辑门阵列逻辑器件用来实现某种特定逻辑功能的电子器件,最简单的逻辑器件是与、或、非门,在此基础上可实现复杂的时序和组合逻辑功能。可编程逻辑器件器件的功能不是固定不变的,而是可根据用户的需要而进行改变,即由编程的方法来确定器件的逻辑功能。,2、中小规模数字电子电路设计数字电路设计的基本方法布尔函数数字系统数学基础(卡诺图)组合电路设计问题逻辑关系真值表化简逻辑图时序电路设计列出原始状态转移图和表状态优化状态分配触发器选型求解方程式逻辑图中小规模数字电路设计局限设计方法的局限卡诺图只适用于输入比较少的函数的化简。采用”搭积木”的方法进行设计.必须熟悉各种中小规模芯片使用方法,从中挑选最合适的器件,缺乏灵活性.设计系统所需要的芯片种类多,且数量很大。采用中小规模器件的局限电路板面积很大,芯片数量很多,功耗很大,可靠性低设计比较困难电路修改很麻烦,PLD器件出现,提高芯片的集成度,能方便地发现设计错误,提供方便的修改手段,3、PLD出现的背景电路集成度不断提高SSIMSILSIVLSI计算机技术的发展使EDA技术得到广泛应用设计方法的发展自下而上自上而下用户需要设计自己需要的专用电路专用集成电路(ASICApplicationSpecificIntegratedCircuits)开发周期长,投入大,风险大可编程器件PLD:开发周期短,投入小,风险小,4、PLD器件的优点集成度高,可以替代多至几千块通用IC芯片极大减小电路的面积,降低功耗,提高可靠性具有完善先进的开发工具提供语言、图形等设计方法,十分灵活通过仿真工具来验证设计的正确性可以反复地擦除、编程,方便设计的修改和升级灵活地定义管脚功能,减轻设计工作量,缩短系统开发时间保密性好,5、PLD器件的命名与选型EP1K100SQC2081EP1K:产品系列为EP1K000系列100:有100个逻辑宏单元S:电压为5V,AE为3.3V,B为2.5VQ:Q代表封装形式为PQFP,L封装为PLCC等C:商业级(Commercial)070度,I:工业级(Industry),4085度M:军品级(Military),55125度208:管脚数目-1:速度级别,10是250MHz,管脚数目:208个电源:3.3V(I/O)2.5V(内核)速度:250MHz,内部资源:4992个逻辑单元10万个逻辑门49152bit的RAM,6、PLD的发展趋势向高集成度、高速度方向进一步发展最高集成度已达到400万门向低电压和低功耗方向发展5V3.3V2.5V1.8V更低内嵌多种功能模块RAM,ROM,FIFO,DSP,CPU向数、模混合可编程方向发展,最大的PLD供应商之一FPGA的发明者,最大的PLD供应商之一ISP技术的发明者提供军品及宇航级产品,7、大的PLD生产厂家,8、PLD器件的分类按集成度低密度PROM,EPROM,EEPROM,PAL,PLA,GAL只能完成较小规模的逻辑电路高密度,已经有超过400万门的器件EPLD,CPLD,FPGA可用于设计大规模的数字系统集成度高,甚至可以做到SOC(SystemOnaChip)按结构特点基于与或阵列结构的器件阵列型PROM,EEPROM,PAL,GAL,CPLDCPLD的代表芯片如:Altera的MAX系列基于门阵列结构的器件单元型FPGA,13,按编程工艺熔丝或反熔丝编程器件Actel的FPGA器件体积小,集成度高,速度高,易加密,抗干扰,耐高温只能一次编程,在设计初期阶段不灵活SRAM大多数公司的FPGA器件可反复编程,实现系统功能的动态重构每次上电需重新下载,实际应用时需外挂EEPROM用于保存程序EEPROM大多数CPLD器件可反复编程不用每次上电重新下载,但相对速度慢,功耗较大,14,早期,11、CPLD/FPGA的发展历程,15,9、PLD中的逻辑结构,1)PROM结构PROM是可编程序只读存储器的简称,它具有一个固定的全解码与门逻辑阵列和一个可编程的或门逻辑阵列。与阵列为全译码阵列,器件的规模将随着输入信号数量n的增加成2n指数级增长。因此PROM一般只用于数据存储器,不适于实现逻辑函数。EPROM和EEPROM,用PROM实现组合逻辑电路功能,实现的函数为:,固定连接点(与),编程连接点(或),2)PLA结构PLA(ProgrammableLogicArray)是可编程逻辑阵列的简称,它包含了可编程的与门和或门逻辑阵列,一般采用熔丝结构。它的内部结构在简单PLD中有最高的灵活性。,3)PAL结构PAL(ProgrammableArrayLogic)是可编程阵列逻辑的简称,它包含有一个可编程的与门逻辑阵列和一个固定的或门逻辑阵列。与阵列可编程使输入项增多,或阵列固定使器件简化。或阵列固定明显影响了器件编程的灵活性。,AnBnCn,AnBn,AnCn,BnCn,用PAL实现全加器,逻辑宏单元,OLMC,输出使能选择,反馈信号选择,或门控制选择,输出选择,4)GAL结构GAL(GenericArrayLogic)是通用阵列逻辑的简称。GAL器件与PAL器件的区别在于用可编程的输出逻辑宏单元(OLMC,OutputLogicMacroCell)代替固定的或阵列。可以实现时序电路。每个OLMC包含或阵列中的一个或门,组成为:异或门:控制输出信号的极性D触发器:适合设计时序电路4个多路选择器,逻辑阵列模块,I/O单元,连线资源,逻辑阵列模块中包含多个宏单元,5)CPLD内部结构(Altera的MAX7000S系列),基于乘积项的CPLD的基本结构这种CPLD的结构可分为三块:可编程逻辑阵列(LAB)、可编程连线(PIA)和可编程I/O控制块。A.可编程逻辑阵列是器件的基本结构,由若干个可编程逻辑宏单元(LogicMacroCell,LMC)组成,它实现基本的逻辑功能.LMC内部主要包括与阵列、或阵列、可编程触发器和多路选择器等电路,能独立地配置为时序或组合工作方式。,24,a.乘积共享结构在CPLD的宏单元中,如果输出表达式的与项较多,对应的或门输入端不够用,可以借助可编程开关将同一单元(或其他单元)中的其他或门与之联合起来使用,或者在每个宏单元中提供未使用的乘积项给其他宏单元使用。,25,b.多触发器结构早期可编程器件的每个输出宏单元只有一个触发器,而CPLD的宏单元内部通常含两个或两个以上的触发器,其中只有一个触发器与输出端相连,其余触发器的输出不与输出端相连,但可以通过相应的缓冲电路反馈到与阵列,从而与其他触发器一起构成较复杂的时序电路。这些不与输出端相连的内部触发器就称为“隐埋”触发器。这种结构可以不增加引脚数目,而增加其内部资源。c.异步时钟早期可可编程器件只能实现同步时序电路,在CPLD器件中各触发器的时钟可以异步工作,有些器件中触发器的时钟还可以通过数据选择器或时钟网络进行选择。此外,输出宏单元内触发器的异步清零和异步置位也可以用乘积项进行控制,因而使用更加灵活。,26,B.可编程的I/O单元CPLD的I/O单元(Input/OutputCell,IOC)是内部信号到I/O引脚的接口部分。根据器件和功能的不同,各种器件的结构也不相同。由于阵列型器件通常只有少数几个专用输入端,大部分端口均为I/O端,而且系统的输入信号通常需要锁存。因此I/O常作为一个独立单元来处理。能兼容TTL和CMOS多种接口和电压标准可配置为输入、输出、双向、集电极开路和三态等形式能提供适当的驱动电流降低功耗,防止过冲和减少电源噪声支持多种接口电压(降低功耗)1.20.5um,5V0.35um,3.3V0.25um,internal2.5V,I/O3.3V0.18um,internal1.8V,I/O2.5Vand3.3V,c.可编程连线阵列(PIA)各逻辑宏单元通过可编程连线阵列接受来自输入端的信号,并将宏单元的信号送至目的地。这种互联机制有很大的灵活性,它允许在不影响引脚分配的情况下改变内部的设计。可编程内部连线的作用是在各逻辑宏单元之间以及逻辑宏单元和I/O单元之间提供互联网络。CPLD中一般采用固定长度的线段来进行连接,因此信号传输的延时是固定的,使得时间性能容易预测。,IOB,CLB包含多个逻辑单元,PIC,6)FPGA结构原理内部结构称为LCA(LogicCellArray)由三个部分组成:可编程逻辑块(CLB)可编程输入输出模块(IOB)可编程内部连线(PIC),可编程逻辑块(CLB),30,基于查找表的FPGA的基本结构查找表(LookUpTable,LUT)本质上就是一个RAM。当用户通过原理图或者HDL语言描述了一个逻辑电路以后,FPGA开发软件会自动计算逻辑电路的所有可能结果,并把真值表(即计算结果)事先写入RAM,这样每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出相对应的内容,然后输出即可。一个n输入的逻辑运算,不管是与或非运算还是异或运算等等,最多只可能存在2n种结果,若事先将相应的结果存放于一个存贮单元,就相当于实现了与门电路的功能,这就是查找表取代与逻辑门电路的原理。,FPGA通过烧写文件去配置查找表的内容,从而在相同的电路情况下实现了不同的逻辑功能。LUT具有和逻辑电路同样的功能,但LUT具有更快的执行速度和规模。,基于查找表FPGA中的工作过程上电后,程序加载到FPGA中的内部RAM中,接下来LUT就可以工作了。A,B,C,D由FPGA芯片的管脚输入后进入可编程连线,然后作为地址线连到到LUT,LUT中已经事先写入了所有可能的逻辑结果,通过地址查找到相应的数据然后输出到芯片管脚,这样组合逻辑就实现了。由于LUT主要适合SRAM工艺生产,所以目前大部分FPGA都是基于SRAM工艺的,而SRAM工艺的芯片在掉电后信息就会丢失,一定需要外加一片专用配置芯片,在上电的时候,由这个专用配置芯片把数据加载到FPGA中,然后FPGA就可以正常工作,由于配置时间很短,不会影响系统正常工作。也有少数FPGA采用反熔丝或Flash工艺,对这种FPGA,就不需要外加专用的配置芯片。,33,10、CPLD与FPGA的区别程序存储FPGA采用SRAM进行功能配置,可重复编程,但系统掉电后,SRAM中的数据丢失。因此,需在FPGA外加EPROM,将配置数据写入其中,系统每次上电自动将数据引入SRAM中。CPLD器件一般采用EEPROM存储技术,可重复编程,并且系统掉电后,EEPROM中的数据不会丢失,适于数据的保密。资料类型FPGA器件含有丰富的触发器资源,易于实现时序逻辑,如果要求实现较复杂的组合电路则需要几个CLB结合起来实现。CPLD的与或阵列结构,使其适于实现大规模的组合功能,但触发器资源相对较少。,内部结构FPGA为细粒度结构,它内部有丰富连线资源,CLB分块较小,芯片利用率较高。CPLD为粗粒度结构,它的宏单元的与或阵列较大,通常不能完全被应用,且宏单元之间主要通过高速数据通道连接,其容量有限,限制了器件的灵活布线,因此CPLD利用率较FPGA器件低。布线方式FPGA为非连续式布线。FPGA器件在每次编程时实现的逻辑功能一样,但走的路线不同,因此延时不易控制,要求开发软件允许工程师对关键的路线给予限制。CPLD为连续式布线。CPLD每次布线路径一样,它的连续式互连结构利用具有同样长度的一些金属线实现逻辑单元之间的互连。连续式互连结构消除了分段式互连结构在定时上的差异,并在逻辑单元之间提供快速且具有固定延时的通路。CPLD的延时较小。,尽管FPGA和CPLD在某些方面有一些差异,但是对用户而言,FPGA和CPLD的设计方法是相似的,使用EDA软件的设计过程也没有太大差别。设计时,只需要根据所选器件型号充分发挥器件的特性就可以了,所以在我们讲课的过程中,并未加以区分,而统称为可编程逻辑器件。,目录,1.1CPLD/FPGA的发展历程,1.2CPLD/FPGA的设计流程,FPGA的常用设计方法“自顶向下”所谓“自顶向下”设计方法,简单地说,就是采用可完全独立于芯片厂商及其产品结构的描述语言,在功能级对设计产品进行定义,并结合功能仿真技术,以确保设计的正确性,在功能定义完成后,利用逻辑综合技术,把功能描述转换成某一具体结构芯片的网表文件,输出给厂商的布局布线器进行布局布线。布局布线结果还可反标回同一仿真器,进行包括功能和时序的后验证,以保证布局布线所带来的门延时和线延时不会影响设计的性能。“自下而上”目前大规模FPGA设计一般选择“自顶向下”的设计方法。,1.3CPLD/FPGA的设计方法及流程,一个完整的FPGA/CPLD设计流程包括电路设计与输入、功能仿真、综合、综合后仿真、实现、布线后仿真和下板调试等主要步骤。常用的设计输入方法有硬件描述语言(HDL)和原理图设计输入方法。原理图设计输入法直观、便于理解、元件库资源丰富但在大型设计中,其可维护性较差,不利于模块建设与重用。最主要的缺点:当选用芯片升级换代后,所有原理图都要做相应的改动。目前进行大型工程设计时,最常用的设计方法是HDL设计输入法。其中影响最为广泛的HDL语言是VerilogHDL和VHDL。VerilogHDL和VHDL的共同特点是利于由顶向下设计,利于模块的划分与复用,可移植性好,通用性好,设计不因芯片的工艺与结构的变化而变化,更利于ASIC的移植。波形输入和状态机输方法是两种常用的辅助设计输入方法使用波形输入法时,只要绘制出激励波形和输出波形,EDA软件就能自动地根据响应关系进行设计。使用状态机输入法时,设计者只需要画出状态转移图,EDA软件就能生成相应的HDL代码或者原理图,使用很方便。但这两种设计方法只能在某些特殊情况下缓解设计者的工作量,并不适合所有设计。,电路设计完成后,要用专用仿真工具对设计进行功能仿真,验证电路功能是否符合设计要求。通过仿真能及时发现设计中的错误,加快设计进度,提高设计的可靠性。综合优化(Synthesize)是指将HDL语言、原理图等设计输入翻译成与、或、非门,RAM,寄存器等基本逻辑单元组成的逻辑连接(网表),并根据目标与要求(约束条件)优化所产生的逻辑连接,输出edf和den等文件,供CPLD/FPGA厂家的布局步线器进行实现。,综合完成后需要检查综合结果是否与原设计一致,需要做综合后仿真。在仿真时,把综合生成的延时文件反标到综合仿真模型中去,可估计门延时带来的影响。综合后仿真虽然比功能仿真精确一点,但是只能估计门延时,而不能估计连线延时,仿真结果与布线后的实际情况还有一定的差距,并不十分准确。这种仿真的主要目的在于检查综合器的综合结果是否与设计输入一致。,综合结果的本质是一些由与、或、非门、触发器,RAM等基本逻辑单元组成的逻辑网表,它与芯片实际的配置情况还有较大差距。此时应该使用FPGA/CPLD厂商提供的工具软件,根据所选芯片的型号,将综合输出的逻辑网表适配到具体FPGA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论