cpld一般用JTAG接口进行加载,内部有FLASH和SRAM,CPLD的配置文件可存在在内置的FLASH中,因此下电不会丢失,不需要每次上电的时候,额外对CPLD进行配置结构如下: 方式一:当SRAM为空时(CPLD一次都未加载过或者CPLD内部FLASH存储的配置文件有问题,不能加载到SRAM中),Flash编程进入直接模式,此时CPLD的IO管脚状态由BSCAN registers(边界扫描寄存器)决定,BSCAN registers可以将IO设置成high, low, tristate (default), or current value四种。
. g4 j: R- X% l0 \) J方式2:
方式二:当SRAM不为空的时候,Flash 可进行background编程模式.在此模式下,在加载on-chipFlash时,允许CPLD器件仍然维持在用户操作模式下(即CPLD可以正常工作)。
IEEE 1532标准简介IEEE 1532标准是一个基于IEEE 1149.1的在板编程的新标准,标准的名字为IEEE Standard for In-System Configuration of ProgrammableDevices。 在1993年,出现ISP(In-System Programming)的概念和应用。随之产生了应用IEEE1149.1进行ISP的需求。各个厂商提供了类似的不相同的基于JTAG的ISP工具。1996年4月,半导体厂商、ISP工具开发者、ATE开发商正式提出了IEEE 1532标准,旨在为JTAG器件的在板编程提供一系列标准的专门的寄存器和操作指令从而使得在板编程更为容易和高效。IEEE1532完全建立在IEEE1149.1标准之上,在IEEE 1532标准上可以开发通用的编程工具,为测试、编程和系统开发提供规范的接口和器件支持、促进了编程革新,开辟了边界扫描技术新的应用领域。IEEE1532 主要应用在CPLD、FPGA、PROM以及任意的支持IEEE 1532的可编程器件的在板编程。
6 n8 J- m/ s9 O( [: t4 E/ Q早期的可编程逻辑器件只有可编程只读存贮器(PROM)、紫外线可按除只读存贮器(EPROM)和电可擦除只读存贮器(EEPROM)三种。由于结构的限制,它们只能完成简单的数字逻辑功能。
! P0 M7 F: C% e+ v; h/ v7 U8 _" |4 G& N' ~% j
其后,出现了一类结构上稍复杂的可编程芯片,即可编程逻辑器件(PLD),它能够完成各种数字逻辑功能。典型的PLD由一个“与”门和一个“或”门阵列组成,而任意一个组合逻辑都可以用“与一或”表达式来描述,所以,PLD能以乘积和的形式完成大量的组合逻辑功能,可以实现速度特性较好的逻辑功能,但其过于简单的结构也使它们只能实现规模较小的电路。, M# J- Z$ G& {# F) f
2 P9 R/ n8 l" w/ d# Y4 Y
为了弥补这一缺陷,20世纪80年代中期。 Altera和Xilinx分别推出了类似于PAL(可编程阵列逻辑)结构的扩展型 CPLD(ComplexProgrammab1e Logic Dvice)和与标准门阵列类似的FPGA(FieldProgrammable Gate Array),它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点。这两种器件兼容了PLD和通用门阵列GAL(Generic Array Logic)的优点,可实现较大规模的电路,编程也很灵活。与门阵列等其它ASIC(ApplicationSpecific IC)相比,它们又具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检验等优点,因此被广泛应用于产品的原型设计和产品生产(一般在10,000件以下)之中。几乎所有应用门阵列、PLD和中小规模通用数字集成电路的场合均可应用FPGA和CPLD器件。
- ]: S* `9 \# e