• No results found

A cobertura corresponde à razão entre as falhas detectadas por um conjunto de vetores de teste em relação ao conjunto total de falhas. O processo conhecido como graduação de falhas (“fault grading”), consiste em determinar o número de falhas detectadas através da simulação dos padrões de teste. A complexidade deste processo é dada pela estrutura do DUT, o modelo de falhas empregado, e o tamanho e qualidade do conjunto de padrões aplicados. A estrutura do DUT é determinada pelas funções que ele desempenha, estratégia de teste, e tecnologia usada. Por exemplo, os algoritmos de simulação de falhas elaborados sobre arquiteturas de “Scan”, que usam o modelo de falhas “stuck-at”, são bastante eficientes, visto que reduzem a complexidade do circuito, limitando-a ao espaço combinacional puro ou sequencial simples. Por outro lado, a simulação de falhas de padrões funcionais aplicada a circuitos complexos é muito custosa.

Existem no mercado diversas ferramentas computacionais especializadas para cada tipo de função de teste, dependendo do modelo de falhas adotado e do objetivo: geração, simulação ou graduação de falhas. Duas ferramentas muito conhecidas são a “Fastscan da Mentor Graphics” e o “Encounter Test da Cadence”. Basicamente estas ferramentas se especializam na geração automática de padrões de teste para circuitos digitais que usam “Scan” como arquitetura de projeto para testabilidade. Elas estão habilitadas para trabalhar com distintos modelos de falhas como “stuck-at”, “transition delay”, “path delay”, IDDQ, entre outros. De forma genérica elas seguem os seguintes passos: (1) criação da lista de falhas aplicando o modelo selecionado, (2) geração de padrão de teste, (3) simulação, (4) graduação das falhas e eliminação da lista, (5) repetição da sequencia desde o passo 2 até ter removido todas as falhas ou até ter atingido o limiar de tentativas.

O cálculo da cobertura das ferramentas de ATPG está dado pela seguinte expressão, onde o crédito é um valor estatístico de 0 a 1 que corresponde à porcentagem de falhas possivelmente detectadas que são realmente detectadas. Normalmente as ferramentas de ATPG consideram 0,5 como o valor do crédito por defeito.

Para a simulação de padrões funcionais existem várias ferramentas, entre as quais destacam-se a “Verifault da Cadence”, “FlexTest da MentoGraphics” e etc., por serem as mais usadas dentro da indústria. Estas ferramentas partem de padrões que já foram criados, seja de forma manual, ou usando algum tipo de heurística para a geração automática. O algoritmo de simulação empregado por cada ferramenta varia dependendo do vendedor e da configuração que é feita. Detalhes sobre algoritmos de simulação de falhas serão cobertos no próximo capítulo. De forma genérica, estas ferramentas executam os seguintes passos: (1) criar lista de falhas aplicando o modelo “stuck-at”, (2) simular o padrão com o circuito sem falhas, (3) introduzir uma falha e simular novamente, (4) se existir divergência entre as respostas do circuito com e sem falhas, quer dizer que o padrão pode detectar a falha e, consequentemente, ela é eliminada da lista, (5) repetir o laço desde o passo 3 até que sejam simuladas todas as falhas, com todos os vetores de entrada, ou até que se esvazie a lista de falhas. Como se pode notar, na descrição anterior, o processo de simulação de falhas de padrões funcionais pode ser extremamente complexo e custoso, chegando a ser inviável em muitos casos [Giangarra2008]. O suporte técnico, fornecido pelos vendedores, às ferramentas de simulação é precário, já que pequenos circuitos podem resultar em grandes desafios para elas, levando-as a uma sobrecarga computacional e de memória. Além disso, os modelos de blocos analógicos ou “hardblocks” que são inseridos dentro dos dispositivos, devem possuir uma descrição compatível com a suportada por estas ferramentas. Como não há desenvolvimento delas, isso pode resultar em uma re-elaboração do modelo ou até mesmo na impossibilidade da simulação.

Na medida que a tecnologia avança e novas aplicações são desenvolvidas, cresce a exigência por qualidade dos produtos desenvolvidos. Principalmente áreas como a

automotiva, de segurança e médica, possuem normativas onde se exige um número que indique a confiabilidade do processo de produção, e que garanta a funcionalidade total das peças distribuídas para os usuários. Dependendo da exigência, são aplicados vários modelos de falhas para determinar a lista das mesmas, e são calculadas as coberturas destas listas usando os padrões de teste aplicados na produção. Atualmente, por exemplo, na área automotiva se exige uma cobertura de falhas stuck-at de 98%, e se recomenda que a cobertura transition delay seja de 80% e IDDQ de 70%; adicionalmente todos os blocos analógicos ou hardblocks devem ter cobertura de 100%. Quanto maior são estes números e mais modelos de falhas são utilizados, maior é a confiabilidade dos produtos elaborados, mas, ao mesmo tempo, maior é o custo do desenvolvimento e da aplicação do teste. Existem alguns casos onde o projeto para testabilidade usando a técnica de “Scan” não é suficiente para atingir o valor adequado de cobertura, exemplos destes são:

 circuitos complexos onde existe um grande número de blocos analógicos ou de sinal misto, cujas entradas/saídas não foram modeladas adequadamente, não podem ser estimuladas, ou foram fixadas em um valor estável durante todo o tempo de execução do teste;

 circuitos onde o a razão entre o número de falhas da lógica que configura o dispositivo para teste, dividido pelo número de falhas testáveis, corresponde a uma porcentagem maior do máximo de cobertura que se pode perder;

 quando existe mudança nos caminhos funcionais, por causa de realimentações, sinais assíncronos, ou definição de sinais de controle (“cloks” ou “resets”);

Nestes casos é possível utilizar a simulação de falhas para aproveitar os padrões funcionais e determinar seu aporte na cobertura final. Como foi mencionado anteriormente, realizar esta tarefa é dispendioso e pode ser muito caro em relação a recursos computacionais, humanos e de tempo. Uma alternativa é utilizar a emulação de falhas, para diminuir o tempo de graduação de padrões funcionais.

3 Simulação de falhas em circuitos integrados

Neste capítulo se introduzirão os conceitos fundamentais da simulação de falhas que servem como base para a co-emulação. Adicionalmente, serão abordados alguns dos principais métodos para a simulação de falhas.