上世纪八十年代,联合测试行为组织(Joint Test ActI/On Group,简称JTAG)制定了主要用于PCB和IC的边界扫描测试标准。该标准于1990 年被IEEE 批准为IEEE1149.1-1990 测试访问端口和边界扫描结构标准。随着芯片设计和制造技术的快速发展,JTAG越来越多的被用于电路的边界扫描测试和可编程芯片的在线系统编程。
FPGA器件都支持JTAG进行在线配置,JTAG边界扫描的基本原理如图2.7所示。在FPGA器件内部,边界扫描寄存器由TDI信号作为数据输入,TDO信号作为数据输出,形成一个很大的移位寄存器链。而JTAG通过整个寄存器链,可以配置或者访问FPGA器件的内部逻辑状态或者各个I/O引脚的当前状态。
在这里我们不过多的研究JTAG的原理。对于电路设计来说,JTAG的四个信号TCK/TMS/TDI/TDO(TRST信号一般可以不用)以及电源、地连接到下载线即可。
说到FPGA的配置,这里不得不提一下他们和CPLD内部存储介质的不同。CPLD由于大都是基于PROM或Flash来实现可编程特性,因此对他们进行在线编程时就已将配置数据流固化好了,重新上电后还能够运行固有的配置数据。FPGA大都是基于SRAM来实现可编程特性,换句话说,通过JTAG实现在线编程时,在保持不断电的情况下,FPGA能够正常运行,而一旦掉电,SRAM数据丢失,FPGA则一片空白,无法继续运行任何既定功能。因此,FPGA通常需要外挂一个用于保存当前配置数据流的PROM或Flash芯片,我们通常称之为“配置芯片”,CPLD则不需要。
因此,对于FPGA器件,我们若希望它产品化,可以脱机(PC机)运行,那么就必须在板级设计时考虑它的配置电路。也不用太担心,其实FPGA厂商的器件手册里也会给出推荐的配置芯片和参考电路,大多情况下依葫芦画瓢便可。当然了,板级设计还是马虎不得的,有几个方面是需要注意的:
● 配置芯片尽量靠近FPGA。
● 考虑配置信号的完整性问题,必要时增加阻抗匹配电阻。
● 部分配置引脚可以被复用,但是要谨慎使用,以免影响器件的上电配置过程。
FPGA配置电路的设计是非常重要的,相关信号引脚通常都是固定并且专用的,需要参考官方推荐电路进行连接。