这三种结构中,同样一个方向的一个连接线段可以和其他三个方向的一个线段相连接,只是连接的线段编号不同,不过对应的配置还是一样的。以上的设计同样可以应用于这三种开关盒结构。
如果是不规则的SB结构,可以通过设计需要的测试配置来决定需要增加的触发器数目,在测试配置中,尽可能使SB内的状态相同的传输管多一些。一个基本的原则就是,在一个SB内部所有可以配置成同样状态的开关都可以利用一个触发器来进行下载。
如何测试芯片内部增加的电路呢?因为移位链有一个输出端DATA OUT,可以通过此输出端来验证移位链的正确性。对于传输管可以配合开关盒的测试来对其进行测试。如果下载以后功能正确则传输管没有常开故障。下载一定功能电路以后,将TEST CONTROL信号置0状态,即将所有的传输管断开,然后下载一个编程数据和之前相反的位流文件,如果功能未改变说明传输管没有常闭故障。
5 结果
以下从三个方面来说明此可测性设计的特点:
1)测试时间比较
首先定义几个参数,假定芯片的规模是N×N个逻辑单元,即有N行和N列逻辑单元。
NSB=N2:芯片中开关盒的个数 PS8:一个开关盒内部编程开关的数目
NCLB:芯片中CLB的个数 PCLB:一个CLB内部的编程开关的数目
NCB:芯片中CB的个数 PCB:一个CB内部的编程开关数目
T:编程下载的时钟周期 Nconfig:测试需要的配置数目
利用传统的测试方法测试SB互连资源时,需要将测试设计的配置数据下载到芯片中,此配置的编程数据包含了芯片内部所有编程SRAM的编程信息,所以在下载的时候同样将测试用不到的CLB,CB内部的编程信息也下载进去了,但是这部分的下载对测试SB是没有用的,所以时间就浪费了。传统的测试方法需要的时间为:
利用本文提出的可测性设计方法,测试数据仅仅对SB内部的SRAM单元进行配置,而且是并行的,这样就大大减小了测试SB连线资源配置需要的时间,在设计中可以实现N条移位链,利用这种方法测试需要的时间TNEW=6xNxNconfigxT
可以得到节省的时间的百分比:
在本文设计的FPGA芯片中:各参数值如下所示:
TSAVE/TTRA=99.97%,可以看到节省的时间是很可观的。
对于上述芯片的条件,测试时问比较如表1所示。
2)硬件的消耗评估
假设设计中使用的DFF内有30个MOS管,所以在设计中每个SB消耗的MOS管数目为6x30+PSB,而SB中逻辑资源包含的MOS管数目为PSBx6+NBUF,其中PSBx5是SRAM单元含有的MOS管数目,PSB是SB内传输管的数目,NBUF是SB Buffer中包含的MOS管数目。而在FPGA芯片中一般SB中逻辑资源占芯片面积的28%,所以硬件消耗的面积百分比:0.28x(6x30+PSB)/(PSBx6+NBUF)。
在本文设计的FPGA芯片中,其中只有一种开关盒。每个开关盒内部Buffer含有的MOS管数目为912个,所以如果在芯片中加入可测性移位链所消耗的面积百分比:是0.28x(6x30+216)/(216x6+912)=5.27%,消耗的面积可以接受。
由以上可以看出,文献方法在测试的过程中需要利用传统的方法下载测试少数种子配置,需要时问较多,可以看到本文提出的方法远远比文献改进很多,消耗的硬件仅稍有增加。对于文献采用的方法,需要的测试时问与本文方法可相比较,但它的硬件及内部控制比较复杂,并且测试需要相应的一些外部设备来判断是否为测试需要的配置。而本文提出的方法则比较简单,而且测试需要的时间和硬件面积的增加达到了一个比较好的平衡。
3)对芯片的影响
此可测性设计不会对芯片的正常工作产生影响,因为在芯片正常工作的时候,测试电路完全与芯片内部电路分开。所以对于芯片使用者来说不存在性能方面的问题。
6 结论
本文提出在FPGA芯片内插入多条移位寄存器链的方法,可使测试开关盒连线资源的时问比传统的测试方法和已有的一种方法时间上减少了99%以上,大大降低了测试的时间,降低了测试成本,并且消耗的硬件面积比大约在5%左右,在可接受的范围内。