CPLD/FPGA设计及应用(可编程逻辑器件)-1-可编程逻辑器件简答1.简述CPLD/FPGA的几种配置模式?每种配置模式的基本特点是什么?答:载入配置数据的方式有三种:JTAG方式;主动配置方式和被动配置方式。(1)JTAG方式是由JTAG命令来配置CPLD/FPGA器件的方式。(2)主动配置方式由器件引导配置操作过程,它控制着外部存储器和初始化过程。(3)被动配置方式由系统中的其他设备发起并控制配置过程。FPGA器件在配置过程中完全是被动的,它仅输出一些状态信号来配合配置过程。2.大规模可编程逻辑器件的编程工艺包括哪几种类型;并说明各自的特点?答:可编程逻辑器件按照编程工艺分为以下六种类型:(1)熔丝型器件,根据设计的熔丝图文件来烧断对应的熔丝,达到编程的目的。(2)反熔丝型器件,在编程处通过击穿漏层使得两点之间导通。(3)UEPROM型器件(紫外线擦除电可编程逻辑器件),此类器件用较高的编程电压进行编程,当需要再次编程时,用紫外线进行擦除,可多次编程。(4)E2PROM型器件(电可擦写编程器件),这是对EPROM工艺的改进,不需要紫外线擦除,而是直接用电擦除。(5)SRAM型器件(查找表结构的器件),这种编程方式可进行任意次数的编程,在编程速度、编程要求上要优于前四种器件,SRAM型器件的编程信息存放在RAM中,在断电后就丢失了,再次上电需要再次编程,需要专用器件来完成这类配置操作。(6)Flash型器件,可以实现多次编程,且能做到掉电后无需重新配置。另一种解法:目前常见的大规模可编程逻辑器件的编程工艺有下面3种:(1)基于电可擦除存储单元的E2PROM或FLASH技术。CPLD一般采用此技术进行编程。CPLD被编程后改变了电可擦除存储单元中的信息,掉电后可保持。(2)基于SRAM查找表的编程单元,对该类器件,编程信息是保存在SRAM中的,SRAM在掉电后编程信息立即丢失,在下次上电后,需重新载入编程信息。因此,该类器件的编程一般称为配置。大部分FPGA采用此种编程工艺。(3)基于反熔丝编程单元。反熔丝技术编程时一次可编程的。相比之下,电可擦除编程工艺的优点是编程后信息不会因掉电而丢失,但编程次数有限,编程速度不快。SRAM型的FPGA配置次数为无限,在加电时可随时更改逻辑,但掉电后芯片中的信息随即丢失,每次上电必须重新载入信息,下载信息的保密性不如前者。3.按照结构类型划分,可编程逻辑器件有哪几种类型,并简述它们各自的特点?答:(1)乘积项结构器件。其基本结构与“与——或阵列”的器件相同。(2)查找表结构器件。其基本结构类似于“门阵列”的器件,他又简单的查找表组成可编程逻辑门,再构成阵列形式。4.什么是半定制设计方法,半定制设计法按实现方法不同可分为几种类型?答:半定制是一种约束性设计方式。约束的主要目的是简化设计、缩短设计周期、降低设计成本和提高芯片成品率。半定制法按逻辑实现的方式不同分为门阵列法、标准单元法和可编程逻辑器件法三种。5.简述什么是被动配置方式,被动配置方式包括哪几种具体方式,各自特点是什么?答:被动配置方式由系统中的其他设备发起并控制配置过程。FPGA器件在配置过程中完全是被动的,它仅输出一些状态信号来配合配置过程。被动配置方式又细分为:被动串行、被动串行异步、被动并行同步、被动并行异步和快速被动并行。被动串行配置方式是将配置数据从存储器中读出,写入到FPGA的配置数据接口DATA0上,CPLD/FPGA设计及应用(可编程逻辑器件)-2-数据由配置时钟DCLK的上升沿打入FPGA,每一个配置时钟周期输入1彼特数据。被动串行异步配置方式就是将配置数据从存储器中读出,写入到FPGA的串行输入数据接口上,整个配置过程由异步控制信号来控制。被动并行同步配置方式是将配置数据从存储器中读出,写入到FPGA的秉性输入数据接口上,即在第一个配置时钟信号的上升沿江一个字节的数据锁存,然后由随后的8个配置时钟的下降沿将该字节数据一位一位移入到FPGA中。可见,此种配置方式速度较低。被动并行异步配置方式是将配置数据从存储器中读出,写入到FPGA的并行输入数据接口上,整个配置过程由异步控制信号来控制快速被动并行是将配置数据从存储器中读出,写入到FPGA并行数据输入接口上,数据由配置时钟DCLK大家上升沿打入FPGA,每一个配置时钟周期输入1字节数据,故此方式的配置速度较快。6.简述CPLD与FPGA的异同点?答:根据结构特点和工作原理,CPLD和FPGA的分类方法是:以乘积项结构方式构成逻辑行为的器件称为CPLD,以查找表法结构方式构成逻辑行为的器件称为FPGA。FPGA和CPLD都是可编程ASIC器件,同时,对用户而言,CPLD和FPGA的设计流程是相似的。它们有很多共同特点,由于CPLD和FPGA硬件结构上的差异,使得它们具有各自的特点:(1)在结构工艺方面,CPLD多为乘积项结构,工艺多为EECMOS,也包含EEPROM、Flash和反熔丝等不同工艺;FPGA多为查找表加寄存器结构;实现工艺多为SROM,也包含Flash、Anti-Fuse等工艺。(2)在触发器数量上,CPLD触发器数量少,这使得CPLD更适合于触发器有限而乘积项丰富的结构,即CPLD更适合完成组合逻辑;FPGA触发器数量众多,这使得FPGA更适合于触发器丰富的结构,即FPGA更适合于完成复杂时序逻辑。(3)在规模与逻辑复杂度方面,CPLD的规模小,逻辑复杂度低,因而用于实现简单设计;而FPGA的规模大,逻辑复杂度高,故用于实现复杂设计。(4)在延时方面,CPLD的PintoPin延时是固定的;FPGA的PintoPin延时是不可预测的,因此对FPGA而言,时序约束和仿真非常重要。(5)在互连结构和连线资源方面,CPLD采用集总式互连结构,相对布线资源有限,CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的;FPGA采用分布式互连结构,具有丰富的布线资源,故FPGA布线灵活,但FPGA的分段式布线结构决定了其延迟的不可预测性,使时序更难规划。(6)在编程灵活性上,FPGA比CPLD具有更大的灵活性。因为CPLD是通过修改具有固定内连电路的逻辑功能来编程,FPGA主要是通过改变内部连线的布线来编程;FPGA可在逻辑门下编程,而CPLD是在逻辑块下编程。(7)在功耗方面,一般情况下,CPLD的功耗要比FPGA大,且集成度越高越明显。(8)在编程方式上,CPLD主要是基于EEPROM或Flash存储器编程,编程次数可达1万次,优点是系统断电时编程信息也不丢失。FPGA大部分是基于SRAM编程,编程信息在系统断电时丢失,每次上电时,需从器件外部将编程数据重新写入SRAM中,其优点是可以编程任意次,从而实现板级和系统级的动态配置。(9)在使用方便程度上,CPLD比FPGA使用起来更方便。CPLD的编程采用EEPROM或Flash技术,无需外部存储器芯片,使用简单;而FPGA的编程信息一般需存放在外部存储器上,使用方法复杂。(10)在保密性方面,CPLD保密性好,FPGA保密性较差。因为一般FPGA不容易实现加密。(11)在成本和价格方面,CPLD成本低,价格低,更适合实现低成本设计;FPGA成本高,价格高,适合于高速、高密度的高端数字逻辑设计领域。CPLD/FPGA设计及应用(可编程逻辑器件)-3-7.以MAX7000为例,简述I/O控制的作用?答:I/O控制块允许每个I/O引脚单独地配置为输入、输出和双向工作方式。MAX7000结构提供双I/O反馈,且宏单元和引脚的反馈是相互独立的。当I/O引脚被配置成输入时,相关的宏单元可用于隐含逻辑。8.以MAX7000为例,简述其内部结构组成,说明宏单元内部结构?答:MAX7000器件包括逻辑阵列块、宏单元、扩展乘积项(共享和并联)、可编程连线阵列和I/O控制块5部分。MAX7000还含有4个专用输入,它们即可用作通用输入,也可作为每个宏单元和I/O引脚的高速、全局控制信号即时钟(Clock)、清除(Clear)及两个输出使能信号。每个宏单元由逻辑阵列、乘积项选择矩阵和可编程寄存器等3个功能块组成其中逻辑阵列用来实现组合逻辑,它为每个宏单元提供5个乘积项。乘积项选择矩阵把这些乘积项分配到“或”门和“异或”门作为基本逻辑输入,以实现组合逻辑功能;或者把这些乘积项作为宏单元中寄存器的辅助输入来实现清除、预置、时钟和时钟使能等控制功能。每个宏单元中有一个共享扩展乘积项经非门后反馈到逻辑阵列中;宏单元中还存在并联扩展乘积项,该乘积项从邻近宏单元借位而来。两种扩展乘积项可用来补充宏单元的逻辑资源。