A method of self-testing the programmable routing network in a field
programmable gate array (FPGA) during normal on-line operation includes
configuring the FPGA into an initial self-testing area and a working area.
The initial self-testing area is preferably configured to include an
horizontal self-testing area primarily for testing horizontal wire
segments and a vertical self-testing area primarily for testing vertical
wire segments. Programmable logic blocks located within the self-testing
areas are configured to function as a test pattern generator and an output
response analyzer, and a portion of the programmable routing resources
within the self-testing areas is configured as groups of wires under test.
An exhaustive set of test patterns generated by the test pattern generator
is applied to the groups of wires under test which are repeatedly
reconfigured in order to completely test the programmable routing
resources within the self-testing areas. The outputs of the groups of
wires under test are compared by the output response analyzer and
resultant fault status data for each group of wires under test is received
by a controller in communication with a memory for storing the fault
status data. After completely testing the programmable routing resources
in one of the initial self-testing areas, the FPGA is reconfigured such
that a portion of the working area becomes a subsequent self-testing area
and at least a portion of one of the initial self-testing areas replaces
that portion of the working area. In other words, the self-testing areas
rove around the FPGA repeating the steps of testing and reconfiguring
until the entire FPGA has undergone testing or continuously.
Um método de self-testar a rede programável do roteamento em uma disposição de porta programável do campo (FPGA) durante a operação em linha normal inclui a configuração do FPGA em uma área self-testando inicial e em uma área de funcionamento. A área self-testando inicial é configurarada preferivelmente para incluir uma área self-testando horizontal primeiramente para testar segmentos horizontais do fio e uma área self-testando vertical primeiramente para testar segmentos verticais do fio. Os blocos programáveis da lógica situados dentro das áreas self-testando são configurarados para funcionar como um gerador de teste padrão de teste e um analisador da resposta da saída, e uma parcela dos recursos programáveis do roteamento dentro das áreas self-testando é configurarada como grupos dos fios sob o teste. Um jogo exhaustive dos testes padrões de teste gerados pelo gerador de teste padrão de teste é aplicado aos grupos dos fios sob o teste que são reconfigurados repetidamente a fim testar completamente os recursos programáveis do roteamento dentro das áreas self-testando. As saídas dos grupos dos fios sob o teste são comparadas pelo analisador da resposta da saída e os dados resultantes do status da falha para cada grupo dos fios sob o teste são recebidos por um controlador em uma comunicação com uma memória para armazenar os dados do status da falha. Após completamente ter testado os recursos programáveis do roteamento em uma das áreas self-testando iniciais, o FPGA é reconfigurado tais que uma parcela da área de funcionamento se transforma uma área self-testando subseqüente e ao menos uma parcela de uma das áreas self-testando iniciais substitui essa parcela da área de funcionamento. Ou seja as áreas self-testando rove em torno do FPGA que repete as etapas de testar e de reconfigurar até que o FPGA inteiro se submeta a testar ou continuamente.