总的发展过程为:PROM→PLA→PAL→GAL→CPLD/FPGA→SOPC
早期CPLD是从GAL的结构扩展而来,但针对GAL的缺点进行了改进,如Lattice的ispLSI1032器件等。在流行的CPLD 中Altera(现intel)的MAX7000和MAX3000A系列器件具有一定典型性。
MAX3000A结构中包含五个主要部分,即逻辑阵列块、宏单元、扩展乘积项(共享和并联)、可编程连线阵列、I/O 控制块。
逻辑阵列块 LAB:
一个LAB由16个宏单元的阵列组成。多个LAB通过可编程连线阵(programmable interconnect array,PIA)和全局总线连接在一起,全局总线从所有的专用输人、I/0引脚和宏单元馈入信号。
宏单元:
MAX3000A系列中的宏单元由三个功能块组成:逻辑阵列、乘积项选择矩阵和可编程寄存器。它们可以被单独地配置为时序逻辑和组合逻辑工作方式。其中逻辑阵列实现组合逻辑,可以给每个宏单元提供五个乘积项。
扩展乘积项:
虽然大部分逻辑函数能够用在每个宏单元中的五个乘积项实现,但更复杂的逻辑函数需要附加乘积项。
可编程连线阵列PIA:
不同的LAB通过在可编程连线阵列 PIA 上布线,以相互连接构成所需的逻辑。这个全局总线是一种可编程的通道,可以把器件中任何信号连接到其目的地。
I/O控制块:
I/O控制块允许每个I/O引脚单独被配置为输人、输出和双向工作方式。
组合逻辑可编程采用:
乘积项可编程(乘→与,积、和→或),即与-或阵列可编程
i、(常见)与阵列可编程,或阵列不可编程
ii、与阵列可编程,或阵列可编程
时序逻辑可编程采用:
乘积项可编程+可配置触发器
诸如GAL、CPLD之类都是基于乘积项的可编程结构,即可编程的与阵列和固定的或阵列组成。而FPGA采用可编程的查找表(look up table,LUT)结构,LUT是可编程的最小逻辑构成单元。大部分FPGA采用基于SRAM(静态随机存储器)的查找表逻辑形成结构,就是用SRAM来构成逻辑函数发生器。一个N输入LUT可以实现N个输人变量的任何逻辑功能,如N输人“与”、N输人“异或”等。
Cyclone 4E 系列器件是Intel(原Altera)公司的一款低功耗、高性价比的FPGA,它的结构和工作原理在 FPGA 器件中具有典型性。Cyclone4E器件主要由逻辑阵列块(logicarray block,LAB)入式存储器块、嵌入式硬件乘法器、IO单元和人式 PLL 等模块构成,在各个模块之间存在着丰富的互连线和时钟网络。
Cyclone4E系列FPGA器件的可编程资源主要来自逻辑阵列块LAB,而每个LAB都由多个逻辑宏单元LE(logic element,或LC;logic cell)构成。LE是Cylone 4E FPGA器件的最基本的可编程单元, LE主要由一个4输入的LUT、进位链逻辑、存器链逻辑和一个可编程的寄存器构成。4输人的LUT 可以完成所有的4输人1输出的组合逻辑功能。每一个LE的输出都可以连接到行、列、直连通路、进位链、寄存器链等布线资源。
IEEE的联合测试工作组(Joint Test Action Group,JTAG)开发了IEEE1149.1-1990边界扫描测试技术规范。该规范提供了有效的测试引线间隔致密的电路板上集成电路芯片的能力。大多数 CPLD/FPGA 厂家的器件遵守JTAG规范,并为输人引脚和输出引脚以及专用配置引脚提供了边界扫描测试(board scantest,BST)的能力。
在FPGA开发中,JTAG口更多地被用在对其进行编程、配置、内嵌存储器内容的测试编辑,以及处理器内核系统的软硬件测试和调试。
JTAG在FPGA中的应用:
编程——Flash/EEPROM/AntiFuse工艺:
CPLD编程、反熔丝结构FPGA编程、内嵌Flash的FPGA的内嵌Flash编程
配置——SRAM工艺:
FPGA配置、FPGA部分配置
配置器件编程——FPGA外接Flash
Xilinx
Intel PSG( Altera)
Microsemi (收购Actel)Lattice Semiductor
国内:紫光同创、高云、安路、京微齐力
Intel PSG(AItera)产品:
FPGA
Agilex/Statix 10/Stratix V、Cyclone 10/Cyclone V/Cyclone IV、Array 10/ Array 、VMAX 10
CPLD
MAX 10/MAX V/MAXII 、MAX3000A
如有需要课本PDF与课件可以评论区联系发邮箱。