《CPLD与FPGA》PPT课件

上传人:y****n 文档编号:244937861 上传时间:2024-10-06 格式:PPT 页数:67 大小:2.20MB
返回 下载 相关 举报
《CPLD与FPGA》PPT课件_第1页
第1页 / 共67页
《CPLD与FPGA》PPT课件_第2页
第2页 / 共67页
《CPLD与FPGA》PPT课件_第3页
第3页 / 共67页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第3讲,现代可编程,逻辑器件,主要内容:,复杂的可编程逻辑器件简介,CPLD/FPGA,的作用,CPLD/FPGA,特点及命名,CPLD,与,FPGA,工作原理,FLEX10K,和,MAX 7000A,的基本结构,CPLD,与,FPGA,的异同点,Altera,器件的配置与编程,教学目的与要求,理解,CPLD/FPGA,工作原理;,掌握,MAX 7000A,、,FLEX 10K,的内部结构,重点:,CPLD/FPGA,工作原理,CPLD,(,Complex,Programable,Logic Device,),复杂可编程逻辑器件,两者的功能基本相同,只是实现原理略有不同,,故有时可以统称为复杂可编程逻辑器件或,CPLD/FPGA,。,FPGA,(,Field,Programable,Gate Array),现场可编程门阵列,复杂可编程逻辑器件简介,CPLD,/FPGA,是,80,年代初期开始发展起来的一种数字电子器件开发与设计技术,是目前电子设计领域中,最具活力和发展前途,的一项技术,。,C,PLD,/FPGA,内部具有大量组成数字电路的最小单元,门电路,而这些门电路,并没有固定怎样连接,,门电路的连接可,通过编程,的方法加以,设计,,同时输入,/,输出脚的连接可自己设置,故这种电路给我们带来了极大的方便。,经过了十几年的发展,许多公司都开发出了多种可编程逻辑器件。比较典型的就是,Xilinx,公司的,FPGA,器件系列和,Altera,公司的,CPLD,器件系列,它们开发较早,占用了较大的市场,(,60%,以上)。其它公司如:,Lattice,,,Actel,等也提供不同相关产品。,通常来说,,在欧洲用,Xilinx,的人多,在日本和亚太地区用,ALTERA,的人多,在美国则是平分秋色。,CPLD,集成度相对小一点,多用于,2,万门,规模,以下,的设计,,适合实现较复杂的组合逻辑,,如编、译码设计。,FPGA,,集成度较高,内部触发器多,多用于,1,万门以上,的大规模系统设计,,适合做复杂的时序逻辑设计,,如数字信号处理和各种算法。,一般认为,复杂可编程逻辑器件,CPLD/FPGA,的单片集成度大于,1000,门,而简单可编程逻辑器件,SPLD,的单片集成度小于,1000,门。,用,CPLD/FPGA,能做什么?,CPLD,能完成任何数字器件的功能,,直至实现单芯片系统,SOC,。,CPLD,如同一张白纸或是一堆积木,,工程师可以通过传统的原理图输入法或硬件描述语言(,HDL),,来自由的设计一个数字系统。通过,EDA,软件仿真,,可以事先验证设计的正确性,。在,PCB,完成以后,还可以利用,CPLD,的在线修改能力,随时修改设计而不必改动硬件电路。,CPLD/FPGA,的主要特点,1,、采用,LSI/VLSI,技术制造,高集成度(最高已达千万门级);,2,、支持各种组合逻辑和时序逻辑电路设计,甚至实现,SOC,;,3,、可编程改变芯片的逻辑功能,芯片可重复使用,具有,ISP,或,ICR,特性。(,ISP,:,In System Programming,在系统编程,),(,ICR,:,In Circuit Reconfigable,在电路重构),4,、有很高的逻辑布线能力,可以,预测信号延迟,,便于使用计算机进行逻辑功能仿真与时序仿真。,5,、有良好的设计加密功能,便于保护知识产权,(IP),。,6,、有强大的,EDA,开发工具,(,软件,),支持,与,ASIC,设计相比,易学易用。,7,、研制、开发时间较短,费用相对少。,8,、必须借助开发系统才能设计、开发,CPLD/FPGA,系统。,CPLD/FPGA,的命名,不同的厂家,对自己生产的可编程逻辑器件叫法不尽相同。,与或阵列技术,Xilinx,公司,把基于,查找表技术,、,SRAM,存储工艺,的可编程逻辑器件叫,FPGA,;,把基于,乘积项技术、,E,2,PROM,(或,Flash MEM,)存储工艺,的可编程逻辑器件叫,CPLD,;,通常也把,Altera,的,FLEX/ACEX/APEX,系列的,CPLD,产品叫做,FPGA,。,Altera,公司,Altera,公司把自己生产的可编程逻辑器件都叫作,CPLD,其中:,MAX,系列采用,乘积项技术、,E,2,PROM,存储工艺。,FLEX/ACEX/APEX,系列,采用,查找表技术、,SRAM,存储工艺。,CPLD,内部结构,CPLD,可分为三块结构:,可编程逻辑陈列块(,LAB),可编程连线(,PIA),I/O,单元,IOE,LAB,由多个逻辑宏单元,LE,组成,负责实现逻辑功能。,可编程连线,PIA,负责信号传递,连接所有的宏单元。,I /O,单元,IOE,负责输入输出的电气特性控制,比如可以设定集电极开路输出,摆率控制,三态输出等,组成:,逻辑阵列块(,LAB,)、 宏单元、 扩展乘积项(共享和并联)、 可编程连线阵列和,I/O,控制块等五部分。,1),逻辑阵列块(,LAB),LAB,由,16,个宏单元组成,多个,LAB,通过可编程连线阵列,(PIA),和全局总线连接在一起。,Altera,公司的,MAX7000A,结构,图,MAX7000A,器件基本结构,2,)宏单元,MAX7000A,的宏单元组成:,逻辑阵列,乘积项选择矩阵,可编程寄存器,图,2.9 MAX7000,宏单元结构,逻辑阵列用来实现组合逻辑,为每个宏单元提供,5,个乘积项。,乘积项选择矩阵把这些乘积项分配到“或门”或“异或门”来作为基本逻辑输入,以实现组合逻辑功能,或把这些乘积项作为宏单元的辅助输入来实现寄存器的清除、预制、时钟和时钟使能等控制。,图右侧是一个可编程,D,触发器,它的时钟,清零输入都可以编程选择,可以使用专用的全局清零和全局时钟,也可以使用内部逻辑(乘积项阵列)产生的时钟和清零。,如果不需要触发器,也可以将此触发器旁路,信号直接输给,PIA,或输出到,I/O,脚。,3,)扩展乘积项,对于更复杂的逻辑函数需要附加乘积项,可以利用另外一个宏单元,也允许利用扩展乘积项,作为附加的乘积项直接输送到,LAB,的宏单元中。,两种扩展乘积项可以用来补充宏单元的逻辑资源,(,1,)共享扩展项,反馈到逻辑阵列的反向乘积项,(,2,)并联扩展项,来自临近宏单元中的乘积项,共享扩展乘积项(,Shareable Expanders,),并联扩展乘积项(,Parallel Expanders,),不同宏单元信号的,级联,实现复杂逻辑,4,)可编程连线阵列,通过可编程连线阵列可将各,LAB,互连构成所需逻辑。,5,),I/O,控制块,可控制,I/O,引脚单独配置为输入、输出、双向工作模式,CPLD,的逻辑实现原理,以一个简单的电路为例,具体说明,PLD,是如何利用以上结构实现逻辑的,电路如下图:,假设组合逻辑的输出,(AND3,的输出,),为,f,,则,f=(A+B)*C*(!D)=A*C*!D + B*C*!D ( !D,表示,D,的“非”),CPLD,将以下面的方式来实现组合逻辑,f:,A,B,C,D,由,CPLD,芯片的管脚输入后进入可编程连线阵列(,PIA),,在内部会产生,A,A,反,B,B,反,C,C,反,D,D,反,8,个输出。,图中每一个叉表示相连(可编程熔丝导通),所以得到:,f= f1 + f2 = (A*C*!D) + (B*C*!D),。这样组合逻辑就实现了。,FPGA原理:查找表,采用查找表结构的,PLD,称为,FPGA,如,altera,的,ACEX,APEX,系列,xilinx,的,Spartan,Virtex,系列等。,目前,FPGA,中多使用,4,输入的,LUT,,所以每一个,LUT,可以看成一个有,4,位地址线的,16x1,的,RAM,。 当用户通过原理图或,HDL,语言描述了一个逻辑电路以后,,PLD/FPGA,开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入,RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。,LUT的工作过程,用户通过原理图或,HDL,语言描述了一个逻辑电路,CPLD/FPGA,开发软件计算逻辑电路的所有可能的结果(代码),并把结果事先写入,RAM,输入一个信号进行逻辑运算 就等于 输入一个地址进行查表,找出地址对应的内容,然后输出即可。,四输入的,LUT,结构,三输入变量的,LUT,结构,0/1,0/1,0/1,0/1,0/1,0/1,0/1,0/1,x1,x2,x3,f,示例,X3,X2,X1,f,0,0,0,1,0,0,1,0,0,1,0,0,0,1,1,0,1,0,0,0,1,0,1,0,1,1,0,0,1,1,1,1,真值表,1,0,1,0,0,0,0,0,x1,x2,x3,f,由于是,2,4,选,1,的数据选择器,所以可以直接实现,4,变量逻辑函数。其中的随机存储器,RAM,用于存储,2,4,选,1,数据选择器的数据信号,,D,、,C,、,B,、,A,是输入逻辑变量,,F,是输出,例如,如下逻辑函数就可以用图所示的查找表实现。,练习:用查找表实现逻辑函数,F,=,AC,!,D+BC,!,D,(!表示取反),用查找表实现逻辑函数,F,=,D,+,C,+,B,+,A,的情况。,想想如何实现与门?,FLEX10K,系列是工业界第一种嵌入式的,PLD,器件,是高密度阵列嵌入式可编程逻辑器件。它的结构类似于嵌入式门阵列,但与之不同的是,它是可编程的,在调试时,给设计者提供了重复设计改变过程中对嵌入式宏函数和一般逻辑的完全控制。,典型,FPGA,器件,FLEX10K,系列器件,FLEX10K,的内部结构,嵌入式阵列块,逻辑阵列块,快速通道(,Fast Track,),I/O,单元,IOE,IOE,1,8,IOE,IOE,1,8,IOE,IOE,1,8,IOE,IOE,1,8,IOE,IOE,IOE,IOE,IOE,IOE,IOE,IOE,IOE,IOE,IOE,IOE,IOE,IOE,IOE,IOE,逻辑阵列,LAB,EAB,EAB,逻辑单元,LE,逻辑阵列,LAB,嵌入式,阵列,FLEX 10K,的结构图,I/O,单元,逻辑单元,(LE),LE,是,FLEX10K,结构里的最小逻辑单位,它很紧凑,能有效地实现逻辑功能。,每个,LE,含有一个,4,输入的,LUT,、一个可编程的具有同步使能的触发器、进位链和级联链,,LE结构图,数据,1,Lab,控制,3,LE,输出,进位链,级联链,查找表,(LUT),清零和,预置逻辑,时钟选择,进位输入,级联输入,进位输出,级联输出,Lab,控制,1,CLRN,D,Q,数据,2,数据,3,数据,4,Lab,控制,2,Lab,控制,4,1),进位链(,Carry Chain,),进位链提供,LE,之间非常快的(小于,0.2ns,)超前进位功能。进位信号通过超前进位链从低序号,LE,向高序号位进位,同时进位到,LUT,和进位链的下一级。,这种结构特性使得,FLEX10K,器件能够实现高速计数器、加法器和任意宽度的比较器功能。,例: 图展示如何利用进位链实现加法器、比较器、计数器。其中,LUT,部分产生两位输入信号和进位信号的“和”,并将它接到,LE,输出。,利用级联链,FLEX10K,结构可以实现扇入很多的逻辑功能。通过相邻的,LUT,并行计算逻辑功能的各个部分,再用级联链将这些中间值串接起来。,级联链可使用“与”逻辑或“或”逻辑来连接相邻的,LE,的输出。每增加一个,LE,逻辑的有效输入宽度增加四个,而延时增加约,0.6ns,。,2,)级联链,“,与”级联链,“,或”级联链,LUT,LUT,IN 3.0,IN 4.7,LUT,IN (4n-1).4(n-1),LUT,LUT,IN 3.0,IN 4.7,LUT,IN (4n-1).4(n-1),LE1,LE2,LE,n,LE1,LE2,LE,n,0.6,ns,2.4,ns,16,输入的延时是多少呢?,一个,LUT,无法完成的,N4,的多输入电路,需通过,进位,和,级连,的方法将多个,LUT,单元相连,这样,FPGA,就可以实现复杂逻辑。,查找表,与门,查找表,与门,查找表,与门,d3.0,d7.4,d11.8,例 实现一个,12,个输入变量的函数。,在,FLEX10K,的结构中,快速通道互连提供,LE,和,I/O,引脚的连接,它是一系列贯穿整个器件的水平或垂直布线通道。这个全局布线结构即使在复杂的设计中也可预知性能。,快速通道互连,EAB,是在,PLD,中嵌入的一大块,RAM,;,数据线最大宽度,8bit,,地址线最大宽度,11bit,EAB,可灵活配置为,:2568,5124,10242,20481,的,RAM,每个,EAB,可提供,2048,个存储位,可实现,16,个以上的,LEs,所能完,的复杂逻辑功能。,适合实现乘法器、纠错电路等功能。如,44,乘法器。,较大的,RAM,块可以由多个,EAB,连接产生。,嵌入阵列块,(EAB),EAB,的大小灵活可变,通过组合,EAB,可以构成更大的模块,不需要额外的逻辑单元,不引入延迟,,EAB,可配置为深度达,2048,的存储器,EAB,的字长是可配置的,256,x8,512,x4,1024,x2,2048,x1,256,x8,256,x8,512,x4,512,x4,256,x16,512,x8,EAB,(,Embedded Array Block,),EAB的位置和作用,位置:,EAB,在,PLD,器件的,I/O,端口附近,不是位于,PLD,器件的中间,作用:,用作,ROM,RAM,FIFO,等各种类型存储器,实现计数器,地址译码器,硬件乘法器等,多个,EAB,可组合,以满足更大规模的应用,CPLD,与,FPGA,的相同点,CPLD,与,FPGA,在很大程度上具有类似之处,概括起来,可以认为它们都是由以下,三部分共同组成,:,(,1,)输入,/,输出单元。,(,2,)逻辑块阵列,是,PLD,器件逻辑组成的核心,(,3,)用于连接逻辑块的互连资源,其中可以是各种长度的连线线段,也可以是一些可编程的连接开关,通常用来连接逻辑块之间、逻辑块与输入,/,输出块之间的连线。,编程技术与数据易失性,通常,FPGA,采用,SRAM,进行功能配置,可以重复编程,但系统掉电后,,SRAM,中的数据丢失。因此,需在,FPGA,外加,EPROM,,,将配置数据写入其中,系统每次上电自动将数据引入,SRAM,中。,而一般,CPLD,器件采用,EEPROM,存储技术,可重复编程,且系统掉电后,,EEPROM,中的数据不会丢失,适于数据的保密。,CPLD,与,FPGA,的不同点,触发器资源,FPGA,器件由于含有丰富的触发器资源,容易实现,时序,逻辑,若要求实现比较复杂的组合电路则需要几个,CLB,结合起来实现。,CPLD,的与或阵列结构,使它更适合于实现大规模的,组合逻辑,功能,而它的触发器资源相对比较少。,芯片利用率,FPGA,多为,细粒度,结构。,FPGA,内部有丰富连线资源,,CLB,分块比较小,芯片利用率比较高。,CPLD,多为,粗粒度,结构。,CPLD,宏单元的与或阵列较大,通常不能完全被应用,而且宏单元之间主要通过高速数据通道连接,容量有限,限制了器件的灵活布线,因此,CPLD,利用率比,FPGA,低,。,布线结构与延时预测性,FPGA,为,非连续式,布线。,FPGA,器件在,每次编程,时实现的逻辑功能一样,但走的路线不同,因此,延时难以预测,,要求开发软件允许工程师对关键的路线给予限制。,CPLD,为,连续式,布线。,CPLD,每次布线路径一样,其连续式互连结构利用具有同样长度的一些金属线实现逻辑单元之间的互连,消除了分段式互连结构在定时上的差异,并且在逻辑单元之间提供,快速,而且具有,固定延时,的通路。,另外,,CPLD,的延时比较小,。,CPLD,与,FPGA,的区别,嵌入式阵列块,CPLD/FPGA,的选择,FPGA,CPLD,的选择主要看开发项目本身的需要。,对于普通规模而且产量不是很大的产品项目,通常使用,CPLD,比较好,。这是因为:,(1),中小规模范围,,CPLD,价格较便宜,能直接用于系统。各系列的,CPLD,器件的逻辑规模覆盖面居中小规模,(1000,门至,5,万门,),,有很宽的可选范围,上市速度快市场风险小。,(2),目前最常用的,CPLD,多为在系统可编程的硬件器件,编程方式极为便捷。这一优势能保证所设计的电路系统随时可通过各种方式进行硬件修改和硬件升级,且有良好的器件加密功能。,(3)CPLD,中有专门的布线区和许多块,无论实现什么样的逻辑功能或采用怎样的布线方式,引脚至引脚间的信号延时几乎是固定的,与逻辑设计无关。这种特性使得设计调试比较简单,逻辑设计中的毛刺现象比较容易处理,廉价的,CPLD,就能获得比较高速的性能。,(4),开发,CPLD,的,EDA,软件比较容易得到,如,MAX+plus,就可以免费获得。,(5)CPLD,的结构大多为,E2PROM,或,FLASH ROM,形式,编程后即可固定下载的逻辑功能。使用方便,电路简单。,对于大规模的逻辑设计、,ASIC,设计或单片系统设计,则多采用,FPGA,。,从逻辑规模上讲,FPGA,覆盖了大中规模范围,逻辑门数从,5,干门至两百万门。,PLD,器件的配置与编程,何谓配置和编程?,将,VHDL,代码形成的文件写入,PLD,器件的过程,配置(,configure,)和编程,(program),的区别,Program,:对,flash,或者,EEPROM,工艺的配置芯片或者,PLD,器件进行写入的过程,Configure,:对,SDRAM,工艺的,FPGA,写入数据必须每次上电后均要进行一次,编程文件保存在配置芯片中,上电时从编程芯片下载到,FPGA,中,Altera,器件的配置编程过程,CPLD器件可独立使用,无需其他编程芯片,直接通过JTAG接口或其他接口进行编程。,FPGA器件不能独立使用(调试时可以),需要和配置芯片一起使用,在生产时,代码写入配置芯片中,应用时,加电后代码自动从配置芯片写入FPGA中。,PLD器件的2种配置方法,通过,PC,机配置,2.,通过专用编程器配置,Altera公司的FPGA的配置,共有,7,种模式:,Passive Serial (PS),Active Serial (AS),Passive Parallel Synchronous (PPS),Fast Passive Parallel (FPP),Passive Parallel Asynchronous (PPA),Passive Serial Asynchronous (PSA),Joint Test Action Group (JTAG) JTAG,模式,可通过,FGPA,的,MSEL0,MSEL1,引脚选择,被动,/,主动,串行,/,并行,异步,/,同步,?,有关配置的术语,被动,/,主动,是指,FPGA,的配置过程是,FPGA,发起 还是配置器件(主机,host,)发起,如是,FPGA,器件发起配置,则为主动,否则为被动,串行,/,并行,配置数据通过一根数据线传送道到,FPGA,中为串行,并行配置一般有,8,根数据线,速度更快,异步,/,同步,异步配置,没有时钟信号线,同步配置有时钟信号线,Active Serial (AS),主动串行,Configuration with the serial configuration devices (EPCS1 and EPCS4).,用于,Cyclone,系列器件的配置,必须使用,ByteBlaster II,电缆,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!