Teste de Circuitos Integrados PROF. PROTÁSIO DEE-UFPB
2 DESIGN FOR TESTABILITY DISCIPLINA: TEEE TESTE DE CIRCUITOS INTEGRADOS
Testabilidade (TESTABILITY) A noção de testabilidade é muito ampla e inclui os esforços requeridos para: 3 Geração de teste Análise da cobertura de falha Tamanho do conjunto de teste Tempo de aplicação de teste Custo dos equipamentos de teste
Testabilidade (TESTABILITY) Outras questões: 4 Obter uma parte do chip com maior testabilidade não simplifica o teste do clip por completo. Com o aumento da complexidade no projeto de circuito integrados, aumentou-se também a dificuldade de se ter observabilidade e controlabilidade do circuito em alto nível.
Design for testability (DfT) A dificuldade de se testar os novos e mais complexos chips foi que inspirou a ideia de Design for testability (DfT). DfT é um conjunto de técnicas utilizadas para proporcionar o teste de circuitos integrados. Técnicas de DfT podem ser implementadas de duas maneiras: 1. O projeto original é feito sem considerar a testabilidade do circuito e então o engenheiro de teste aplica os circuitos dedicados ao teste. 2. O projetista considera o processo de teste desde o início e já incorpora os circuitos dedicados à teste. 5
Design for testability (DfT) Existem técnicas ad hoc tais como: inserção de pontos de teste e particionamento que são amplamente usados para simplificar o processo de teste. Entretanto, DfT consiste de técnicas estruturadas que possibilitam o aumento da testabilidade de um circuito. Estas técnicas de DfT requerem a adição de circuitos extras ao circuito original e geralmente são consideradas desde o início do projeto. 6
Design for testability (DfT) Algumas técnicas de DfT são: Scan Design Partial Scan Boundary Scan Cross-Check Design Built-In Self-test 7
Scan Design Scan design é baseado no acesso de pontos internos do circuito a fim de aumentar a sua controlabilidade e sua observabilidade. Tais pontos internos são usados como pontos de teste e assim é possível: Aplicar vetores de teste controlabilidade Observar respostas do circuito observabilidade Scan design é um dos métodos mais usados em testes de circuitos integrados. 8
Scan Design Os tipos mais conhecidos de scan design são: Multiplexed Data Scan Design (MD-Scan) Level Sensitive Scan Design (LSSD) Partial Scan 9
Multiplexed Data Scan Design (MD-Scan) Modelo generalizado de um circuito sequencial síncrono 10 Entradas: Entradas primárias Estado atual dos Flip-Flops Saídas: Saídas primárias Linhas de estados futuros dos Flip-Flops
Multiplexed Data Scan Design (MD-Scan) Modelo generalizado de um circuito sequencial síncrono 11 Todos os Flip-Flops são acionados por bordas. Pelo circuito, as linhas de estados atual e futuros não são diretamente observáveis e controláveis. Para tornar o circuito testável (aumentar a observabilidade e a controlabilidade) aplica-se uma modificação no circuito com uma lógica extra.
Multiplexed Data Scan Design (MD-Scan) Modificação no circuito original com lógica extra (MD-Scan) P: scan mode 12 P = 1 test mode P = 0 normal mode MUX Scan Input (SI) MUX MUX MUX Scan Output (SO) MUX s MUX P = 1 s = a P = 0 s = b Quando P = 1, a cadeia de FFs torna-se um registrador de deslocamento (Shift-Register) Essa cadeia é denominada de scan chain
Multiplexed Data Scan Design (MD-Scan) Operação APLICAÇÃO DE UM VETOR DE TESTE Em modo de teste, o estado do circuito pode ser setado para qualquer valor pela aplicação de um vetor de teste desejado serialmente pelo scanchain. 13 MUX MUX MUX Scan Output (SO) Scan Input (SI) ANÁLISE DE RESPOSTA AO VETOR DE TESTE Em modo de teste, a resposta do circuito ao teste (estado do circuito) pode ser observada em SO por deslocamento serial. Ao mesmo tempo que outro vetor de teste é aplicado.
Multiplexed Data Scan Design (MD-Scan) Com o MD-Scan, a geração de vetores de teste para circuitos sequencial tornou-se mais simples. Qualquer ATPG combinacional pode ser usado para geração de vetores de testes. 14 MUX MUX MUX Scan Output (SO) Scan Input (SI)
Multiplexed Data Scan Design (MD-Scan) Método de teste completo com MD-Scan 1. Coloque o circuito em modo de teste (P=1) 2. Teste o scan chain aplicando uma sequência alternada de 0s e 1s 3. Aplique serialmente o vetor de teste 4. Retorne ao modo normal (P=0), aplique os bits correspondentes do vetor de teste nas entradas primárias e aplique um sinal de clock para os FFs capturarem a resposta do circuito. 5. Coloque o circuito em modo de teste (P=1) e desloque a resposta do circuito pelo scan chain. Simultaneamente, desloque o próximo vetor de teste pelo scan chain. 6. Vá para o passo 4 até não ter mais vetor de teste. 15
Multiplexed Data Scan Design (MD-Scan) Scan Design simplifica o teste de circuitos sequenciais. Entretanto, existem trade-offs: Aumento da sobreárea de hardware (Area Overhead) Pela adição dos MUXs Pelo roteamento das entradas e saídas dos FFs do scanchain que podem estar em diferentes pontos do circuito. Aumento do número de pinos do chip (pin count) Requer P, Scan in e Scan Out Estes últimos podem ser multiplexados com outros do chip 16
Multiplexed Data Scan Design (MD-Scan) Scan Design simplifica o teste de circuitos sequenciais. Entretanto, existem trade-offs: Desempenho (performance) Dois níveis extras de atraso (delay) são adicionados pelo MUX, podemos resultar em: Aumento do período de clock Diminuição da velocidade do circuito Aumento do fan-out dos FFs que pode resultar na diminuição de velocidade do circuito. Tempo de teste (Test Time) Aumento do tempo de teste dado pela necessidade de deslocamento serial de cada vetor de teste. O tempo de teste é proporcional ao produto do comprimento da scan-chain pelo número de vetores de testes # # 17
Multiplexed Data Scan Design (MD-Scan) Alternativas de diminuir o tempo de teste Multiple Scan Chain 18 Scan Chain 1 TPG Scan Chain 1 Scan Chain 1 Scan Chain 1 ORA Scan Chain 1
Scan parcial (Partial Scan) Nesta técnica, alguns FFs não são usados para scan-chain. Por exemplo, considere o circuito sequencial abaixo: Blocos lógicos C1, C2,..., C5. FFs R1, R2,..., R7. 19 Em Full Scan, todos os FFs serão usados conectados ao Scan-Chain
Scan parcial (Partial Scan) Nesta técnica, alguns FFs não são usados para scan-chain. Por exemplo, considere o circuito sequencial abaixo: Blocos lógicos C1, C2,..., C5. FFs R1, R2,..., R7. 20 Em Partial Scan, somente alguns FFs serão conectados ao Scan- Chain
Scan parcial (Partial Scan) Partial Scan é um meio-termo entre um teste sem scan e full scan test. Questão principal: Quais FFs serão incluídos no(s) scan-chain(s). Possíveis critérios: Degradação no desempenho de longo critical path. Cobertura de falha Tempo de teste 21
Boundary Scan Scan testing é bastante útil para teste de circuitos integrados individuais. Qual a solução para teste de um sistema composto por vários chips? Elaborar um padrão de scan testing comum para vários fabricantes de circuitos integrados. Foi criado então uma técnica baseada em scan denominada de Boundary Scan. Com Boundary Scan, também é possível testar interconexão entre chips e localizar chips defeituosos em uma placa. 22
Boundary Scan Boundary Scan consiste em: Inserir um célula de varredura (Boundary Scan Cell) em cada pino de entrada e de saída do chip, e Interconectar essas células formando uma scan chain. 23 Chip com Boundary Scan Assim, é possível: Aplicar um vetor de teste ao chip pela serial input. Ler resposta ao teste pela serial output.
Boundary Scan Célula de varredura (Boundary Scan Cell) 24 Chip com Boundary Scan Scan Out Signal In Signal Out Scan Out Scan In Signal In Scan In Signal Out
Boundary Scan Boundary Scan também tem como uma de suas principais finalidade o teste em nível de placa, ou seja, testes das interconexões dos chips. 25 TMS: test mode select TDI: test data input TOD: test data output TCK: test clock
IEEE 1149.1 Boundary Scan Standard Este padrão IEEE consiste de: TAP: Test Access Port TDI TDO 4 bits TMS TCK TRS 26 O TAP é responsável pelo processamento das instruções que ditarão as operações do padrão.
IEEE 1149.1 Boundary Scan Standard 27 As instruções são armazenadas no registrador de instruções São inseridas através de TDI Após isso, o Decoder decodifica a instrução e gera os sinais apropriados.
IEEE 1149.1 Boundary Scan Standard 28 As principais instruções são: EXTEST: teste externo ou teste em nível de interconexões entre chips. O teste é aplicado pelo TDI e carregado no Boundary Scan Register de um chip A resposta ao teste é armazenada no Boundary Scan Register do outro chip e deslocada serialmente pelo TDO
IEEE 1149.1 Boundary Scan Standard 29 As principais instruções são: SAMPLE/PRELOAD: Captura (sample) a saída do chip durante seu modo normal de operação, ou Carrega (preload) um valor no Boundary Scan Register
IEEE 1149.1 Boundary Scan Standard 30 As principais instruções são: INTEST: testa internamente o chip por: Aplicar via TDI o vetor de teste no Boundary Scan Register Aplicar o teste no circuito Captura a resposta ao teste e deslocá-la via TDO
IEEE 1149.1 Boundary Scan Standard 31 As principais instruções são: RunBIST: prover capacidade de ativar um BIST do chip, caso este tenha. O padrão IEEE 1149.1 não especifica qual procedimento ou implementação do BIST.
IEEE 1149.1 Boundary Scan Standard Exemplos de configuração Configuração 1 32 Configuração 2 Configuração 3