Testable programmable gate array and associated LSSD/deterministic test methodology
First Claim
Patent Images
1. An improved testable field programmable gate array, FPGA, having:
- a plurality of I/O ports;
I/O functional signal lines coupled to associated I/O ports of said plurality of I/O ports;
a plurality of programmable operating units providing particular logic circuits in accordance with associated logic configuration data;
a plurality of programmable interconnects interconnecting the I/O functional signal lines and programmable logic units of the plurality of programmable operating units in accordance with associated routing configuration data;
a plurality of memory cells associated with the respective plurality of programmable logic units and plurality of programmable interconnects, designated memory cells of the plurality of memory cells retaining the associated logic configuration data and routing configuration data; and
configuration logic having inputs receiving memory request signals, the configuration logic providing access to memory cells of the plurality of memory cells in accordance with the memory request signals;
wherein the improvement of the testable field programmable gate array includes test circuitry comprising;
first LSSD scan registers disposed as a boundary scan chain across the I/O functional signal lines, said first LSSD scan registers providing selective coupling into associated I/O functional signal lines for enabling serial scan access to, and functional verification of, the I/O functional signal lines and associated I/O ports;
second LSSD scan registers disposed as a scan chain about given segments of the configuration logic for providing serial scan access to, and enabling functional verification of, the configuration logic; and
third LSSD scan registers providing interconnect scan chains disposed along the programmable interconnects, the third LSSD scan registers providing selective coupling into respective programmable interconnects for enabling serial scan access to and functional verification of the programmable interconnects.
1 Assignment
0 Petitions
Accused Products
Abstract
A programmable gate array includes test subsystems for testing various functional subsystems of the programmable gate array. A sequence of test methods, employing the test subsystems, test the functionality of the programmable gate array, taking into account the interdependencies of the various subsystems and accordingly enabling fault isolation therein.
-
Citations
23 Claims
-
1. An improved testable field programmable gate array, FPGA, having:
-
a plurality of I/O ports; I/O functional signal lines coupled to associated I/O ports of said plurality of I/O ports; a plurality of programmable operating units providing particular logic circuits in accordance with associated logic configuration data; a plurality of programmable interconnects interconnecting the I/O functional signal lines and programmable logic units of the plurality of programmable operating units in accordance with associated routing configuration data; a plurality of memory cells associated with the respective plurality of programmable logic units and plurality of programmable interconnects, designated memory cells of the plurality of memory cells retaining the associated logic configuration data and routing configuration data; and configuration logic having inputs receiving memory request signals, the configuration logic providing access to memory cells of the plurality of memory cells in accordance with the memory request signals; wherein the improvement of the testable field programmable gate array includes test circuitry comprising; first LSSD scan registers disposed as a boundary scan chain across the I/O functional signal lines, said first LSSD scan registers providing selective coupling into associated I/O functional signal lines for enabling serial scan access to, and functional verification of, the I/O functional signal lines and associated I/O ports; second LSSD scan registers disposed as a scan chain about given segments of the configuration logic for providing serial scan access to, and enabling functional verification of, the configuration logic; and third LSSD scan registers providing interconnect scan chains disposed along the programmable interconnects, the third LSSD scan registers providing selective coupling into respective programmable interconnects for enabling serial scan access to and functional verification of the programmable interconnects. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method of testing an FPGA comprising:
-
(a)(1) providing first LSSD scan registers as a boundary scan chain around an I/O boundary of the FPGA; (2) applying a known I/O test vector to the I/O boundary of the FPGA; (3) latching data of the I/O boundary as latched data into the boundary scan chain; (4) scanning data serially out of the boundary scan chain and retrieving the latched data of the I/O boundary; (5) comparing the retrieved data with the known I/O test vector; and (6) when the retrieved data does not correspond to the I/O test vector, reporting a fault; (b)(1) providing second LSSD scan registers as a configuration scan chain for testing configuration logic of the FPGA, the configuration logic being operative for accessing memory cells of the FPGA in accordance with memory request signals; (2) scanning a configuration test vector into the configuration scan chain; (3) applying the configuration test vector of the configuration scan chain to the configuration logic; (4) latching data, as effected by the configuration logic in response to the applied configuration test vector, into the configuration scan chain; (5) scanning data serially out of the configuration scan chain and retrieving therefrom the data effected by the configuration logic; (6) comparing the retrieved data with predetermined result data per the applied configuration test vector; and (7) when the retrieved data does not correspond to the predetermined result data as associated with the applied configuration test vector, reporting a fault; and (c)(1) providing third LSSD scan registers as interconnect scan chains configured within select programmable interconnects of the FPGA; (2) configuring a first set of interconnects of the programmable interconnects of the FPGA between respective LSSD scan registers of said interconnect scan chains; (3) scanning an interconnect test vector serially into a select input interconnect scan chain of said repeater scan chains and applying the interconnect test vector to an input side of the first set of interconnects; (4) latching data from an output side of the first set of interconnects into a select output interconnect scan chain of said interconnect scan chains; (5) scanning data serially out of the select output interconnect scan chain and retrieving therefrom the data as latched from the output side of the first set of interconnects; (6) comparing the retrieved data with the interconnect test vector; and (7) when the retrieved data does not correspond to the interconnect test vector, reporting a fault. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
20. A method of testing a Field Programmable Gate Array, FPGA, said method comprising steps of:
-
(a) providing an FPGA having; a plurality of pins; a plurality of I/O functional signal lines associated with functional pins of said plurality of pins; a plurality of programmable logic units providing particular logic circuits in accordance with associated logic configuration data; a plurality of programmable interconnects for selectively interconnecting select I/O functional lines of the I/O functional signal lines and select programmable logic units of the plurality of programmable logic units in accordance with associated routing configuration data; a plurality of memory cells, designated memory cells of the plurality of memory cells being designated to the plurality of programmable logic units and the plurality of programmable interconnects for retaining the associated logic configuration data and routing configuration data respectively; configuration logic for accessing particular memory cells of the plurality of memory cells in accordance with memory request signals; first LSSD scan registers disposed as a boundary scan chain across the I/O functional signal lines; second LSSD scan registers disposed as a configuration scan chain in association with the configuration logic; and third LSSD scan registers providing interconnect scan chains disposed along select programmable interconnects of said plurality of programmable interconnects, the third LSSD scan registers being selectively coupled to respective programmable interconnects in accordance with associated latch configuration data as retained in appropriate memory cells of the plurality of memory cells; (b) testing the various scan chains by; (1) scanning known test data serially through each of the boundary scan chain, configuration scan chain and interconnect scan chains; and (2) comparing data scanned through said each scan chain to its associated known test data for determining functionality of said each scan chain; (c) testing the I/O functional signal lines and associated functional pins by; (1) passing known test data through the I/O functional signal lines between the associated functional pins and the associated first LSSD scan registers of the boundary scan chain; and (2) comparing data actually passed therethrough with the known test data for determining functionality of the I/O functional signal lines and the associated functional pins; (d) testing the configuration logic by; (1) scanning a test vector serially into the configuration scan chain and applying the test vector to the configuration logic; (2) latching result data as effected by the configuration logic per the applied test vector, into the configuration scan chain as latched result data; (3) scanning the latched result data serially out of the configuration scan chain as retrieved data; and (4) comparing the retrieved data to expected result data, as previously determined in accordance with the test vector and intended operation of the configuration logic, for determining functionality of the configuration logic; and (e) testing the programmable interconnects by; (1) configuring a first set of interconnects of the plurality of programmable interconnects, per associated routing configuration data, for propagating data, each interconnect of the first set of interconnects having an input side and an output side; (2) configuring a first interconnect scan chain of said interconnect scan chains, per associated repeater latch configuration data, for applying data thereof to the input sides of said first set of interconnects; (3) providing a second interconnect scan chain for receiving data from the output sides of said first set of interconnects; (4) scanning known test data serially into the first interconnect scan chain and applying the known test data to the input sides of said first set of interconnects; (5) latching data presented at the output sides of said first set of interconnects into the second interconnect scan chain as latched result data; (6) scanning data serially out of the second interconnect scan chain and recovering the latched result data as retrieved data; and (7) comparing the retrieved data to the known test data for determining functionality of the first set of interconnects. - View Dependent Claims (21, 22, 23)
-
Specification