aplicação da abordagem de auto-teste integrado baseado em ... · esta característica permite...

171
UNIVERSIDADE TÉCNICA DE LISBOA Instituto Superior Técnico Aplicação da Abordagem de Auto-Teste Integrado Baseado em Máscaras (m-BIST) a Sistemas Sequenciais Fernando Manuel da Costa Guerreiro (Licenciado) Dissertação para a Obtenção de Grau de Mestre em Engenharia Electrotécnica e de Computadores DOCUMENTO PROVISÓRIO Orientador Científico: Prof. João Paulo Cacho Teixeira Janeiro de 2006

Upload: others

Post on 17-Jan-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

UNIVERSIDADE TÉCNICA DE LISBOA

Instituto Superior Técnico

Aplicação da Abordagem de Auto-Teste Integrado Baseado em Máscaras (m-BIST) a

Sistemas Sequenciais

Fernando Manuel da Costa Guerreiro (Licenciado)

Dissertação para a Obtenção de Grau de Mestre em Engenharia Electrotécnica e de Computadores

DOCUMENTO PROVISÓRIO

Orientador Científico: Prof. João Paulo Cacho Teixeira

Janeiro de 2006

Page 2: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá
Page 3: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

aos meus pais,

com amor.

Page 4: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá
Page 5: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

v

Agradecimentos

O trabalho que apresento nesta tese foi orientado pelo Professor João Paulo Cacho

Teixeira. A ele gostaria de expressar o meu profundo agradecimento, pelo precioso auxílio e

encorajamento, nas diferentes etapas deste trabalho.

Agradeço também, de forma especial, ao Professor Marcelino Santos pela sua

disponibilidade, dedicação e constante simpatia patentes ao longo de todo o período que

permaneci no Inesc-ID.

Quero igualmente deixar um agradecimento aos meus amigos e colegas, no Inesc-ID,

nomeadamente o Pedro Bento, pelo seu companheirismo, o Leong, pela sua singularidade, o

Victor Martins pela sua boa disposição, o Nelson, pois também não conheço outro igual e ao

Abílio, principalmente pela sua disponibilidade em ajudar e ser prestável. Agradeço-vos pelo

bom ambiente que criamos e no qual convivemos.

Agradeço à minha família, especialmente aos meus pais, pela sua disponibilidade e

atenção, pelo carinho, pela paciência que tiveram e têm comigo. Eu sou o que eles me

ensinaram.

Agradeço à Marisa, minha namorada, pelo apoio e força que me tem dado neste tempinho

que já estamos juntos.

Agradeço ao Inesc-ID Lisboa pelas condições proporcionadas e que foram

imprescindíveis para a realização do Projecto.

Page 6: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá
Page 7: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

vii

Resumo

Sistemas electrónicos complexos, tais como SoC (Systems on a Chip), realizados em tecnologias de resolução nanométrica, requerem técnicas inovadoras de auto-teste integrado (BIST, Built-In Self Test), que conduzam a uma cobertura de faltas dinâmicas elevada. As restrições de consumo de potência e de energia (especialmente para aplicações de equipamento móvel) necessitam de soluções BIST com sessões muito curtas. O objectivo desta tese de Mestrado é o desenvolvimento de uma nova metodologia BIST de alta qualidade para sistemas digitais sequenciais, e a sua aplicação no contexto do projecto de um produto industrial. A metodologia de BIST que se propõe é uma extensão (para sistemas sequenciais) de uma metodologia anteriormente proposta. A metodologia de BIST baseada em mascaras (m-BIST) identifica, a nível RTL (Register-Transfer Level), partes da funcionalidade difíceis de testar com padrões de teste pseudo-aleatório, e gera vectores de entrada parcialmente especificados (designados como máscaras), que forçam essa funcionalidade difícil de testar. Explora a correlação entre a detecção múltipla de faltas RTL e a detecção singular de faltas estruturais (tais como faltas do tipo linha Fixa-A (LSA (Line Stuck-AT)), a fim de desenvolver, a nível RTL, soluções BIST que asseguram elevada cobertura de defeitos físicos. A metodologia m-BIST proposta para sistemas sequenciais é uma técnica de teste ao ritmo do relógio (test-per-clock) que não reconfigura o CUT (Circuit Under Test) em modo de BIST. Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá conduzir a uma cobertura elevada de faltas dinâmicas, já que as propriedades temporais do CUT não são modificadas significativamente no modo de auto-teste. A metodologia explora duas abordagens – a baseada em simulação (com a ferramenta VeriDOS) e a probabilística (com a ferramenta ASCOPA). Permite uma injecção de faltas RTL quasi automática, a identificação e remoção de eventuais erros de projecto e a identificação de problemas de testabilidade. A ferramenta ASCOPA gera automaticamente as máscaras. Desenvolve-se uma nova técnica de injecção de máscaras, que permite a realização de experiências de simulação de faltas a nível RTL e a reconfiguração de código RTL, de tal forma que, quando o nível de testabilidade especificado é atingido, se dispõe de uma descrição RTL do CUT e funcionalidade de m-BIST pronta para a síntese lógica. A validação da qualidade da solução de auto-teste é realizada, a nível lógico, com recurso a uma ferramenta de simulação de faltas comercial (Verifault™, da Cadence). A metodologia foi incorporada no fluxo de projecto do parceiro industrial (Tecmic). A metodologia m-BIST proposta é explicada com recurso a um circuito de referência de reduzida complexidade (b13, do conjunto de ITC’99) e demonstrada usando o projecto indutrial de um PIC, controlador de um contador estático de energia eléctrica. Mostra-se que se podem desenvolver soluções m-BIST para sistemas sequenciais com elevada eficácia de teste, sobrecarga de teste limitada (área e desempenho), comprimento de teste reduzido e consumo de potência similar ao que se obtém com teste pseudo-aleatório. Palavras-chave –Nível RTL, m – BIST, Teste de Circuitos Integrados, Geração de Padrões de Teste, Inserção de Pontos de Teste, Coberturas de Faltas.

Page 8: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá
Page 9: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

ix

Abstract Complex electronic systems, such as SoC (Systems on a Chip), using nanometer technologies, require innovative BIST (Built-In Self Test) techniques allowing very high coverage of dynamic faults. Power and energy requirements (especially for mobile equipment) quest for short BIST sessions. The purpose of this M.Sc work is the development of a new high-quality BIST methodology for sequential digital systems and its application in the context of an industrial design. The proposed BIST methodology is an extension to sequential systems of a previously proposed methodology (m-BIST). The masked-based (m-BIST) methodology identifies, at RTL (Register-Transfer Level), parts of the functionality hard to test with pseudo-random (PR) test patterns, and generates partially specified input vectors (referred as masks), which force the activation of such hard functionality. It exploits the correlation between n-detection of RTL faults and single detection of structural faults (like single LSA (Line Stuck-AT) faults) to derive, at RTL, BIST solutions, which lead to high coverage of physical defects. The proposed m-BIST methodology for sequential systems is a test-per-clock technique, which does not reconfigure the CUT (Circuit Under Test) in BIST mode. This feature allows at-speed testing, and it is expected to lead to high coverage of dynamic faults, as the timing properties of the CUT are not significantly modified in self-test mode. The methodology exploits two approaches, simulation-based (with the VeriDOS tool), and probabilistic-based (with the ASCOPA tool) approaches. It allows almost automatic RTL fault injection, the identification and removal of design flaws and the identification of testability problems. The ASCOPA tool automatically performs mask generation. A novel mask injection technique has been developed, which allows RTL fault simulation experiments and RTL code reconfiguration, in such a way that, when the specified testability level is reached, an RTL description of the CUT and m-BIST functionality is ready for logic synthesis. The assessment of the self-test solution quality is performed at logic level, using a commercial fault simulation tool (Verifault™, from Cadence). The methodology has been incorporated in the industrial partner (Tecmic) design flow. The proposed m-BIST methodology is explained using a low-complexity benchmark circuit (b13, from Torino’s ITC’99 suite), and demonstrated using an industrial design a PIC controller of an electronic electric power meter for tele-counting applications. It is shown that m-BIST solutions for sequential systems can be derived with high test effectiveness, limited test overhead (area, and speed), short test length and test power similar to the one obtained with PR testing. Keywords –RT-level, m – BIST, IntegratedCircuits Test, Test Pattern Generation, Test Point Insertion, Fault Coverage.

Page 10: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá
Page 11: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

xi

ÍNDICE

1. INTRODUÇÃO ....................................................................................................... 1

1.1. Identificação do Problema................................................................................................ 5

1.2. Contexto do Trabalho ....................................................................................................... 8

1.3. Objectivos........................................................................................................................... 8

1.4. Contribuições Originais.................................................................................................. 10

1.5. Roteiro da Tese ................................................................................................................ 11

2. AUTO-TESTE INTEGRADO DE ALTA QUALIDADE.......................................... 13

2.1. Características Valorizadas e Métricas de Qualidade ................................................. 15

2.2. Arquitectura-base de Auto-Teste Integrado (BIST) .................................................... 17 2.2.1. Gerador de Vectores de Teste (TPG) ......................................................................... 18 2.2.2. Analisador de Assinatura (SA)................................................................................... 21 2.2.3. Controlador de Teste .................................................................................................. 25

2.3. Técnicas Básicas de BIST ............................................................................................... 25 2.3.1. Test-Per-Clock ........................................................................................................... 26 2.3.2. Test-Per-Scan ............................................................................................................. 27

2.4. BIST Determinístico........................................................................................................ 28 2.4.1. Geração Pseudo-aleatória Ponderada (WPR)............................................................. 30 2.4.2. Geração Pseudo-aleatória com Re-semeadura (Reseeding) ....................................... 30 2.4.3. Geração com Comutação de Registo (Bit-flipping) ................................................... 31 2.4.4. Geração com Fixação de Registo (Bit-fixing) ............................................................ 32

2.5. Metodologia m-BIST para Circuitos Combinatórios .................................................. 33 2.5.1. Abordagem de Simulação. Ferramenta VeriDOS...................................................... 37

2.5.1.1. Subconjunto Verilog ........................................................................................... 37 2.5.1.2. Modelo de Faltas em RTL................................................................................... 38 2.5.1.3. Faltas do Tipo Linha Fixa-A (LSA).................................................................... 39 2.5.1.4. Faltas em Operadores .......................................................................................... 40

2.5.1.4.1. Operadores Aritméticos............................................................................. 40 2.5.1.4.2. Operadores Relacionais............................................................................. 43 2.5.1.4.3. Operador Condicional ............................................................................... 44

2.5.1.5. Faltas do tipo Anulação do Código (Null Statement).......................................... 44 2.5.1.6. Faltas em Condições IF/ELSE ............................................................................ 44 2.5.1.7. Faltas em Alternativas CASE.............................................................................. 45 2.5.1.8. Faltas em Ciclos FOR ......................................................................................... 45 2.5.1.9. Modelos de Faltas e Classes de Faltas Injectadas ............................................... 46

2.5.2. Abordagem Probabilística. Ferramenta ASCOPA..................................................... 46 2.5.2.1. Abordagem Probabilística da Acessibilidade...................................................... 46 2.5.2.2. Ferramenta ASCOPA.......................................................................................... 48

Page 12: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

xii

2.5.3. Injecção de Máscaras em CUT Combinatórios.......................................................... 51

2.6. Conclusões........................................................................................................................ 53

3. METODOLOGIA M-BIST PARA CIRCUITOS SEQUENCIAIS............................ 54

3.1. Princípios Subjacentes da Metodologia......................................................................... 54

3.2. Métricas de Testabilidade a Nível RTL......................................................................... 56 3.2.1. Acessibilidade de Variáveis RTL............................................................................... 57 3.2.2. Detecção Múltipla e Métricas de Testabilidade a Nível RTL.................................... 57 3.2.3. Graus de Testabilidade ............................................................................................... 62 3.2.4. Significado das Métricas de Testabilidade nas Condições......................................... 64

3.3. Linhas Gerais da Metodologia m-BIST para CUT Sequenciais ................................. 65 3.3.1. Metodologia de Geração de Padrões de Teste ........................................................... 70 3.3.2. Identificação de Cantos Escuros ................................................................................ 70 3.3.3. Geração de Máscaras.................................................................................................. 71

3.4. 1º. Ciclo: Preparação do Teste. Injecção de Faltas a Nível RTL ................................ 72 3.4.1. Alteração ao Código RTL Comportamental .............................................................. 73

3.4.1.1. Condições IF/ELSE............................................................................................. 73 3.4.1.2. Condições CASE................................................................................................. 75 3.4.1.3. Operador Soma ou Subtracção............................................................................ 75

3.4.2. Ferramenta RTL2FO (RTL to Fault-Oriented) ......................................................... 75

3.5. 1º. Ciclo: Preparação do Teste. Injecção de Máscaras ................................................ 78 3.5.1. BIST_C (Controlador de BIST e Injector de Máscaras) ............................................ 81 3.5.2. Lógica de Mascaramento de Entradas Primárias [P.I.] .............................................. 83 3.5.3. Lógica de Mascaramento de Entradas Secundárias [S.I.] .......................................... 84

3.6. 1º Ciclo: Preparação do Teste. Inserção de Pontos de Teste (TPI)............................. 86

3.7. 2º. Ciclo: Implantação do Auto-teste. Síntese Lógica. Validação da Qualidade do Teste......................................................................................................................................... 86

3.8. Modificação do Fluxo de Projecto ................................................................................. 89

3.9. Conclusões........................................................................................................................ 91

4. EXEMPLO DE APLICAÇÃO: CIRCUITO DE REFERÊNCIA B13....................... 93

4.1. Funcionalidade ................................................................................................................ 93

4.2. 1º. Ciclo. Erros de Projecto ............................................................................................ 94

4.3. 1º. Ciclo: Preparação de Auto-teste a Nível RTL......................................................... 95

4.4. 2º. Ciclo: Implantação de M-BIST............................................................................... 108

4.5. Conclusões...................................................................................................................... 111

Page 13: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

xiii

5. DEMONSTRAÇÃO DE RESULTADOS. PIC DE UM CONTADOR ESTÁTICO DE ENERGIA ............................................................................................................... 115

5.1. Funcionalidade .............................................................................................................. 115

5.2. 1º. Ciclo: Erros de Projecto .......................................................................................... 117

5.3. 1º. Ciclo: Preparação de Auto-teste a Nível RTL....................................................... 117

5.4. 2º. Ciclo: Implantação de M-BIST............................................................................... 134

5.5. Conclusões...................................................................................................................... 136

6. CONCLUSÕES .................................................................................................. 138

6.1. Conclusões...................................................................................................................... 138

6.2. Trabalho Futuro............................................................................................................ 140

7. BIBLIOGRAFIA.................................................................................................. 143

Page 14: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá
Page 15: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

xv

Lista de Figuras

Figura 2-1 – Arquitectura base de uma solução de auto-teste integrado (BIST) 17

Figura 2-2 – LFSR standard. ..........................................19

Figura 2-3 – LFSR modular. ...........................................19

Figura 2-4 – Esquema de um LFSR que gera 28 – 1 vectores de 8 bits 20

Figura 2-5 – Analisador de assinatura de m - bits ............23

Figura 2-6 - Estrutura MISR para um circuito com m saidas 23

Figura 2-7 – Test_per_clock de um sistema integrado com (a) um número reduzido e (b) um número elevado de entradas.........................................................26

Figura 2-8 – Esquema de blocos de uma estrutura de test-per-scan. 27

Figura 2-9 – Registo de teste. .........................................28

Figura 2-10 – Arquitectura para implementação da técnica Test-per-Scan 32

Figura 2-11 – Arquitectura para adoptar a técnica de Bit Fixing em cadeias de Scan 33

Figura 2-12 – Implementação de diffi e de bori ...............43

Figura 2-13 – Esquema referente a um bit de uma saída observável jy. 50

Figura 2-14 – Arquitectura de aplicação da metodologia m-BIST a CUT combinatórios [26]. 51

Figura 2-15 – Diagrama de blocos da funcionalidade MMIC [26]. 52

Figura 2-16 - Características dos MUT e das máscaras utilizadas [26]. 53

Figura 3-1 – Controlabilidade de faltas RTL no circuito b10, com N=5000. 59

Figura 3-2 – Detectabilidade (n=5) de faltas RTL no circuito b10, com N=5000. 59

Figura 3-3 – Parte do diagrama de estados de uma FSM, ilustrando múltiplas activações. 60

Figura 3-4 – Resultados de Controlabilidade obtidos para o b10 com o VeriDOS e com o ASCOPA. 61

Figura 3-5 - As quatro situações distintas em função dos valores das métricas 63

Figura 3-6 – Fluxograma da metodologia m-BIST proposta66

Figura 3-7 – Faltas em condições IF ...............................74

Figura 3-8 – Interface da ferramenta RTL2FO ................76

Figura 3-9 – Diagrama de fluxos da ferramenta RTL2FO77

Figura 3-10 – Arquitectura de BIST................................79

Figura 3-11 – Arquitectura de BIST para injectar máscaras em circuitos sequenciais 79

Page 16: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

xvi

Figura 3-12 – Mascaramento das S.I.s do CUT ...............80

Figura 3-13 - Interface da lógica de mascaramento, para forçar um valor numa variável genérica 83

Figura 3-14 – Funcionalidade quando se injecta um (‘1’) 84

Figura 3-15 – Funcionalidade quando se injecta um (‘0’) 84

Figura 3-16 – Interface da lógica de mascaramento, para forçar mais do que um valor numa variável RTL genérica ..........................................................................84

Figura 3-17 – Excerto de código reconfigurado para injecção de máscaras para o caso do CUT b13. 85

Figura 3-18 – Fluxo de projecto de ASICs da Tecmic, incluindo a inserção de m-BIST a nível RTL. 90

Figura 4-1– Interface do circuito de referência b13. ........93

Figura 4-2 – Interacção entre as 4 máquinas de estado do circuito de referência b13 94

Figura 4-3 – Evolução da FC em função da periodicidade do sinal Reset 96

Figura 4-4 – Arquitectura da metodologia para injecção de máscaras com m-BIST e CUT sequencial......................................................................................104

Figura 4-5 – Gráfico da cobertura de faltas FC(n) após a injecção das máscaras. 106

Figura 4-6 – Valores de detectabilidade antes da aplicação das máscaras 107

Figura 4-7 – Alteração nos valores de controlabilidade devido às máscaras 107

Figura 4-8 - Cobertura de faltas a nível lógico (DC=FC(NSA) para o b13, com e sem a aplicação das máscaras (versão delay, de período de relógio mínimo).110

Figura 4-9 - Cobertura de faltas a nível lógico (DC=FC(NSA) para o b13, com e sem a aplicação das máscaras (versão area, de área de implantação mínima).110

Figura 5-1- Diagrama de blocos do contador estático de energia eléctrica. 115

Figura 5-2 - Diagrama de topo do controlador PIC do contador estático de energia eléctrica.116

Figura 5-3 – Arquitectura para comparação das funcionalidades dos dois módulos 117

Figura 5-4 - Evolução da FC em função da periodicidade do sinal Reset 118

Figura 5-5 –Código Verilog onde RTC_Min recebe valores de RTC_Min_int 120

Figura 5-6 – Código Verilog onde a o sinal Cond_L_654 controla a atribuição de valores a RTC_Min_int.....................................................................................121

Figura 5-7 – Código Verilog mostra a ligação entre as variáveis Load_Toggle e Potencia_Load_Counter ............................................123

Figura 5-8 – Código Verilog onde se mostra a influência do problema de Cond_L_443 na variável Contagem_Estatico....................................................125

Figura 5-9 – Código Verilog onde a P.I. Wdog_Clear pode provocar o Reset de Wd_Reset_Counter.....................................................................................128

Page 17: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

xvii

Figura 5-10 - Código Verilog que mostra onde a variável Wd_Reset_Counter é utilizada 129

Figura 5-11 – Cobertura de faltas, a nível RTL, FC(5) para as diferentes simulações efectuadas 131

Figura 5-12 - Alteração nos valores de controlabilidade devido às máscaras 133

Figura 5-13 – Alteração nos valores de detectabilidade, devido à resolução dos problemas de testabilidade.....................................................................................133

Figura 5-14 – Cobertura de faltas a nível lógico (DC=FC(NSA) para o pic, com e sem a aplicação das máscaras (versão area, de área de implantação mínima) 134

Figura 5-15 – Cobertura de faltas a nível lógico (DC=FC(NSA) para o pic, com e sem a aplicação das máscaras (versão delay, de período de relógio mínimo) 135

Page 18: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá
Page 19: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

xix

Lista de Tabelas

Tabela 2-1 – Palavras reservadas da linguagem Verilog suportadas 37

Tabela 2-2 - Modelos de faltas a nível RTL disponíveis na ferramenta VeriDOS [31] 39

Tabela 2-3 – Código do ciclo FOR – método proposto em [31] para operador somador. 41

Tabela 2-4 – Código do ciclo FOR – Modelo proposto para o operador somador. 42

Tabela 2-5 – Tabela da verdade de um semi-subtractor (half-subtractor) 42

Tabela 2-6 – Código do ciclo FOR – Modelo proposto para o operador subtractor. 43

Tabela 2-7 – Correspondência, na ferramenta VeriDOS, entre Modelos e e Classes de faltas existentes........................................................................................46

Tabela 2-8 – Descrição das Classes de Faltas. .................46

Tabela 3-1 – Graus de gravidade nos problemas de testabilidade identificados pelo VeriDOS. 62

Tabela 3-2 – Função a desempenhar quando se pretende forçar um valor 84

Tabela 4-1 – Características do circuito de referência b1393

Tabela 4-2 – Problemas do tipo 1....................................96

Tabela 4-3 – Problemas do tipo 2....................................96

Tabela 4-4 – Activações dos estados da FSM1................97

Tabela 4-5 – Activações dos estados da FSM2................98

Tabela 4-6 - Problemas identificados no fluxo da FSM2 .98

Tabela 4-7 – Máscaras definidas para a FSM2 ................98

Tabela 4-8 – Activações dos estados da FSM3................99

Tabela 4-9 – Problemas identificados no flow da FSM3..99

Tabela 4-10 – Máscaras definidas para FSM2 e FSM3....99

Tabela 4-11 – Activações dos estados da FSM4 ............100

Tabela 4-12 – Problemas identificados no fluxo da máquina FSM4 100

Tabela 4-13 –Máscaras definidas para FSM 2, FSM3 e FSM4 102

Tabela 4-14 - Máscaras definidas..................................104

Tabela 4-15 – Problemas identificados no CUT ............105

Tabela 4-16 – Resumos das máscaras aplicadas. ...........106

Tabela 4-17 - Número de sinais mascarados, no módulo b13 108

Page 20: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

xx

Tabela 4-18 – Ganhos na cobertura de faltas estrutural obtidos com m-BIST. 111

Tabela 4-19 – Sobrecarga de teste (aumento de área) no b13 com m-BIST. 111

Tabela 5-1 – Características do módulo PIC .................116

Tabela 5-2 – Lista de Problemas do tipo 1 no PIC.........119

Tabela 5-3 - Resultados do VeriDOS para a variável RTC_Min 120

Tabela 5-4 - Resultados do VeriDOS para a variável Cond_L_671 120

Tabela 5-5 - Resultados do VeriDOS para a variável RTC_Min_Int 121

Tabela 5-6 – Máscaras a injectar para resolver o problema de testabilidade em RTC_Min 122

Tabela 5-7 – Período total de aplicação das máscaras ...122

Tabela 5-8 - Resultados do VeriDOS para a variável Cond_L_530 123

Tabela 5-9 - Resultados do VeriDOS para a variável Cond_L_173 123

Tabela 5-10 – Período total de aplicação da máscara.....124

Tabela 5-11 – Variável RTL com problemas de observabilidade 124

Tabela 5-12 - Resultados do VeriDOS para a variável Cond_L_443 124

Tabela 5-13 – Período total de aplicação da máscara.....125

Tabela 5-14 - Resultados do VeriDOS para a variável Cond_L_736 126

Tabela 5-15 – Período total de aplicação das máscaras..127

Tabela 5-16 – Variável RTL com problemas de observabilidade 127

Tabela 5-17 - Resultados do VeriDOS para a variável Cond_L_131 127

Tabela 5-18- Período total de aplicação da máscara ......128

Tabela 5-19 - Resultados do VeriDOS para a variável Cond_L_188 128

Tabela 5-20 – Variável RTL com problemas de observabilidade 129

Tabela 5-21 - Período total de aplicação das máscaras para resolver o problema de Estatico_Prescaler.....................................................................................130

Tabela 5-22 – Variável RTL com problemas de observabilidade 130

Tabela 5-23 - Resultados do VeriDOS para a variável Clk32khz_Del 130

Tabela 5-24 - Resultados do VeriDOS para a variável Cond_L_628 130

Tabela 5-25 – Lista de todas as variável a observar, da análise de testabilidade efectuada a nível RTL.....................................................................................131

Tabela 5-26 – Número de sinais mascarados, no módulo PIC 132

Page 21: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

xxi

Tabela 5-27 - Ganhos na cobertura de faltas estrutural obtidos com m-BIST. 135

Tabela 5-28 – Sobrecarga de teste (aumento de área) no PIC com m-BIST 135

Page 22: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá
Page 23: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

xxiii

Acrónimos

AdI – Agência de Inovação

ASCOPA – Automatic Static Controllability Observability Probabilistic Analysis Tool

ASSOCIATE – Advanced Solutions for SOC Integration and Test in Europe

ATE – Equipamento Automático de Teste (Automatic Test Equipment)

ATPG – Geração Automática de Padrões de Teste (Automatic Test Pattern Generation)

BDD – Diagramas de Decisão Binária (Binary Decision Diagrams)

BIST – Auto-Teste Integrado (Built-In Self-Test)

CA – Autómata Celular (Cellular Automata)

CFG – Grafo de Fluxo de Controlo (Control Flow Graph)

CUT – Circuito em Teste (Circuit Under Test)

DC – Cobertura de Defeitos (Defect Coverage)

DFG – Grafo de Fluxo de Dados (Data Flow Graph)

DfT – Técnicas de Projecto para Testabilidade (Design for Testability)

DL – Nível de defeito (Defect Level)

DSM – Deep Sub-Micron

EDA – Automação de Desenho Electrónico (Electronic Design Automation)

EDT – Teste Determinístico Embutido (Embedded deterministic test)

EMI – Interferência Electromagnética (Electromagnetic Interference)

FC – Cobertura de Faltas (Fault Coverage)

FS – Simulação de Faltas (Fault Simulation)

HDL – Linguagem de Descrição de Hardware (Hardware Description Language)

IP – Propriedade Intelectual (Intellectual Property)

ITC – Conferencia Internacional de Teste (International Test Conference)

LBIST – Auto-Teste Lógico (Logic BIST)

LFSR – Gerador de Teste Pseudo-Aleatório (Linear Feedback Shift Register)

LSA – Linha Fixa A (line stuck at)

MISR – Compactador de Respostas (Multi-Input Shift Register)

MMIC – Circuito de Interface Baseado em Mascaras (Masked-based Multiplexer Interface

Circuit)

MPI – Entradas Primárias Mascaradas (Masked Primary Inputs)

MSI – Entradas Secundárias Mascaradas (Masked Secondary Inputs)

OOM – Modelação Orientada a Objectos (Object-Oriented Modelling)

Page 24: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

xxiv

OPC – Correcção de Proximidade Óptica (Optical Proximity Correction)

PCB – Placa de Circuito Impresso (Printed Circuit Board)

PI – Entradas Primárias (Primary Inputs)

PO – Saídas Primárias (Primary Outputs)

PR – Pseudo-Aleatório (Pseudo Random)

PROSYS – Programmable Systems

ROM – Memória de Leitura (Read Only Memory)

RTL – Nível de transferência entre Registos (Register Transfer Level)

RTL2FO – RTL Orientado à Falta (RTL to Fault Oriented)

SA – Analisador de Assinatura (Signature Analyser)

SEU – Single Event Upset

TE – Eficácia do Teste (Test Effectiveness)

TL – Comprimento do Teste (Test Length)

TO – Sobrecarga de Teste (Test Overhead)

TP – Potência de Teste (Test Power)

TPG – Gerador de Padrões de Teste (Test Pattern Generator)

TPI – Inserção de Pontos de Teste (Test Point Insertion)

TRP – Repartição de Recursos de Teste (Test Resource Partitioning)

TS – Armazenamento de Teste (Test Storage)

SIP – Propriedade Intelectual de Semiconductores (Semiconductor IP)

VLSI – Integração de Larga Escala (Very Large Scale Integration)

UDL – Lógica Definida pelo Utilizador (User Defined Logic)

WPR – Geração Pseudo-aleatória Ponderada (Weighted Pseudo-Random)

Page 25: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

1

1. Introdução

No desenvolvimento de novos produtos electrónicos, os custos do teste estão se tornando

uma parcela crescente dos custos totais. Custos elevados ocorrem não apenas no planeamento

e na preparação do teste, no ambiente de projecto, como também na aplicação do teste, no

ambiente de produção. O incremento dos custos de teste decorre da confluência de um

conjunto de factores.

Em primeiro lugar, o percurso tecnológico da indústria semicondutora, com o seu

escalonamento até à resolução nanométrica, tornou possível o desenvolvimento de produtos

com valores crescentes de

complexidade (medida no número de dispositivos activos por circuito integrado),

desempenho (medido pela frequência dos relógios que marcam o sincronismo de

sistemas digitais) e

número de terminais (pinos) de entrada/saída (muito lentamente crescente), o que

limita severamente a controlabilidade e observabilidade dos nós internos do

sistema integrado.

Em segundo lugar, os requisitos de qualidade exigidos pelos clientes que integram tais

componentes complexos nos seus sistemas tem vindo a aumentar. Tal qualidade é usualmente

medida através do Nível de Defeito (DL, Defect Level), a percentagem de componentes

defeituosos que passam com sucesso o teste de produção e que, portanto são comercializados

como componentes bons [51]. Produtos de alta qualidade são caracterizados por Níveis de

Defeito da ordem de 100 ppm (partes por milhão), enquanto que produtos em aplicações

críticas de segurança têm especificações da ordem dos 10 a 1 ppm.

Em terceiro lugar, a gestão do consumo de potência de componentes integrados

complexos, operando na escala dos GHz, torna necessário a utilização de técnicas de projecto

de baixa potência (low power) e de técnicas de teste também muito exigentes em termos do

consumo de potência [84]. Adicionalmente, a explosão do mercado de sistemas móveis e

portáteis, alimentados a baterias, tornou crítico que a operação, não só em funcionamento

normal, como também em modo de teste, se realize com um consumo de energia mínimo.

Page 26: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

2

O teste externo de componentes complexos impõe requisitos muito severos aos

equipamentos automáticos de teste (ATE, Automatic Test Equipment), o que torna o seu custo

proibitivo. Além disso, requer-se a existência de uma electrónica de comunicação entre o

ATE e o CUT (Circuito Sob Teste, ou Circuit Under Test) de banda larga, suportando um

tráfego de volume de dados muito elevado [88]. Todos estes requisitos conduziram a que se

desenvolvessem estratégias de Repartição de Recursos de Teste (TRP, Test Resource

Partitioning [92]) entre o ATE e o CUT, por forma a reduzir substancialmente o custo dos

testadores. A migração de parte da funcionalidade de teste para dentro do sistema integrado

fez proliferar as metodologias e ferramentas computacionais de auto-teste integrado ou

BIST (Built-In Self-Test) [1][2][3][4][6][48]. A inserção de BIST permite reduzir os custos de

ATE e viabiliza o teste, em paralelo, de diversos sub-sistemas do sistema integrado.

Exceptuando-se o caso de aplicações críticas de segurança, tais como módulos de electrónica

automóvel (ex., ABS), tráfego ferroviário (ex., TGV), ou equipamento médico implantado

(ex., marca-passo, ou pacemakers), basta que o auto-teste integrado seja realizado em modo

de teste (off-line), e não em concorrência com o funcionamento normal (on-line). Num

número crescente de aplicações, torna-se necessário viabilizar a realização de um processo de

auto-teste durante a vida útil do sistema integrado (lifetime test [7]), por exemplo quando o

sistema entra em operação (power-up). Assim, torna-se necessário realizar o projecto tendo

em vista a testabilidade (DfT, Design for Testability) e desenvolver soluções de auto-teste

integrado que se adaptem às novas tecnologias de fabricação.

O teste de alta qualidade em tecnologias emergentes, com resoluções litográficas de 90, 65

e 45 nm (até 2008) é ainda um problema não inteiramente solucionado [8]. O processo de

teste de sistemas digitais é usualmente suportado em modelos de faltas, que procuram

descrever o impacte dos defeitos físicos no comportamento lógico dos circuitos.

Tradicionalmente utilizaram-se modelos de faltas estáticos. O mais utilizado é o modelo de

faltas de Linha Fixa-A (ou LSA, Line Stuck-At). Este modelo presume que um defeito físico

conduz a que uma linha da descrição estrutural do circuito, a nível lógico, fique

permanentemente fixa a um dos dois valores Booleanos, ‘0’ ou ‘1’. A utilização de tais

modelos de faltas possibilitou o desenvolvimento de ferramentas computacionais eficientes

para a simulação de faltas (FS, Fault Simulation) , e para a geração automática de padrões de

teste (ATPG, Automatic Test Pattern Generation). Designa-se nesta tese por padrão de teste

um conjunto ordenado de vectores de teste, isto é, de palavras digitais a aplicar nas entradas

do CUT e que permitem detectar as faltas alistadas, correspondentes a um (ou mais) modelos

Page 27: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

3

de faltas. Uma vez que um padrão de teste detecta não só as faltas-alvo (isto é, as faltas

utilizadas no processo de ATPG), como também muitas faltas não-alvo, verifica-se que

muitos defeitos físicos (por exemplo, curto-circuitos entre pistas condutoras associadas a

sinais distintos) podem ser descobertos com padrões de teste gerados para cobrir faltas-alvo

[32].

A identificação dos defeitos físicos mais prováveis de ocorrer numa linha de fabricação é

um processo difícil, moroso e dinâmico, à medida que os engenheiros de processo identificam

os passos de fabricação responsáveis por defeitos mais gravosos (yield killers) e os corrigem,

aumentando assim o rendimento do processo de fabricação (yield) e a sua rentabilidade

económica. Contudo, os novos nós tecnológicos, especialmente abaixo de 130 nm, obrigam à

utilização de novos materiais (por exemplo, dieléctricos de elevado e de reduzido valor da sua

constante dieléctrica), novos equipamentos e novos processos de fabricação (por exemplo,

OPC, Optical Proximity Correction [9]). Consequentemente, surgem novos mecanismos de

falha física, e novos defeitos que é necessário detectar. Como desafio, põe-se o problema de

projectar o teste para detectar defeitos que ainda não são inteiramente conhecidos.

A evidência disponível permite concluir que, adicionalmente ao teste estático, torna-se

imprescindível acrescentar o teste dinâmico, em particular o teste de atrasos (delay test) [10].

Este facto motivou uma actividade de investigação importante nos últimos anos

[17][11][12][13][14][15], visando melhorar a qualidade do teste. A eficácia do teste (TE,

Test Effectiveness [85]), isto é, a sua capacidade de detectar a quase totalidade dos defeitos

físicos (Nível de Defeito de poucos ppm) é uma característica essencial, tanto para melhorar a

qualidade do produto, como para auxiliar os engenheiros de produção a apressar o

crescimento do rendimento de produção (fast yield ramp-up).

O escalonamento da tecnologia de fabricação, com o aumento da resolução litográfica e a

redução das tensões de alimentação (a fim de conter a dissipação de potência), têm aumentado

a susceptibilidade dos sistemas integrados a perturbações ambientais, tais como a

interferência electromagnética (EMI, Electromagnetic Interference [16]), o ruído das

alimentações (power noise [17]), e os eventos intermitentes resultantes de radiação (SEU,

Single Event Upset [18][19]). Estas características tornam necessário o desenvolvimento de

teste paramétrico, e de técnicas para a detecção e correcção de erros.

Page 28: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

4

Em resultado do exposto, têm-se desenvolvido uma panóplia de metodologias de teste,

com recurso à detecção de defeitos através da análise da tensão eléctrica, da corrente de

alimentação e dos atrasos de propagação, a fim de detectar faltas estáticas e dinâmicas,

permanentes e intermitentes. O teste de desempenho (performance testing) tornou-se assim

um alvo também a cobrir nas metodologias de auto-teste integrado, para garantir Níveis de

Defeito muito reduzidos [10]. Assim, tanto para o teste de produção, como para o teste

durante a vida útil do produto, torna-se necessário desenvolver técnicas de BIST dinâmico

[20]. Tais técnicas requerem não só o forçar de determinados vectores de teste, para cobertura

de faltas estáticas, como também o forçar de sequências de pares de vectores de teste, para

activar caminhos críticos de sinal para visualização dos seus atrasos e a presença eventual de

faltas dinâmicas. Uma forma economicamente viável de realizar isso é por procurar estender

técnicas de BIST estático para BIST dinâmico. Adicionalmente, o valor económico do

mercado de aplicações móveis torna ainda necessário que as soluções de BIST, a serem

activadas durante a vida útil dos sistemas, devam ser caracterizadas por baixo consumo de

energia, ou seja, devem conduzir a sessões de BIST curtas. Neste documento, define-se

sessão de BIST como a aplicação de um padrão de teste numa implementação de auto-teste

integrado, por forma a testar completamente um CUT. Tipicamente, uma sessão de BIST é

medida pelo comprimento do teste (TL, Test Lenght), isto é, pelo número de vectores de

teste que compõem o padrão de teste, ou pelo tempo de auto-teste, obtido pelo produto de TL

pelo período do sinal de relógio que sincroniza a sessão.

Uma vez que os custos do teste são elevados, e apresentam uma tendência preocupante

para se agravar, torna-se desejável introduzir metodologias de BIST tão cedo quanto possível

no fluxo de projecto. Isso significa introduzi-las em níveis de abstracção elevada, em

particular antes da síntese estrutural, portanto quando o sistema digital está ainda na sua

descrição a nível de transferência de registos (RTL, Register Transfer Level) [21]. Estratégias

de teste, introduzidas a este nível, podem ser também reutilizadas para a validação do projecto

e a validação de protótipos no silício [22].

Recentemente, os investigadores do Grupo de Qualidade e Teste do INESC-ID

propuseram uma metodologia BIST para sistemas digitais, designada por Auto-teste integrado

(BIST) baseado em Máscaras (Masked-based BIST, ou m-BIST) [21][23][24][25][26][31].

Esta metodologia, descrita no capítulo 2, explora a correlação entre a detecção múltipla de

faltas, a nível RTL, com a detecção singular de faltas a nível estrutural, em particular com a

Page 29: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

5

detecção simples de defeitos físicos, assegurando um Nível de Defeito muito reduzido.

Conduz à definição de um conjunto de vectores de entrada parcialmente definidos1, que são

designados por máscaras, e conduz a elevadas coberturas de defeitos com sessões de BIST

curtas, sendo assim uma metodologia que gera soluções BIST de baixo consumo de energia

[24]. A metodologia foi inicialmente desenvolvida com base em simulação de faltas multi-

nível, para faltas estáticas.

Para circuitos combinatórios, desenvolveu-se uma técnica de injecção de máscaras em

hardware, como parte da funcionalidade de teste integrada no silício [26]. Todavia, a geração

de mascaras era manual, e portanto envolvia recursos humanos elevados e baixa

produtividade de projecto. Posteriormente, desenvolve-se um trabalho de doutoramento em

que se utilizam técnicas probabilísticas de avaliação da controlabilidade e da observabilidade

de variáveis e condições [27], e que viabilizou a geração automática de máscaras. É assim

possível o desenvolvimento de uma metodologia que possa ser introduzida no fluxo

automático de projecto de um sistema digital integrado [28].

1.1. Identificação do Problema

Como se referiu, a metodologia de auto-teste integrado m-BIST possui o potencial de

responder a diversos requisitos que se pretendem para uma nova metodologia BIST dinâmico

de reduzido consumo de energia:

pode estender-se a sistemas digitais sequenciais

pode ser aplicada na realização do teste à frequência normal de operação do CUT

(at-speed testing [20])

pode estender-se de faltas estáticas para faltas dinâmicas

permite definir sessões de BIST com valores reduzidos do Nível de Defeito, com

comprimentos de teste (TL) reduzidos (reduzido consumo de energia) e com uma

dissipação de potência comparável à de um teste pseudo-aleatório

permite introduzir a functionalidade de BIST a nível RTL, conduzindo assim a

uma síntese lógica que introduz uma sobrecarga de teste2 reduzida

1 Nestes vectores, alguns bit têm valores forçados (‘0’ ou ‘1’), enquanto outros podem assumir qualquer valor lógico (don’t care). 2 A sobrecarga de teste (TO, Test Overhead) é definida como o aumento percentual da área de implantação e a redução percentual da máxima frequência de funcionamento do sistema integrado, devido à inclusão nele da funcionalidade de auto teste.

Page 30: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

6

pode ser automatizada, para inserção num fluxo de projecto de um sistema digital

integrado.

Assim, identificou-se o problema para o qual se pretende desenvolver uma solução no

contexto deste trabalho de Mestrado. Pretende-se primariamente estender a metodologia m-

BIST a sistemas digitais sequenciais, avaliando-a para faltas estáticas mas desenvolvendo-a

por forma a que a mesma possa ser utilizada na detecção de faltas dinâmicas. Para tal,

pretende-se que essa extensão seja realizada com a característica inovadora que se descreve a

seguir.

Tradicionalmente, as metodologias BIST off-line para circuitos sequenciais suportam-se

numa reconfiguração forte da topologia do circuito, utilizando a técnica de varrimento (scan)

[1][48]. Nesta técnica de DfT, separa-se a parte combinatória e a parte dos elementos de

memória, os registos. Estes são reconfigurados, em modo de teste, numa ou mais cadeias de

scan, como registos de deslocamento. O aumento de controlabilidade e observabilidade dos

elementos de memoria do circuito sequencial permite assim, durante o teste, deslocar em série

vectores de teste aleatórios ou determinísticos (shift-in), aplicá-los, capturar as respostas em

paralelo e analisar as respostas, ou deslocando-as para fora do sistema integrado, atraves

desses registos de deslocamento (shift-out), ou utilizando um compactador de respostas3,

tipicamente um MISR (Multi-Input Shift Register). Tais técnicas, designadas como “teste por

varrimento” (test-per-scan) conduzem tipicamente a sessões de BIST extremamente longas

(consumo elevado de energia). Contudo, a reconfiguração altera significativamente os

caminhos de sinal e os seus tempos de propagação, interrompendo (em modo de teste) as

malhas de realimentação características da topologia do circuito sequencial. Dessa forma,

quando se procura analisar a cobertura de faltas dinâmicas, realiza-se tal actividade em modo

de teste, com o circuito reconfigurado, e não sobre o circuito em modo normal de operação.

Adicionalmente, estas técnicas de BIST com scan conduzem a sessões longas de auto-teste,

com elevado consumo de potência e de energia.

Assim, com a metodologia m-BIST estendida a sistemas digitais sequenciais, pretende-se

desenvolver uma metodologia que preserve, tanto quanto possível, a topologia do modo

normal de funcionamento, a fim de que a detecção de faltas dinâmicas seja reforçada. Tal

3 Tais compactadores são usualmente designados por analisadores de assinatura (SA, Signature Analisers [1]).

Page 31: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

7

abordagem conduz a uma técnica de BIST pouco intrusiva [48]. Todavia, este é um

constrangimento sério, dado que é bem sabido que a detectabilidade de faltas em circuitos

sequenciais (em especial os que apresentam uma profundidade da sequencialidade elevada) é

normalmente reduzida, em particular com uma excitação pseudo-aleatória [1]. Saliente-se

que, para aplicações de elevada segurança (por exemplo, uso de cartões inteligentes (smart

cards) em processamento de informação bancária), os requisitos de segurança tornam as

técnicas de varrimento indesejáveis, já que o aumento da acessibilidade interna do chip

acarreta também uma diminuição da confidencialidade dos dados [87]. Assim, a metodologia

m-BIST para circuitos sequenciais que se propõe, não recorrendo a técnicas de scan, pode

também tornar-se útil para esse mercado de aplicações.

Pretende-se ainda reutilizar (e aprimorar, sempre que necessário) as ferramentas

computacionais de auxílio ao teste que suportam a versão anterior da metodologia m-BIST,

em particular o simulador de faltas multi-nível VeriDOS [21] [32] e o avaliador de

probabilidades ASCOPA [27]. Essas ferramentas, e em particular a ferramenta VeriDOS, são

compatíveis com sistemas EDA (Electronic Design Automation) comerciais, o que facilita a

implementação da metodologia de BIST no fluxo de projecto de um novo produto.

Os circuitos sequenciais possuem uma controlabilidade e uma observabilidade reduzidas,

em comparação com as correspondentes de um circuito combinatório. Pretende-se

desenvolver um procedimento sistemático de identificar as partes da funcionalidade difíceis

de controlar e/ou de observar, desenvolver uma estratégia de geração de máscaras

(eventualmente identificando pares de máscaras), e, na situação que requeira aumento de

testabilidade, definir uma eventual Inserção de Pontos de Teste (TPI, Test Point Insertion

[33]) através da identificação de saídas e/ou de registos com fraca observabilidade ou fraca

controlabilidade para mascaramento destes. Pretende-se ainda analisar a acessibilidade dos

registos já presentes a nível RTL, discriminando entre registos utilizados como bancos de

dados (por exemplo, para sincronismo entre módulos combinatórios) e registos de

realimentação (feedback) para implementação do carácter sequencial do circuito.

Finalmente, pretende-se realizar a demonstração de resultados num módulo digital

sequencial industrial, por forma a viabilizar a transferência de tecnologia de teste para uma

empresa do sector – a Tecmic [39].

Page 32: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

8

1.2. Contexto do Trabalho

O trabalho desta tese de Mestrado insere-se no trabalho desenvolvido pelo Laboratório

PROSYS (Programmable Systems) do INESC-ID no contexto do Projecto Europeu Medea+4

A 5035, designado Projecto ASSOCIATE (Advanced Solutions for SOC Integration and

Test in Europe). O coordenador do Projecto é a AMI Semiconductors (anteriormente Alcatel

Microelectronics), Bélgica, tendo como parceiros industriais a Alcatel Bell (Bélgica), a

Philips (França e Holanda), a Infineon (França), a Temento (França) e a Tecmic (Portugal), e

como parceiros de I&D, o LIRMM (Montpellier, França), o INESC-Porto e o INESC-ID

Lisboa.

O objectivo do projecto consiste no desenvolvimento de metodologias e ferramentas que

permitam o teste e a depuração (debug) de sistemas electrónicos físicos e lógicos

(hardware/software) ao longo da vida útil dos produtos e assegurar técnicas economicamente

competitivas de teste de produção de grande volume. As ferramentas desenvolvidas

permitirão manipular sistemas heterogéneos de grande complexidade, realizados com

tecnologias DSM (Deep Sub-Micron) operando no domínio temporal sub-nano-segundo,

sustentando assim a competitividade da indústria europeia no sector. O programa Medea+ é

de âmbito europeu, sendo os projectos avaliados e seleccionados a nível europeu. Contudo , o

seu financiamento é realizado através dos governos nacionais. Assim, ao Projecto Europeu

Associate corresponde um projecto nacional Associate6, financiado pela AdI (Agência de

Inovação), no qual o principal parceiro é a Tecmic, sendo parceiros associados o INESC-ID

Lisboa e o INESC Porto. O demonstrador escolhido para validar a metodologia proposta nesta

tese foi, como se referiu, utilizado para se proceder a transferência de tecnologia de teste para

a empresa Tecmic, um dos objectivos do consórcio nacional do projecto Associate.

1.3. Objectivos

Com se compreende do exposto, o objectivo deste trabalho de Mestrado em Engenharia

Electrotécnica e de Computadores é desenvolver uma metodologia de auto-teste integrado

(BIST), recentemente proposta, para circuitos digitais sequenciais e, numa fase posterior,

aplicá-la a faltas dinâmicas. A metodologia em questão, baseada em máscaras e designada m-

4 http://www.medeaplus.net/ 5 http://www.medeaplus.net/profiles/a503_profile.pdf 6 http://www.adi.pt/2200.htm

Page 33: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

9

BIST, conduz a um auto-teste de alta qualidade, caracterizado por uma eficácia do teste

elevada (capacidade de detectar defeitos físicos prováveis de ocorrer na fabricação), um

comprimento do teste reduzido, uma dissipação de potência comparável à de um teste pseudo-

aleatório, e uma sobrecarga de teste (área adicional de silício e degradação de desempenho)

comparável à das técnicas de BIST existentes. A metodologia m-BIST assim estendida deve

ser pouco intrusiva, a fim de aumentar a detectabilidade de faltas dinâmicas no sistema real

(isto é, no sistema digital operando em modo normal de funcionamento).

Procura-se analisar o mapeamento entre a cobertura de faltas a nível RTL e a nível

estrutural (porta lógica), identificar as áreas funcionais difíceis de testar (designadas por

“cantos escuros” da funcionalidade), gerar máscaras e identificar uma configuração que

permita realizar um m-BIST com reduzida intrusão, relativamente ao modo normal de

funcionamento, e uma inserção de TPI ponderada. Um problema a analisar cuidadosamente é

a utilização dos graus de liberdade relativamente às máscaras escolhidas para personalizar o

teste7, em particular que máscaras, que sequência de máscaras e qual o número de vectores a

aplicar por cada máscara.

Utilizar-se-á como ambiente de simulação a ferramenta VeriDOS [21] [32] e a ferramenta

comercial Verifault™, da Cadence [93]. A síntese lógica é realizada com o sistema Design

Vision™, da Synopsys [94]. Utiliza-se como caso de estudo o circuito sequencial de referência

b13 (do conjunto de referências ITC’99) [37][38] e, como demonstrador, um controlador PIC

de um sistema de tele-contagem de energia eléctrica, desenvolvido pela Tecmic no consórcio

Gerês8. Para geração de máscaras, utiliza-se a metodologia baseada na avaliação

probabilística da controlabilidade e observabilidade de variáveis e sinais, e a ferramenta

ASCOPA [27].

Assim, o objectivo central desta tese é o desenvolvimento de uma metodologia de auto-

teste integrado de sistemas digitais sequenciais, a nível RTL, que permita gerar soluções m-

BIST e padrões de teste com elevada cobertura de defeitos físicos, aproveitando o padrão de

teste determinado ao nível RTL e sem recorrer a cadeias de varrimento. Para isso é

necessário: 7 Refere-se como personalização do teste a sobreposição, prevista na técnica m-BIST, nos vectores de teste, de bit forçados (a ‘0’ ou a ‘1’) com a flutuação aleatória nos bit não especificados na máscara, realizada tipicamente à custa de um LFSR (Linear Feedback Shift Register). 8 http://www.inov.pt/eng/systems/system/download/inov_telecontagem_14_02_2002_v3_eng.pdf

Page 34: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

10

Desenvolver uma metodologia de preparação do teste, que defina o padrão de teste a

aplicar na sessão de BIST, o que inclui

Identificar os modelos de faltas RTL a utilizar com esse objectivo;

Definir as métricas de testabilidade que permitam estimar, a nível RTL, a eficácia

de um padrão de teste em cobrir defeitos físicos;

Desenvolver uma técnica para identificação expedita, a nível RTL, de partes da

funcionalidade difíceis de testar, através da estimação de métricas de

acessibilidade (controlabilidade e observabilidade);

Desenvolver uma técnica da inserção de pontos de teste (TPI) para controlo e/ou

observação;

Desenvolver uma metodologia para a injecção de máscaras, embutida no sistema

integrado, e que conduza a uma sobrecarga de teste reduzida;

Desenvolver uma metodologia cuja aplicação seja de fácil inserção num fluxo de

projecto, visando a sua automatização.

1.4. Contribuições Originais

No âmbito desta tese foi efectuado trabalho original em diversas áreas do teste de circuitos

e sistemas integrados digitais, merecendo destaque:

A extensão da metodologia m-BIST (auto-teste integrado baseado em máscaras)

para sistemas sequenciais, sem violação do carácter sequencial do sistema, numa

técnica de test-per-clock com elevada eficácia de teste, relativamente a faltas

estáticas (demonstrado ao longo do trabalho), e com potencial de exibir também

elevada eficácia de teste para faltas dinâmicas (trabalho futuro);

A preparação do auto-teste integrado a nível RTL, de acordo com a metodologia

proposta, confirmando que uma elevada cobertura de faltas RTL, com

multiplicidade n de detecção, se correlaciona bem com a elevada cobertura de

faltas estruturais, com detecção singular;

O desenvolvimento de uma metodologia de injecção de máscaras em hardware, a

nível RTL, podendo personalizar um subconjunto de entradas primárias (MPI,

Masked Primary Inputs) e secundárias (MSI, Masked Secondary Inputs), e que

conduz a uma sobrecarga de teste reduzida, mesmo quando comparada com a

Page 35: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

11

sobrecarga de teste de soluções BIST utilizando cadeia de varrimento (em test-per-

scan)

O desenvolvimento de uma técnica de gestão da inserção de pontos de teste (TPI, )

que se suporta primariamente numa injecção de pontos de teste para reforço da

controlabilidade (através das máscaras) e residualmente, se necessário, numa

injecção de pontos de teste para reforço da observabilidade (através da adição de

algumas saídas secundárias à assinatura produzida pela sessão de teste, e gerada

pelo analisador de assinatura).

1.5. Roteiro da Tese

A tese está organizada como se descreve em seguida.

No capítulo 2 estabelece-se o contexto do trabalho desenvolvido, apresentando-se uma

panorâmica breve das principais técnicas de auto teste integrado (BIST) para circuitos digitais

integrados, em especial as que visam obter um teste de muito alta qualidade, com uma

cobertura de defeitos quase total (BIST determinístico). Neste capítulo perspectiva-se ainda a

metodologia-alvo que é extendida, nesta tese, ao auto-teste integrado de circuitos sequenciais

– a metodologia m-BIST, nas suas vertentes de abordagem em simulação e de abordagem

probabilística. Descreve-se ainda brevemente as ferramentas computacionais académicas,

VeriDOS e ASCOPA, que serão utilizadas para a validação da metodologia.

O capítulo 3 contém a proposta de metodologia para a extensão da tecnologia m-BIST de

sistemas digitais combinatórios para sequenciais, com um mínimo de reconfiguração no modo

de teste. Salienta-se como aproveitar as abordagens de simulação e probabilística, bem como

a informação disponível a nível RTL (de transferência de registos) e a nível lógico (estrutural,

após a síntese lógica), para derivar uma solução de auto teste integrado que privilegie a

cobertura de defeitos físicos, com uma sobrercarga de teste reduzida (área de silício e

degradação de desempenho) e com um comprimento de teste reduzido.

A fim de ilustrar, num exemplo de reduzida complexidade, a aplicação da metodologia

proposta, descreve-se no capítulo 4, passo a passo, a utilização da metodologia num circuito

digital sequencial de referência – o circuito b13, do conjunto de circuitos de referência

Page 36: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

12

propostos na ITC’99 (International Test Conference [37][38]), um circuito sequencial

proposto pelo Instituto Politécnico de Turim.

A demonstração de resultados num módulo digital sequencial, de complexidade maior, é

realizada no capítulo 5, utilizando um exemplo industrial fornecido pela empresa Tecmic,

parceira do INESC-ID no projecto Associate. Trata-se de um módulo PIC de um sistema de

tele-contagem de energia electríca que esta empresa pretende disponibilizar como módulo de

propriedade intelectual (IP core, Intellectual Property core) no mercado SIP (Semiconductor

IP).

Finalmente, o capítulo 6 resume os principais resultados do trabalho descrito nesta tese, o

seu alcance e as suas limitações. Apresenta ainda as perspectivas de trabalho futuro, no

contexto do novo Projecto Medea+ 2A702, designado NANOTEST9, que entretanto se

iniciou.

9 http://www.medea.org/webpublic/projects/projectslist_2a7.htm

Page 37: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

13

2. Auto-teste Integrado de Alta Qualidade

Sistemas electrónicos complexos estão em numerosas situações sujeitos a testes, na sua

fase de produção e ao longo da sua vida útil, de forma a poder monitorizar o seu correcto

funcionamento. Estes testes e eventualmente o diagnóstico de falhas e sua correcção deverão,

a custos economicamente viáveis, ser rápidos, ter uma elevada cobertura de faltas e certificar

o funcionamento do componente.

Tradicionalmente os circuitos são testados com equipamento de teste automático (ATE)

[1], onde se armazenam os vectores de teste, se geram os estímulos a aplicar ao CUT (Circuit

Under Test) e se analisam as respectivas respostas aos estímulos. Durante o teste, este

equipamento é ligado às entradas e saídas do CUT, procedendo-se à respectiva excitação e

recolha dos valores das suas saídas. Uma desvantagem séria desta abordagem é o facto destes

equipamentos de teste serem muito dispendiosos. Adicionalmente o teste é lento, com muitos

vectores e limitações de memória por pino, resultando num tempo de utilização por

componente elevado. Para além destes inconvenientes, a electrónica por pino no ATE tem

vindo a aumentar com a complexidade dos sistemas, tornando difícil medir com precisão

sinais no CUT, o que é essencial no processo de teste. Os sistemas integrados VLSI (Very

Large Scale Integration) continuam a tornar-se cada vez mais complexos e rápidos com o

desenvolvimento das tecnologias de resolução nanométrica. Consequentemente, o tempo (e os

custos) para a geração e a aplicação dos vectores de teste torna-se cada vez maior [8].

Finalmente a quantidade de informação a permutar entre o ATE e o CUT e a ser armazenada

no ATE tem-se tornado proibitiva.

A forma para minorar estes problemas é especificar o teste (ou, pelo menos, a parte mais

crítica dele) como mais uma função do sistema integrado, de modo a torná-lo auto-testável.

Esta ideia motivou o desenvolvimento de métodos de auto-teste integrado (BIST)

[1][3][4][48], providenciando uma forma de decompor hierarquicamente o sistema em teste,

localizando-o em módulos menos complexos e por conseguinte acelerando o processo de

teste. Usualmente a metodologia de BIST depende da natureza funcional e estrutural do

CUT; por exemplo, o auto-teste de estruturas regulares, como as memórias semicondutoras, é

claramente diferente do teste de lógica que implementa a funcionalidade do sistema (LBIST,

Logic IST) [1][48]. Neste trabalho, visa-se o desenvolvimento de uma metodologia BIST para

LBIST. Adicionalmente, a localização da funcionalidade de teste no interior do sistema

Page 38: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

14

integrado (on-chip) permite uma comunicação local de banda larga, ou seja, a realização do

teste à frequência normal de operação do CUT (at-speed testing [20]). Esta circunstância é

especialmente vantajosa para a detecção de faltas dinâmicas, um factor-chave de sucesso no

teste de qualidade de sistemas digitais em tecnologias nanométricas [86]. Em BIST procede-

se à inclusão de mais funcionalidade (e, portanto, de mais circuitos) no sistema original, de

modo a poder testá-lo. Desta forma, a maior parte das desvantagens do teste externo são

eliminadas pelo BIST, o processo é muito mais económico e passa a ser completamente

automático. Para além disso, outra vantagem é o facto das capacidades de teste

acompanharem a evolução da tecnologia VLSI, algo que não se verifica com o teste externo.

Portas lógicas tornam-se relativamente baratas, em comparação com o esforço para

desenvolver programas de teste e com o custo do equipamento de teste automático necessário.

Além disso, o auto-teste, sendo local, pode ser realizado em banda larga, logo até à frequência

nominal de trabalho do sistema.

Com um projecto bem desenvolvido, para implementar BIST, o custo da adição deste

hardware de teste é suportável e viável, pois aumenta de forma significativa os benefícios em

termos de qualidade e redução dos custos relacionados com a manutenção dos componentes.

Sistemas de grande complexidade só podem ser testados com alguma qualidade, em

termos de cobertura de faltas, sendo projectados de início para esta finalidade. Essas técnicas

de projecto para testabilidade são usualmente referidos como DfT (Design for Testability). De

entre as técnicas de DfT, a técnica BIST mostra-se muito eficaz, não apenas no teste de

produção (requerendo ATEs mais económicos), mas também possibilitando o teste durante a

vida útil dos sistemas (lifetime test), o que é crucial para o produto em estudo – o contador

estático de energia10.

O BIST pode ser implementado em dois modos diferentes [1][48]:

• Teste explicito (off-line) – Neste método uma sequência de teste é aplicada ao CUT e

a resposta do circuito é comparada com a do circuito sem faltas. Devido à natureza do

teste, o teste explícito requer que o CUT suspenda o seu modo normal de

funcionamento e entre em modo de teste.

10 Pretende-se instalar não só a funcionalidade de tele-contagem, mas também a de auto-teste periódico do contador e a de auto-teste activado por controlo remoto, sempre que necessário.

Page 39: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

15

• Teste implícito (on-line) – Neste teste monitoriza-se o funcionamento do sistema em

modo normal; usualmente existem múltiplas cópias do circuito e, em modo normal de

funcionamento, procede-se à comparação das saídas das várias cópias.

Alternativamente, as saídas são comparadas com as respostas correctas, consideradas

como palavras de código [5].

No presente trabalho optou-se pelo modo de teste explícito, dado que o objectivo é

maximizar a cobertura de faltas, reduzir a área adicionada e a degradação de desempenho e

reduzir a energia consumida durante a sessão de BIST..

2.1. Características Valorizadas e Métricas de Qualidade A qualidade da solução BIST proposta é aferida por diversas características valorizadas e

mensuráveis (através de métricas):

A eficácia do teste (TE, Test Effectiveness [85]) – medida pela cobertura de faltas

(FC, Fault Coverage), através do cálculo (no ambiente de projecto) da percentagem de

faltas alistadas que são detectadas pelo padrão de teste A FC deve ser avaliada em

diferentes níveis de abstracção e para diversos universos de faltas. As métricas de TE

a nível RTL são introduzidas no capítulo 3, junto com a descrição da metodologia

proposta. Quando existe informação disponível11, define-se uma métrica adicional, a

nível estrutural – a cobertura de defeitos (DC, Defect Coverage) [51]. Dado um

sistema com uma descrição estrutural C, um padrão de teste, T={T1, T2, ... TNT} (NT

vectores de teste), e uma lista de N defeitos físicos, a cobertura de defeitos é avaliado

por [50][51]

onde wj é o factor de ponderação (ou peso) da falta, wj= - ln (1-pj) e pj representa a

probabilidade de ocorrência da falta j [51]. Assim, a eficácia do teste, TE, é ponderada

11 É necessário conhecer, para uma dada linha de produção, informação relativa à estatística de defeitos mais prováveis de ocorrer na fabricação – natureza do defeito e sua probabilidade de ocorrência.

∑∑==

=N

ii

N

jj ww

d

DC11

Page 40: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

16

pela probabilidade de ocorrência dos Nd defeitos que são detectados pelo padrão de

teste T.

O comprimento do teste (TL, Test Length) – medido pelo número de vectores de

teste a aplicar durante a sessão de BIST, para se atingir o valor de FC especificado.

Esta característica é essencial para assegurar um BIST de reduzido consumo de

energia.

A sobrecarga do teste (TO, Test Overhead) – avaliado (1) pelo aumento percentual

de complexidade (portas lógicas, ou área de silício) e (2) pela degradação do

desempenho de circuito (aumento percentual dos tempos de propagação

entradas/saídas), devido ao hardware de teste12.

A potência de teste (TP, Test Power) (e a energia de teste) – avaliada pela potência

(energia) eléctrica consumida na sessão de BIST [84]. Há que assegurar que os limites

de potência (energia) especificados para o sistema integrado (para as baterias a

energizar o sistema) não sejam excedidos, nem em modo normal, nem em modo de

auto-teste.

Como se verá neste capítulo, torna-se necessário, para se obterem valores de FC próximos

de 100%, adicionar vectores determinísticos a vectores pseudo-aleatórios. Os vectores

determinísticos são armazenados no sistema integrado. Neste caso, é também usual definir-se

uma métrica adicional [49]:

O armazenamento de teste necessário (TS, Test Storage) - medido pelo produto da

dimensão da palavra digital de entrada pelo número de vectores determinísticos

necessários para, em conjunto com os vectores pseudo-aleatórios, assegurar o nível de

FC definido na especificação do produto.

Para a metodologia m-BIST que se pretende estender para circuitos sequenciais, os

vectores parcialmente determinísticos utilizados (as máscaras) são fixos, uma vez definido o 12 A introdução de funcionalidade de teste no sistema integrado (on-chip) pode adicionar mais um aspecto da sobrecarga – o aumento do número de terminais acessíveis para efeitos do auto-teste. No caso do presente trabalho, esse aspecto pode reflectir-se na observação de algumas saídas secundárias no analisador de assinatura. Uma vez que esse aspecto se reflecte no aumento de área do analisador de assinatura e das interligações necessárias, este aspecto adicional da sobrecarga do teste não é considerado explicitamente.

Page 41: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

17

padrão de teste a aplicar na sessão de BIST, como se verá no capítulo 3. A sobrecarga de

teste, devida ao armazenamento das máscaras, pode ser proibitiva se não existir no sistema

integrado memória RAM que possa ser utilizada, em modo de teste, para armazenar

temporariamente esses vectores determinísticos. Assim, opta-se na metodologia proposta por

utilizar uma técnica de injecção de máscaras em hardware. Consequentemente, esta última

métrica – TS – torna-se desnecessária na versão da metodologia m-BIST que se propõe.

2.2. Arquitectura-base de Auto-Teste Integrado (BIST)

A figura 2.1 apresenta o diagrama de blocos de um CUT com BIST.

Figura 2-1 – Arquitectura base de uma solução de auto-teste integrado (BIST)

Os principais módulos de uma arquitectura de auto-teste integrada são [47][48]:

• O gerador de padrões de teste (TPG – Test Pattern Generator) – hardware que tem

como função gerar a sequência de vectores de teste a aplicar ao CUT. A fim de limitar

a área de silício a utilizar para a implementação do TPG, recorre-se usualmente a um

gerador de teste pseudo-aleatório, tipicamente um LFSR (Linear Feedback Shift

Register) [1][47] ou um autómata celular (CA, Cellular Automata) [63];

• O compactador da resposta ao teste – Dependendo da dimensão da palavra digital de

resposta do sistema e do comprimento do teste, o volume das respostas ao teste pode

ser muito elevado, o que torna inviável o seu armazenamento no próprio sistema

integrado. Consequentemente, as sucessivas respostas, ao longo do tempo, são

comprimidas durante a sessão de teste. No final do teste, procede-se à comparação

Page 42: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

18

desta resposta comprimida (uma palavra digital) com a resposta esperada para um

circuito sem faltas (designada como assinatura);

• O multiplexador de entrada (MUX), que selecciona ou as entradas primárias, ou os

vectores locais, gerados pelo TPG;

• O comparador da (1) assinatura recolhida no compactador da resposta do teste com

(2) a assinatura correcta (a do circuito sem defeitos);

• O controlador de BIST, para activar/desactivar o processo de teste. Na metodologia

que se pretende desenvolver, o controlador de teste pode assumir também a função de

comandar a injecção de vectores determinísticos (máscaras).

Descreve-se em seguida os principais módulos de uma arquitectura BIST convencional.

2.2.1. Gerador de Vectores de Teste (TPG)

Devido ao facto da sequência de teste ter de ser armazenada ou gerada no próprio circuito,

de modo a possibilitar o BIST, esta sequência deve ser curta ou possível de gerar com pouco

hardware. Uma solução é a utilização de ROMs (Read Only Memory) para armazenar padrões

de teste. Esta solução, no entanto, consumiria uma área demasiado elevada no chip. Outra

solução, como se referiu, é o recurso a circuitos que geram vectores de teste pseudo-

aleatórios. A geração pseudo-aleatória de padrões de teste é facilmente realizada por LFSRs

(Linear Feedback Shift Registers). Este método utiliza muito pouco hardware e apresenta

resultados muito úteis, já que permite gerar um padrão de teste que cobre tipicamente a

maioria das faltas. Todavia, conduz a comprimentos de teste (TL) elevados, e normalmente é

incapaz, por si só, de gerar um padrão de teste que conduza a FC=100%. Com efeito,

dependendo da topologia do CUT, existem faltas resistentes a padrões pseudo-aleatórios

(pseudo-random pattern-resistant faults), que tornam necessário o recurso a vectores de teste

determinísticos para a sua cobertura [71] [47].

A interligação destas duas soluções, LFSR e ROM, é um método eficaz, onde o LFSR é

usado como modo de teste primário, para detectar a maioria das faltas. A fim de detectar

faltas difíceis, não reveladas pela sequência de teste do LFSR, guardam-se em ROM de

pequea dimensão os vectores deterministicamente gerados por um ATPG (Automatic Test

Pattern Generator) para detectar as faltas difíceis. Neste trabalho, utilizam-se LFSR para a

Page 43: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

19

geração do teste pseudo-aleatório. Contudo, os vectores determinísticos são injectados em

hardware, e não guardados em memória.

Os LFSR são as estruturas mais utilizadas para gerar vectores de teste pseudo-aleatórios.

Estes vectores gerados têm todas as propriedades dos números aleatórios, mas são gerados

algoritmicamente pelo gerador. Desta forma, é possível repetir a sequência, algo fundamental

no BIST. A sessão de BIST inclui a aplicação de uma sequência de vectores gerados pelo

LFSR. Com n registos, o comprimento máximo da sessão é da ordem de 2n. Com n da ordem

de 20, o número prático de vectores a aplicar é muito inferior a 2n. Assim, só se aplica uma

janela de vectores (N<<2n)13. O padrão resultante depende do vector de inicialização do LFSR

(designado por semente (seed)) e do comprimento do teste, N. Depende ainda da topologia do

LFSR, que influencia a sequência de vectores pseudo-aleatórios. Existem duas topologias

base para um LFRS – standard e modular – ilustradas nas figuras 2.2 e 2.3. Qualquer um dos

LFSRs inclui n registos (elementos de memória) aos quais são adicionadas realimentações

usando portas ou-exclusivo (EXOR).

Figura 2-2 – LFSR standard.

A topologia LFSR standard é utilizada quando se pretende usar um registo de deslocamento

já existente no sistema para gerar os vectores de teste.

Figura 2-3 – LFSR modular.

13 Para ter significado estatístico, o número de vectores a aplicar, N, deve ser suficientemente elevado para que a probabilidade, em cada terminal de entrada, de forçar um ‘0’ ou ‘1’ lógico seja de cerca de 50%.

Page 44: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

20

Neste trabalho utiliza-se para o gerador de vectores de teste a topologia de um LFSR

modular. Contudo, a metodologia m-BIST proposta pode aplicar-se a qualquer topologia de

LFSR, ou a outro gerador de padrões pseudo-aleatórios. A topologia de LFSR modular

consegue operar a frequências superiores à da topologia LFSR standard, pois tem no máximo

o atraso de uma porta ou-exclusivo entre cada registo adjacente. A saída do último registo é

selectivamente escolhida para realizar a realimentação dos registos anteriores.

Todos os LFSRs são caracterizados por um polinómio de realimentação [4]. O polinómio

de realimentação para um LFSR de grau-n é dado por

Error! Objects cannot be created from editing field codes. [ 2.1]

Nesta equação, 1=iφ indica a presença de realimentação na entrada Di. A título

exemplificativo, para o polinómio 84321)( xxxxx ++++=φ , o circuito correspondente é o

que se ilustra na figura 2.4.

Figura 2-4 – Esquema de um LFSR que gera 28 – 1 vectores de 8 bits

Se o LFSR fosse inicializado com zeros, a aplicação de um sinal de relógio não mudaria o

estado deste. Desta forma, à saída dos registos apareceria uma sequência onde todos os

registos têm ‘0’ na saída, e assim continuaria enquanto não fosse forçado um vector diferente.

Com qualquer outro vector-semente, a aplicação de um sinal de relógio resulta na geração de

um vector também diferente da sequência de zeros.

É o polinómio de realimentação que determina o período da sequência gerada pelo LFSR

[4][48]. O período máximo da sequência gerada por um LFSR de n-registos de deslocamento

é de 12 −n ciclos de relógio, sendo o estado no qual todos os registos são ‘0’ o único omitido.

Neste caso, o polinómio do LFSR é designado por primitivo. A sequência de saída gerada é

somente função do estado anterior do LFSR, devido à inexistência de outros sinais de entrada.

Page 45: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

21

Quando esta estrutura composta por registos é utilizada com o propósito de gerar padrões

pseudo-aleatórios, as saídas de todos os registos são ligadas às entradas do circuito a testar.

Em cada ciclo de relógio, o conteúdo do LFSR de n-registos é usado como vector de teste.

Caso o CUT seja composto por um número relativamente reduzido de entradas, este pode

ser testado recorrendo à aplicação de todos os possíveis 12 −n vectores de teste. Designa-se

este teste por teste exaustivo. No entanto, se o CUT for caracterizado por um número elevado

de entradas primárias, esta estratégia é proibitiva, devido ao tempo de teste ser demasiado

elevado.

Para uma determinada sequência pseudo-aleatória, a cobertura de faltas é geralmente

obtida por simulação. Neste trabalho, a avaliação das coberturas de faltas, a nível lógico, é

realizada recorrendo ao simulador de faltas comercial da Cadence [93], o Verifault™. Se a

cobertura de faltas for inferior à especificação, o número de vectores de teste pseudo-

aleatórios a aplicar é ampliado. Todavia, a saturação na curva FC(N) (onde N é o número de

vectores aplicados) torna-se evidente a partir de determinado comprimento de teste, devido à

presença de faltas resistentes a vectores pseudo-aleatórios. Por tal motivo, tem de se

adicionar, aos vectores pseudo-aleatórios, vectores determinísticos que as detectem.

2.2.2. Analisador de Assinatura (SA)

Após estudar a melhor forma de estimular o circuito de forma a levá-lo a passar pelo

maior número de estados possíveis, coloca-se a questão da recolha das respostas do circuito

aos estímulos aplicados. O problema é a enorme quantidade de informação que é necessária

recolher para posterior análise, de forma a poder concluir acerca do correcto funcionamento

do circuito.

Se um sistema integrado tiver x entradas primárias (PI, Primary Inputs), tiver m saídas

primárias (PO, Primary Outputs) e forem aplicados N vectores de teste, o volume de dados

associado à resposta do circuito ao teste é mNx ×× . Este volume de informação necessita de

ser comparado com a resposta de um sistema sem faltas, cuja assinatura já é conhecida. O

armazenamento da totalidade da resposta (N vectores) ao teste no próprio circuito e a

Page 46: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

22

realização de comparações não é viável. A solução para este problema está, como se referiu,

na compactação da resposta do CUT. Ao longo do teste procede-se à recolha das respostas do

circuito e simultânea compactação, resultando no final na obtenção de uma palavra digital – a

assinatura. Após a obtenção da assinatura final do teste, efectua-se uma comparação com a

assinatura do mesmo circuito sem faltas.

O principal problema com a compactação de respostas do teste é que, ao reduzir-se

drasticamente o número de bit da resposta original do circuito ao teste, perde-se alguma

informação [1][48]. Este fenómeno é designado por mascaramento de faltas (aliasing). Se o

número de saídas for elevado, a probabilidade de aliasing é muito reduzida. Desta forma,

apesar da assinatura do CUT ser idêntica à de um circuito sem faltas, existem três

possibilidades:

1. O circuito em teste não tem faltas;

2. O CUT tem faltas, mas a falta não foi sensibilizada pelo padrão de teste, ou seja não

aparece na saída, durante o teste;

3. O CUT tem faltas, estas foram sensibilizadas, por um ou mais vectores de teste, mas a

informação perdeu-se durante a compressão, obtendo-se uma assinatura final idêntica

à de um circuito sem faltas.

Existem várias técnicas de compactação da resposta do circuito, onde a probabilidade de

aliasing é inversamente proporcional à quantidade de hardware utilizada para a compactação.

Neste trabalho usou-se uma solução de compromisso entre a quantidade de hardware

necessária e uma probabilidade de aliasing suficientemente baixa.

A análise da assinatura consiste no processo de compactação da resposta do circuito aos

estímulos impostos pelos vectores de teste, numa palavra digital de comprimento muito

inferior à palavra sem compactação. Esta palavra representa uma propriedade estatística do

circuito, possibilitando uma forma de poder comparar o funcionamento deste com a de um

sem faltas e cuja assinatura já é conhecida.

A metodologia usada para comprimir a resposta ao teste consiste em ligar a saída i do

circuito à entrada menos significativa do LFSR, como se ilustra na figura 2.5.

Page 47: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

23

Figura 2-5 – Analisador de assinatura de m - bits

Esta topologia é basicamente a mesma usada para gerar padrões pseudo-aleatórios. Antes

de se inicializar a compressão da resposta do teste o LFSR é inicializado com todos os

registos a ‘0’.

A questão se saber qual o polinómio de realimentação apropriado para o LFSR, tem sido

objecto de estudo. Concluiu-se que a probabilidade de aliasing, num modelo de erros

independente, é menor se a resposta ao teste for comprimida usando LFSRs com um

polinómio primitivo.

Esta técnica de compressão com LFSRs pode ser utilizada para cada saída do circuito.

Todavia, o aumento da área seria enorme. Também se poderia usar o mesmo LFSR e ir

testando uma saída de cada vez, o que aumentava consideravelmente o tempo dispendido no

teste. A alternativa mais usada, quando o circuito tem múltiplas saídas (i0, i1, ..., im-1), consiste

em aplicar a mesma técnica de compactação a todas elas, recorrendo à utilização de um

MISR (Multiple Input Shift Register), como se mostra na figura 2.6.

Figura 2-6 - Estrutura MISR para um circuito com m saidas

O polinómio de realimentação é o mesmo que o de um LFSR, ou seja um polinómio

primitivo, excepto que as m saídas do circuito se encontram ligadas agora às m entradas do

registo de deslocamento mediante portas lógicas ou-exclusivo (EXOR).

Page 48: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

24

A questão que se coloca é saber qual o número de registos a utilizar na estrutura de

compactação da resposta de modo a minimizar a probabilidade de aliasing.

Considere-se de novo o polinómio:

Error! Objects cannot be created from editing field codes. [2.2]

Seja 110 ...)( −= nrrrxR a saída do circuito, onde r0 é a resposta ao primeiro vector e rn-1 é a

resposta ao último. Se R(x) for comprimida usando um MISR com o polinómio )(xφ , a sua

assinatura S(x) é dada por:

)()()()( xSxxQxR += φ [ 2.3]

A resposta final, S(x), do MISR, é o resto da divisão da resposta do circuito R(x) pelo

polinómio )(xφ . Note-se que o grau da assinatura é sempre menor que o grau do polinómio

de realimentação.

As condições em que um circuito defeituoso origina uma resposta correcta podem ser

caracterizadas facilmente. Seja Rf(x) a resposta do circuito com faltas, onde Rf(x )≠ R(x).

A assinatura para esta resposta é:

Rf(x) = Qf(x) )(xφ +Sf(x) [ 2.4]

Para que ocorra aliasing, a assinatura do circuito com faltas tem que ser idêntica à do

circuito sem faltas. As condições em que o erro leva a aliasing são as seguintes:

E(x) = )(xφ [Q(x)+ Qf(x)] [ 2.5]

Dois aspectos importantes devem ser salientados:

1. O polinómio de erro causa aliasing se e só se for divisível pelo polinómio de

realimentação do MISR.

2. O aliasing não depende da natureza da resposta sem erros R(x), depende apenas do

erro. Esta é a principal diferença relativamente a outros métodos de compressão.

Page 49: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

25

Se se admitir que todos os 2n polinómios de erro são igualmente prováveis, a

probabilidade de aliasing pode ser facilmente calculada. Todos os polinómios múltiplos de

)(xφ causam aliasing. Seja o grau de )(xφ , m, e seja o grau de E(x)≤ (n-1). )(xφ pode ser

multiplicado por todos os polinómios possíveis de grau menor ou igual que (n-1-m) para se

obterem todos os polinómios de erro, estes incluem o caso em que não ocorre erro. Por isso

existem 2n-m-1 polinómios de erro diferentes de zero que causam aliasing.

Uma vez que todos os polinómios de erro têm a mesma probabilidade de ocorrer, a

probabilidade de aliasing é dada por:

1212

sin −−

=−

n

mn

galliaP [ 2.6]

No caso em que 12 >>n e 12 >>−mn , o resultado anterior reduz-se simplesmente a:

mgalliaP21

sin = [ 2.7]

Assim, se o número de registos (m) do compactador de assinuaturas for elevado, a

probabilidade de mascaramento de faltas é desprezável.

2.2.3. Controlador de Teste

Todo o processo de BIST é controlado por um conjunto de sinais que determinam a

sequência das operações realizadas. O bloco responsável pela geração destes sinais é o

controlador. Uma vez que esta sequência é específica de cada metodologia de BIST e de cada

CUT, o controlador desenvolvido para o presente trabalho será descrito na secção 3.5 deste

documento.

2.3. Técnicas Básicas de BIST

Page 50: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

26

A fim de determinar qual a metodologia de BIST mais adequadas a solucionar o problema

identificado no capítulo 1, é útil recapitular brevemente as principais metodologias genéricas

de BIST.

2.3.1. Test-Per-Clock

Esta técnica consiste em testar o CUT em cada ciclo de relógio, aplicando um vector de

teste a todo o CUT, como se ilustra na figura 2.7 (a). Contudo, quando o CUT possui um

número elevado de entradas primárias, torna-se vantajoso aplicar um LFSR a um subconjunto

dessas entradas e utilizar o bit mais significativo do LFSR como entrada de um registo de

deslocamento, para providenciar os restantes valores às entradas do circuito em teste, como se

ilustra na figura 2.7 (b). Esta alternativa diminui significativamente o tempo de teste, apesar

de apresentar praticamente a mesma lógica.

C U T

L F S R

M IS R

R E G IS T O S

C U T

L F S R

M IS R

(a) (b)

Figura 2-7 – Test_per_clock de um sistema integrado com (a) um número reduzido e (b) um número

elevado de entradas.

Outra técnica a utilizar quando o módulo a testar tem um número elevado de entradas

primárias (n > 20) é a possibilidade de aproveitar a existências de cones de sensibilidade.

Com efeito, num CUT combinatório (ou num CUT sequencial, reconfigurado em modo de

teste numa topologia de varrimento completo (full scan)), tipicamente cada saída do circuito

depende de um leque restrito de entradas do circuito. A técnica de explorar os cones de

sensibilidade existentes entre as entradas e as saídas do CUT, permite evitar um teste

Page 51: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

27

exaustivo que levaria um tempo longo a finalizar devido ao elevado número de entradas do

circuito.

2.3.2. Test-Per-Scan

Todavia, existem sistemas integrados (CUT) para os quais, utilizando-se uma metodologia

de test-per-clock, o simples aumento do número de vectores de teste não é suficiente para se

atingir uma cobertura de faltas elevada. Nestas situações é obrigatório o recurso a outras

técnicas para se tornar eficaz o teste deste tipo de CUT [1].

Entre estas técnicas destaca-se a introdução de cadeias de varrimento (scan) no circuito a

testar. Nesta técnica, os vectores de teste são aplicados por cada varrimento dos sinais. A

introdução de cadeias de scan permite aumentar a probabilidade de detecção de faltas difíceis

e, desta forma, aumentar a cobertura de faltas do circuito. Nesta técnica aumenta-se, pois,

consideravelmente a controlabilidade e observabilidade de diversos nós internos do circuito,

forçando um estado ao circuito que de outra forma seria difícil de atingir. Exemplifica-se na

figura 2.8 uma estrutura de teste com Scan [4].

Figura 2-8 – Esquema de blocos de uma estrutura de test-per-scan.

Nas cadeias de scan, todos os elementos de memória (registos) do circuito são substituídos

por registos de teste da biblioteca. O objectivo é formarem, em modo de teste, um registo de

deslocamento. Quando o CUT é assim reconfigurado, em modo de teste, procede-se à

introdução, em série através da cadeia, de um vector de teste para testar a parte combinatória

Page 52: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

28

do circuito. Após a aplicação de um relógio em modo normal de funcionamento do circuito,

por forma a aplicar ao circuito o vector de teste, procede-se ao deslocamento, também em

série, do estado a que o circuito chegou através da mesma cadeia de scan. Em simultâneo

procede-se ao carregamento do próximo vector de teste. Na figura 2.9 pode ver-se a estrutura

interna de um registo de teste.

D

Rst

QClk

MUX

S_Test

P.I.

Scan In

Figura 2-9 – Registo de teste.

É facil de concluir que a técnica de test-per-clock conduz a um comprimento de teste (TL)

muito inferior do que a técnica de test-per-scan. Além disso, pode não conseguir, para um

CUT sequencial, o mesmo valor da cobertura de faltas (FC) que é obtido com o test-per-scan.

O consumo de energia de uma sessão de BIST com test-per-scan é elevado. Sistemas de EDA

comerciais podem gerar automaticamente, a nível estrutural, a reconfiguração do CUT

sequencial para a sua versão full-scan. A separação do CUT da funcionalidade de teste (TPG,

SA, controlador de BIST) na técnica de test-per-scan torna-a adaptável a uma descrição

funcional a nível RTL (desde que o CUT seja sintetizado para uma versão com full-scan).

Uma técnica que conduza a uma sequência muito longa de vectores de teste trás um problema

adicional: a avaliação da cobertura de faltas, no ambiente de projecto, usualmente realizada

com um simulador de faltas. Com efeito, sessões longas tipicamente têm custos

computacionais proibitivos. Nesse caso, pode ser necessário recorrer a técnicas de emulação

de faltas, tal como a descrita em [89].

2.4. BIST Determinístico

As técnicas de BIST que utilizam geração pseudo-aleatória têm limitações quanto à

eficácia do teste. Com efeito, a presença de faltas resistentes a padrões pseudo-aleatórios [71]

levam a que se tenham de desenvolver técnicas para aumentar a cobertura de faltas (FC), que

envolvem a aplicação de vectores parcial ou totalmente determinísticos – isto é, vectores que

visam a detecção de faltas específicas. Tais técnicas são genericamente designadas por BIST

determinístico [78][79][80][81][82]. A informação relativa aos vectores determinísticos pode

ser armazenada ou gerada por lógica on-chip, ou transferida do exterior do sistema integrado

Page 53: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

29

(vinda do ATE, ou de um dispositivo que a armazene, por exemplo, uma ROM no PCB (placa

de circuito impresso, ou Printed Circuit Board) em que o sistema integrado se insere). No

caso de se viabilizar um auto-teste durante a vida útil do componente, e de se armazenar a

informação de teste determinístico no exterior do componente, esta terá necessariamente que

se guardada no PCB.

Nas técnicas de BIST determinístico, a maior parte do volume de dados de teste a aplicar

ao CUT é ainda obtida por geração pseudo-aleatória. Os vectores determinísticos a modular

o padrão de teste pseudo-aleatório são usualmente obtidos através da identificação de um sub-

conjunto de faltas estruturais que não são detectadas por um conjunto de vectores pseudo-

aleatórios inicial, segunda da utilização de um ATPG a nível estrutural que gera os vectores

determinísticos a aplicar. Esta abordagem apresenta algumas limitações. Em particular, é

centrada num dado modelo de faltas estruturais (normalmente faltas estáticas), e conduz a

resultados eficazes para uma topologia específica de realização. Pode, por isso, não ser muito

eficaz (1) quando o sistema é reutilizado (por exemplo, como IP core) num nó tecnológico

diferente, para o qual outros defeitos físicos originam faltas de comportamento diferente, ou

(2) quando a mesma função, a nível RTL, seja sintetizada numa outra estrutura (por exemplo,

para optimização de atrasos). Como se verá adiante, na metodologia m-BIST, os vectores

determinísticos são gerados a nível RTL, e visam activar funcionalidade pouco exercitada, e

não linhas ou nós da descrição estrutural do CUT. São assim independentes do modelo de

faltas (ou dos defeitos físicos da tecnologia-alvo) e fracamente dependentes da tecnologia

semicondutora de implantação..

Conhecidos os vectores de teste determinístico a aplicar ao CUT, durante a sessão de

BIST, há que definir uma metodologia de aplicação desses vectores. Têm sido propostas um

grande número de técnicas de forçar, localmente, os vectores determinísticos. Essencialmente,

essas técnicas visam

(1) modular o TPG [34][65][76][77] ou as suas saídas [67][68][70] (isto é, a própria

geração pseuso-aleatória),

(2) modular directamente os estados dos registos do CUT [28], ou

(3) inserir (num CUT com BIST em test-per-scan) directamente os vectores

determinísticos nas cadeias de scan, resultantes da configuração dos registos do

CUT em um ou mais registos de deslocamento [48].

Page 54: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

30

2.4.1. Geração Pseudo-aleatória Ponderada (WPR)

Um dos primeiros aspectos a analisar é a natureza das entradas primárias (PI) e

secundárias (SI). Com efeito, existem entradas de dados e de controlo. Existem entradas que

preferencialmente assumem um valor lógico, e não o seu complementar. Este é um caso típico

de um sinal de Set (ou Reset). O funcionamento normal do CUT ocorre sem que tal sinal

mude de valor. Se esse terminal de entrada for feito variar aleatoriamente (isto é, com 50% de

probabilidade de assumir o valor ‘0’, e 50% de probabilidade de assumir o valor ‘1’), o CUT

sequencial dificilmente consegue percorrer todos os estados da(s) sua(s) máquina(s) de estado

e, dentro de cada estado, dificilmente consegue exercitar toda a estrutura lógica que

implementa a sua função. Assim, uma das primeiras tentativas de aumentar a FC foi o

desenvolvimento de técnicas de teste pseudo-aleatório ponderado (WPR, Weighted Pseudo-

Random) [70][71][72][73][74][75].

Tipicamente, a utilização (para entradas específicas) de lógica que force o AND ou OR de

diversos bit do LFSR força a predominância do ‘0’ ou do ‘1’, respectivamente, na sua saída,

permitindo assim a geração de um bit de entrada com probabilidade ponderada. Por vezes

surgem restrições conflitantes nos valores de entrada necessários para detectar as faltas

resistentes a padrões pseudo-aleatórios, pelo que se torna necessário utilizar múltiplos

conjuntos de factores de ponderação [73].

2.4.2. Geração Pseudo-aleatória com Re-semeadura (Reseeding)

Admitindo que se utiliza um LFSR para a geração pseudo-aleatória e que a sessão de

BIST tem um comprimento de teste TL = N<<2n (em que n é o número de elementos de

memória do LFSR), dispõe-se de uma enorme variedade de padrões de teste de comprimento

N. Com efeito, pode-se (1) utilizar diversas topologias (anteriormente, referiram-se as

topologias standard e a modular), (2) utilizar diversos polinómios primitivos, e (3) para cada

topologia e polinómio primitivo, utilizar (2n-1) sementes diferentes. Uma das ideias que logo

vem à mente, para a detecção de faltas estáticas, é a inserção de diversas sementes, durante a

sessão de BIST, sendo que cada semente é um dos vectores determinísticos que detectam

faltas difíceis. Esta técnica veio a ser conhecida como reseeding, ou re-semeadura [53]-[61],

[64]. Pode ser utilizada com LFSR, bem como com outros geradores pseudo-aleatórios tais

como autómatas celulares [63] e contadores [57][58][64]. A ordem em que as sementes são

Page 55: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

31

introduzidas e o número de vectores pseudo-aleatórios que se aplicam a seguir a cada semente

influenciam, para o mesmo valor de N, a cobertura de faltas (FC) obtida.

Uma estrutura que permita não só injectar diversas sementes, mas também modificar o

polinómio primitivo, tal como foi proposta em [54], é muito flexível. Todavia, conduz a uma

sobrecarga de teste normalmente inaceitável. Numa implementação de BIST para teste de

produção e para teste durante a vida útil do sistema integrado, é necessário guardar

internamente as sementes (supondo que se fixa um só polinómio primitivo, ou uma só

estrutura de hardware para o TPG). Isso pode ser feito por armazenamento em memória (on-

chip), ou codificando a geração de sementes através de lógica (por exemplo, usando um

contador para o número de sementes a utilizar). Uma boa solução (em termos de sobrecarga

de teste) é a proposta em [59], em que é codificado em lógica a forma como são geradas as

sucessivas sementes, com base no estado actual do LFSR, como se ilustra na figura 2.10. De

facto, o próprio estado do LFSR activa a sua inicialização com uma nova semente, quando a

lógica de controlo (sediada no controlador de BIST) assim o permitir.

Figura 2.10 – Técnica de reseeding com reduzida sobrecarga de teste [59].

2.4.3. Geração com Comutação de Registo (Bit-flipping)

No projecto industrial de SoC complexos, com auto-teste integrado nos seus blocos

funcionais, a técnica mais usual de BIST utilizada é uma técnica de test-per-scan. Esta

técnica tem vantagens, relativamente à técnica de test-per-clock, nomeadamente a de poder

ser facilmente implementada em CUT sequenciais reconfiguráveis com varrimento completo

Page 56: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

32

(full scan), e de introduzirem uma degradação de desempenho limitada (tipicamente menor

que na técnica de test-per-clock) (Figura 2-10).

CUT(Circuito Under Test)

Cadeia de Scan Anal. Assinaturas(MISR)LFSR

P.I. P.O.

Figura 2-11 – Arquitectura para implementação da técnica Test-per-Scan

O problema de introdução de vectores determinísticos, na topologa base de uma técnica

de test-per-scan, foi abordado em [66] de forma inovadora, por observação que um teste

pseudo-aleatório contém normalmente muitos vectores inúteis, no que se refere ao incremento

da cobertura de faltas. Tais vectores podem se transformados em vectores úteis, se tão

somente se comutarem (flipping) alguns bit. A função de bit flipping (BFF) tem um reduzido

off-set, que corresponde aos vectores PR úteis (usualmente, asseguram a cobertura de uma

fracção significativa de faltas – as faltas fáceis de detectar). Contém ainda um conjunto

reduzido de bit que necessitam ser comutados (derivados de cubos de teste, com muitos

dont’cares) e finalmente um conjunto amplo de don’t cares. Este facto explica que existe uma

margem grande de optimização da função BFF, que os autores exploram em [66].

2.4.4. Geração com Fixação de Registo (Bit-fixing)

Uma técnica de BIST em test-per-scan, alternativa da proposta em [66], foi introduzida

por Touba e McCluskey [67] e depois expandida por outros autores [68][69]. Trata-se

igualmente de uma técnica mista, na qual são embutidos, numa sequência de vectores pseudo-

aleatórios, cubos de teste determinísticos. O esquema de base da técnica proposta é ilustrado

na Figura 2-12. Tal como na tecnica de bit-flipping, não se armazenam no chip os cubos de

teste, ou vectores determinísticos. Antes, adiciona-se lógica na saída série do LFSR que gera a

sequência pseudo-aleatória que é injectada na cadeia de scan. Essa lógica adicional destina-se

a selectivamente modificar certos bit da saída série do LFSR, de tal maneira que os vectores a

injectar na cadeia de scan sejam parcialmente deterministicos, e detectem as faltas resistentes

a padrões pseudo-aleatórios. Os autores designam este processo por “correcção do bit” (ou bit

Page 57: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

33

fixing) (Figura 2-13). Esta técnica possui características similares às da técnica de bit flipping:

em articular, ambas alteram a sequência série gerada pelo LFSR. Todavia, como os autores

descrevem, os procedimentos para projectar a lógica de alteração dos bit do LFSR são

significativamente diferentes. Por um lado, relacionam os cubos de teste com a posição dos

bit, a fim de minimizar o hardware de teste. Por outro lado, conseguem que o controlo da

lógica seja mais simples do que descrito em [66], o que reduz a sobrecarga de teste associada

ao controlador de BIST. Finalmente, esta técnica permite a utilização de LFSR com um

número reduzido de registos, sendo que pode explorar-se o compromisso entre a dimensão do

LFSR e a complexidade da lógica de mascaramento, por forma a minimizar a sobrecarga de

teste, no que se refere à área de silício.

LFSR

Gerador de Seq. deFixação de Bit

Fixa-a-0

Fixa-a-1Cadeia de Scan

Figura 2-14 – Arquitectura para adoptar a técnica de Bit Fixing em cadeias de Scan

2.5. Metodologia m-BIST para Circuitos Combinatórios

No fluxo de projecto, desenvolve-se uma arquitectura-solução para realizar a

funcionalidade do sistema em desenvolvimento. Um sistema complexo, físico e lógico

(hardware/software) implementa parte da sua funcionalidade em hardware e outra parte em

software. Neste trabalho, considera-se apenas a funcionalidade implementada em hardware.

Uma única funcionalidade pode ser traduzida por muitas descrições comportamentais,

utilizando diversas linguagens de descrição de hardware (HDL, Hardware Description

Languages). As linguagens mais utilizadas, a nível RTL, são as linguagens VHDL e Verilog.

A validação do projecto é levada a cabo, neste nível de abstracção, para verificar se toda a

funcionalidade pretendida pelo cliente (e traduzida nas especificações de sistema) está

correctamente implementada. Ao mesmo tempo que se realiza a validação do projecto, deve

levar-se a efeito uma avaliação, a nível RTL, da testabilidade evidenciada pela arquitectura-

solução.

Page 58: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

34

Usualmente, definem-se métricas de alto nível, que medem até que ponto os módulos (ou

os objectos, numa técnica de modelação por objectos – OOM (Object-Oriented Modeling))

são coesos e fracamente interligados. Diz-se que um módulo (ou entidade, em linguagem

VHDL) é coeso quando a sua funcionalidade interna (o seu conjunto de métodos, em OOM))

é consistente, isto é, a maior parte dos processos funcionais a executar no módulo necessitam

de dados e controlo disponível localmente. A coesão articula-se com a fraca

interconectividade entre módulos. Do ponto de vista da testabilidade, os módulos internos de

um sistema complexo serão mais facilmente testáveis se exibirem elevada acessibilidade. Em

particular, quanto mais forte é a interligação entre módulos, mais difícil é isolá-los e testá-los.

Assim, a qualidade da arquitectura deve ser escrutinada, em simultâneo, tanto do ponto de

vista do projecto, como do ponto de vista do teste [95]. Neste trabalho, admite-se que a equipa

de projecto do sistema já fixou a arquitectura-solução, e que esta está disponível a nível RTL.

Uma vez que as ferramentas da metodologia m-BIST foram desenvolvidas para a linguagem

Verilog, de aqui em diante assume-se que a descrição RTL de partida é em linguagem

Verilog. Contudo, a metodologia é válida qualquer que seja a linguagem HDL de descrição.

O desenvolvimento de um teste funcional, que permita escrutinar toda a funcionalidade

do sistema, não é uma tarefa trivial. Se se pretender que esse teste seja também realizado

durante a vida útil do sistema, isso requer que o padrão de teste de referência (test bench)

possa ser gerado localmente, com baixo custo em termos da funcionalidade de teste residente

no sistema [22]. Conforme se mencionou, isso é feito primariamente com TPG que geram

testes pseudo-aleatórios. Assim, na metodologia m-BIST, realiza-se uma primeira

experimentação, correndo uma simulação a nível RTL, em que o sistema é actuado por um

padrão de teste pseudo-aleatório.

Como se pode avaliar em que extensão a funcionalidade é exercitada? Uma forma

consiste na utilização de métricas originalmente oriundas do domínio do software, tais como a

cobertura de ramos no grafo de fluxo de controlo (CFG, Control Flow Graph), e a cobertura

de caminhos. Outra forma consiste em assumir modelos de falta, a nível RTL, afectando as

variáveis e condições, e verificar, por simulação de faltas, a taxa de cobertura destas faltas. A

simulação de faltas permite ainda identificar quais as faltas não activadas, e localizar as linhas

de código, na descrição RTL do sistema, às quais elas estão associadas. Esta é a base da

abordagem de simulação da metodologia m-BIST. As faltas RTL difíceis de detectar pelo

padrão pseudo-aleatório estão associadas às partes da funcionalidade difíceis de activar (ou

Page 59: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

35

“iluminar”) por um teste pseudo-aleatório – pelo menos, pelo padrão específico de teste

pseudo-aleatório utilizado na simulação14. Por outras palavras, a simulação de faltas RTL

permite identificar o que se designa, nesta metodologia, por “cantos escuros” da

funcionalidade. Na Figura 2.11 representa-se esquematicamente os dois tipos de cantos

escuros prováveis de obter num sistema digital – independentes, e dependentes ou

embricados, como o caso de um conjunto de condições IF embricadas. Quanto mais restritiva

for a condição (IF de nível inferior), menos provável é que o padrão pseudo-aleatório a active.

masks

IF / IF /CASE

IF / IF /IF

IF / IF /CASE

IF / IF /IF

Independentes

Dependentes ou embricadasPartes funcionais

CANTO ESCURO

PartesFuncionais

masks

IF / IF /CASE

IF / IF /IF

IF / IF /CASE

IF / IF /IF

Independentes

Dependentes ou embricadasPartes funcionais

CANTO ESCUROCANTO ESCURO

PartesFuncionais

Figura 2.11– “Cantos escuros” da funcionalidade de um sistema integrado.

Vectores PR personalizados

Másc. 1

Bit “mascarados”

PR

PRTPG In

terf

ace

(LFSR)

mi<<n

Másc. 2 Másc. 3 Másc. 4

Vectores PR personalizados

Másc. 1

Bit “mascarados”

PR

PRTPG In

terf

ace

Inte

rfac

e

(LFSR)

mi<<n

Másc. 2 Másc. 3 Másc. 4

Figura 2.12 – Padrão de auto-teste pseudo-aleatório (PR) personalizado com máscaras.

Uma vez que sejam identificadas as partes da funcionalidade difíceis de testar, torna-se

necessário definir, a partir das entradas do sistema, as variáveis (tipicamente de controlo) que

podem forçar a “entrada” nos cantos escuros. Define-se como máscara o vector de entrada, 14 Desde que o comprimento do padrão de teste seja suficiente para a experiência ter significado estatístico, verifica-se que a abordagem de simulação permite identificar, com uma única experiência, as partes da funcionalidade que trazem maior problema, em termos de testabilidade. Além disso, a ideia é reutilizar o mesmo padrão pseudo-aleatório quando a solução de auto-teste for finalmente aplicada, a nível estrutural.

Page 60: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

36

parcialmente definido, que impõe a activação da funcionalidade de um canto escuro. È

razoável concluir que cantos escuros provenientes de partes funcionais independentes

necessitem, cada um, de uma máscara. Para cantos escuros associados a partes funcionais

dependentes ou embricadas, uma ou mais máscaras serão necessarias.

Tipicamente, é necessário forçar um número reduzido de bit, em cada vector de entrada,

ao aplicar uma máscara. De facto, se designarmos por mi o número de bit (com posições

definidas na palavra digital de entrada, de dimensão l) que necessitam ser especificados (com

valor lógico ‘0’ ou ‘1’), tem-se tipicamente que mi << l. Na metodologia m-BIST (ou de auto-

teste baseado em máscaras), define-se o padrão de teste personalizando um conjunto de

vectores pseudo-aleatórios (PR), de tal forma que os bit não forçados por uma máscara são

preenchidos pelos bit pseudo-aleatórios gerados pelo TPG interno ao sistema. Como se ilustra

na Figura 2.12, isto resulta, quando se aplicam m mascaras, num auto-teste fracamente

determinístico e com um comprimento de teste total reduzido. A aplicação da metodologia m-

BIST, para um CUT combinatório, torna necessário um circuito de Interface, por forma a

forçar os bit determinísticos à saída do TPG (LFSR). Uma possível solução é descrita adiante

na secção 2.5.3.

Uma vez que à funcionalidade, descrita a nível RTL, corresponderá uma estrutura fisica

no sistema integrado, obtida por síntese lógica e por realização do projecto físico de

implantação no silício (layout), é de esperar que a activação da funcionalidade associada aos

cantos escuros, pelas máscaras, conduza ao exercitar dessa estrutura, por forma a assegurar a

comutação frequente do nível lógico (‘0’ e ‘1’) (toggling) em cada linha da estrutura, desde

que o número de vectores durante os quais se força a activação da funcionalidade seja

elevado. Esse número deve ser tanto mais elevado quanto mais complexa for a funcionalidade

activada pela máscara. Assim, a detecção múltipla de faltas RTL deve estar correlacionada

com a detecção singular de faltas estruturais. Este é um dos princípios subjacentes da

metodologia m-BIST.

Uma vantagem adicional desta metodologia, qiuando comparada com outras metodologias

que aplicam vectores determinísticos, é que a metodologia m-BIST está orientada à

funcionalidade, enquanto que outras estão orientadas a um modelo de faltas. Com efeito,

técnicas usuais, por exemplo de bit-flipping (secção 2.4.3), usam vectores determinísticos

gerados por um ATPG que define vectores capazes de detectar faltas estruturais difíceis de

Page 61: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

37

detectar, por exemplo, faltas do tipo LSA. Contudo, na metodologia m-BIST, os vectores

parcialmente determinísticos (as máscaras) forçam a activação de partes da funcionalidade

difíceis de activar (os cantos escuros), independentemente da estrutura que realiza a

funcionalidade. Desse modo, se se pretender detectar defeitos físicos em tecnologias

semicondutoras emergentes, para os quais nem sempre se conhece, a priori, o seu modelo de

faltas, a metodologia m-BIST é especialmente promissora, pois não está polarizada para a

detecção de um tipo específico de faltas, numa estrutura específica.

A geração de máscaras não é um processo trivial, especialmente no caso de sistemas

sequenciais complexos. Assim, desenvolveu-se posteriormente uma segunda abordagem à

metodologia m-BIST – a abordagem probabilística. O conceito básico é a análise

automática do grafo descritivo do sistema, por forma a estimar as probabilidades de controlar

e de observar cada bit de cada variável ou condição na descrição RTL, e a geração

automática, por atravessamento do grafo, das máscaras. Assim, nesta secção descreve-se

primeiro a abordagem de simulação, e depois a abordagem probabilística.

2.5.1. Abordagem de Simulação. Ferramenta VeriDOS

Nesta sub-secção apresenta-se o conjunto de modelos de faltas adoptados, no nível RTL,

úteis para a geração de vectores de teste que assegurem uma elevada cobertura de defeitos.

2.5.1.1. Subconjunto Verilog

Como anteriormente referido, a linguagem de descrição de hardware (HDL) utilizada para

descrever os circuitos no nível RTL foi a linguagem Verilog. Na Tabela 2-1 apresenta-se o

subconjunto de palavras reservadas Verilog para a simulação de faltas no nível RTL.

Tabela 2-1 – Palavras reservadas da linguagem Verilog suportadas

always x initial x rtranif0 and x inout x rtranif1

assign x input x scalered x begin x integer x small buf join specify

bufif0 large specparam bufif1 macromodule strong0 case x medium strong1

Page 62: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

38

casez module x supply0 casex x nand x supply1 cmos negedge x table

deassign nmos task default x nor x time

defparam x not x tran disable notif0 tranif0 edge notif1 tranif1 else x or x tri x end x output x tri0 x

endcase x parameter x tri1 x endfuntion x pmos triand endmodule x posedge x trior

endprimitive primitive trireg endspecify pull0 vectored endtable pull1 wait endtask pulldown wand event pullup weak0

for x reg x weak1 force rcmos while

forever real wire x fork realtime wor

function x release xnor x highz0 repeat xor x highz1 rnmos

if x rpmos ifnone rtran

2.5.1.2. Modelo de Faltas em RTL

O objectivo de um teste de produção é a detecção de defeitos físicos que discrimine os

componentes bons dos defeituosos. Como se referiu, a fim de reduzir o nível do defeito, DL,

na produção, torna-se necessário avaliar, no ambiente de projecto, a cobertura de defeitos

(DC) ou de faltas realistas, e não apenas a cobertura de faltas do tipo linha fixa-a (LSA).

Neste trabalho, visa-se preparar o teste a nível RTL, de forma a poder reutilizá-lo no teste de

produção e no teste durante a vida útil do sistema.

Os modelos de faltas no nível RTL procuram utilizar a informação do nível RTL para

maximizar a cobertura de faltas realistas. Segue-se uma discussão sobre cada um dos modelos

disponíveis, pormenorizado diferenças e justificando a selecção através da relevância para o

fim pretendido – a detecção de faltas realistas.

Page 63: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

39

Os modelos de faltas foram originalmente propostos e avaliados [31] na sua capacidade

de serem usados para a geração de padrões de teste capazes de detectar faltas realistas,

especialmente as de difícil detecção.

Os modelos de faltas, a nível RTL, que a ferramenta VeriDOS permite injectar estão

alistados na Tabela 2-2 ([31], pág. 77).

Tabela 2-2 - Modelos de faltas a nível RTL disponíveis na ferramenta VeriDOS [31]

Modelo de Faltas RTL LSA

AritméticosFaltas em Operadores RelacionaisAnulação de Código

IF/ELSE CASE FOR

Descrevem-se em seguida os tipos de faltas RTL passíveis de serem injectadas ([31], pág.

83) e ([31], pág. 146).

2.5.1.3. Faltas do Tipo Linha Fixa-A (LSA)

A utilização do modelo de faltas do tipo linha fixa-a (LSA) no nível RTL é uma herança

natural vinda do nível lógico. Este modelo permite forçar a ‘1’ ou a ‘0’ os bits individuais de

cada variável, composta ou não por conjunto de bits, nomeadamente os registos e os inteiros,

e corresponde a faltas na saída da variável em questão.

A utilização de inteiros deve de ser evitada no nível RTL pois a síntese com a ferramenta

de síntese Design Vision da Synopsys [94] atribui a um sinal deste tipo uma variável composta

de 32 bits, pelo que é preferível alterar o tipo da variável sempre para registo. Variáveis dão

origem a tantas faltas RTL quanto o dobro do número de bits que as integram.

O modelo de faltas tipo LSA, a nível RTL, é aplicável a um universo menor que o do nível

lógico. Com efeito, as variáveis explícitas a nível RTL estão presentes, após a síntese lógica,

no nível estrutural. Contudo, a síntese lógica adiciona novas variáveis lógicas que também

podem estar sujeitas a faltas do tipo LSA. Assim, a lista de faltas do tipo LSA, a nível RTL, é

sempre menor (e um sub-conjunto) da lista de faltas do tipo LSA a nível estrutural. Quando

há injecção de faltas do tipo LSA em elementos no nível RTL, considera-se que uma falta

Page 64: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

40

LSA numa saída significa forçar globalmente um valor num nó, registo, ou bit, ou seja, na

própria variável como acontece no nível lógico. Uma falta do tipo LSA numa entrada

implica, no nível lógico, que só à referida entrada desse elemento será aplicada a

correspondente falta. Esse raciocínio extrapolado para o nível RTL, implica uma falta do tipo

LSA numa entrada e só se aplica à linha de entrada correspondente – entendendo aqui

“entrada” em sentido mais lato, como referência a uma variável.

No nível RTL os operadores (variáveis) podem combinar-se em expressões complexas,

sem que o resultado de cada operação fique guardado numa variável ou sinal controlável. A

injecção da falta LSA num bit da primeira ocorrência de um registo não deveria alterar o valor

das futuras ocorrências, na mesma expressão. A injecção deste tipo de faltas não pode ser

efectuada directamente pois altera o valor do registo globalmente – alterando por conseguinte

em todas as ocorrências do registo na expressão – correspondendo a uma falta do tipo LSA

numa saída. Devido a esta dificuldade de injecção, a ferramenta VeriDOS não possibilita a

inclusão automática deste tipo particular de faltas LSA na lista de faltas RTL.

2.5.1.4. Faltas em Operadores

2.5.1.4.1. Operadores Aritméticos

A ferramenta VeriDOS, na sua versão presente, possibilita a injecção de faltas do tipo

LSA em cada um bit dos operandos e, no caso de expressões aritméticas e mediante algumas

alterações, nos resultados parciais da expressão de dados. Desta forma não se compromete a

independência tecnológica e tira-se partido da informação estrutural explícita na expressão.

Este procedimento de injecção de faltas nos operadores não se encontra automatizado.

O modelo de faltas adoptado para operadores aritméticos e relacionais surge da

necessidade de aumentar a correlação entre a detecção múltipla de faltas no nível RTL e a

detecção singular de faltas realistas neste tipo de operadores. Enquanto que as operações

lógicas são realizadas frequentemente recorrendo a uma porta lógica por bit, as operações

aritméticas e as comparações são sintetizadas num conjunto significativo de portas lógicas.

Considerar apenas faltas do tipo LSA nos bits dos operandos e no resultado das operações [+,

-, >, <, >= e =<] é insuficiente para assegurar uma elevada cobertura de defeitos físicos.

Page 65: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

41

Enquanto que a cobertura de faltas LSA atinge 100%, a cobertura de faltas realistas no

circuito que implementa a operação sobe de forma mais lenta como demonstrado em ([31],

pág. 83). O modelo de faltas adoptado, apesar de não depender da estrutura lógica, leva em

consideração as variáveis implícitas no operador e permite averiguar da sua funcionalidade

com as diferentes combinações de dados.

O modelo de faltas a nível RTL, para Operadores Aritméticos somadores (+) e

subtractores (–), utilizado no trabalho desta Tese é uma extensão do modelo anteriormente

proposto em [31]. A ideia original consiste em adicional, para cada variável Sinal (resultado

da operação) uma nova variável, Sinal_C, representando a variável de transporte (carry e

borrow), implícita na operação. Assim, passa a incluir-se, na lista de faltas, as faltas que

podem ocorrer em sinais de carry e borrow nas estruturas aritméticas. correspondentes a

faltas LSA1 e LSA0 em cada bit da variável de transporte (carry e borrow) (N-1 bits em

operadores de dimensão N, [31]). No caso de se tratar de uma operação com inteiros assume-

se que estes têm 32 bits.

Relativamente ao modelo de faltas anteriormente assumido, as diferenças são as que se

indicam a seguir. Em primeiro lugar, em [31] o modelo foi desenvolvido e utilizado apenas

com um contador de 32 bit. Com contadores de maior dimensão, torna-se necessário, para

reduzir o comprimento do teste, de efectuar uma operação frequente, já mesmo nas técnicas

ad-hoc de Dft (Design for Testability): o fraccionamento em diversos contadores de menor

dimensão [1].

Em segundo lugar, foi necessário aprimorar o modelo em si. A injecção das faltas deste

modelo implica a expansão da operação aritmética em ciclos FOR. O modelo de faltas para o

operador somador anteriormente proposto (ver Tabela 2-3) descreve a forma como a nova

variável (Sinal_C) é definida. Esta variável está associada ao sinal de transporte (carry) que

segue a estrutura do ripple carry num ciclo FOR. Por simplicidade, designa-se Sinal_C como

vector de carry15.

Tabela 2-3 – Código do ciclo FOR – método proposto em [31] para operador somador.

reg [n:0] Sinal_C; output Sinal_C;

15 No caso do operador subtracção, define-se no modelo uma variável Sinal_C, associada ao sinal de Borrow.

Page 66: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

42

Sinal_C[0] = 1; for (j=1; j<n+1; j=j+1) Sinal_C[j] = Sinal[j-1] & Sinal_C[j-1]; Sinal <= Sinal - 1;

O modelo descrito na Tabela 2-3 permite injectar faltas RTL na saída do operador (Sinal)

e na variável implícita (Sinal_C), o que aumenta a representatividade do universo de faltas

RTL, relativamente a faltas estruturais. Todavia, fazia-se depender Sinal_C de Sinal, mas não

se fazia depender Sinal de Sinal_C. Esta opção tem reflexos nos valores de acessibilidade

calculados pelo VeriDOS. No caso geral, em que não só os contadores presentes na descrição

RTL podem ser de dimensão elevada, como também o resultado da operação (e da variável

implícita de carry ou de borrow) pode não ser directamente observável (isto é, não ser uma

PO). Assim, o modelo de faltas para o operador somador (+) é o indicado na Tabela 2-4.

Neste modelo, Sinal já depende de Sinal_C.

Tabela 2-4 – Código do ciclo FOR – Modelo proposto para o operador somador.

reg [n:0] Sinal_C //Sinal <= Sinal - (Teste ? n'h010101: 1); //Sinal <= Sinal + 1; Sinal_C[0] = 1; for (j=1; j<n-1; j=j+1) begin if ( (j mod 8)==0 ) Sinal_C[j] = Teste OR (Sinal[j-1] & Sinal_C[j-1]); else Sinal_C[j] = Sinal[j-1] AND Sinal_C[j-1]; end Sinal <= Sinal XOR Sinal_C;

Analogamente, pode utilizar-se o mesmo raciocínio para o caso do operador subtractor (-)

e para o cálculo da variável associada ao borrow. A tabela de verdade de um semi-subtractor

(Half Subtractor) está na Tabela 2-5. A implementação do cálculo do diffi e do bori é a

representada pela lógica da Figura 2-15. Analiticamente as funções dos sinais são diffi (ai,bi) =

ai ⊕ bi e bori (ai,bi) = ~ai ● bi.

Tabela 2-5 – Tabela da verdade de um semi-subtractor (half-subtractor)

ai bi diffi bori+1

0 0 0 0 0 1 1 1 1 0 1 0

Page 67: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

43

1 1 0 0

ab

diff

bor

i

ii

i

Figura 2-15 – Implementação de diffi e de bori

A diferença para a estrutura de um somador (half-adder) é o cálculo do borrow passar a

incluir o uso de uma porta inversora para o seu cálculo. A diferença no código do ciclo FOR

para um cálculo correcto do sinal do borrow (Sinal_C) encontra-se assinalada na Tabela 2-6

Tabela 2-6 – Código do ciclo FOR – Modelo proposto para o operador subtractor.

reg [n:0] Sinal_C //Sinal <= Sinal - (Teste ? n'h010101: 1); //Sinal <= Sinal - 1; Sinal_C[0] = 1; for (j=1; j<n-1; j=j+1) begin if ( (j mod 8)==0 ) Sinal_C[j] = Teste OR (~Sinal[j-1] & Sinal_C[j-1]); else Sinal_C[j] = ~Sinal[j-1] AND Sinal_C[j-1]; end Sinal <= Sinal XOR Sinal_C;

O modelo de faltas a nível RTL, para Operadores Aritméticos entre operandos de N bits,

origina a inclusão na lista de faltas de 2(N-1) faltas: N-1 faltas correspondentes à presença

incorrecta de transporte (PIT), e N-1 faltas correspondentes à ausência devida de transporte

(ADT). No bit menos significativo não são consideradas estas faltas por este não existir

implicitamente [31].

2.5.1.4.2. Operadores Relacionais

O modelo de faltas a nível RTL, para Operadores Relacionais entre operandos de N bits,

origina a inclusão na lista de faltas de N faltas da classe DEB (Decisão Errada no Bit) [31].

Page 68: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

44

2.5.1.4.3. Operador Condicional

A linguagem Verilog inclui um operador condicional que permite seleccionar um de dois

valores possíveis, dependendo do valor de uma variável do tipo binário. O modelo de faltas

adoptado para este operador corresponde a forçar a variável de selecção a assumir cada um

dos valores lógicos possíveis. A variável de selecção deve ser utilizada unicamente no

operador condicional em causa, a fim de assegurar que a perturbação introduzida pela falta

não seja múltipla.

2.5.1.5. Faltas do tipo Anulação do Código (Null Statement)

As faltas do tipo Anulação do Código, incluídas na ferramenta VeriDOS, inibem a

execução de uma instrução da descrição do sistema no nível RTL. O modelo de faltas para as

alternativas CASE e para as condições IF (simples, sem ELSE [a variável de controlo começa

por “_ _ _”]) inclui a inibição de execução do código nelas contido. A detecção de faltas

associadas às condições IF/ELSE assegura igualmente a activação do código associado.

Assim, a aplicação deste modelo de faltas correspondente à anulação do código é

aconselhada exclusivamente onde a activação e a observabilidade de processamento associado

ao código respectivo no estão já assegurados por outro modelo.

2.5.1.6. Faltas em Condições IF/ELSE

Este modelo de faltas consiste em forçar a condição a assumir ambas as possibilidades

(stuck-at true, stuck-at false), originando duas faltas por cada condição IF/ELSE. Para a

injecção da falta, em cada condição, será criada uma nova variável. O valor a atribuir a esta

nova variável deve ser uma cópia exacta da expressão na condição original. A nova variável é

utilizada como variável de selecção na condição. No caso da condição ser simples (ou seja, no

valor de bit e uma variável), testa-se se o valor dessa variável se encontra sempre a ‘0’ ou

sempre a ‘1’. No caso de uma condição mais complexa, tal como valor de um conjunto de

registos, testa-se se o resultado desse os registos passam por esse valor, o que consiste em

entender esta falta não como uma falta tipo LSA em todos os registos, mas antes como uma

falta LSA na saída da última porta lógica que permite implementar a verificação da condição.

A fim de tornar mais útil a simulação de faltas, por permitir maior precisão na identificação de

possíveis problemas de testabilidade, é aconselhável que a injecção da falta, em cada

condição, seja realizada à custa da definição de uma nova variável. O valor a atribuir a esta

Page 69: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

45

nova variável deve ser feito imediatamente antes da condição IF/ELSE. A nova variável é

utilizada como variável de selecção na condição. Uma vez que esta nova variável não é

utilizada em nenhuma outra parte do código, isso garante que percorrer os caminhos do grafo

associado ao IF/ELSE é condição suficiente para a activação das faltas nesta condição,

procedendo à activação do respectivo grafo.

2.5.1.7. Faltas em Alternativas CASE

Para garantir a selecção de todos os valores possíveis para a variável de selecção, além de

serem consideradas as faltas correspondentes a forçar alternativas, também se consideram as

faltas correspondentes a inibir alternativas. Tal como nas condições IF/ELSE, e pelos mesmos

motivos – maior precisão na identificação de possíveis problemas de testabilidade – propõe-

se, para cada alternativa CASE, a criação de uma nova variável. Alternativas CASE originam

a inclusão, na lista de faltas, das faltas que forçam na variável de selecção cada um dos

valores enumerados no CASE, de um valor diferente de todos os enumerados, e ainda das

faltas que correspondem à inibição de cada um dos valores enumerados.

2.5.1.8. Faltas em Ciclos FOR

O modelo de faltas em ciclos FOR consiste na alteração da descrição RTL, por forma a

permitir a perturbação da execução do ciclo pela utilização dos restantes modelos de faltas de

forma individual em cada iteração do ciclo. A alteração da descrição RTL é necessária no

caso de existirem, dentro do ciclo, variáveis não indexadas cujo valor seja atribuído em cada

iteração deste. Neste caso, as variáveis em causa devem de ser expandidas, por exemplo

formando um array, para permitir a injecção de faltas individualmente em cada iteração do

ciclo.

Quando se realiza a síntese lógica, os ciclos FOR são sintetizados normalmente através da

sua expansão, concretizando os valores possíveis da variável de iteração e utilizando

paralelismo no hardware, de forma a efectuar a funcionalidade do ciclo completo. Este tipo

de procedimento pode ser antecipado, a fim de permitir injectar faltas nas variáveis que serão

implementadas durante a síntese.

A injecção de faltas no código interior de um ciclo for, em variáveis não indexadas pela

variável de iteração, equivale à injecção simultânea de um conjunto de faltas no circuito

Page 70: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

46

expandido pela síntese. Esta injecção múltipla afasta-se da realidade topológica dos níveis

inferiores. O modelo de faltas para os ciclos for consiste na alteração da descrição RTL de

forma a permitir a perturbação da execução do ciclo pela utilização dos restantes modelos de

faltas de forma individual em cada integração do ciclo.

2.5.1.9. Modelos de Faltas e Classes de Faltas Injectadas

Após se referirem os modelos de faltas para o nível RTL que o VeriDOS suporta, e quais

os tipos de faltas que cada modelo permite injectar, descreve-se na Tabela 2-7 a

correspondência entre estes modelos e as classes de faltas (descritas na ferramenta VeriDOS

através de um código numérico) que passam a existir, durante a simulação. A descrição das

classes encontra-se na Tabela 2-8.

Tabela 2-7 – Correspondência, na ferramenta

VeriDOS, entre Modelos e e Classes de faltas

existentes.

Modelos de Faltas Classes de FaltasLSA 0/1, 40/41 e 50/51

Arit. 60/61 Operadores Relac. 70 Anulação Código 22 e 32

IF/ELSE 20/21 CASE 30/31 FOR 40/41

Tabela 2-8 – Descrição das Classes de Faltas.

Classe Descrição 0 Wire ou bit de registo LSA0 1 Wire ou bit de registo LSA1 20 “IF” ou “?” stuck-at false 21 “IF” ou “?” stuck-at true 22 Atribuição inibida 30 Alternativa “CASE”

desactivada 31 Alternativa “CASE” forçada 32 “CASE” inibido 40 Bit de inteiro LSA0 41 Bit de inteiro LSA1 50 Bit de registo não expandido

LSA0 51 Bit de registo não expandido

LSA1 60 ADT, bit de registo de

transporte LSA0 61 PIT, bit de registo de transporte

LSA1 70 DEB, decisão errada nos bits

2.5.2. Abordagem Probabilística. Ferramenta ASCOPA

2.5.2.1. Abordagem Probabilística da Acessibilidade

Page 71: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

47

A abordagem por simulação da metodologia m-BIST mostra-se muito vantajosa, mas tem

as suas limitações. Com efeito, não permite automatizar a geração de máscaras, o que é uma

limitação séria à sua introdução no fluxo de projecto de novos produtos. Adicionalmente,

abordagens baseadas em simulação requerem a definição de padrões de teste adequados.

De facto, o colocar a descoberto dos cantos escuros da funcionalidade requer que o padrão

de teste utilizado assim o realize. Na abordagem que se segue, como se tem em mente uma

solução de auto-teste integrado, recorre-se a padrões de teste pseudo-aleatório, já que

finalmente a base do TPG a inserir no sistema integrado será um gerador pseudo-aleatório.

Contudo, os custos de simulação de faltas (em especial, para circuitos sequenciais) são muito

elevados16. Assim, pode acontecer que um padrão de teste com N vectores (N<<2n-1), relativo

a um polinómio primitivo e a uma semente, sejam insuficientes para identificar todos os

verdadeiros cantos escuros. Pode classificar-se como cantos escuros partes da funcionalidade

que seria exercitada, sem grande dificuldade, por outro padrão pseudo-aleatório. O processo

de ATPG (geração automática de padrões de teste determinísticos), a níveis de abstracção

elevados e, em particular, para circuitos sequenciais, é muito complexo e dispendioso, do

ponto de vista computacional [43]. Assim, seria desejável dispor de uma abordagem diversa

que (1) permitisse a geração automática de máscaras e que (2) dispensasse a existência de

padrões de teste para exercitar a descrição do sistema a nível RTL.

Este é o racional por detrás da abordagem probabilística. Desenvolve-se presentemente

uma nova abordagem num trabalho de Doutoramento [25][27][28], baseado numa técnica de

modelação estatística originalmente proposta por Fallah et al. [45][46]. Contudo, o cálculo

probabilístico da controlabilidade e da observabilidade de cada bit de cada variável ou

condição, é feito directamente sobre a descrição do sistema a nível RTL e não utilizando

também a descrição a nível lógico do sistema, após a síntese lógica como é considerado por

Fallah et al.. Com esta abordagem, pretende-se estimar, com base num grafo que descreva o

comportamento do sistema, a nível RTL, qual é a probabilidade de controlar e de observar

cada bit de cada variável ou condição ao valor lógico ‘0’ ou ‘1’ (probabilidades

complementares), supondo que se conhecem as probabilidades de cada bit da palavra digital

de entrada assumirem o valor lógico ‘0’ ou ‘1’. Para um teste pseudo-aleatório, estas são de

16 Recorde-se que se pretende uma solução de auto-teste integrado pouco intrusiva, na qual se preserve, tanto quanto possível, os laços de realimentação que caracterizam o circuito sequencial no seu modo normal de funcionamento.

Page 72: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

48

50% (excepto para sinais especiais, como sinais de Set/Reset). Em termos de testabilidade,

quando a probabilidade de controlar e de observar cada bit de cada variável ou condição ao

valor lógico ‘0’ ou ‘1’ é de cerca de 50%, o CUT é facilmente testável. Probabilidades muito

desequilibradas, face a 50%, indicam problemas de controlabilidade e/ou de observabilidade,

que necessitam ser ultrapassados através de vectores determinísticos – as máscaras, na

abordagem m-BIST.

2.5.2.2. Ferramenta ASCOPA

A ferramenta ASCOPA (Automatic Static Controllability Observability Probabilistic

Analysis Tool) tem estado a ser desenvolvida para implementar a abordagem probabilística

acima descrita. A ferramenta aceita como entrada um sub-conjunto da linguagem Verilog de

descrição de Hardware, baseado nas normas IEEE 1364 1995 and IEEE 1364.1 1999

[40][41]. Depois da análise (parsing) da descrição Verilog, constrói um Grafo de Fluxo de

Controlo (CFG, Control Flow Graph) do sistema em projecto [52]. Cada nó do CFG é

associado com o correspondente Grafo de Fluxo de Dados (DFG, Data Flow Graph). Cada

nó do CFG é associado com uma declaração (statement) Verilog. Consideram dois tipos de

nós do CFG: nós de expressões aritméticas, e nós de expressões Booleanas. Cada nó é

associado com uma construção (construct) Verilog no código, tal como IF, CASE ou

CASETAG. Cria-se, de forma concorrente, um grafo de dependências das variáveis (a nível

de bit), enquanto se atravessa a descrição Verilog. À medida que este grafo é construído,

identificam-se os caminhos de condições através dos quais se realiza a atribuição de cada bit

das variáveis, sem se perder a informação hierárquica, mantendo-se assim uma ligação directa

com as linhas de código da descrição a nível RTL. A fim de reduzir os custos computacionais

e poder lidar com sistemas complexos, usam-se métodos de representação simbólica da

funcionalidade do circuito que recorrem a diagramas de decisão binária (BDD, Binary

Decision Diagrams).

Após criar o grafo de dependências das variáveis, a ferramenta ASCOPA resolve as

equações de Chapman-Kolmogorov [44] que descrevem o regime forçado do circuito, e

calcula a probabilidade, Pi, de atribuição do valor lógico ‘1’ associada a cada estado da cadeia

de Markov, isto para cada bit (i) da descrição RTL. Numa primeira abordagem, para o cálculo

destas probabilidades, a ferramenta ASCOPA assume que as probabilidades Pi são

independentes, e calcula a probabilidade de cada estado como o produto das probabilidades

Page 73: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

49

dos bits do registo de estado (state register). Esta hipótese pode ser a fonte de erros no cálculo

dos valores das probabilidades. De facto, tais erros dependem da codificação dos estados.

Com o objectivo de reduzir tais erros, podem calcular-se as probabilidades utilizando pares de

bits [42]. Após a convergência, o valor obtido para Pi constitui uma medida da

controlabilidade de cada nó ao valor lógico ‘1’. O valor (1 – Pi) constitui uma medida da

controlabilidade de cada nó ao valor lógico ‘0’.

Tendo obtido uma medida probabilística da controlabilidade de cada bit a ‘1’ ou a ‘0’ (Pi,

(1 – Pi)), a ferramenta ASCOPA avalia uma medida de observabilidade de cada bit, utilizando

o princípio apresentado em [1]. O cálculo da métrica de observabilidade é realizado por

ordem topológica inversa, relativamente ao cálculo da métrica de controlabilidade. De facto, a

ferramenta ASCOPA utiliza um processo de propagação inversa (backward) através do grafo

de dependências das variáveis, partindo de cada bit de saída. Diz-se que um bit de variável ix

é observável se, ao atribuir um valor lógico q a ix em vez de atribuir um valor p , isso causar

uma modificação num bit de variável observável jy do valor k para o valor l . Designa-se a

probabilidade de realizar esta observação por ),:(,: qpxO ilky j . Esta probabilidade é calculada

de modo diferente, caso o bit de variável ix seja uma entrada primária (PI) ou um bit de uma

variável interna.

Caso 1: O bit de variável observável, ix , é uma PI

Neste caso, o valor da observabilidade é calculado a partir de:

∑≠

== =∧==lk

ilyikyilky qxfpxfPqpxOjjj

))()((),:(,: (1)

com [ ]1,0,,, ∈qplk e qp ≠ . Cada transição do bit ix pode, potencialmente, ser observada

por cada bit de cada variável de saída. Portanto, ),:(,: qpxO ilky j tem de ser calculado para cada

PO. Os valores da observabilidade podem ser estimados, de forma conservadora, através de

{ }),:(max),:(

,...,1qpxOqpxO

jymj∈= . Por simetria, obtem-se ),:(),:( pqxOqpxO = .

Caso 2: O bit de variável observável, ix , é um bit de uma variável interna

Page 74: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

50

Seja x o bit do nó interno, e xh uma função que representa a dependência de x com as PI e

os registos. Considerando uma saída jy dependendo de x (ou: podendo observá-lo), através

da funçaõ jyf , seja x

y jf a função no nó jy em função das PI’s, dos registos e do nó interno x ,

conforme representado na Figura 2-16:

),...,,,,( 111 niiyxy xxxxxff

jj +−=

Neste caso, o valor da observabilidade é calculado através de:

∑≠ =

=== ∧=∧==

lk px

pxx

lyx

kylky hP

hqxfpxfPqpxO jj

j )(

))()((),:(,: com [ ]1,0,,, ∈qplk e qp ≠ .

xjyf

xh

jy

1x

2x2x3x

4x5x

2−nx1−nx

nx

...

Figura 2-16 – Esquema referente a um bit de uma saída observável jy.

O termo pxh = é incluído com o objectivo de calcular a probabilidade condicionada ao facto do

nó x ter o valor lógico p (formula de Bayes). Neste caso não existe simetria e a relação

),:(),:( pqxOqpxO = pode já não ser verdadeira.

Além de calcular as métricas probabilísticas de controlabilidade e de observabilidade, a

ferramenta ASCOPA também pode gerar automaticamente máscaras para a activação de cada

condição [27]. O processo de geração de máscaras é realizado durante a construção do grafo

de dependência das variáveis. Embora se possa gerar máscaras para todas as condições

explícitas na descrição Verilog do sistema, a nível RTL, a geração de máscaras, pelo

ASCOPA, é realizada a pedido do utilizador. Como se referiu, após a identificação dos cantos

escuros da funcionalidade, importa gerar um sub-conjunto específicos de máscaras. Cada uma

dessas máscaras deve ser inserida no padrão de teste pseudo-aleatório e experimentada,

através de simulação de faltas, com o VeriDOS, para avaliar da sua utilidade para obter FC(n)

próximo de 100%. Deste modo, na metodologia m-BIST (tanto na sua vesão anterior, como

Page 75: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

51

na versão proposta nesta Tese para circuitos sequenciais), a geração de máscaras é automática.

Contudo, a selecção final das máscaras, sua sequência, sua instanciação e o número de ciclos

de relógio em que são activadas, em cada instância, é realizada manualmente pelo projectista.

2.5.3. Injecção de Máscaras em CUT Combinatórios

No caso de um CUT combinatório, a solução mais adequada é uma técnica de test-per-

clock, que permite um auto-teste à velocidade normal de funcionamento (at-speed testing).

Como se mostrou na Figura …, a injecção de mascaras é realizada, após uma sequência de N0

vectores pseudo-aleatórios (PR), forçando durante Ni ciclos de relógio, um conjunto restrito

de mi bit da palavra digital de entrada (PI) e preenchendo os restantes (1- mi) bit com os

valores lógicos gerados pelo LFSR. Torna-se assim adicionar alguma lógica de

mascaramento, entre a saída do LFSR e a entrada do CUT, para personalizar deste modo o

teste PR. Essa lógica pode ser reunida ao multiplexador (MUX) que selecciona como entradas

do CUT, ou as entradas primárias (PI), ou os valores gerados localmente pelo TPG (LFSR).

Juntar a funcionalidade do MUX e da lógica de mascaramento tem a vantagem de, ao se

proceder à síntese lógica, se obter uma solução de bIST com uma sobrecarga de teste mais

reduzida. Designa-se por MMIC (Masked-based Multiplexer Interface Circuit) a

funcionalidade de interface (Figura 2-17).

MMIC - Masked-based Multiplexer Interface Circuit

Figura 2-17 – Arquitectura de aplicação da metodologia m-BIST a CUT combinatórios [26].

Em [26] propuseram-se duas arquitecturas para implementação do MMIC, uma das quais

introduz uma sobrecarga de teste apreciável, e termos de área de silício (embora com reduzida

degradação do desempenho). Por tal motivo, nesta secção revê-se brevemente apenas a

solução arquitectural mais interessante.

TPGCUT SA

PI0

PIn

PO0

POm

MMIC ... ...

PI

n

n

BIST Controller

TPGCUT SA

PI0

PIn

PO0

POm

MMIC ... ...

PI

n

n

BIST Controller

LFSRLFSR MISRMISR

Page 76: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

52

O diagrama de blocos proposto está ilustrado na Figura 2-18. Nesta figura, k representa o

número de mascaras e s o número de bit de selecção – )2(log 2 += ks . A geração de sinais de

selecção, SEL signals, que seleccionam qual vector deve ser aplicado nas entradas do MUT

(Module Under Test) (PI, LFSR (sem máscara) ou Mi, forçando a máscara i) é implementada

como uma máquina de estados (FSM) simples, utilizando um contador. A fim de manter

estáveis, durante o ciclo de relógio, as saídas do módulo MMIC, inserem-se registos de saída.

A sobrecarga de teste, em termos da degradação de desempenho dependerá, para cada

tecnologia e biblioteca de células, da ferramenta de síntese (e das opções de síntese utilizadas

nesse processo). O habitual compromisso entre minimização de área ou maximização da

rapidez de resposta ditará como se reparte a sobrecarga de teste nestes dois factores

conflituantes.

MUX

PIi

LFSRi

M0B 0

MkBn

SEL0 SELs

MUT i

C ontroller

{SEL = 0} => {MUT} = {PI} {SEL = 1} => {MUT} = {LFSR} {SEL = 2} => {MUT} = {M1}

··· {SEL = k+2} => {MUT} = {Mk}

Figura 2-18 – Diagrama de blocos da funcionalidade MMIC [26].

A fim de ilustrar as potencialidades da metodologia m-BIST, recordam-se resultados

obtidos com alguns circuitos de referência da colecção ITC’99 [37], em particular módulos de

processadores CMUDSP [97] e Torch [98], Figura 2-19.

Page 77: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

53

RTL Logic

# lines (LOC)

# RTL faults

# logic gates

# real. faults

AGU_ control 4 000 698 466 2853

PCU_control 714 972 640 3489

Cp0_control 503 110 100 474

Orig. 96 MOA_PPsum

Exp.317 9912 13200 39682

Módulo #

máscaras

# PI

# Total de bit

definidos AGU_control 14 35 217

PCU_control 6 347 241 Cp0_control 3 28 16

MOA_Ppsum 3 272 270

Figura 2-19 - Características dos MUT e das máscaras utilizadas [26].

Para um dos exemplos, o circuito AGU_Ctr, obtém-se a mesma cobertura de defeitos

(DC=97%) com 5000 vectores (e máscaras) e com 2.500.000 vectores pseudo-aleatórios.

2.6. Conclusões

Neste capítulo enquadra-se o trabalho a desenvolver na Tese, no que diz respeito às

principais metodologias e arquitecturas-base para implementar um auto-teste integrado

(BIST) num sistema digital realizado de forma monolítica.

Assim, recordou-se a arquitectura-base de BIST, com controlador de BIST, TPG e

analisador de assinatura, e as duas técnicas base de realização ao auto-teste – o teste ao ritmo

do ciclo de relógio (normalmente mais utilizado em teste de CUT combinatórios) (test-per-

clock), e o teste por varrimento (usualmente utilizado no auto-teste de sistemas sequenciais,

como é o objectivo do presente trabalho) (test-per-scan). Salientou-se a vantagem de poder

realizar o teste ao ritmo do ciclo de relógio no que se refere (1) a poder realizar um BIST à

frequência nominal de operação (at-speed test) e (2) a poder detectar faltas dinâmicas,

utilizando-se uma topologia de CUT basicamente não reconfigurado, isto é, mantendo a

topologia que tem no seu modo normal de operação.

Trouxe-se à atenção as técnicas que envolvem o BIST de alta qualidade – o que assegura

uma eficácia de teste muito elevada – que necessitam de garantir a detecção de faltas

resistentes a padrões pseudo-aleatórios (PR). Apresentou-se, pois, uma breve panorâmica de

BIST determinístico, nas suas soluções conceptuais – WPR, reseeding, bit-flipping, bit-fixing

– e numa solução comercial vocacionada para o BIST de SoC complexos – o teste

Page 78: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

54

determinístico embutido (EDT). Tais técnicas, para sistemas sequenciais, essencialmente

assentam em soluções de teste por varrimento.

Finalmente, apresentou-se uma revisão da metodologia m-BIST, visto que serve de base a

todo o trabalho desta Tese. Forneceu-se o detalhe necessário para a extensão da metodologia

m-BIST a sistemas sequenciais (que se apresenta no capítulo 3). Descreveram-se as duas

abordagens complementares – de simulação, e probabilística e as duas ferramentas de suporte

– o simulador multi-nível, VeriDOS, e o estimador probabilístico ASCOPA. Apresentaram-se

os modelos de faltas, a nível RTL, e como podem ser considerados pelo simulador VeriDOS.

Salientou.se a necessidade de alteração do código RTL inicial, a fim de permitir a injecção de

faltas. Finalmente, abordou-se o problema da injecção de máscaras em hardware nos CUT

combinatórios, visto que este é um problema importante a ser resolvido na extensão da

metodologia m-BIST para CUT sequenciais.

3. Metodologia m-BIST para Circuitos Sequenciais 3.1. Princípios Subjacentes da Metodologia

Pretende-se neste trabalho desenvolver uma nova metodologia de auto-teste integrado

(BIST) dinâmico de reduzido consumo de energia caracterizada por:

Estender a metodologia m-BIST a sistemas digitais sequenciais

Poder ser aplicada na realização do auto-teste à frequência normal de operação do

CUT (at-speed testing)

Poder estender-se de faltas estáticas para faltas dinâmicas, sendo assim

caracterizada por uma solução BIST pouco intrusiva, sem desfazer os laços de

realimentação que estão associados ao carácter sequencial do CUT

Permitir definir sessões de BIST com valores reduzidos do Nível de Defeito (isto

é, com valores elevados de Cobertura de Faltas (FC) estruturais), com

comprimentos de teste (TL) reduzidos (reduzido consumo de energia), com uma

dissipação de potência comparável à de um teste pseudo-aleatório e com uma

sobrecarga de teste comparável à de outras metodologias BIST

Page 79: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

55

Permitir introduzir a functionalidade de BIST a nível RTL, conduzindo assim a

uma síntese lógica que reduza a sobrecarga de teste, em comparação com a

sobrecarga que resulta da introdução de BIST a nível estrutural

Poder ser automatizada, de forma a que a sua aplicação (com recurso, no presente,

às ferramentas VeriDOS e ASCOPA) no fluxo de projecto de um sistema digital

integrado seja fácil.

Com estes objectivos em mente, e tendo em conta as principais características da

metodologia m-BIST para circuitos combinatórios, definiram-se os seguintes princípios

subjacentes para a metodologia que se propõe nesta Tese:

A metodologia a desenvolver reutilizará, sempre que possível, os princípios

orientadores utilizados na metodologia m-BIST para CUT combinatórios

A metodologia proposta desenvolve-se em dois ciclos, com objectivos

complementares:

1º. Ciclo, de preparação do auto-teste a nível RTL, que visa definir (a esse

nível de abstracção) o padrão de auto-teste a aplicar ao sistema sequencial

(como uma associação de teste pseudo-aleatório (PR, Pseudo-Random) e de

teste determinístico (as máscaras)). Este primeiro ciclo, necessariamente mais

longo que o segundo ciclo, torna necessário a geração, a nível RTL, da

funcionalidade de BIST requerida para a injecção de máscaras.

2º. Ciclo, de implantação do auto-teste integrado, que visa gerar a descrição

estrutural do CUT com m-BIST e validar, a nível estrutural, a qualidade do

auto-teste definido no 1º. Ciclo. Este 2º. Ciclo inicia-se com a geração do

MISR para compactação de assinatura, inclui a síntese lógica e pode ir até ao

projecto fisico, com a implantação (layout) no semiconductor, no caso de

sistemas integrados SoC (não implementados em componentes programáveis,

tais como FPGA (Field Programmable Gate Arrays)).

A fim de aumentar a detecção de faltas dinâmicas, a solução m-BIST pouco

intrusiva mantém o carácter sequencial do CUT, sendo em realidade uma solução

de test-per-clock, e não uma solução de test-per-scan.

A metodologia proposta permite, na fase inicial, realizar uma depuração (debug)

do projecto, já que, ao escrutinar a descrição RTL da funcionalidade do sistema,

permite identificar falhas de projecto (design flaws), por exemplo, partes de

Page 80: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

56

funcionalidade que não podem nunca ser exercitadas. Esta particularidade pode

revelar-se muito útil, já que o projecto de sistemas integrados complexos SoC se

baseia na reutilização, sempre que possível, de módulos funcionais usados com

sucesso em projectos anteriores, quer sejam IP cores provenientes de diversos

vendedores, que sejam módulos de lógica definidos na empresa em projectos

anteriores (UDL, User Defined Logic) [96].

O processo de TPG (geração do padrão de teste pseudo-aleatório embricado com

as máscaras) deve ser guiado por duas características. Primeiro, deve tomar em

consideração a natureza das PI, SI, PO, e SO. Em particular, procura-se aplicar

teste PR em todas as variáveis menos sinais de relógio e sinais de Set/Reset.

Segundo, o processo de TPG deve procurar uma solução que restrinja, o mais

possível, (1) o número de máscaras, (2) o número de instanciações das máscaras,

(3) o número de bit fixos por máscara (isto é, o número de MSI (Masked

Secondary Inputs) e de MPI (Masked Primary Inputs)), e finalmente (4) o

comprimento do teste – o número total de vectores PR não mascarados (N0) e o

número de vectores personalizados por cada máscara (Ni).

O processo de TPI (Test Point Insertion) é conduzido com dois objectivos, em

fases distintas do processo de preparação do teste. Realiza-se TPI para reforçar a

controlabilidade de variáveis através da acção de injectar máscaras, forçando

assim o controlo de valores lógicos em bit específicos de variáveis (MSI, MPI).

Realiza-se eventualmente TPI, na fase terminal da selecção do padrão de teste,

para reforçar a observabilidade de variáveis, tornando observáveis alguns bit de

algumas SO (observáveis no MISR de compactação da assinatura).

A metodologia é descrita nas secções seguintes. Todavia, para facilitar a compreensão,

introduz-se, primeiro, na próxima secção as métricas de testabilidade, a nível RTL, que são

utilizadas na metodologia proposta.

3.2. Métricas de Testabilidade a Nível RTL

Este termo designa as medidas que quantificam o grau de dificuldade associado ao

controlo e à observação das variáveis do sistema integrado. O objectivo é, através do uso

destas métricas, realçar as características desfavoráveis do sistema e/ou do padrão de teste que

se pretende definir e reutilizar para o auto-teste integrado, quer durante a produção, quer

durante a vida útil do sistema integrado.

Page 81: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

57

3.2.1. Acessibilidade de Variáveis RTL

A cada modelo de faltas usado para o nível RTL está associado uma variável. Se, durante

uma simulação com um padrão de teste, esta variável nunca apresentar um valor lógico que

permita activar a falta correspondente, tal facto representa um problema de controlabilidade.

Por exemplo, se um dado bit de uma variável de 8 bit sempre apresentar o valor lógico ‘0’ na

actuação de todos os vectores de teste que compõem o padrão de teste, é impossível, com este

padrão, activar a falta desse bit LSA0 (ou fixo a ‘0’).

Similarmente, se uma falta é activada repetidas vezes mas essa activação não se repercute

como uma diferença observável nas saídas primárias, existe um problema de observabilidade.

A acessibilidade de cada bit de cada variável (isto é, a sua controlabilidade e a sua

observabilidade) constitui assim o critério de avaliação da testabilidade. As faltas difíceis de

detectar, identificadas pelas medidas de testabilidade no nível RTL, correspondem a caminhos

funcionais difíceis de activar e/ou cujo processamento é difícil de observar. Essa dificuldade

tem necessariamente o seu impacte a nível estrutural. Com efeito, após a síntese, no nível

lógico, esses caminhos serão implementados por portas lógicas e nós do circuito com

controlabilidade e/ou observabilidade reduzidas.

3.2.2. Detecção Múltipla e Métricas de Testabilidade a Nível RTL

Um teste de produção de elevada qualidade requer uma cobertura simples, ou singular,

muito elevada de defeitos físicos (DC, Defects Coverage) [51]. A detecção singular de faltas

RTL, embora possibilitando assegurar perto de 100% da cobertura do faltas a nível RTL e

permitindo uma validação do projecto, não garante por si só valores elevados de DC. De

facto, muitas variáveis implícitas (isto é, não explícitas no código RTL) e muitas linhas e nós,

a nível estrutural, estão ausentes da descrição RTL, e portanto da lista de faltas cuja detecção

é avaliada, a esse nível. Verificou-se, porém, que a detecção múltipla de faltas RTL pode

aumentar significativamente a probabilidade de activação e de propagação de defeitos físicos

[31]. É este o princípio subjacente à utilização das métricas de testabilidade em circuitos

sequenciais, baseadas em simulação, a nível RTL, que se procura explorar.

Após um processo de simulação de faltas, a nível RTL, com um padrão de teste

representativo, as faltas que apresentam um número reduzido, ou eventualmente um número

Page 82: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

58

nulo, de detecções e/ou números reduzidos de controlabilidade, serão naturalmente alvo de

análise bem como o código que lhes está associado. Recorde-se que a detectabilidade de uma

falta está associado à verificação cumulativa de duas condições: (1) a sua controlabilidade e

(2) a sua observabilidade. Um aspecto fundamental para melhorar níveis reduzidos de

testabilidade obtidos com um dado padrão de teste (na abordagem de simulação) é conhecer-

lhes a sua causa. Esta pode ser a não activação das faltas (ausência de controlabilidade), ou a

ausência de propagação de diferenças Booleanas pelo menos para uma saída observável

(ausência de observabilidade), ou a ocorrência em simultâneo das duas causas anteriores. A

informação da simulação, com o VeriDOS, permite dispor do número de detecções como

também do número de activações da falta, o que permitirá distinguir entre estas duas causas.

Estes números (ou, mais precisamente, as percentagens, relativamente aos valores

máximos possíveis) de activações e de detecções das faltas são os parâmetros que constituem

as métricas de testabilidade para um circuito representado no nível RTL.

Considere-se então um sistema digital C com um conjunto F de Nf faltas a nível RTL (F =

{f1,f2,...,fi,...,fNf}), ao qual é aplicado um padrão de teste T com uma sequência de N vectores

de teste (T = T1,...Ti,...,TN). Se cada falta fi for activada nai vezes e detectada ndi vezes,

definem-se as seguintes métricas de testabilidade:

• Controlabilidade-n da falta fi:

( )⎪⎭

⎪⎬

⎪⎩

⎪⎨

<==

nn

nnn

nnfi

i

i

i

a

aa

ii COCO,1

,,

• Detectabilidade-n da falta fi:

( )⎪⎭

⎪⎬

⎪⎩

⎪⎨

<==

nn

nnn

nnfi

i

i

i

d

dd

ii DODO,1

,,

• Observabilidade-n da falta fi:

( )CODOOOOO

i

iii nfi == ,

com nai e ndi ∈ (0,...,N). O grau de multiplicidade da detecção, n, pode ser definido pelo

utilizador. Contudo, verificou-se que um valor de n entre 5 e 10 era suficiente para assegurar

Page 83: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

59

uma correlação elevada entre a detecção múltipla de faltas RTL e a detecção singular de faltas

estruturais [31]. Assim, neste trabalho assumiu-se n=5. Tipicamente utiliza-se inicialmente

uma sequência de N = 5000 vectores pseudo-aleatórios.

A título ilustrativo, apresenta-se nas Figura 3-1 e Figura 3-2 os resultados de

controlabiladade (COi) de detectabilidade (DOi) obtidos com o VeriDOS para o circuito de

referência b10 [37], quando a simulação de faltas é realizada com N = 5000 vectores.

B10: CO com PR

0

0,25

0,5

0,75

1

0 20 40 60 80 100

# Faltas RTL

CO

Figura 3-1 – Controlabilidade de faltas RTL no circuito b10, com N=5000.

B10: DO com PR

0

5

10

15

20

25

30

35

0 20 40 60 80 100

# Faltas RTL

DO

Figura 3-2 – Detectabilidade (n=5) de faltas RTL no circuito b10, com N=5000.

Como pode observar-se, existe um sub-conjunto de faltas RTL de controlabilidade nula,

inferior ao conjunto de faltas não detectadas pelo padrão de teste pseudo-aleatório. Isso

significa que existem faltas activadas, mas não detectadas pelo menos 5 vezes.

Page 84: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

60

Considere-se o caso da observabilidade múltipla OOi obtida pala ferramenta VeriDOS em

função das outras duas anteriores. Se o sistema C for puramente combinatório (ou

combinatório com entradas e saídas terminadas por registos), conclui-se que ter-se-á sempre

DOi < COi, uma vez que a detecção de uma falta obriga à sua prévia activação. Na situação

do sistema C ser sequencial, a desigualdade já não se verifica necessariamente.

Considerando um sistema C que descreva uma máquina de estado (FSM; Finite State

Machine), actuado por um dado padrão de teste. Pode verificar-se que, no decurso da

simulação de faltas, a simples atribuição a uma variável de um valor lógico ‘0’ ou ‘1’, Figura

3-3, seja suficiente para desencadear, em cascata nos sucessivos ciclos de relógio posteriores,

um número elevado de transições entre estados que abra a possibilidade de múltiplas

detecções.

Figura 3-3 – Parte do diagrama de estados de uma FSM, ilustrando múltiplas activações.

Assim, observa-se uma característica importante que distingue os sistemas combinatórios

dos sequenciais. Com efeito, no caso de sistemas C combinatórios, a detecção de uma falta

estática é (ou não) realizada em cada período de relógio. A detecção da falta obriga, como

condição necessária, a sua activação nesse período de relógio. No caso dos sistemas C

sequenciais, a activação da falta é também condição necessária; contudo, essa activação pode

ocorrer em ciclos de relógio anteriores à sua detecção, já que a geração de uma diferença

Booleana, no interior de um circuito sequencial, pode propagar-se, nos sucessivos ciclos de

relógio posteriores, para uma saída observável. Esta uma característica observável na

abordagem de simulação, com o VeriDOS, mas não observável, na sua versão actual, pela

abordagem probabilística, com a ferramenta ASCOPA.

0 1X

Page 85: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

61

Todavia, os valores de controlabilidade e de observabilidade obtidos com as duas

ferramentas convergem para um número N de vectores PR relativamente reduzido, como se

pode observar na Figura 3-4 para o caso do circuito de referência b10 [37][38]. Para este

circuito, conduziu-se a simulação com o VeriDOS para N ∈ (5000, 100.000) vectores. Como

se pode observar, a maioria das variáveis tem controlabilidades (a ‘0’) de cerca de 50%, o que

significa que tanto é fácil forçar um valor lógico ‘0’, como um valor lógico ‘1’. Contudo,

algumas variáveis (por exemplo, sign_0, sign_1, sign_2 e sign_3) apresentam valores de

controlabilidade muito próximo de 100%, ou de 0%, o que significa que um (e apenas um)

dos valores lógicos é forçado em quase todos os vectores de teste, ao passo que o valor lógico

complementar não é quase nunca activado. Essas são as variáveis que evidenciam problemas

de controlabilidade e, em consequência, problemas de detectabilidade. A elas estão associados

cantos escuros.

B10: Convergence (P-based (ASCOPA), S-based (VeriDOS))

0

0,2

0,4

0,6

0,8

1

ctr_

0

cts_

0

g_

bu

tto

n_

0

key_

20

last

_g

_0

last

_r_

0

r_b

utt

on

_0

rtr_

20

rts_

20

sig

n_

0_

0

sig

n_

1_

0

sig

n_

2_

0

sig

n_

3_

0

sta

rt_

20

sta

to_

0_

0

sta

to_

1_

0

sta

to_

2_

0

sta

to_

3_

0

test

_0

v_in

_0

_0

v_in

_1

_0

v_in

_2

_0

v_in

_3

_0

v_o

ut_

0_

0

v_o

ut_

1_

0

v_o

ut_

2_

0

v_o

ut_

3_

0

voto

0_

0

voto

1_

0

voto

2_

0

voto

3_

0

RTL Variables

VeriD-5kVeriD-25kVeriD-50kVeriD-100kASCOPA

Figura 3-4 – Resultados de Controlabilidade obtidos para o b10 com o VeriDOS e com o ASCOPA.

Assim, é com base nos valores de controlabilidade e detectabilidade múltipla (obtidos na

abordagem de simulação, com a ferramenta VeriDOS) que se definem as medidas de

activação e de detecção de multiplicidade n de faltas para o sistema integrado.

• Controlabilidade-n das faltas RTL:

NF

nnFCC

NF

iiCO )(

)( 0∑

==

Page 86: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

62

• Detectabilidade-n das faltas RTL:

NF

nnFC

NF

iiDO )(

)( 0∑

==

Como já foi constatado [31], a detecção de faltas com multiplicidade n é uma medida bem

correlacionada com a cobertura de faltas realistas, em particular com faltas de difícil detecção.

Esta boa correlação permite a utilização de FC(n), no nível RTL, para avaliar diferentes

estratégias na procura de um teste de produção (ou a aplicar durante a vida útil do produto) de

alta qualidade.

3.2.3. Graus de Testabilidade

Os dados recolhidos pela ferramenta VeriDOS com a simulação de faltas a nível RTL, em

função das métricas de testabilidade definidas, permitem distinguir entre as 4 situações

possíveis, alistadas na Tabela 1.

Dados (CO, DO) Conclusões Grau de gravidade

Tipo de

situação Boa detectabilidade e Boa controlabilidade

Situação desejável 4º 4

Fraca detectabilidade e boa controlabilidade

Problema de observabilidade 3º 3

Boa detectabilidade e Fraca Controlabilidade

Variáveis fracamente controladas mas observáveis o suficiente. A fraca controlabilidade cria “Cantos Escuros”

2º 2

Fraca detectabilidade e fraca controlabilidade

Variáveis fracamente controladas, o que força detectabilidade fraca. Esta pode advir adicionalmente de fraca observabilidade. A fraca controlabilidade cria “Cantos Escuros”

1º 1

Tabela 3-1 – Graus de gravidade nos problemas de testabilidade identificados pelo VeriDOS.

O diagrama da Figura 3-5 procura explicitar as condições que criam os diferentes tipos de

situação, directamente relacionados com a gravidade do problema de testabilidade que

acarretam.

Page 87: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

63

Canto Escuro

1

2

3

4

OBS

CO

CO< COi, < DOi

< COi, > DOi

> COi, < DOi

> COi, > DOi Sem Problema

1. Melhorar

2. Melhorar

CO

OBS

Figura 3-5 - As quatro situações distintas em função dos valores das métricas

A situação desejável é a que corresponde ao tipo 4. Todas as faltas cujos dados de COi,

DOi indiquem situações dos tipos 1, 2 e 3 são objecto de análise. Em termos de

acessibilidade, a prioridade vai para resolver os problemas de controlabilidade. Com efeito,

sem controlabilidade, a detactabilidade é impossível. Os vectores determinísticos a definir (as

máscaras, na abordagem m-BIST) visam controlar os bit das variáveis associadas a

funcionalidade difícil de activar com o padrão pseudo-aelatório – assim, valores insuficiente

de controlabilidade indicam a existência de “Cantos Escuros”.

Qualquer introdução de vectores determinísticos no padrão de auto-teste em construção

pode alterar os valores de COi e DOi associados às restantes faltas. É de supor que a

resolução, em primeiro lugar, de problemas do tipo 1 (pela introdução de máscara(s)) elimine

problemas do tipo 2. Por outras palavras, a resolução de problemas de controlabilidade em

determinadas variáveis melhora a controlabilidade de outras. Diversos problemas do tipo 2

acabam por originar problemas do tipo 1 – aumento dos cantos escuros. É portanto também

possível que a resolução de problemas do tipo 2 elimine problemas do tipo 1.

Os problemas do tipo 3 [Fraca detectabilidade e boa controlabilidade] derivam

directamente de fraca observabilidade e só devem ser resolvidos após a resolução dos

problemas de controlabilidade.

Page 88: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

64

wire y_t = y AND x = A case (x) A: if(y_t) B: C:

3.2.4. Significado das Métricas de Testabilidade nas Condições

A contabilização do número de vezes que um ramo do grafo que descreve o circuito no

nível RTL é percorrido, pode ser feita com rigor a partir do número de activações e detenções

das faltas RTL.

No caso do modelo de faltas para as instruções CASE, a simulação permite aferir, a partir

dos resultados, qual a percentagem do tempo ocupada em cada estado. O número de vezes que

a falta associado à entrada no ramo numa condição IF/ELSE é activado constitui o número de

vezes que o ramo é percorrido, para este padrão de teste. Uma falta considera-se activada

sempre que ocorrer um valor lógico na variável de selecção que permita a entrada no ramo

que possibilita a execução daquele pedaço de código.

A detecção das faltas em condições IF/ELSE e em alternativas CASE, que são injectadas

por alteração dos valores dessas variáveis, assegura que os ramos associados seriam

percorridos se a injecção não tivesse tido lugar. Assim sempre que uma falta numa condição

ou alternativa CASE for detectada é assegurado que o ramo associado é percorrido. É no

entanto, possível que a falta seja activada mas não ocorra detecção por falta de

observabilidade.

A detecção da falta associada a uma variável de selecção utilizada numa instrução

IF/ELSE permite verificar que a falta associada à saída da última porta lógica que

implementar a condição de teste altera a funcionalidade do circuito permitindo a observação

de diferenças booleanas nas saídas observáveis.

O número de activações de faltas nas condições alternativas informa sobre a facilidade da

variável em questão apresentar valores que activem a falta, no caso da falta LSA0 apresentar

o valor um e no caso da falta LSA1 apresentar o valor 0. No caso de condições IF/ELSE

dentro de alternativas CASE os valores de activação têm de ser calculados em função de uma

probabilidade composta, ou a variável da condição IF/ELSE passa também a contemplar a

localização dentro da alternativa.

A nova variável y_t irá substituir a anterior variável y, e durante

a simulação da injecção de faltas a nível RTL, a estatística referente

Page 89: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

65

à nova variável y_t contabiliza o número efectivo de activações. No caso contrário a variável

y podia até ter o valor para possibilitar a execução da instrução IF mas é irrelevante uma vez

que o processamento não decorre de momento na alternativa A.

Um teste que assegure a detecção múltipla das faltas RTL nas condições IF/ELSE e nas

alternativas CASE assegura, a cobertura múltipla dos ramos do grafo que descreve o circuito.

3.3. Linhas Gerais da Metodologia m-BIST para CUT Sequenciais

A partir do código RTL fonte de um circuito sequencial e recorrendo às ferramentas

VeriDOS e ASCOPA, é possível realizar um processamento que identifica eventuais erros de

projecto e os problemas de testabilidade do CUT e permite orientar a realização de uma

arquitectura de teste integrado que possibilita uma cobertura de faltas a nível RTL de 100% e

igualmente elevada a nível lógico. A Figura 3-6 descreve o fluxo da metodologia m-BIST

para sistemas sequenciais que se propõe, e que foi utilizado nos casos de estudo descritos nos

capítulos 4 e 5.

Page 90: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

66

Código RTL Fonte(Verilog)

Código RTLReconfigurado

para Injecção deFaltas

COi >DOi >

Síntese Lógica(com opções)

FC(n) = 100%

S

[P-Based]P(CO)P(OBS)Geração de Máscaras

[Sim-Based]P(Co)P(Do)

Análise dosResultados

RTL2FO

VeriDOS

FC(n) de faltasRTL

FC (n, Reset)OK?

Reconfiguração parainjecção demáscaras

(CUT, BIST_C, ML)

FC(n) de faltasRTL

Alteração do CUT(Remoção dos ciclos

expandidos)Geração MISR

Design_Vision

VeriFault

FC (NSA, LSA)

ASCOPA

Alteração doperiodo do

Reset

N

S

Máscaras

- Padrão PR- Reset

COi, DOi,FC(n)

P(CO)P(OBS)

DesignFlaws?

N

VeriDOS Start_BIST# Ciclos

TPI(CO)

1. Máscaras2. TPI(OBS)

FC(n)=100%

N

N

s

S

Figura 3-6 – Fluxograma da metodologia m-BIST proposta

Page 91: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

67

O fluxo da metodologia proposta pode ser descrito como segue.

1. 1ª. Reconfiguração do código RTL: numa primeira fase, o código RTL fonte é

modificado para permitir a injecção de faltas ao nível RTL, e assim realizar a

simulação de faltas RTL com o VeriDOS. Para tal, utiliza-se a ferramenta

RTL2FT (RTL to Fault Oriented), descrita na secção 3.4.2.. A reconfiguração para

permitir a injecção de faltas em operadores aritméticos é ainda manual. As

modificações introduzidas automaticamente pelo RTL2FO dizem respeito às

restrições que a seguir se enunciam:

• As casetags não podem ser labels

• As instruções IF/ELSE com condições de verificação complexas têm de ser

substituídas por variáveis simples.

• As variáveis de estado que condicionem a execução de uma instrução CASE

têm de ser estendidas para a dimensão máxima da variável que se encontre

nessas condições. Esta reconfiguração originará mais faltas ao nível RTL

fictícias (dummy), que depois têm de ser filtradas.

2. 1ª. Iteração para Fixação da periodicidade do sinal de Set/Reset: na primeira

iteração da simulação de faltas, recorre-se somente a LFSRs (Linear Feedback

Shift Register) para aplicação dos vectores de teste nas P.I.s do CUT, como se de

um circuito combinatório se tratasse. Esta simulação inicial com um padrão PR

visa também explorar a periodicidade da aplicação do sinal de Reset e apreender

qual a influência deste sinal na evolução da cobertura de faltas, descrita pelas

curvas FC(n, N) em que N representa o número de vectores de teste do padrão de

BIST. Os resultados das simulações iniciais com o VeriDOS conduzem à fixação

da periodicidade de aplicação do sinal de Reset nas simulações subsequentes, e

fornece o valor da probabilidade deste sinal de entrada, a fornecer à ferramenta

ASCOPA, a fim de que os resultados das duas ferramentas possam ser

comparados.

3. Identificação de Eventuais Erros de Projecto: a análise de dados

disponibilizados pelas ferramentas VeriDOS e ASCOPA permitem por a

descoberto eventuais erros de projecto, que justifiquem uma primeira correcção à

descrição RTL do sistema em projecto. Deste modo, a metodologia m-BIST pode

ser aproveitada, com vantagem, na validação do projecto. Variáveis RTL do

circuito com probabilidades iguais a 1 ou 0 significa que os respectivos bits não

Page 92: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

68

variam ao longo do tempo pelo que podem ser substituídos por hardwires. Como a

ferramenta ASCOPA faz uma análise probabilística, e não depende do conjunto de

vectores aplicados, garante-se que a análise efectuada não está dependente do

padrão de teste aplicado.

4. Identificação de Problemas de Testabilidade: a mesma análise dos dados

provenientes da simulação de faltas RTL (VeriDOS) e da análise probabilística

(ASCOPA) permite identificar os principais problemas de testabilidade no sistema

integrado em projecto. Os “cantos escuros” da funcionalidade identificados nesta

análise prévia, resultantes, quer da falta de controlabilidade (CO), quer da falta de

observabilidade (OBS), estão na origem dos fracos resultados obtidos inicialmente

pelo VeriDOS, em termos da cobertura de faltas RTL, FC(n). Os cantos escuros

estão associados a faltas RTL com uma detectabilidade n=5 (grau de

multiplicidade da detecção) inferior a 100%.

5. Geração de máscaras: a geração de máscaras a aplicar é realizada pela ferramenta

ASCOPA.

6. 2ª. Reconfiguração do código RTL: necessária para começar a introduzir a

funcionalidade de auto-teste. Essa reconfiguração inclui a descrição RTL dos

módulos de BIST (controlador de BIST, LFSR, lógica de injecção de máscaras em

PI e reconfiguração do CUT, para injecção de máscaras em SI), de acordo com o

descrito adiante na secção 3.5.

7. 2ª. Iteração para análise do reforço da testabilidade: re-simulação de faltas com

o VeriDOS e averiguação das melhorias resultantes da aplicação das máscaras.

Experimentação, com variação (1) do número de máscaras, (2) do número de

instanciações das máscaras, (3) do número de bit fixos por máscara (isto é, do

número de MSI e de MPI), e finalmente (4) do comprimento do teste – do número

total de vectores PR não mascarados (N0) e do número de vectores personalizados

por cada máscara (Ni). A iteração é realizada com retorno ao passo 6, até se obter

FC(n) = 100%. A obtenção deste resultado é primeiro conseguida por aplicação e

escolha das máscaras (TPI para reforço da CO) e, em segundo lugar, pela selecção

criteriosa de algumas SO, tornando-as observáveis no MISR (TPI para reforço da

OBS). Quando termina este processo iterativo, todas as faltas RTL do sistema

apresentam uma detectabilidade igual ou superior a n=5.

8. Início do 2º. Ciclo da metodologia: o 2º. Ciclo visa gerar a estrutura do CUT com

BIST e validar a qualidade do auto-teste. Assim, uma vez que terminaram as

Page 93: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

69

simulações a nível RTL, o 1º. Passo deste 2º. Ciclo consiste na 3ª. Reconfiguração

do código RTL. Nesta reconfiguração, retiram-se todas as alterações realizadas no

passo 1 para injecção das faltas RTL, e adiciona-se a descrição do MISR. Segue-se

a

9. Síntese Lógica: síntese, para uma biblioteca-alvo, do sistema integrado depurado

dos erros de projecto identificados e com a funcionalidade de auto-teste integrado,

incluindo a funcionalidade de injecção de máscaras. A ferramenta utilizada neste

trabalho é o Design Vision da Synopsys [94]. A síntese lógica foi, neste trabalho,

concretizada para uma biblioteca de células da AMS (Austria Microsystems) com

opções de síntese a privilegiarem quer a área quer o atraso (delay) (circuito mais

complexo).

10. Avaliação, a nível estrutural, da qualidade do auto-teste: repetição das

simulações com injecção de faltas, agora ao nível lógico. Neste trabalho, a

simulação de faltas estruturais foi realizada com a ferramenta comercial

Verifault™, da Cadence [93]. Obtenção da evolução da cobertura de faltas a nível

estrutural, FC(N), em que N é o número de vectores do padrão de teste.

Comparação das coberturas de faltas RTL (n=5) e cobertura de faltas a nível

lógico. Se necessário, aprimorar o padrão de teste, por exemplo alongando o

número de ciclos de relógio durante os quais se aplica uma dada máscara, que

activa uma estrutura não completamente excrutinada.

Recorde-se que a aplicação de um auto-teste integrado a um circuito sequencial, numa

técnica test-per-clock sem cadeias de varrimento, dá origem normalmente a resultados pouco

satisfatórios, implicando coberturas de faltas reduzidas. Em consequência, usualmente

procede-se ao desenvolvimento de uma técnica BIST em test-per-scan. Contudo, visa-se neste

trabalho o desenvolvimento de uma técnica BIST aplicável a faltas dinâmicas com elevada

eficácia de teste (TE). Assim, de acordo com a metodologia m-BIST desenvolvida, impõe-se

a restrição de aplicar o auto-teste com um mínimo de perturbação do sistema sequencial no

seu modo normal de funcionamento – ou seja, mantendo a característica de test-per-clock.

Page 94: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

70

3.3.1. Metodologia de Geração de Padrões de Teste

Embora se pretenda preparar um teste funcional, que cubra a funcionalidade descrita a

nível RTL, procura-se usar, como motor para a definição do padrão de teste, modelos de faltas

cuja ocorrência modifique, de forma marginal (e não radical) essa funcionalidade. A razão

deste princípio assenta no facto de a ocorrência de defeitos físicos, pontuais (spot defects),

prováveis de ocorrer na produção, modificar marginalmente a funcionalidade ou então serem

facilmente detectáveis. A dificuldade da geração do teste reside na definição de padrões que

sejam capazes de descobrir os defeitos difíceis de detectar.

3.3.2. Identificação de Cantos Escuros

Define-se canto escuro como uma parte do código da descrição RTL de um circuito digital

cujas faltas associadas apresentam detectabilidade-n inferior a um mínimo estipulado quando

o circuito é estimulado por um conjunto suficientemente vasto de vectores de teste. Desta

definição fazem parte duas grandezas que, até agora, não estão quantificadas: (1) o número, n,

mínimo de vezes que uma diferença Booleana tem de ser observada para assegurar uma boa

detectabilidade e (2) o número, N, de vectores aleatórios a aplicar. Efectivamente estes

números são parâmetros da metodologia que dependem do circuito em análise.

O número de vectores a aplicar depende da complexidade do circuito, decorrente da sua

dimensão e da dificuldade de teste que apresenta devido a sua funcionalidade. Se as medidas

de testabilidade apresentarem globalmente valores reduzidos, isso poderá indicar que um

número N insuficiente de vectores de teste está a ser utilizado ou que é necessária a adição de

pontos de teste. O número mínimo de detecções que cada falta RTL requer deveria,

idealmente, ser determinado perspectivando a síntese de que o código RTL será alvo. No

entanto, devido à dificuldade de perspectivar individualmente a importância relativa de cada

caminho de um circuito complexo, esta avaliação deve ser feita com base das medidas de

testabilidade propostas. Em estudos anteriormente efectuados, com o recurso às mesmas

métricas, e para os casos de estudo analisados, obtiveram-se bons resultados impondo valores

a n na ordem de 5 a 10, para a multiplicidade de detecção de cada falta RTL, com padrões de

teste de comprimento N=5000 [31].

Page 95: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

71

3.3.3. Geração de Máscaras

Uma vez identificados os cantos escuros, torna-se necessário obter as máscaras que

forcem os bits necessários para que os referidos cantos escuros sejam perscrutados ou

iluminados.

O número de máscaras a definir em cada iteração da metodologia proposta deve ser o

mínimo possível. Todavia, deve ser suficiente para assegurar o aumento da probabilidade de

activação / detecção das faltas RTL que corrija as métricas de testabilidade obtidas. Esta

minimização é particularmente importante se as máscaras forem posteriormente utilizadas no

auto-teste integrado (BIST), pois a aplicação de cada máscara requer a introdução de lógica

adicional.

A minimização do número de máscaras consegue-se identificando os cantos escuros que

estão embutidos noutros e não gerando máscaras para estes numa primeira iteração. Pode

também conseguir-se, gerando máscaras para condições e deixando de fora a contemplação

das alternativas, nomeadamente CASE, onde se encontram as condições.

O aumento do valor das métricas de testabilidade associadas à falta de um canto escuro

mais abrangente é usualmente acompanhado pelo aumento dos valores das métricas de

testabilidade associadas às faltas dos cantos escuros nele embutidos.

As máscaras a obter para cada canto escuro podem ter diferentes objectivos que dependem

dos valores das medidas de testabilidade obtidos. Se os valores correspondem à activação das

faltas for reduzido (um valor de controlabilidade inferior a 5% do número total de vectores

aplicados. É considerado um valor baixo – que revela um problema de activação, as máscaras

para este canto escuro devem procurar inicialmente forçados os bits que garantem a activação.

No caso de CUT combinatórios, pode-se colocar a hipótese de forçar um número extra de bits

para melhorar a observabilidade de diferenças Booleanas geradas, caso os valores

correspondentes à activação das faltas não sejam suficientemente acompanhados pela subida

dos valores das detecções correspondentes. No caso dos circuitos sequenciais, normalmente

será necessário forçar outra máscara ou uma sequência de máscaras, o que pode acarretar uma

sobrecarga de teste significativo.

Page 96: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

72

Assim, o critério de geração de máscaras assenta em assegurar, numa primeira fase, o

cumprimento das condições necessárias (activação as faltas). Depois, uma vez que as

máscaras geradas pelo ASCOPA só contemplam a activação de faltas, a observação de

valores incorrectos é resolvida com recurso a TPI que resolvam o problema de

observabilidade. As faltas classificadas com prioritárias (e que, portanto, são analisadas

primeiro) são as que apresentam valores reduzidos de COi. Utiliza-se, adicionalmente, uma

propriedade conhecida a nível estrutural: a geração de vectores para detecção de certas faltas

usualmente aumenta a cobertura de faltas não-alvo. A aplicação de máscaras para “iluminar”

um canto escuro também pode aumentar a detectabilidade-n de outras faltas noutros cantos

escuros.

O reforço na detecção de faltas pode não ser conseguido pelo aumento do número de

activações. Caso se trate de condições IF, então a introdução do TPI para resolver o problema

de observabilidade deverá contemplar um dos sinais do interior da condição, pois é de supor

que estes apresentam problemas de observabilidade; caso contrário, a activação (ou não) de

determinado caminho (ramo do grafo) era observável.

3.4. 1º. Ciclo: Preparação do Teste. Injecção de Faltas a Nível RTL

A ferramenta VeriDOS injecta faltas ao nível RTL em todos os modelos de faltas

definidos no capítulo 2, desde que as modificações à descrição comportamental do circuito

tenham sido efectuadas, de forma a satisfazer os critérios para a respectiva injecção.

Presentemente, o VeriDOS não realiza a reconfiguração automática do código RTL, pelo que

esta tem de ser realizada manualmente. Desenvolveu-se uma ferramenta auxiliar (RTL2FO)

para aliviar este problema. A ferramenta é descrita na secção 3.4.2. Algumas alterações ao

código original são explicadas nesta Tese, em particular para a respectiva falta do modelo

fazer parte de lista de injecção. A fim de permitir a injecção de faltas em cada componente

específico da descrição Verilog a nível RTL, é pois necessária a alteração do código. As

alterações incluem a expansão de ciclos FOR, a substituição da expressão de controlo em

cada alternativa CASE e, em cada condição IF/ELSE por uma nova variável.

Page 97: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

73

3.4.1. Alteração ao Código RTL Comportamental

A fim de utilizar a ferramenta VeriDOS como simulador de faltas, a nível RTL, com o

conjunto de modelos de faltas RTL definidos na secção 2.5.1, torna-se necessário modificar,

para a injecção de alguns tipos de faltas, o código RTL que descreve a funcionalidade-alvo do

sistema integrado em projecto. Nas sub-secções seguintes, descrevem-se (1) as modificações

a introduzir, para os diferentes modelos de faltas, e (2) a funcionalidade da ferramenta auxiliar

RTL2FO (RTL to Fault-Oriented), desenvolvida neste trabalho para automatizar a introdução

dessas modificações.

3.4.1.1. Condições IF/ELSE

De forma a utilizar o simulador de faltas VeriDOS é necessário alterar as instruções

IF/ELSE no código Verilog modificando-as do modo como se descrve a seguir:

If (!variável) If(variável op variável)If(variável op valor)

Para a forma if (variável)

Nesta transformação, cada variável criada, do tipo wire ou integer, tem o valor exacto da

expressão na condição original.

O uso de variáveis de selecção diferentes para condições IF/ELSE iguais é uma questão

importante a considerar. Todas estas variáveis apresentam valores iguais de activação, pois

têm a mesma condição de activação – apesar de se encontrarem em diferentes ramos do grafo

do circuito. Contudo, podem apresentar valores de detecção diferentes. Caso se perspective a

síntese lógica destas condições apercebemo-nos que, por exemplo, no caso de máquinas de

estado (FSM), as mesmas condições em diferentes fases do grafo do circuito originam

diferentes conjuntos do lógica (pelo menos em parte), pelo que o uso de diferentes condições

ajudará a completar a informação disponibilizada pela simulação. A injecção de todas estas

faltas referentes a uma mesma condição provoca um mimetismo análogo à injecção de faltas

em entradas, que presentemente não existe no nível RTL.

Nas descrições RTL de circuitos é normal encontrar-se instruções IF com condições iguais

de activação. Qual deverá ser o método a usar para estas situações?. Dependendo das opções

de síntese (area, delay, redundância) é de supor que, caso as condições complexas se repitam,

o hardware, ou parte deste, seja reutilizado.

Page 98: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

74

Caso se opte por declarar uma nova variável de selecção para a instrução IF (apesar de já

anteriormente ter sido declarada uma), obtém-se a vantagem de diminuir a granularidade do

sistema (correspondendo a um aumento do número de faltas). Esta situação é análoga à

introdução de faltas em entradas. Se a condição se repete no código RTL, mas, na injecção de

faltas no código RTL, a simulação processa-se de forma diferente pois apesar das condições

serem iguais foram contempladas com variáveis de selecção diferentes, resultando em

instantes de injecção diferentes. Em vez de em todo o circuito a condição ser forçada, só em

parte é que o é, Figura 3-7. Se extrapolarmos para o nível lógico, no modelo LSA, é isso que

acontece quando se injectam faltas em entradas de células. Esta opção de criar novas variáveis

para condições iguais revela-se a mais indicada.

Na situação de a condição a ser testada ser o estado de um bit, testado inúmeras vezes.

Origina-se tantas faltas quantas o dobro de vezes que a condição seja testada (pois cada

condição é testada em 2 valores TRUE/FALSE) apesar de se tratar de um só bit que no

máximo tinha duas faltas, LSA0 e LSA1. No entanto, se extrapolarmos para o nível lógico, a

analogia mantém-se. Com efeito, tem-se o nó de saída e temos as linhas de entrada em

células.

// Código RTL . .

IF (A ● B) // Cond1

.

.

. IF (A ● B) // Cond2

.

.

.

Comb.

Comb.

AB

1

2 Figura 3-7 – Faltas em condições IF

Opc1 Cond1 LSA0, LSA1; Cond2 LSA0, LSA1;

Corresponde a injectar faltas em entradas, só determinados ramos do fluxo sentem a injecção.

Opc2 Cond 12 LSA0, LSA1 Corresponde a injectar faltas em saídas, todos os nós ligados são afectados.

Page 99: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

75

A opção mais válida é a Opc1, pois o facto de detectar uma falta em 1 não implica que

detecte uma falta LSA em 2, mas o contrário é verdade se não estivermos numa situação de

fan-out reconvergente.

3.4.1.2. Condições CASE

As tags da condição CASE não podem ser constantes e a variável de teste para o CASE

deve ser simples.

Exemplo:

parameter GP001[2:0] = 3'b000; * * case (S1) GP001: Begin

parameter GP001[2:0] = 3'b000; * * case (S1) 3'b000: begin

Situação original Situação corrigida 3.4.1.3. Operador Soma ou Subtracção

Terá de ser criado um ciclo FOR para permitir realizar a respectiva operação e assegurar

uma melhor correlação entre a cobertura múltipla de faltas RTL e a cobertura singular de

faltas estruturais. Este artifício permite injectar faltas nas variáveis internas do ciclo FOR,

aumentando a lista de faltas a injectar. O objectivo é procurar aumentar o matching entre uma

versão estrutural, na qual esta operação é considerada complexa, pois requer o uso de várias

portas lógicas para efectuar a operação, enquanto que ao nível RTL não passa de uma

instrução cuja única possibilidade de injecção de falta passava por inibir a instrução.

3.4.2. Ferramenta RTL2FO (RTL to Fault-Oriented)

A ferramenta RTL2FO, desenvolvida, permite automatizar operações no circuito que se

pretende simular. Algumas das alterações que são necessárias efectuar num CUT original para

possibilitar a injecção de todos modelos de faltas possibilitados pela ferramenta VeriDOS, são

Page 100: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

76

realizadas pela ferramenta RTL2FO, de modo a tirar partido das potencialidades do VeriDOS

e permitir um modelo mais completo de faltas..

A simulação é sempre possível em qualquer CUT, no entanto, caso não se tenha em

atenção, existe um leque de alterações que é necessário efectuar para não se correr o risco de

excluir modelos de faltas. Esta exclusão diminui a já pequena granularidade do nível RTL em

comparação com a do nível RTL, impossibilitando a recolha de informações eventualmente

importantes de testabilidade.

A ferramenta foi desenvolvida em C, e tem a interface ilustrada na Figura 3-8.

RTL2FOCódigo RTLFonte (Verilog)

Código RTLReconfigurado paraInjecção de Faltas.

Figura 3-8 – Interface da ferramenta RTL2FO

A ferramenta gera, a partir do código RTL fonte de um circuito, o novo código

reconfigurado possibilitando a injecção de faltas. A execução da ferramenta processa-se

somente sobre o código original, sem a activação de quaisquer flags e apresenta um código

final, igualmente sintetizável e que exibe, como é lógico, a mesma funcionalidade.

Das alterações a nível RTL, que são necessárias garantir, a ferramenta RTL2FO permite

automatizar a referente às alterações das condições IF/ELSE e alternativas CASE. O diagrama

de fluxos encontra-se esquematizado na Figura 3-9, pormenorizando-se, de seguida, o

processamento efectuado em cada um dos processos.

1) Fase que se processa no inicio do ficheiro de fonte, e que consiste na criação de uma base

de dados, com informação relativa às constantes declaradas no ficheiro Verilog

(parameter) e associação a uma label – casetags.

2) Nesta fase, e até à ultima linha do ficheiro, obter uma linha deste e processar 2 situações:

a) Proceder à análise da linha para saber se existe um label – casetag para substituir pela

constante reservada (codificação de estado)

b) Averiguar se a linha possui uma instrução IF/ELSE cuja condição seja complexa.

Neste caso, cada condição complexa é substituída por uma variável do tipo wire,

gerada em função da linha de código onde esta se situa, p.e., Cond_L_123 para uma

Page 101: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

77

condição na linha 123. Actualizar uma nova base de dados que contem a nova variável

criada e qual a condição que se substitui.

3) O ficheiro com o código reconfigurado, volta a ser editado, nesta fase para contemplar a

declaração das variáveis wire criadas, com base na estrutura de dados criada para

monitorizar o processo.

Construção da basede dados com as

labels dos Casetags

Reconfiguração doficheiro RTL

Declaração dasvariáveis wire

criadas

Inicio

Fim

1

2

3

Figura 3-9 – Diagrama de fluxos da ferramenta RTL2FO

Após este processamento final, a operação de reconfiguração do código RTL fonte é

finalizada e obtém-se o código RTL reconfigurado para injecção de faltas.

Nas alterações necessárias de efectuar no código RTL fonte, somente a alteração no

modelo de faltas para operadores aritméticos é necessária efectuar manualmente. Esta

alteração contempla a criação de sinais para albergar os sinais de carry ou borrow. Novas

variáveis do mesmo tamanho do sinal do contador a que se referem. operação acessível. A

alteração contempla também a criação dos ciclos FOR para implementação dos cálculos dos

Page 102: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

78

bit de carry ou borrow, onde caso ocorra partição do contador, se torna menos acessível, e de

processamento mais complexo, dependendo o ciclo FOR do módulo pelo qual se pretende

dividir o contador. Operação esta que depende individualmente do tamanho do contador.

3.5. 1º. Ciclo: Preparação do Teste. Injecção de Máscaras

O processo de injecção das máscaras resulta do controlo síncrono da variável a mascarar.

O modo de injecção deve-se à maneira como é descrito um circuito em linguagem de

descrição de hardware. Uma vez que as variáveis RTL a mascarar são, nos casos analisados,

sempre registos, terão de ser controlados no processo onde são escritos – sob pena de originar

um erro de multisource. O que sucede é que, quase sempre nos vários processos que

descrevem o sistema, existem outras variáveis RTL que são escritas no mesmo processo e nas

quais não há interesse em controlar (através de máscaras). Quando se procede à alteração do

código RTL para procurar implementar o carácter assíncrono da máscara na variável que se

pretende controlar, modifica-se o funcionamento normal desse processo. Por outras palavras,

não é possível implementar em Verilog o carácter assíncrono de uma máscara sem que a

variável a controlar esteja isolada num processo. Como isso raramente sucede, a viabilidade

desta opção é reduzida. Assim, a alternativa será reescrever o código RTL para contemplar

esta situação.

A análise efectuada com os resultados das ferramentas VeriDOS e ASCOPA permite

seleccionar o conjunto de variáveis RTL, cuja controlabilidade deverá ser assegurada em

instantes chaves de simulação, de forma a resolver problemas de testabilidade detectados. Em

seguida, torna-se necessária desenvolver um método de injecção das máscaras, quer primeiro

na fase no nível RTL quer depois o resultado final depois da síntese e já em hardware.

A arquitectura BIST para um sistema (CUT) combinatório, antes da introdução das

entidades responsáveis pela injecção das máscaras, é a descrita na Figura 3-10. O auto-teste é

aplicado como teste ao ritmo do relógio (test-per-clock). Se se pretender injectar máscaras,

pode complicar-se o bloco MUX, substituindo-o por um circuito de interface mais complexo,

como o bloco MMIC descrito na secção 2.5.3.

Page 103: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

79

CUT

(Comb)LFSR

MUX

BISTController(BIST_C)

MISR

P.I.s P.O.s

Start_Test

P.I.s

Figura 3-10 – Arquitectura de BIST

Geralmente nos circuitos sequenciais, procede-se à inserção de cadeias de varrimento, já

no nível lógico, de forma a melhorar a controlabilidade e a observabilidade dos sinais do CUT

(test-per-scan). Na metodologia m-BIST que se propõe, pretende-se evitar esta solução e

procurar desenvolver uma solução em test-per-clock.

A topologia que se propõe, numa arquitectura que possibilita a injecção de máscaras, é

ilustrada na Figura 3-11. Admite-se que, das (m+n) PI, apenas n precisam ser mascaradas.

Analogamente, da totalidade das entradas secundárias (SI), apenas uma pequena fracção

(MSI<<SI) necessita ser modificada, para a injecção de máscaras. Finalmente, assume-se que,

da totalidade das saídas secundárias (SO), apenas uma pequena fracção necessita ser tornada

observável através da sua captura no MISR.

CUT

LFSR

MUX

BIST_C(BIST Controller+ Mask Injector)

MISR

M.S.I.s

P.I.s P.O.s

S.O.s

P.I.s (M)Masking Logic

(ML)

P.I.s

Start_Test

Masks to apply

m+n

m

n

m

n

Figura 3-11 – Arquitectura de BIST para injectar máscaras em circuitos sequenciais

Page 104: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

80

Considerando o circuito CUT descrito de forma a evidenciar a sua sequencialidade, é

possível descrever mais em pormenor como se modula as S.I.s através do forçar dos sinais

M.S.I.s (Masked Secondary Input) provenientes do controlador de BIST, cuja funcionalidade

necessita ser expandida para incluir a função de controlo da injecção das máscaras. A Figura

3-12 ilustra a forma como se procede à injecção de máscaras nos bit dos registos que

efectuam a realimentação no circuito sequencial. Tal modificação funcional, introduzida a

nível RTL, irá influenciar, a jusante, a síntese lógica. Todavia, o facto da modificação ser

introduzida em alto nível permite gerar uma solução estrutural com uma sobrecarga de teste

reduzida (área de implantação e degradação do desempenho). Na figura 16, “log” refere a

lógica de selecção entre as SI e as MSI na captura pelos registos que efectuam a

realimentação. O conjunto desses registos é sub-dividido em dois, conforme necessitam (ou

não) de ser mascarados.

C

FF

FF Log

M.S.I.s

S.O.s

FFP.O.s

P.I.s

CUT

Figura 3-12 – Mascaramento das S.I.s do CUT

Como hipótese alternativa, poder-se-ia proceder à injecção das máscaras de forma

assíncrona, procurando explorar os pinos de Reset e Set dos registos das variáveis RTL [28].

No entanto, verificou-se que tal era inviável, devido à forma como são descritos os circuitos

utilizando as linguagens de descrição de hardware. Com efeito, a única forma da descrição de

uma variável RTL ser actuada por sinais de Reset ou Set e, na síntese, de ser reconhecida a

funcionalidade que se pretende é quando a variável é descrita isoladamente num processo ou

com outras variáveis que tenham o mesmo comportamento (assíncrono). Por limitações da

linguagem não é possível definir uma variável com um Reset assíncrono e uma variável com

Page 105: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

81

Reset síncrono. Para este objectivo, têm de se utilizar dois processos, um para cada variável.

Como geralmente nos processos se encontram englobadas diversas atribuições entre diversas

variáveis, a alteração do comportamento de uma delas implicava reescrever todo o código

RTL fonte para contemplar esta possibilidade. Caso a injecção ocorra de forma síncrona,

basta acrescentar ao processo onde a variável é escrita, o sinal M.S.I, com origem no BIST_C,

para o mascaramento se realizar. O facto deste processo ser mais simples e mais robusto, uma

vez que a atribuição ocorre de forma síncrona filtrando os possíveis glitches, fez com que se

adoptasse esta técnica na metodologia proposta.

3.5.1. BIST_C (Controlador de BIST e Injector de Máscaras)

É a unidade que controla a aplicação do auto-teste integrado e as máscaras a injectar.

Numa fase anterior da metodologia já foi identificado o problema de testabilidade e

definido, para cada caso, qual a variável a controlar e qual o valor lógico injectar. Por cada

variável que é necessário controlar, existem duas situações possíveis:

1 - Na variável a controlar é necessário forçar um só valor.

• Nesta situação, por cada variável a controlar é criada uma saída no módulo

BIST_C, sendo um bit de controlo, para controlar a injecção. Quando esta saída

estiver activa, a variável RTL é controlada ao valor lógico pretendido. Quando a saída

estiver inactiva, o valor da variável RTL é originada pela sequencialidade do circuito

em função dos estímulos aplicados.

2 - Na variável a controlar é necessário forçar mais de um valor lógico, em ciclos de

relógio diferentes durante a simulação.

• Neste caso, a variável RTL aparece em diferentes condições, possivelmente em

expressões complexas e é necessário garantir o seu valor naquele instante. Durante a

aplicação da metodologia ao circuito de referência b13 [38] (capítulo 4) ocorre uma

situação destas.

Page 106: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

82

• Nesta situação, por cada variável a controlar são criadas duas saídas no

BIST_C, sendo uma delas um bit de controlo e a outra uma saída com o novo valor

lógico da variável, podendo variar a dimensão desta última variável desde um bit até

um barramento.

A presença destes sinais de activação das máscaras, permite definir dois graus liberdade da

metodologia:

- O instante da injecção (isto é, o ciclo de relógio em que a máscara é injectada)

- A duração da injecção (isto é, o número de ciclos de relógio durante os quais os valores

lógicos definidos pela máscara são forçados). Enquanto a saída de controlo de uma máscara

do BIST_C estiver activa, a máscara é injectada. Quando a saída de controlo estiver inactiva,

a variável afectada deixa de ser mascarada.

A topologia do módulo responsável pela injecção das mascaras é fácil de gerar e as

alterações para definir o instante a aplicar a máscara e a duração da injecção simples são

simples de aplicar. As diversas iterações pela qual a metodologia passa até se identificar quais

as melhores máscaras, sua instanciação e sequência, e os melhores instantes de injecção e sua

duração implicam a alteração do módulo em questão. No entanto, assim que o objectivo final

é atingido e é identificado o padrão de teste final (que conduza a FC(n)=100%), a arquitectura

é fixada (freezed), o hardware de injecção determinado e não se efectuam mais

reconfigurações. Assim, para conter os custos associados à sobrecarga de teste, o módulo em

questão, após a síntese, deixa de ser parametrizável. Não é, pois, mais possível alterar a ordem

das máscaras, o instante de injecção ou a sua duração17. Se tal fosse considerado no projecto,

as alterações a contemplar no módulo para suportar estas funcionalidades modificaram de

forma drástica a sua complexidade resultando numa síntese com maior penalização de área.

Como a ideia é aplicar a metodologia numa arquitectura de BIST, faz todo o sentido

simplificar o processo, para minimizar a sobrecarga de teste (TO, test overhead), uma vez que

as diversas iterações já identificaram o padrão de teste que conduz à situação mais favorável

(FC(n)=100%).

17 Presentemente, encara-se a possibilidade de explorar uma eventual variação na duração da aplicação de alguma máscara se, após a deifinição estrutural, se verifique aque a cobertura de faltas a esse nível necessita ser incrementada. Essa, como se refe no capítulo6, é uma das perspectivas de trabalho futuro.

Page 107: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

83

O módulo é constituído genericamente por um contador que controla o desenvolvimento

do processo de BIST. O controlo do valor de contagem do contador permite definir qual o

instante para aplicação da máscara. O registo do novo valor a aplicar, que constitui a máscara,

permite manter o valor aplicado possibilitando a duração da aplicação da máscara.

3.5.2. Lógica de Mascaramento de Entradas Primárias [P.I.]

No caso de não haver necessidade de se proceder ao mascaramento de P.I.s, este bloco

responsável pela funcionalidade não existe. No caso de haver necessidade de mascarar pelo

menos um bit de uma P.I., pode igualmente ocorrer duas situações, análogas ao sucedido para

as entradas S.I.s do CUT. De facto, o módulo do BIST_C responsável pela injecção da

máscara não distingue entre as máscaras para as P.I.s e as S.I.s, o que torna mais modular o

desenvolvimento do módulo, pois o objectivo é o mesmo, mascarar uma variável.

A lógica de mascaramento, tem a seguinte funcionalidade consoante o objectivo que se

pretenda:

1 - Na variável a controlar é necessário forçar um só valor.

Neste caso, a variável RTL pode ser formada por um bit ou por um barramento de bits

pois a questão é saber se é necessário forçar um valor, e neste caso, um bit de controlo é

suficiente. Nestas circunstâncias, o módulo recebe o valor do LFSR e o bit de controlo, com

se ilustra na Figura 3-13:

Lógica deMascaramento

LFSR[i]

Act_Sinal

S.I.[i]

Figura 3-13 - Interface da lógica de mascaramento, para forçar um valor numa variável genérica

A tabela da verdade da função realizada pela Lógica de Mascaramento (ML, Masking

Logic) é a indicada na Tabela 3-2.

Page 108: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

84

Tabela 3-2 – Função a desempenhar quando se pretende forçar um valor

Valor a forçar Valor a forçar Lfsr[i] Act_Sinal (1) (0) 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 0

A lógica responsável pela função de mascaramento de uma entrada primária ou secundária

é, caso se pretenda forçar somente um bit (0 ou 1), a das Figura 3-14 e Figura 3-15. LFSR[i]

Act_Sinal

S.I.[i]

Figura 3-14 – Funcionalidade quando se injecta um

(‘1’)

LFSR[i]

Act_Sinal

S.I.[i]

Figura 3-15 – Funcionalidade quando se injecta um

(‘0’)

Verilog: Assign S.I.[i] = LFSR[i] OR Act_Sinal; Verilog: S.I.[i] = LFSR[i] AND (NOT Act_Sinal);

2 - Na situação em que é necessário forçar mais do que um valor numa variável RTL, em

ciclos de relógio diferentes da simulação, passa a ser necessário um bit de controlo e um sinal

com o valor a fixar. Neste caso, a ML assume a configuração da Figura 3-16.

Lógica deMascaramento

LFSR[i]

Act_Sinal_Valor

Act_Sinal S.I.[i]

Figura 3-16 – Interface da lógica de mascaramento, para forçar mais do que um valor numa variável RTL

genérica

Nesta situação passamos a ter um multiplexador (MUX), onde o bit de selecção é o bit de

controlo da máscara e é possível seleccionar entre o valor do LFSR ou o novo valor a impor à

variável.

3.5.3. Lógica de Mascaramento de Entradas Secundárias [S.I.]

Page 109: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

85

Como ilustrado na Figura 3-12, o sinal M.S.I.s (Masked Secondary Inputs) é responsável

por activar a injecção de uma máscara numa S.I. Podem existir duas situações: (1) somente

um bit de controlo para activar a máscara ou (2) um bit de controlo e um sinal com o valor a

injectar. A injecção de uma máscara numa S.I do CUT requer, como se referiu, a alteração do

código RTL fonte. A forma como se procede para ambas as situações é descrito em seguida.

Por cada S.I. a mascarar, altera-se a interface do CUT por forma a adicionar mais uma

entrada, situação em que a variável só necessita de um bit de controlo para a injecção e é

independente do tamanho da variável a controlar. Caso seja necessário forçar mais de um

valor lógico, para além do de controlo é necessário outro sinal tamanho depende da variável a

mascarar e possui o valor a impor na injecção.

A reconfiguração do código RTL fonte, de modo a incluir as alterações atrás referidas, é

exemplificada na Figura 3-17.

always @(posedge clock or posedge reset) begin if (reset) begin S1 <= 4'b0000 ; soc <= 1'b0 ; canale <= 4'b0000 ; conta_tmp <= 4'b0000; send_data <= 1'b0 ; load_dato <= 1'b0 ; mux_en <= 1'b0 ; end else begin case (S1) 4'b0000 : begin mux_en <= 1'b1 ; S1 <= 4'b0001 ; end

.

.

. endcase end end

Figura 3-17 – Excerto de código reconfigurado para injecção de máscaras para o caso do CUT b13.

No excerto do código é exemplificado o local onde a adição da condição deve ser

efectuada. Se a alteração for realizada noutra localização da descrição RTL, o comportamento

Os sinais M.S.I.s são aplicados nesta localização.

if (M.S.I.1 active) begin S.I.1 <= Masked end if (M.S.I.n active) begin S.I.n <= Masked end

Page 110: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

86

do código passa a ser outro. Em consequência, na síntese lógica, existem problemas com as

ferramentas de síntese, pois a descrição deixou de representar uma template para corresponder

a um comportamento de uma porta lógica.

3.6. 1º Ciclo: Preparação do Teste. Inserção de Pontos de Teste (TPI)

As métricas de testabilidade, anteriormente definidas, possibilitam guiar a escolha de

pontos adicionais de teste. A inserção de pontos adicionais de teste (TPI, Test Point Insertion)

é a técnica que permite injectar as máscaras para aumentar a controlabilidade e/ou a

observabilidade, em nós do circuito em que tal seja necessário por não ser possível elevar os

valores das métricas de testabilidade observando as saídas e aplicando vectores de teste nas

entradas primárias do circuito. As métricas de testabilidade usadas permitem, pois:

• Apoiar a selecção do tipo e da localização de pontos adicionais de teste:

• A inserção de pontos de controlo visa sinais associados a faltas com reduzido o valor

de controlabilidade. Em técnicas de test-per-scan, pode forçar a interrupção de

realimentações no circuito;

• A inserção de pontos para observação é realizada para facilitar a detecção de faltas

com reduzido valor de detectabilidade-n, mas com valor elevado de controlabilidade-

n.

• Avaliação da qualidade do teste obtido após a inserção de pontos de teste – máscaras e

de S.O. seleccionadas - a correlação entre a detecção com a multiplicidade n de faltas

RTL e a detecção de faltas realistas difíceis permite a utilização de FC(n) para avaliar

ganhos associado a diferentes selecções de pontos de teste adicionais, e assim estudar

os compromissos do projecto.

3.7. 2º. Ciclo: Implantação do Auto-teste. Síntese Lógica. Validação da

Qualidade do Teste

Quando se obtém, a nível RTL, uma detecção múltipla (n=5) de faltas RTL no sistema

sequencial, modificado para permitir a injecção de faltas nos registos de realimentação,

entende-se que se dispõe de um auto-teste integrado (m-BIST) pouco intrusivo, que mantém o

carácter sequencial do CUT e que deve permitir um auto-teste eficaz a nível estrutural.

Procede-se assim para o 2º. Ciclo da metodologia, que consiste

Page 111: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

87

(1) na implantação final da arquitectura m-BIST,

(2) na síntese lógica para geração da descrição estrutural do sistema com auto-

teste e finalmente

(3) na validação da qualidade do teste gerado a nível RTL, através da

simulação de faltas estruturais.

A implantação final da arquitectura m-BIST visa obter a versão final do código RTL

contendo a descrição do sistema integrado com auto-teste. Neste sub-processo do fluxo de

projecto, executam-se duas tarefas: (1) remoção das alterações efectuadas no código RTL para

a injecção de faltas, compatível com a ferramenta VeriDOS, e (2) geração do módulo

analisador de assinatura (o MISR), a ligar na saída do CUT. A razão de relegar para o 2º.

Ciclo a geração do MISR resulta de se procurar conter os custos de simulação. Com efeito,

supondo que o efeito de mascaramento (aliasing) do MISR é desprezável, se as faltas forem

detectadas, ciclo a ciclo de relógio, na saída do CUT, também o serão na assinatura final do

MISR. Desse modo, é preferivel aliviar os custos de simulação a nível RTL, realizando-a sem

o MISR, e só o inserir antes da síntese lógica.

A síntese lógica é realizada, de acordo com as especificações do projecto, e não depende

da introdução da funcionalidade de teste. Nesta Tese, ilustra-se duas opções de síntese, uma

valorizando a minimização lógica (e, portanto, de área de implantação (layout)), e outra,

valorizando a maximização do desempenho do sistema (isto é, a sua rapidez de resposta).

Dispor de duas estruturas, implementando a mesma funcionalidade, permite verificar se a

metodologia m-BIST para sistemas sequenciais que se propõe é fracamente dependente da

topologia de realização.

Após a síntese lógica, há que validar a qualidade da solução de auto-teste integrado a que

se chegou (de acordo com as características valorizadas – em particular, TE, TO, TL). Para

tal, procede-se à simulação de faltas a nível lógico. Para tal, pode recorrer-se

à ferramenta académica VeriDOS, uma vez que é um simulador multi-nível, que

aceita até modelos de faltas estruturais associados aos defeitos físicos – tais como

curto-circuitos entre pistas condutoras [32], ou

a uma ferramenta comercial, tal como o simulador Verifault™, da Cadence.

Page 112: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

88

A simulação de faltas, a nível estrutural, com a ferramenta VeriDOS de sistemas

digitais, para permitir um modelo de faltas associadas às entradas e saída de cada elemento

lógico, requer, para cada tecnologia semicondutora, uma caracterização de cada biblioteca

de células (cell library). Tal caracterização está realizada para uma biblioteca de células de

elevada qualidade, desenvolvida no Grupo de Qualidade e Teste de Sistemas Electrónicos

do INESC-ID, a biblioteca Idlib10 [90]. Com efeito, a forma do VeriDOS injectar faltas

(por exemplo, do tipo LSA) nas entradas de cada elemento lógico passa por a ferramenta

conhecer a função lógica de cada elemento lógico, e portanto avaliar como essa tabela de

verdade se modifica, na presença da falta.

Assim, o processo de simulação de faltas com o VeriDOS em circuitos já sintetizados para

bibliotecas não caracterizadas nesta ferramenta, resulta numa avaliação da cobertura de faltas

por excesso, mais favorável, da que resultaria se se utilizasse um modelo de faltas estruturais

nas entradas e saídas de cada elemento lógico. De facto, sem essa caracterização, o modelo de

faltas alista apenas faltas nas saídas de cada elemento lógico, isto é o modelo de faltas NSA

(Node Stuck-At). Em nós com leque de saída (fan-out) superior à unidade, tais faltas impõem

uma diferença Booleana em todas as linhas lógicas que saem desse nó. Adicionalmente, a

simulação de faltas com a ferramenta VeriDOS é computacionalmente menos eficiente do que

a simulação de faltas com uma ferramenta comercial, o que pode ser crítico na simulação de

faltas de sistemas sequenciais complexos, como o PIC utilizado no capítulo 5 como

demonstrador.

A utilização de um simulador de faltas comercial, tal como o Verifault™, da Cadence,

permite utilizar modelos de faltas estruturais nas entradas e nas saídas de elementos lógicos

(tal como o modelo de faltas do tipo LSA), de forma computacionalmente muito eficiente.

Além disso, apresenta outra vantagem significativa: pretendendo introduzir a metodologia

proposta no fluxo de projecto de um sistema integrado, a ser levado a cabo por uma empresa

industrial, é vantajosa a utilização de ferramentas comerciais. Este é o caso deste Projecto

ASSOCIATE, no qual um dos seus objectivos é a transferência da tecnologia de teste para a

Tecmic [39]. Este assunto é abordado na secção seguinte.

Page 113: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

89

3.8. Modificação do Fluxo de Projecto

A metodologia de m-BIST para sistemas sequenciais desenvolvida nesta Tese foi

introduzida, com carácter experimenal, no fluxo de projecto de circuitos integrados de

aplicação específica (ASIC, Application Specific Integrated Circuit) da empresa Tecmic.

Ilustra-se na Figura 3-18 o novo fluxo de projecto. A metodologia foi ensaiada com o

demonstrador que se descreve no capítulo 5 – o controlador PIC de um sistema electrónico

que realiza a função de contador estático de energia eléctrica. A intervenção da metodologia

no fluxo de projecto realiza-se basicamente a dois níveis de abstracção: a nível RTL e a nível

lógico. A nível RTL, realiza-se todo o 1º. Ciclo da metodologia proposta, definindo-se o

padrão de auto-teste e a descrição comportamental de toda a funcionalidade de BIST

(controlador, LFSR, MISR, lógica de mascaramento e CUT reconfigurado para suportar a

injecção de máscaras). Neste 1º. Ciclo avaliam-se ainda as métricas de testabilidade e

removem-se eventuais erros de projecto. A nível lógico, após a síntese lógica, realiza-se a

simulação de faltas estruturais e procede-se a avaliação final da qualidade do auto-teste – a

eficácia do teste (TE), medida por FC, a sobrecarga do teste (TO), medida pelo aumento

percentual de área e a redução percentual da frequência de trabalho, o comprimento do teste

(TL) (definido a nível RTL, e eventualmente aprimorado a nível lógico) e a potência do teste

(TP).

Page 114: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

90

Especificação

do ASIC

Descrição VHDL RTL

Simulação de Alto nível

Simulação Funcional OK?

Síntese para nível lógico, considerando atrasos das portas lógicas

Simulação Temporal e Simulação de faltas

Simulação Temporal e Simulação Faltas OK?

Optimização fina da

arquitectura do circuito

com m-BIST

Correcções

Parâmetros da biblioteca de

ASIC (design kits)

Não

Não

Sim

Envio da descrição estrutural para uma foundry

Sim

Processo de fabrico em curso numa Foundry

Teste dos protótipos

Processo de desenvolvimento de um ASIC na

Tecmic

Actividades emazul são executadasexternamente pelaASIC foundry

Análise DFT e Inserção de estruturas de m-BIST

a nível RTL

Ferramentas: VeriDOS ASCOPA

Nova solução paraDFT mostradasem roxo

Figura 3-18 – Fluxo de projecto de ASICs da Tecmic, incluindo a inserção de m-BIST a nível RTL.

Page 115: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

91

3.9. Conclusões

Neste capítulo descrevem-se as métricas de testabilidade, baseados nos modelos de faltas

anteriormente definidos, e a definição de uma metodologia de preparação de auto-teste para

aplicação na produção, baseada no entanto a nível RTL, que visa uma cobertura de faltas

realistas elevada. Esta orientação é efectuada com base nos diferentes modelos de faltas

usados a nível RTL.

As métricas de testabilidade para o nível RTL, controlabilidade-n FCC(n), e

detectabilidade-n, FC(n) são baseados no número de activações e de detecções de cada falta

obtidas com um dado padrão de teste.

A metodologia de preparação do teste no nível RTL é baseada nas métricas de

testabilidade e na sua correlação iterativa, perscrutando os cantos escuros da funcionalidade

com vectores que são obtidos a partir de máscaras geradas automaticamente pela ferramenta

ASCOPA. Estas máscaras definem os bits necessários para assegurar a activação da

funcionalidade associada aos cantos escuros. Dessa forma, pode maximizar-se a probabilidade

de detecção de faltas realistas, a nível estrutural, sendo a cobertura de faltas fracamente

dependente da estrutura final do circuito a sintetizar.

Identificaram-se os graus de liberdade da metodologia proposta: o grau de multiplicidade

de detecção de faltas RTL requerido, n, a periodicidade da aplicação do sinal de Set/Reset, o

número total de vectores a aplicar, N, o número de vectores a forçar com cada máscara, e a

ordem de aplicação das máscaras e o número de vezes em que são instanciadas.

As métricas identificam problemas de testabilidade do sistema integrado, mesmo que o

número de vectores aleatórios utilizado para as obter seja reduzido.

Foi discutida a geração e a aplicação das máscaras tendo em vista a minimização do

número de máscaras e do número de bits definidos nestas.

Foi referido que, com valores de multiplicidade n entre 5 e 10, se obtém bons valores de

correlação entre a doberture múltipla de faltas a nível RTL (FC(n)) e a cobertura de faltas

estruturais (FC, para faltas do tipo LSA, ou DC, para faltas realistas). A metodologia permite

ainda a identificação de erros de projecto (identificando “funcionalidade” impossível de

Page 116: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

92

activar) e uma análise crítica à arquitectura RTL proposta para o projecto, do ponto de vista

da sua testabilidade. Em particular, a metodologia explora a inserção criteriosa de pontos de

teste (TPI), reforçando primeiro a controlabilidade de variáveis e condições (através das

máscaras) e, em segundo lugar, reforçando a observabilidade (através da inclusão de algumas

saídas secundárias (SO) no analisador de assinatura.

Page 117: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

93

4. Exemplo de Aplicação: Circuito de Referência b13

Um dos casos de estudo utilizado para avaliar a metodologia e ferramentas utilizadas

neste trabalho é o circuito de referência b13 do ITC’99 de Torino [37][38] (numa descrição

comportamental RTL em VHDL traduzido para Verilog).

4.1. Funcionalidade

O circuito realiza 4 máquinas de estados de Moore. É composto por 53 registos: 10

para as saídas registadas {soc, load_dato, add_mpx2, mux_en, error, data_out e

canale[3:0]} e 43 registos de realimentação { S1[2:0], S2[1:0], mpx, rdy, send_data,

confirm, shot, send_en, tre, out_reg[7:0], next_bit[3:0], tx_end, itfc_state[1:0], send,

load, tx_conta[9:0] e conta_tmp[3:0] }. Existem 12 entradas primárias {eoc, dsr,

data_in[7:0], reset e clock}.

O diagrama de topo do módulo b13, contendo a identificação da sua interface com o

exterior, é representado na Figura 4-1. As suas principais características são resumidas na

Tabela 4-1.

Figura 4-1– Interface do circuito de referência b13.

Tabela 4-1 – Características do circuito de referência b13

Caracteristicas do circuito b13 # FF P.I. P.O. # Linhas Verilog # processos Função

53 10+2 10 430 5 Interface para sensores meteorológicos

Page 118: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

94

O circuito implementa a função projectada através da interface entre as quatro

máquinas de estado cuja interacção é reproduzida na Figura 4-2 para facilitar a

compreensão.

FSM 2- S2 -

FSM 1- S1 -

FSM 3- itfc_state -

FSM 4- next_bit -

Regs. Internos+

Lógica

Regs. Internos+

Lógica

Regs. Internos+

Lógica

eoc (P.I.)

conta_tmp[3:0]

soccanale[3:0]

load_datomux_ensend_data

mpx

add_mpx2 (P.O.)

shot

confirm

load

send

send_en dsr (P.I.)

data_in[7:0] (P.I.)

tx_end

data_out (P.O.)

error (P.O.)

tx_conta[9:0]

rdy

(P.O.)

Figura 4-2 – Interacção entre as 4 máquinas de estado do circuito de referência b13

4.2. 1º. Ciclo. Erros de Projecto

Aplicando a metodologia proposta, são recolhidos dados da avaliação das

probabilidades de controlabilidade e de observabilidade de variáveis e condições com a

ferramenta ASCOPA. Os resultados probabilísticos do ASCOPA permitem averiguar,

nesta fase, da existência de algum erro de projecto (design flaw) na descrição

comportamental do circuito.

Page 119: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

95

Neste caso foi detectado um desses erros. A variável interna tx_conta foi declarada

como sendo um vector de 10 bits e implementa a funcionalidade de um contador. Esta

variável é comparada com o valor de uma constante Delaytime que vale 104 =

10’b0001101000; e no caso de ser superior, a variável tx_conta é colocada a zero. Desta

forma, os 3 bit mais significativos (MSBs) nunca deixam de ter o valor lógico ‘0’.

Consequentemente, quando se proceder à injecção de faltas, tem-se obrigatoriamente 3

faltas LSA @ 0 não detectadas. Como o objectivo é garantir uma FC ao nível RTL de

100%, esta situação foi corrigida. A variável tx_conta foi redimensionada para ter

somente 7 bits.

4.3. 1º. Ciclo: Preparação de Auto-teste a Nível RTL

Após as alterações no código Verilog comportamental (RTL), de forma a permitir a

injecção de faltas, através da ferramenta RTL2FO, realizou-se a simulação de faltas, a

nível RTL, com a ferramenta VeriDOS, para estudar primeiro a influência do sinal de

Reset na cobertura de faltas do circuito.

A simulação de faltas foi efectuada com um padrão de faltas de 10k vectores gerados

por um LFSR de 10 bits. A lista de faltas a nível RTL contém um universo de 230 faltas.

A periodicidade do sinal de Reset foi variada entre 250 e 2500. A cobertura de faltas a

nível RTL, FC(n), foi calculada para uma detecção múltipla de n=5. A simulação de uma

falta, a nível RTL, é abandonada pelo VeriDOS quando é detectada 30 vezes (fault

dropping). Esta estratégia permite reduzir muito os custos computacionais do processo de

simulação de faltas. Os resultados de simulação obtidos encontram-se no gráfico da

Figura 4-3.

Page 120: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

96

Figura 4-3 – Evolução da FC em função da periodicidade do sinal Reset

O valor máximo de FC(n) atingido, para este conjunto de vectores de teste pseudo-

aleatórios, foi de 89,74% para uma periodicidade de 2500. No entanto, como a

periodicidade do sinal de Reset é muito grande, e o objectivo é apresentar um auto-teste

integrado de curta duração, optou-se por usar a periodicidade de 1250. Este valor inferior

da periodicidade do sinal de Reset apresenta a melhor evolução da cobertura de faltas no

imediato, conduzindo também a um resultado de cobertura de faltas próximo do máximo

obtido, 87,91%.

Os resultados recolhidos das simulações permitiram identificar quais os cantos

escuros da funcionalidade e eventuais problemas de controlabilidade e observabilidade.

Na Tabela 4-2 e Tabela 4-3 encontram-se listados os problemas do tipo 1 e tipo 2

identificados. Nestas tabelas alista-se o número de detecções (DO) e de vezes que as

condições são controladas (CO).

Tabela 4-2 – Problemas do tipo 1

Tipo 1 Condições DO CO

Cond_149_20 0 0 Rdy_1 0 56 Tre_1 17 80

Mpx_0 0 532 Cond_208_21 0 596

Tabela 4-3 – Problemas do tipo 2

Tipo 2 Condições DO CO

Tx_end 30 3 Confirm_0 30 3 Cond_4_20 17 80

Cond_319_20 30 5 Cond 2 30 8

Page 121: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

97

Cond_304_20 30 8 S2_0_0 30 11 Shot_0 30 11

Send_20 30 11 Load_20 30 11

Cond_3_20 30 11 Data_out_1 22 22

Cond_349_20 30 33 S2_1_1 30 67

Cond_199_21 30 70 Itfc_state_0_1 30 92 Itfc_state_0_1 30 92 Cond_129_20 30 120 Add_mpx2_0 30 532

Uma vez que o circuito de referência b13 apresenta um carácter de controlo muito

acentuado, em virtude da interligação de 4 máquinas de estado, um bom ponto de partida

é averiguar qual é a probabilidade (em percentagem) de um estado ocorrer em cada uma

das máquinas. Estados pouco exercitados deverão corresponder a “cantos escuros” do

circuito, situação que deverá ser corrigida de forma a aumentar a testabilidade da

estrutura que implementa essa funcionalidade.

1ª máquina de estado - FSM1 (FSM, Finite State Machine)

Variável de estado é o registo S1 [2:0], estando definidos todos os 8 estados possíveis. A

Tabela 4-4 resume os valores de activações dos estados durante a simulação efectuada.

Tabela 4-4 – Activações dos estados da FSM1

Codificação Nº de Activações Percentagem000 1102 11,02%001 1108 11,08%010 1107 11,07%101 2268 22,68%110 1105 11,05%111 1104 11,04%100 1104 11,04%

Variável de estado - S1 [2:0]

Consultando os diagramas das máquinas de estado (FSM) para este circuito, pode

constatar-se que, numa primeira fase de análise, não se identifica nenhum problema de

testabilidade no fluxo desta máquina. 2ª máquina de estado - FSM2

Page 122: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

98

Variável de estado é o registo S2 [1:0], estando definidos todos os 4 estados possíveis. A Tabela 4-5 resume os valores de activações dos estados durante a simulação efectuada.

Tabela 4-5 – Activações dos estados da FSM2

Codificação Nº de Activações Percentagem00 56 0,56%10 9933 99,33%11 0 0,00%01 11 0,11%

Variável de estado - S2 [1:0]

A análise daTabela 4-5 permite identificar problemas sérios de testabilidade no fluxo

desta máquina de estado. Pode constatar-se que a máquina passa a maior parte da

simulação “presa” no estado 2 (codificação: 10). A consulta do fluxograma identifica que

a condição Confirm = 0 é activada demasiadas vezes, o que “prende” a máquina neste

estado. Informação sobre a variável Confirm encontra-se resumida na Tabela 4-6.

Tabela 4-6 - Problemas identificados no fluxo da FSM2

Variável RTL Activações a ZERO Activações a UM CONFIRM 9997 3 Faltas Associadas Controlab Detectab Controlab Detectab CONFIRM_LSA@0 3 30 CONFIRM_LSA@1 9997 30

Portanto, uma máscara útil deverá garantir que a condição Confirm adquira a valor

lógico ‘1’ por um número razoável de períodos de relógio, de forma a permitir a natural

transição entre estados. A informação, sobre as máscaras, fica resumida na Tabela 4-7.

Tabela 4-7 – Máscaras definidas para a FSM2

Máscaras Valor a forçarConfirm UM

Este problema já tinha sido descoberto e considerado como sendo do tipo 2, ou seja,

boa detectabilidade mas reduzida controlabilidade. Se se proceder à análise do código

RTL para perceber qual a razão do sinal CONFIRM ter uma fraca controlabilidade a 1, a

justificação está na 3ª máquina de estados, como se pode depreender da Figura 4-2. 3ª máquina de estado - FSM3

Page 123: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

99

Variável de estado é o registo Itfc_state [1:0], estando definidos todos os 4 estados

possíveis. A Tabela 4-8 resume os valores de activações dos estados durante a simulação

efectuada.

Tabela 4-8 – Activações dos estados da FSM3

Codificação Nº de Activações Percentagem00 81 0,81%01 11 0,11%10 11 0,11%11 9897 98,97%

Variável de estado - Itfc_state [1:0]

Também aqui a análise da Tabela 4-8 permite identificar problemas de testabilidade

sérios no fluxo desta máquina de estado. Podemos constatar que a máquina passa grande

parte da simulação “presa” no estado 3 (codificação: 11). A consulta do fluxograma

identifica que a condição Tx_end = 0 é activada também demasiadas vezes, o que

“prende” a máquina neste estado. Informação sobre a variável Tx_end encontra-se

resumida na Tabela 4-9.

Tabela 4-9 – Problemas identificados no flow da FSM3

Variável RTL Activações a ZERO Activações a UM TX_END 9997 3 Faltas Associadas Controlab Detectab Controlab Detectab CONFIRM_LSA@0 3 30 CONFIRM_LSA@1 9997 30

Portanto, uma máscara útil deverá garantir que a variável Tx_end adquira a valor

lógico ‘1’ por um número razoável de períodos de relógio, de forma a permitir a natural

transição entre estados. A Tabela 4-10 apresenta a informação, relativamente a máscaras,

até agora possivelmente definidas.

Tabela 4-10 – Máscaras definidas para FSM2 e FSM3

Máscaras Valor a forçarCONFIRM UM TX_END UM

Também este problema já tinha sido detectado e classificado como sendo do tipo 2. É

devido ao deficiente flow desta máquina que a problema detectado na 2ª máquina de

estado (FSM2) existe. Contudo, verifica-se, com base no código RTL, que a resolução do

problema de controlabilidade do sinal Tx_end (através da máscara que force Tx_end=’1’)

vai minorar o problema de testabilidade associada à condição CONFIRM estar demasiado

tempo forçada a ‘0’. Com efeito, convém recordar que os resultados de simulação, a nível

Page 124: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

100

RTL, dependem do padrão pseudo-aleatório (ou pseudo-aleatório com máscaras) que é

utilizado como ficheiro de estímulos. Sendo uma amostra de simulação, não é um cálculo

probabilístico, que forneça informação sobre a controlabilidade e observabilidade de uma

variável ou condição. Sendo assim, para este caso de estudo, talvez não se justifique a

aplicação destas 2 máscaras, pois uma delas [Tx_end (1)] deverá resolver o problema de

testabilidade que a outra iria resolver. 4ª máquina de estado FSM4

Variável de estado é o registo Next_bit [3:0]. Neste caso, só estão definidos 10 de todos

os estados possíveis (24 =16). A Tabela 4-11 resume os valores de activações dos estados

durante a simulação efectuada.

Tabela 4-11 – Activações dos estados da FSM4

Codificação Nº de Activações Percentagem0000 6933 69,33%0010 523 5,23%0011 318 3,18%0100 318 3,18%0101 318 3,18%0110 318 3,18%0111 318 3,18%1000 318 3,18%1001 318 3,18%0001 318 3,18%

Variável de estado - Next_bit [3:0]

A análise da Tabela 4-11 permite identificar igualmente problemas de testabilidade no

fluxo desta máquina de estado. Pode constatar-se que a máquina passa uma boa parte da

simulação “presa” no estado 0 (codificação: 0000). A consulta do fluxograma identifica

que a condição para transitar deste para outro estado obriga à verificação de duas

condições: Send_en = 1 e (Tx_conta > DelayTime). A Tabela 4-12 procura resumir a

informação sobre estas condições.

Tabela 4-12 – Problemas identificados no fluxo da máquina FSM4

Variável RTL Activações a ZERO Activações a UM Cond_l_349 = ((tx_conta > DelayTime) && send_en); 9967 33 Send_en 6297 3703 Faltas RTL Associadas Controlab Detectab Controlab DetectabSEND_EN_LSA@0 3703 30 SEND_EN_LSA@1 6297 30 TX_CONTA_G_DelayTime_LSA@0 33 30 TX_CONTA_G_DelayTime _LSA@1 9967 30

Page 125: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

101

A condição Send_en = 1 tem uma boa probabilidade de se verificar (37%). Contudo,

a condição cumulativa (Send_en=1 e ((Tx_conta > DelayTime)) só apresenta uma

percentagem de 0,33% de ser verdadeira. Este facto explica a razão da 4ª máquina de

estado apresentar uma distribuição de probabilidades dos estados tão desequilibrada.

A execução do flow desta máquina é defeituosa devido à existência de um contador,

que somente possibilita a transição de estados a cada 105 impulsos de relógio.

Apesar da probabilidade de Send_en ser aceitável e uma vez que é necessário

mascarar a condição cumulativa para haver transição entre estados, de nada serve o

mascaramento se afinal nessa altura a primeira condição não se verifica (Send_en=1).

Portanto para obrigar à transição convém forçar ambas as condições.

A análise RTL do código fonte revela que a resolução do problema de flow de FSM4

implica uma alteração da controlabilidade, para melhor, relativamente ao valor 1 na

variável de um bit, Tx_end. Variável essa que já tinha sido identificada como sofrendo

um problema de controlabilidade, a esse valor “1”, motivo pelo qual tinha já sido

definida uma máscara para resolver o problema de testabilidade. Portanto a resolução do

problema da FSM4, irá minorar o problema de testabilidade identificado relativamente a

Tx_end, pelo que talvez não surta efeito a aplicação da máscara definida relativa a

Tx_end.

O que se verifica num circuito fortemente sequencial, é como é possível que

diferentes variáveis estejam fortemente relacionadas. Deste modo, um possível problema

de testabilidade, numa variável genérica, pode implicar uma intervenção directa e local

na própria variável para resolver o problema de testabilidade em questão, ou procurar

averiguar qual a origem desse problema de testabilidade. Isto implica perceber quais as

variáveis RTL relacionadas com o problema de testabilidade e que o originam. Este tipo

de intervenção surte melhor efeito, pois ajuda a reduzir o número de máscaras aplicadas.

A Tabela 4-13 resume a informação de todas as máscaras definidas até ao momento

com base na análise dos problemas de testabilidade encontrados.

Page 126: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

102

Tabela 4-13 –Máscaras definidas para FSM 2, FSM3 e FSM4

Máscaras Valor a forçarConfirm UM Tx_end UM Send_en UM Tx_conta DelayTime +1

Analisadas que estão as 4 máquinas de estado e identificados alguns dos cantos

escuros deveria proceder-se a uma nova simulação para aferir da cobertura de faltas com

a injecção das máscaras, ou seja, forçando os respectivos bits a mascarar em diferentes

alturas para averiguar das alterações nas faltas não detectadas. No entanto, não se

procedeu a nenhuma simulação nesta fase, pois o tempo em que este circuito está em

análise sugere que outros problemas estão por resolver. A tabela dos problemas do tipo 2

é disso exemplo.

A análise da tabela de problemas do tipo 3, permite concluir sobre o motivo da sua

fraca detectabilidade e, no entanto, boa controlabilidade de vários sinais.

Tipo 3 Condições Detec Control Out_reg_0_0 <5 2557<x<7443Out_reg_0_1 “ “ Out_reg_1_0 “ “ Out_reg_1_1 “ “ Out_reg_2_0 “ “ Out_reg_2_1 “ “ Out_reg_3_0 “ “ Out_reg_3_1 “ “ Out_reg_4_0 “ “ Out_reg_4_1 “ “ Out_reg_5_0 “ “ Out_reg_5_1 “ “ Out_reg_6_0 “ “ Out_reg_6_1 “ “ Out_reg_7_0 “ “ Out_reg_7_1 “ “ Data_in_0_0 “ “ Data_in_0_1 “ “ Data_in_1_0 “ “ Data_in_1_1 “ “ Data_in_2_0 “ “ Data_in_2_1 “ “ Data_in_3_0 “ “ Data_in_3_1 “ “ Data_in_4_0 “ “ Data_in_4_1 “ “ Data_in_5_0 “ “ Data_in_5_1 “ “

Page 127: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

103

Data_in_6_0 “ “ Data_in_6_1 “ “ Data_in_7_0 “ “ Data_in_7_1 “ “

A análise das faltas não detectadas em bits de variáveis RTL demonstra um certo

padrão. Como a métrica de testabilidade considera detecções múltiplas ao nível RTL,

verifica-se que a entrada primária, de 8 bits, data_in e a variável interna out_reg,

igualmente com 8 bits, avolumam a lista de faltas não detectadas (n < 5) para todos os

bits das variáveis. A análise dos resultados mostra que todas estas variáveis têm valores

aceitáveis de controlabilidade e fraca detectabilidade.

A análise do código RTL permite concluir que a variável data_in é carregada, em

certas condições, para a variável interna out_reg e posteriormente é efectuado o

deslocamento série deste valor por uma saída primária data_out, deslocamento esse

controlado pela 4ª máquina de estados.

Uma solução fácil seria tornar observável a variável interna out_reg, pois estamos na

presença de um tipo de problema do tipo 3. Desta forma, o impacte no circuito seria

mínimo. Contudo, esta forma de TPI (Test Point Insertion) para aumentar a

observabilidade é muito penalizadora, já que obriga a adicionar mais 8 saídas primárias

para o MISR. Assim, procurou-se antes explorar a funcionalidade do circuito e controlar

o carregamento do data_in para o out_reg e o seu posterior deslocamento para o exterior

mediante o uso de máscaras.

O controlo do carregamento da variável data_in para a variável out_reg é efectuado

pelas condições Load = 1 e Tre = 0 (variáveis RTL internas). Após o carregamento, tem-

se de inibir novos carregamentos até se efectuar o deslocamento para fora do valor

carregado, controlado pela 4ª máquina de estado cujas máscaras para permitir a

circulação entre estados já foram identificadas. Caso contrário, ir-se-ia corromper os

dados carregados. A variável Load = 0 impede novos carregamentos para a variável

out_reg.

Assim, numa primeira fase da análise, obtiveram-se as 4 máscaras definidas na Tabela

4-14.

Page 128: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

104

Tabela 4-14 - Máscaras definidas

Máscaras Máscara Ordem Load(1) e Tre(0) M1 1ª Load(0) e Tx_conta(105d) e Send_en(1) M2 2ª Tx_end (1) M3 - Confirm(1) M4 -

Destas máscaras, somente se aplicam as 2 primeiras. Como anteriormente referido, a

resolução do problema de flow da 4ª máquina de estados (FSM4) permitirá resolver o

problema de Tx_end que foi identificado como sendo do tipo 2 que, por sua vez, vai

minorar o problema de controlabilidade do sinal Confirm.

Seguindo a metodologia proposta, segue-se a simulação de faltas a nível RTL com a

injecção de máscaras e análise de resultados.

O diagrama que descreve a metodologia proposta para a injecção de máscaras já foi

apresentado no capítulo 3, e é aqui repetido na Figura 4-4, para ajudar na compreensão.

Nele se ilustra como se procede à injecção de máscaras em RTL. Esta arquitectura

acabará por ser igualmente aplicada no nível lógico.

CUT

LFSR

MUX

BIST_C(BIST Controller+ Mask Injector)

MISR

M.S.I.s

P.I.s P.O.s

S.O.s

P.I.s (M)Masking Logic

(ML)

P.I.s

Start_Test

Masks to apply

m+n

m

n

m

n

Figura 4-4 – Arquitectura da metodologia para injecção de máscaras com m-BIST e CUT

sequencial.

Após a re-simulação, usando uma topologia onde se injectam as máscaras, é

apropriado mostrar quais as alterações que sucedem na lista de problemas do tipo 1 e 2,

bem como no funcionamento das máquinas de estado e os valores atingidos de FC.

Page 129: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

105

A Tabela 4-15 apresenta os seguintes problemas do tipo 2 detectados:

Tabela 4-15 – Problemas identificados no CUT

Tipo 2 Condições Detect Controlcond_l_149_20 30 75cond_l_129_20 30 119cond_2_20 30 165cond_l_319_20 30 173confirm_0 30 318cond_4_20 30 318shot_0 30 326send_20 30 326cond_3_20 30 326tx_end_20 30 371S2_0_0 30 483

Houve uma diminuição em relação ao número de problemas do tipo 2.

Adicionalmente, deixaram de haver problemas do tipo 1 (< COi, < DOi). Ao contrário da

situação anterior, antes da injecção de máscaras, já não existem problemas do tipo 3 (>

COi, < DOi). A situação actual é de cobertura de faltas a 100%. No entanto, não se

atingiu uma situação em que todos os problemas sejam do tipo 4 (> COi, > DOi). A Tabela

4-15 resume os problemas existentes actualmente, ou seja boa detectabilidade mas ainda

existindo problemas de controlabilidade [tipo 2]. No entanto, como a detectabilidade

atingida é de 100%, entende-se que os problemas de testabilidade estão resolvidos.

A aplicação do padrão de teste, orientado pelas métricas de testabilidade

disponibilizados pelos resultados da ferramenta VeriDOS permitiu obter o gráfico de

coberturas de faltas RTL da Figura 4-5.

Page 130: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

106

Figura 4-5 – Gráfico da cobertura de faltas FC(n) após a injecção das máscaras.

No modelo de faltas a nível RTL utilizado, todas as faltas são detectadas, obtendo-se

pois uma cobertura de faltas de 100% com pouco mais de 6000 vectores. O efeito em

FC(n) da aplicação das máscaras é prontamente evidente na Figura 4-5. Com efeito, a

aplicação de M1&M2 num número relativamente reduzido de ciclos de relógio, permite a

detecção múltipla (n=5) de um número significativo de faltas RTL. Note-se ainda, em

especial na curva FC(n) sem máscaras (ou seja, apenas com teste pseudo-aleatório), o

efeito da activação do sinal de Reset, para N= 1250, 2500, 3750, 5000, etc., em particular

nas primeiras activações desse sinal. Os instantes ou intervalos de aplicação das máscaras

estão resumidos na Tabela 4-16 e assinalados na Figura 4-5.

Tabela 4-16 – Resumos das máscaras aplicadas.

Valores da Máscara designação Período de Injecção LOAD(1) e Tre(0) M1 1260, [3000,3500], 4505, 5008 e 6004 LOAD(0) TX_CONTA(105d) SEND_EN(1)

M2 [1261, 2499]; [4506, 4999]; [5009, 5997] e [6005, 6998]

Page 131: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

107

Como se observa na Figura 4-5, existe a necessidade de re-aplicar as máscaras para

exercitar suficientemente a funcionalidade do circuito b13. Neste caso, a funcionalidade

explorada é o deslocamento série dos dados da entrada para a saída.

A situação dos valores de detectabilidade antes da aplicação de máscaras, encontra-

se ilustrada na Figura 4-6.

B13: DO

0

5

10

15

20

25

30

35

0 50 100 150 200 250

# Faltas RTL

DO

Figura 4-6 – Valores de detectabilidade antes da aplicação das máscaras

Os valores de controlabilidade, das faltas no nível RTL, apresentam as alterações

expostas na Figura 4-7

B13: CO - Uso de máscaras

0

2000

4000

6000

8000

10000

0 50 100 150 200 250

# Faltas RTL

% @ 0/1

Com MáscarasSem Máscaras

Figura 4-7 – Alteração nos valores de controlabilidade devido às máscaras

Page 132: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

108

Após a aplicação das máscaras e análise dos resultados, se procedermos a uma

investigação do tipo de sinais mascarados podemos ter uma ideia dos fenómenos

desencadeados.

As duas máscaras injectadas permitem controlar 4 sinais no nível RTL: Load, Tre,

Send_en e Tx_conta. Estes sinais são sinais de controlo do fluxo de módulo b13. A sua

utilização ao longo do código RTL permite orientar as funcionalidades do circuito,

evidenciando a necessidade de os manipular de forma a exercitação ser a pretendida.

A Tabela 4-17 apresenta de uma forma resumida as estatísticas sobre a porção das

entradas primárias (MPI) e entradas secundárias (MSI) que foram efectivamente

mascaradas relativamente ao total de sinais existentes. A eficácia do teste foi obtida,

mascarando 4 entradas secundárias, o que corresponde a 12,5% das existentes e a 8% do

total de sinais RTL existentes. Como é possível constatar, o mascaramento de entradas

secundárias (MSI) incidiu somente sobre sinais de controlo, o que era previsível devido

ao carácter deste.

Tabela 4-17 - Número de sinais mascarados, no módulo b13

Entradas # CUT MPI MSI % MPI % MSI dados 8 0 - 0 - controlo 4 0 - 0 - P.I. total 12 0 - 0 - dados 8 - 0 - 0 controlo 32 - 4 - 12.5 S.I. total 50 - 4 - 8.0

Total 62 0 4 6.5

4.4. 2º. Ciclo: Implantação de M-BIST

O próximo passo consiste em passar à síntese do circuito. Para tal, utilizou-se a

ferramenta comercial Design Vision da Synopsys e uma biblioteca de células (cell

library) cyx_3.3V da tecnologia CMOS AMS 0,35μm, privilegiando, quer a área, quer o

período de relógio mínimo (fMAX). No caso da optimização para área, optou-se por definir

o registo por defeito (default) como sendo o registo DFAQ – tipo de registo só com uma

saída (Q). No caso da optimização por período mínimo, optou-se por definir um relógio

Page 133: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

109

com um período de 1 ns, que informa a ferramenta de síntese para a minimização de

níveis de lógica entre registos que se pretende para operar nesta frequência de relógio.

A Figura 4-4, contém o diagrama genérico que descreve a metodologia proposta para

a injecção de máscaras em hardware. Nele se ilustra como se procede à injecção de

máscaras em RTL. A arquitectura ilustrada é utilizada quer no nível mais abstracto, nível

de transferência entre registos, quer já na síntese lógica, conduzindo a uma arquitectura

igual entre níveis. No entanto, o módulo do CUT que inicialmente se encontrava descrito

em RTL é agora substituído por uma descrição estrutural pretendida, obtida com

diferentes opções de síntese, encontrando-se a arquitectura pronta para proceder à

injecção de faltas. As interfaces entre os módulos da arquitectura não mudaram, o que

permite usar a mesma arquitectura e aproveitar todo o trabalho desenvolvido no nível

RTL, nomeadamente a definição do padrão de teste a aplicar. A fim de demonstrar que a

metodologia m-BIST estendida a circuitos sequenciais conduz a uma solução fracamente

dependente da topologia final (estrutura) de implementação da função, a síntese é

realizada com duas opções no que se refere ao CUT, em particular visando a

minimização lógica (área mínima) e o tempo de propagação dos sinais (frequência de

operação máxima).

Com a descrição estrutural (duas versões, area e delay), procedeu-se à simulação de

faltas, a nível lógico. Poder-se-ia utilizar a ferramenta VeriDOS. Contudo, preferiu-se

utilizar uma ferramenta comercial – o VeriFault™, da Cadence, uma vez que é uma

ferramenta que uma empresa como a Tecmic pode utilizar e apresentar os resultados de

simulação aos seus clientes. Com a ferramenta VeriFault™ utilizou-se o modelo de faltas

NSA (Net Stuck-At), ocorrendo uma maior correlação com os resultados obtidos a nível

RTL. Os resultados estão ilustrados nas Figura 4-8 e Figura 4-9 para as duas versões

sintetizadas. Observam-se ganhos significativos na cobertura de faltas, por aplicação das

máscaras (Tabela 4-18). Uma comparação com os gráficos FC(n) obtidos a nível RTL, no

1º. Ciclo da aplicação da metodologia evidencia a boa correlação entre a cobertura

múltipla de faltas RTL e a cobertura singular de faltas a nível estrutural.

Page 134: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

110

Figura 4-8 - Cobertura de faltas a nível lógico (DC=FC(NSA) para o b13, com e sem a aplicação das

máscaras (versão delay, de período de relógio mínimo).

Figura 4-9 - Cobertura de faltas a nível lógico (DC=FC(NSA) para o b13, com e sem a aplicação das

máscaras (versão area, de área de implantação mínima).

Page 135: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

111

Tabela 4-18 – Ganhos na cobertura de faltas estrutural obtidos com m-BIST.

Circuito b13 estrutural(w=with, wo=without)

DC=FC(NSA)

Struct_Area (wo_m) 90,55% Struct_Area (w_m) 96,51% Struct_Delay (wo_m) 91,40% Struct_Delay (w_m) 97,19%

Procedeu-se em seguida à avaliação da sobrecarga de teste introduzida pela

funcionalidade de auto-teste integrado. Os resultados, obtidos com a ferramenta Design

Vision, estão apresentados na Tabela 4-19.

Tabela 4-19 – Sobrecarga de teste (aumento de área) no b13 com m-BIST.

Módulo Unids de Área [%] B13 (wo_m) (Área mínima) 214701,8 0,0 B13 (w_m) (Área mínima) 221214,8 +3,0 B13 (Área) c/ cadeia de scan 264152,0 +23,03 B13 (wo_m) (Optimização delay) 260016,9 0,0 B13 (w_m) (Optimização delay) 274602,1 +5,6 B13 (Delay) c/ cadeia de scan 310461,2 +19,40 BIST_C 114278,0 -- LFSR_10 20066,1 -- MISR_10 40139,3 --

4.5. Conclusões

A metodologia proposta de m-BIST estendida a circuitos sequenciais foi aplicada no

circuito de referência b13. Conforme se observa, num 1º. Ciclo, a metodologia realiza a

preparação do auto-teste integrado, a nível RTL, utilizando-se principalmente a

abordagem por simulação.

Realiza-se uma primeira reconfiguração do código de descrição do b13, a nível RTL

e em linguagem Verilog, para injecção de faltas na ferramenta VeriDOS com recurso à

ferramenta RTL2FO. A simulação é realizada sobre o circuito em modo normal de

funcionamento, isto é, é uma simulação de faltas de um circuito sequencial. Estuda-se

primeiro o efeito do sinal de Reset, escolhendo-se uma periodicidade de activação que

permite quase maximizar a cobertura múltipla de faltas a nível RTL.

Identificam-se a seguir, com recurso a esse padrão de activação do sinal de Reset, os

principais cantos escuros da funcionalidade, que, no b13, abrange 4 máquinas de estado.

Page 136: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

112

A FSM1 não apresenta cantos escuros, contrariamente ao que se observa para as FSM 2,

3 e 4. Analisam-se primeiro os problemas de controlabilidade, verificando-se que certos

estados quase não são visitados no decorrer da simulação de um padrão pseudo-aleatório

de N=10000 vectores. Para cada FSM, identificam-se as máscaras que permitem activar

esses cantos escuros. Dada a dimensão do circuito em análise, não se torna necessário

utilizar a ferramenta ASCOPA para a geração automática de máscaras. Verifica-se, como

era de esperar, que a introdução de uma máscara modifica a detectabilidade de faltas

associadas a outros cantos escuros. Assim, após algumas experiências de simulação,

define-se um conjunto mínimo de máscaras a utilizar, qual a sequência de activação, e

qual o número de ciclos de relógio necessários por cada activação de cada máscara.

Consegue-se uma cobertura FC (n=5) = 100% com 2 máscaras e cerca de N=6000

vectores, o que assegura uma solução de reduzido consumo de energia.

Concluído o ciclo de preparação do m-BIST (1º. Ciclo), em que se define o padrão de

auto-teste a utilizar durante a sessão de BIST, procede-se ao 2º. Ciclo da metodologia – o

ciclo de implantação do m-BIST na versão final do circuito. Retiram-se as modificações

do código RTL efectuadas para injecção de faltas, ficando disponível a descrição Verilog

do circuito de referência, b13, com a funcionalidade de teste – o LFSR, o controlador de

BIST, a ML (Masking Logic) e a reconfiguração limitada do CUT (o b13), para assegurar

a injecção de máscaras em entradas secundárias (M.S.I.). Gera-se a descrição

comportmental do MISR. De seguida, procede-se à síntese lógica da versão m-BIST do

b13 (de acordo com a metodologia proposta) e do b13 sem auto-teste, para efeitos de

avaliação da sobrecarga do teste. Utilizam-se para o efeito duas opções de síntese (área

mínima, e período de relógio mínimo).

Finalmente, concluiu-se a caracterização da solução obtida, através do cálculo das

métricas de testabilidade. Primeiro, a eficácia do teste (TE) é avaliada, através do cálculo da

cobertura singular de faltas NSA, a nível estrutural. Verifica-se a boa correlação entre a

cobertura múltipla de faltas RTL (n=5) e a cobertura singular de faltas a nível lógico (NSA).

Avaliou-se também a sobrecarga do teste, em especial em termos do aumento percentual de

área devido à implantação de funcionalidade de auto-teste integrado. Como era de esperar, um

CUT de complexidade reduzida introduz, percentualmente, uma sobrecarga elevada. À

medida que a complexidade do CUT aumenta, a aplicação da metodologia m-BIST proposta

conduzirá a valores da sobrecarga de teste mais reduzidos,. Salienta-se o facto de, numa

Page 137: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

113

arquitectura de teste onde se pretende-se aplicar a técnica de test-per-scan, só a introdução de

um cadeia de full-scan, à partida, resultar numa sobrecarga no CUT de mais de 23%, no caso

da optimização para área, ou de mais de 19% no caso da optimização para FMAX.

Page 138: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá
Page 139: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

115

5. Demonstração de Resultados. PIC de um Contador Estático de Energia

O módulo onde se procura averiguar a eficácia da metodologia de m-BIST para sistemas

sequenciais é o de um PIC. Este controlador é inserido no projecto de um Contador Estático

de Energia Eléctrica desenvolvido pela Tecmic [39]. A Figura 5-1 apresenta o diagrama de

blocos do sistema, e qual o módulo usado para a metodologia.

Figura 5-1- Diagrama de blocos do contador estático de energia eléctrica.

5.1. Funcionalidade

Numa breve descrição geral do funcionamento deste circuito dada pela Tecmic, é referido

que o módulo implementa os contadores dos impulsos de energia, e o contador do RTC (Real

Time Clock).

A funcionalidade implementada por este módulo é similar à de um PIC (Programmable

Interrupt Controller) sendo constituído por diversos contadores internos e lógica para

sinalização de interrupções.

A Figura 5-2 apresenta a interface do módulo com o exterior.

Current

A/DConverter

Voltage

8051

Latch/Registers

LCD Controller

LCD Display

RAM

ROM

CalculationBlock

ASICASIC

Current

RTC & Counters (PIC)

Page 140: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

116

PIC

Wdog_Clear

Watchdog_Time[7:0]Voltage_Sample[7:0]

Voltage[7:0]Violacao

Teste

Status_ReadLoad_Calibracao

Impulso_Ferraris

Impulso_Estatico_Prescaled

Impulso_Estatico

Ferraris_PFEstatico_CLK

Clear_RTC

Calibracao[7:0]Botao

ResetClk1

Clk32kHz

Wd_Reset

Voltage_Interrupt

Violacao_Interrupt

Reg_Potencia_Leit[15:0]RTC_Min[15:0]RTC_Interrupt

Interrupt

Imp_Ferraris_Interrupt

Imp_Estatico_InterruptFerraris_PF_Int

Contagem_Ferraris[15:0]Contagem_Estatico[15:0]

Botao_Interrupt

Figura 5-2 - Diagrama de topo do controlador PIC do contador estático de energia eléctrica.

As principais características, do circuito, são resumidas na Tabela 5-1.

Tabela 5-1 – Características do módulo PIC

Caracteristicas do módulo PIC # FF P.I P.O. # Linhas Verilog # processos Notas

274 44+3 73 800 25 Possui 5 somadores no total [4 de 16 e 1 de 15 bits]; e 5 subtractores

[25, 24, 22, 8 e 6 bits respectivamente]

Antes de entrar propriamente no 1º Ciclo da metodologia foi necessário traduzir o código,

originalmente descrito em VHDL, para Verilog, de forma a proceder à sua simulação na

ferramenta VeriDOS. A análise de ferramentas existentes no mercado para este efeito recaiu

na ferramenta X-HDL 3.2.5218 que apresentou bons resultados. Alguma depuração teve de ser

efectuada. Contudo, foi possível gerar uma descrição Verilog que descreve idêntica

funcionalidade que a descrição VHDL de partida.

18 http://www.x-tekcorp.com/Xhdl.php

Page 141: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

117

Um Testbench projectado para o efeito foi usado para cruzar os resultados da simulação

das duas descrições (VHDL original e Verilog), a fim de verificar a correcção da tradução e a

manutenção da funcionalidade. O seu esquema é ilustrado na Figura 5-3.

PIC(VHDL)

LFSR

PIC(Verilog)

=

TestBenchController

Figura 5-3 – Arquitectura para comparação das funcionalidades dos dois módulos

O próximo passo foi, seguindo a metodologia, a alteração do ficheiro em Verilog para

suportar a injecção de faltas ao nível RTL. Para tal, recorreu-se à ferramenta RTL2FO.

5.2. 1º. Ciclo: Erros de Projecto

Aplicando a metodologia proposta, são recolhidos dados de simulação com o VeriDOS e

de avaliação das probabilidades de controlabilidade e de observabilidade de variáveis e

condições com a ferramenta ASCOPA. Neste caso, a análise destes dados não denunciou a

existência de design flaws.

5.3. 1º. Ciclo: Preparação de Auto-teste a Nível RTL

O módulo PIC é composto por dez contadores, estando presentes contadores de até 24

bits. Com o objectivo de aumentar a controlabilidade dos elementos de memória, a técnica

adoptada foi partir todos os contadores. O sinal Teste (entrada primária), presente no módulo

original, utilizado para partir alguns dos contadores, foi usado para partir todos os contadores,

originando contadores de, no máximo, 8 bit.

O processo de simulação de faltas decorreu com um LFSR de 20 bits a gerar vectores de

teste para aplicar nas entradas do módulo, durante N=15k vectores. Apesar de haver 4

barramentos de entrada com 8 bit, optou-se por, a partir de um LFSR de 20 bits, garantir a

Page 142: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

118

exercitação de todas elas, e de todas as restantes de single bit, reduzindo desta forma a

sobrecarga final do teste.

A análise da influência da periodicidade do sinal Reset na evolução das coberturas de

faltas, para diferentes valores, revelou que pouca alteração ocorre. As curvas, na Figura 5-4,

apresentam uma convergência muito similar. Optou-se por garantir uma periodicidade de

2500 durante a simulação, o que garantia à partida uma cobertura de faltas na ordem dos 37%.

Este valor é efectivamente muito reduzido, o que denota a existência de vários problemas de

testabilidade que é necessário resolver. Essa análise é efectuada no nível de transferência

entre registos (RTL).

Figura 5-4 - Evolução da FC em função da periodicidade do sinal Reset

Os próximos parágrafos descrevem os problemas encontrados e as soluções adoptadas

para maximizar a cobertura ao nível RTL.

A lista de problemas de testabilidade detectados após a simulação com a ferramenta

VeriDOS são disponibilizados num dos ficheiros resultantes do processo de injecção de faltas.

Esta lista encontra-se ordenada pelo valor de detectabilidade de todas as variáveis às quais se

associa um modelo de faltas.

Page 143: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

119

A lista de problemas de testabilidade apresenta diversas situações. Convém ao projectista

concentrar-se primeiro na resolução de problemas do tipo 1, detectabilidade e controlabilidade

reduzidas. A Tabela 5-2 apresenta a listagem obtida com base nas simulações do VeriDOS.

Tabela 5-2 – Lista de Problemas do tipo 1 no PIC

Sinal RTL DO CO RTC_Min_0_0 0 0 *** * * RTC_Min_15_0 0 0 Contagem_Estatico_4_0 0 0 Contagem_Estatico_5_0 0 0 Contagem_Estatico_5_0 0 0 Contagem_Estatico_6_0 0 0 Contagem_Estatico_11_0 0 0 Contagem_Estatico_12_0 0 0 Contagem_Estatico_13_0 0 0 Contagem_Estatico_14_0 0 0 Reg_Potencia_Leit_0_0 0 0 *** * * Reg_Potencia_Leit_15_0 0 0 Contagem_Estatico_C_4_0 0 0 Contagem_Estatico_C_5_0 0 0 Contagem_Estatico_C_5_0 0 0 Contagem_Estatico_C_6_0 0 0 Contagem_Estatico_C_8_1 0 0 Contagem_Estatico_C_11_0 0 0 Contagem_Estatico_C_12_0 0 0 Contagem_Estatico_C_13_0 0 0 Contagem_Estatico_C_14_0 0 0 Contagem_Ferraris_C_0_1 0 0 Contagem_Ferraris_C_8_1 0 0 Reg_Potencia_C_0_1 0 0 Reg_Potencia_C_8_1 0 0 Q_C_8_1 0 0 RTC_Min_int_C_1_0 0 0 RTC_Min_int_C_1_1 0 0 *** * * *** * * RTC_Min_int_C_14_0 0 0

RTC_Min_int_C_14_1 0 0 Wd_Reset_Counter_C_8_1 0 0 Wd_Reset_Counter_C_16_1 0 0 Potencia_Load_Counter_C_8_1 0 0

Potencia_Load_Counter_C_16_1 0 0

Second_C_4_0 0 0 Second_C_5_0 0 0 Voltage_Timer_C_8_1 0 0 Voltage_Timer_C_16_1 0 0 Voltage_Timer_C_23_1 0 0 Second_4_1 0 0 Second_5_1 0 0 RTC_Min_int_0_0 0 0 RTC_Min_int_1_0 0 0 *** * * RTC_Min_int_15_0 0 0 RTC_Min_Del_0_0 0 0 RTC_Min_Del_1_0 0 0 *** * * RTC_Min_Del_14_0 0 0 Teste_1 0 0 Voltage_Interrupt_0 0 0 Interrupt_1 0 0 Reg_Potencia_Int_1 0 0 RTC_Interrupt_0 0 0 Cond_L_389_20 0 0 Cond_L_505_20 0 0 Cond_L_591_20 0 0 Cond_L_654_20 0 0 Cond_L_736_20 0 0

1º Problema

Na lista de faltas com problemas de testabilidade encontramos o sinal RTC_Min[15:0] com

problemas de controlabilidade e detectabilidade nas faltas LSA 0, nos bits da variável. A

Tabela 5-3 apresenta os resultados do VeriDOS

Page 144: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

120

Tabela 5-3 - Resultados do VeriDOS para a variável RTC_Min

Problema DO CO RTC_Min_15_0 0 0 .......................... RTC_Min_0_0 0 0

Como se observa, não são detectadas as faltas LSA 0 em todos os registos do sinal

RTC_Min. Este sinal é uma saída primária, pelo que o problema resulta directamente da

inexistente controlabilidade do sinal.

O problema de controlabilidade detectado significa que este sinal não se encontra a

receber valores. A análise do código RTL, repetida aqui para fácil compreensão Figura 5-5,

revela que o sinal em questão recebe valores do sinal RTC_Min_Int[15:0]. Assim, uma de duas

situações ocorre: 1) ou é a condição Cond_L_671, que controla a atribuição de valores a

RTC_Min, que apresenta problemas de activação, ou 2) o sinal RTC_Min_Int tem problemas

de controlabilidade.

Assign Cond_L_671 = (Clk32kHz == 1'b0 & Clk32kHz_Del == 1'b1); always @(posedge Clk1 or posedge Reset) begin if (Reset) RTC_Min <= 0 ; else begin if (Cond_L_671) RTC_Min <= RTC_Min_int ; else RTC_Min <= RTC_Min ; end End

Figura 5-5 –Código Verilog onde RTC_Min recebe valores de RTC_Min_int

A análise dos resultados da simulação indica que a condição Cond_L_671, Tabela 5-4, que

controla a recepção de valores, não tem nenhum problema de controlabilidade, para além do

de detectabilidade. Por exclusão de partes, é o sinal que fornece os dados de origem

RTC_Min_Int que apresentará problemas de controlabilidade.

Tabela 5-4 - Resultados do VeriDOS para a variável Cond_L_671

Condição DO CO Cond_L_671_20 0 7499 .......................... Cond_L_671_21 0 7501

Page 145: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

121

Igualmente pertencendo à lista de problemas do tipo 1 encontra-se o sinal RTC_Min_Int,

onde as faltas LSA 0 não são detectadas e apresentam problemas de controlabilidade, como se

verifica na Tabela 5-5.

Tabela 5-5 - Resultados do VeriDOS para a variável RTC_Min_Int

Problema DO CO RTC_Min_Int_15_0 0 0 .......................... RTC_Min_ Int_0_ 0 0 0

A condição Cond_L_654, Figura 5-6, que possibilita que o sinal RTC_Min_Int (contador de

16 bits) possa ser activado, apresenta um problema de controlabilidade DO = 0 e CO = 0. A

condição em causa testa o sinal Q (contador de 15 bits) e o sinal Second (subtractor de 6 bits)

a zero, algo que não se chegou a verificar na simulação.

assign Cond_L_650 = (Clear_RTC_Flag_Del == 1'b1 & Clear_RTC_Flag_Del2 == 1'b1); assign Cond_L_654 = (Q == 0 & Second == 0); always @(posedge Clk32kHz or posedge Reset) begin if (Reset) begin RTC_Min_int <= 0 ; end else begin if (Cond_L_650) begin RTC_Min_int <= 0 ; end else if (Cond_L_654) begin RTC_Min_int <= RTC_Min_int + 1; end end End

Figura 5-6 – Código Verilog onde a o sinal Cond_L_654 controla a atribuição de valores a RTC_Min_int

A primeira fase da injecção de máscaras possibilitará resolver este problema. Com o

objectivo de se controlar a controlabilidade a zero das variáveis Q e Second, são adicionadas,

à interface do CUT, duas entradas primárias Act_Q e Act_Second (MSI), o que obriga as

variáveis internas RTL do PIC a serem zero quando activas. A estas entradas primárias, e com

o objectivo de garantir a execução desta instrução encadeada, é necessário adicionar mais uma

entrada primária para prevenir que a condição anterior se verifique, forçando

Page 146: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

122

Clear_RTC_Flag_Del@0, para prevenir que se realize um Reset ao sinal que procuramos

exercitar.

Desta análise obtem-se a máscara M1 descrita na Tabela 5-6.

Tabela 5-6 – Máscaras a injectar para resolver o problema de testabilidade em RTC_Min

Designação Máscara Valor Definição Clear_RTC_Flag_Del 1’b0 Q 15’d0 Second 6’d0 M1

Teste 1’b1

input Act_Clear_RTC_Flag_Del; input Act_Q; input Act_Second;

Entretanto torna-se necessário definir mais 2 máscaras para exercitar a funcionalidade ao

máximo: (1) a máscara M2, para aplicar a máscara M1 mas com a diferença do sinal Teste ser

a ‘0’, e (2) a máscara M3 para aplicar um Reset ao circuito e voltar a aplicar a mesma

sequência de máscara de forma a repetir a exercitação anterior.

Percurso dos valores nas variáveis:

RTC_Min_Int RTC_Min RTC_Min_Del

A Tabela 5-7 resume o intervalo de tempo durante o qual são aplicadas as máscaras para

resolver o problema de testabilidade.

Tabela 5-7 – Período total de aplicação das máscaras

Período de aplicação da máscaras e de reactivações Inicio Fim M1, M2, M3 3000 6050 M15 12500 13000

É necessário proceder a activações e reactivações das máscaras injectadas. Este processo

de re-aplicação de máscaras têm um impacte na sobrecarga de área do módulo BIST_C, pois

o objectivo é procurar explorar a funcionalidade implícita do PIC. Neste caso, a condição das

variáveis Q e Second serem ‘0’ permite a soma de um contador de 16 bits. Devido ao facto

deste último contador se encontrar partido e de forma a explorar a transição do contador, com

tudo a uns, para ‘0’ é necessário desactivar e reactivar a injecção da máscara. O objectivo é

exercitar, ao máximo, os bits de carry do contador.

2º Problema:

Page 147: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

123

A condição seguinte Cond_L_530 possui uma controlabilidade reduzida, como se observa

na Tabela 5-8, o que influencia a controlabilidade de Reg_Potencia_Leit[15:0] colocando-a na

lista de sinais com problemas de testabilidade (DO = 0 e CO = 0).

Tabela 5-8 - Resultados do VeriDOS para a variável Cond_L_530

Condição DO CO Cond_L_530_20 0 6 Cond_L_530_21 30 14994

Instrução Load_Toggle == 1'b1 & Load_Toggle_Del == 1'b0

No entanto, a condição Cond_L_530, que depende dos valores da variável Load_Toggle,

depende da funcionalidade da variável Potencia_Load_Counter através da Cond_L_173,

cujos dados de simulação estão apresentados na Tabela 5-9.

Tabela 5-9 - Resultados do VeriDOS para a variável Cond_L_173

Condição DO CO Cond_L_173_20 0 4 Cond_L_173_21 30 14996

Instrução Potencia_Load_Counter == 0

A variável Potencia_Load_Counter (contador de 22 bits) apresenta o valor Zero um

número insuficiente de vezes, o que limita a controlabilidade de Cond_L_530, por intermédio

de Load_Toggle. O código da Figura 5-7 mostra a interacção entre as variáveis.

Assign Cond_L_173 = (Potencia_Load_Counter == 0); always @(posedge Clk1 or posedge Reset) begin if (Reset) begin Load_Toggle <= 1'b0 ; end else begin if (Cond_L_173) begin Load_Toggle <= ~Load_Toggle ; end else begin Load_Toggle <= Load_Toggle ; end end End

Figura 5-7 – Código Verilog mostra a ligação entre as variáveis Load_Toggle e Potencia_Load_Counter

Page 148: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

124

A aplicação de uma máscara para aumentar a controlabilidade da condição Cond_L_173

resolverá alguns problemas de testabilidade. A interface, do módulo PIC, passa a ter mais

uma entrada primária (MSI) Act_Potencia_Load_Counter que, quando activa, permite forçar

o valor da variável interna RTL Potencia_Load_Counter a Zero.

A Tabela 5-10 resume o intervalo de tempo durante o qual a máscara (M4) é aplicada.

Tabela 5-10 – Período total de aplicação da máscara

Período de aplicação da máscaras e reactivações: Inicio Fim M4 6050 6700 M14 11500 12500

As faltas da variável Potencia_Load_Counter LSA 0 não são detectadas. Apesar da

excelente controlabilidade, existe um problema de observabilidade.

A Tabela 5-11 apresenta as variáveis RTL que têm problemas de observabilidade.

Tabela 5-11 – Variável RTL com problemas de observabilidade

Variável RTL Bits S.O Potencia_Load_Counter 22

3º Problema

A saída primária Contagem_Estatico[15:0] apresenta problemas de controlabilidade nos

bits mais significativos (MSB). A condição Cond_L_443, Tabela 5-12, limita a funcionalidade

do contador em questão. Como os sinais Impulso_Estatico_Prescaled_Del e

Impulso_Estatico_Prescaled_Del2 não apresentam problemas de testabilidade, o problema

reside no sinal Estático_Prescaler[7:0] (subtractor de 8 bits), que, na Cond_L_443 é testado a

zero, apresentando problemas de actividade. O código referente encontra-se transcrito na

Figura 5-8.

Tabela 5-12 - Resultados do VeriDOS para a variável Cond_L_443

Condição Detecção Controlabilidade Cond_L_443_20 30 37 Cond_L_443_21 30 14963

Page 149: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

125

assign Cond_L_443 = (Impulso_Estatico_Prescaled_Del == 1'b1 & Impulso_Estatico_Prescaled_Del2 == 1'b0 & Estatico_Prescaler == 0); always @(posedge Clk1 or posedge Reset) begin if (Reset) Contagem_Estatico <= 0 ; else begin if (Cond_L_443) begin Contagem_Estatico <= Contagem_Estatico + 1 ; end else Contagem_Estatico <= Contagem_Estatico ; end End

Figura 5-8 – Código Verilog onde se mostra a influência do problema de Cond_L_443 na variável Contagem_Estatico

A máscara Act_Estatico_Prescaler força o valor do contador a zero, o que permite

melhorar a controlabilidade de Contagem_Estatico[15:0].

Uma outra máscara permite aplicar a máscara M5 mas com o sinal Teste a ‘0’. Desta

forma, é possível exercitar a transição de tudo a ‘1’ para tudo a ‘0’ na variável

Contagem_Estatico[15:0].

A Tabela 5-13 resume o intervalo de tempo durante o qual as máscaras são aplicadas.

Tabela 5-13 – Período total de aplicação da máscara

Período de aplicação da máscaras e de reactivações: Inicio Fim M5, M6 6700 9600

4º Problema

A entrada primária Watchdog_Time[7:0] tem problemas de observabilidade e a variável

RTL Voltage_Timer_C[24:0] relacionada com os bits de borrow do subtractor

Voltage_Timer[24:0] tem problemas de controlabilidade. A funcionalidade deste contador

contempla o carregamento paralelo da variável Watchdog_Time na parte mais alta da variável

Voltage_Timer[24:0] caso uma determinada condição seja verificada, Cond_L_736. Para

resolver este problema de testabilidade, tem de ser gerada uma sequência de máscaras, que

procura exercitar a seguinte funcionalidade:

Page 150: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

126

1) Forçar a P.I Watchdog_Time[7:0] (MPI) com tudo a ‘1’;

2) Forçar a condição Cond_L_713 a verificar-se, o que implica forçar a P.I. Voltage[7:0]

(MPI) a ‘0’, para carregar a variável Watchdog_Time[7:0] em Voltage_Timer[24:17];

3) Forçar a P.I. Voltage[7:0] (MPI) com tudo a ‘1’ para a condição Cond_L_713 não se

verificar;

4) Aguardar ciclos de relógios suficientes, para a variável Voltage_Timer[24:0] chegar a

Zero e Voltage_Timer_Del[24:0] ser 1;

Com esta sequência de máscaras pretende-se resolver os problemas de testabilidade

relacionados com as variáveis envolvidas.

No entanto, para melhorar a multiplicidade da detecção das faltas relacionadas com esta

fase da injecção de máscaras, e não alongar o período de teste, decidiu-se adicionar uma

entrada primária, à interface, o sinal Act_Voltage_Timer (MSI). Esta MSI permite forçar o

valor de Voltage_Timer[24:0] a 1, melhorando desta forma a controlabilidade da condição

Cond_L_736, que actualmente tinha os valores da Tabela 5-14. A Cond_L_736, ao influenciar

directamente uma saída primária, Voltage_Interrupt, melhora a detectabilidade de

Voltage_Timer[24:0].

Tabela 5-14 - Resultados do VeriDOS para a variável Cond_L_736

Condição DO CO Cond_L_736_20 2 1 Cond_L_736_21 30 14999

Instrução (Voltage_Timer[24:0] == 0) & (Voltage_Timer_Del[24:0] == 1)

As alterações efectuadas melhoram a multiplicidade da detecção das faltas RTL

relacionadas com esta injecção de máscaras, mas não permitem detectar mais nenhuma falta.

As faltas Voltage_Timer_Del LSA 0, continuam por detectar. bem como as Voltage_Timer

LSA 0 apesar da excelente controlabilidade. O problema em questão passou a ser de

observabilidade. A utilização destas 2 variáveis: Voltage_Timer[24:0] e

Voltage_Timer_Del[24:0] no circuito resume-se à participação na Cond_L_736 sendo analisado

o seu valor. A cobertura de faltas associadas à condição Cond_L_736 mantém-se, apesar da

sua controlabilidade ter melhorado, graças à injecção de máscaras. A análise do código revela

Page 151: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

127

que, caso se melhore a controlabilidade, a cobertura não é afectada. Assim, a solução é tornar

a variável Voltage_Timer_Del[24:0] observável. Uma vez que as variáveis, em questão, são

testadas somente a zero, e são constituídas por vários bits, torna-se difícil a detecção LSA 0.

Uma vez que a variável Voltage_Timer_Del[24:0] recebe o valor de Voltage_Timer[24:0], no

ciclo de relógio seguinte, a observação de Voltage_Timer_Del[24:0] será suficiente para

garantir a detectabilidade das variáveis envolvidas.

A Tabela 5-15 resume o intervalo de tempo durante o qual a máscara é aplicada.

Tabela 5-15 – Período total de aplicação das máscaras

Período de aplicação da máscaras e reactivações: Inicio Fim M7, M8, M9, M10, M11, M12 10000 10550

A Tabela 5-16 apresenta uma nova variável RTL que tem problemas de observabilidade.

Tabela 5-16 – Variável RTL com problemas de observabilidade

Variáveis RTL Bits S.O Voltage_Timer_Del[24:0] 25 5º Problema

A lista de problemas de testabilidade revela que existem problemas de controlabilidade na

variável Wd_Reset_Counter_C para bits superiores ao 11 até ao 24 e que de forma geral os

bits de Wd_Reset_Counter[23:0] apresentam pouca controlabilidade. A análise do código

revela o problema de testabilidade. A condição Cond_L_131, ver os dados na Tabela 5-17,

provoca o Reset da variável em questão, impossibilitando a exercitação efectiva do subtractor,

Figura 5-9. Como a condição depende de uma entrada primária, o sinal Wdog_Clear, a sua

exercitação aproxima-se dos 50%, algo que deve de ser mascarado para possibilitar o normal

funcionamento da estrutura aritmética.

Tabela 5-17 - Resultados do VeriDOS para a variável Cond_L_131

Condição DO CO Cond_L_131_20 30 7574 Cond_L_131_21 0 7426

Page 152: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

128

assign Cond_L_131 = (Wd_Reset_Counter == 0) | (Wdog_Clear == 1'b1); always @(posedge Clk1 or posedge Reset) begin if (Reset) begin Wd_Reset_Counter <= 16000000 ; end else begin if (Cond_L_131) begin Wd_Reset_Counter <= 16000000 ; end else begin Wd_Reset_Counter <= Wd_Reset_Counter - 1; end end End

Figura 5-9 – Código Verilog onde a P.I. Wdog_Clear pode provocar o Reset de Wd_Reset_Counter

Durante o período de aplicação da máscara à entrada primária. Wdog_Clear tem o valor

zero.

A Tabela 5-18 resume o intervalo de tempo durante o qual a máscara é aplicada.

Tabela 5-18- Período total de aplicação da máscara

Período de aplicação da máscaras: Inicio Fim M13 10750 11500

Após o mascaramento da P.I. Wdog_Clear passamos a ter somente problemas de

detectabilidade nas faltas relacionadas com Wd_Reset_Counter[23:0]. Os problemas de

controlabilidade deixaram de existir. A análise do código RTL revela que a variável é

utilizada numa única condição, Cond_L_188, para testar o seu valor e em função deste alterar

uma saída primária, Wd_Reset. Os dados de simulação da variável encontram-se

reproduzidos na Tabela 5-19 e o código correspondente na Figura 5-10.

Tabela 5-19 - Resultados do VeriDOS para a variável Cond_L_188

Condição Detecção Controlabilidade Cond_L_188_20 30 70 Cond_L_188_21 0 14930

Page 153: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

129

O facto de testarmos o valor do subtractor caso seja menor com o valor de uma constante,

permite detectar faltas nos MSB de Wd_Reset_Counter[23:0]. Todavia, as faltas nos LSB

apresentam problemas de detectabilidade. O facto do Reset ser feito para um valor binário

quando o subtractor chega a zeros, também não ajuda à activação das cadeias de borrow, pois

a exercitação máxima ocorre quando, num subtractor com o valor zero, se procede à operação.

Por esta razão, e pelo facto de não fazer sentido aplicar máscaras durante 15k ciclos e depois

aplicar uma máscara e aguardar 64k ciclos, optou-se por tornar Wd_Reset_Counter[23:0]

observável.

assign Cond_L_188 = (Wd_Reset_Counter < 1600000); always @(Wd_Reset_Counter) begin if (Cond_L_188) begin Wd_Reset <= 1'b1 ; end else begin Wd_Reset <= 1'b0 ; end End

Figura 5-10 - Código Verilog que mostra onde a variável Wd_Reset_Counter é utilizada

A Tabela 5-20 refere a variável RTL, em questão, que tem problemas de observabilidade.

Tabela 5-20 – Variável RTL com problemas de observabilidade

Variável RTL Bits S.O Wd_Reset_Counter[23:0] 24

6º Problema

A lista de problemas do tipo 1 continua a apresentar problemas de testabilidade que a

injecção de máscaras, para resolver problemas anteriores, acabou por não resolver. As linhas

do sinal Estatico_Prescaler_C apresentam problemas ao nível da controlabilidade (alguns

bits) e definitivamente ao nível da detectabilidade, Tabela 5-2.

A análise do código RTL revela que a variável interna de 8 bit Estatico_Prescaler, possui

um carregamento paralelo, controlado por Load_Calibracao (P.I.), que, como é exercitada por

um bit do LFSR, com polinómio primitivo, apresenta uma probabilidade de ser ‘1’ de 50% e

50% de ser ‘0’. Isto revela ser um problema de testabilidade, na medida em que impossibilita

o decremento correcto do subtractor (Estatico_Prescaler). A exercitação máxima dos bits de

Page 154: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

130

borrow é atingida quando se carrega o valor h’80 em Estatico_Prescaler e se procede à

subtração de uma unidade.

Tabela 5-21 - Período total de aplicação das máscaras para resolver o problema de Estatico_Prescaler

Período de aplicação da máscaras: Inicio Fim M16, M17 13000 13555

A análise da lista das variáveis com problemas de testabilidade apresenta agora diversos

casos onde o problema passou a ser a observabilidade, uma vez que a controlabilidade está já

completamente assegurada. Nesta situação encontram-se as variáveis: Q[14:0] e Second[5:0],

Tabela 5-22.

Tabela 5-22 – Variável RTL com problemas de observabilidade

Variáveis RTL Bits Q 15 S.O Second 6

Outros dos problemas detectados é o seguinte:

A falta correpondente ao registo Clk32khz_Del LSA 1 não é detectada, e apresenta um

problema de observabilidade, Tabela 5-23.

Tabela 5-23 - Resultados do VeriDOS para a variável Clk32khz_Del

Condição DO CO Clk32kHz_Del_1 0 7503

A condição Cond_L_628 apresenta um problema de observabilidade, Tabela 5-24.

Tabela 5-24 - Resultados do VeriDOS para a variável Cond_L_628

Condição DO CO Cond_L_628_21 0 5437 Instrução Clear_RTC_Flag_Del == 1'b1 & Clear_RTC_Flag_Del2 == 1'b1

E por isso passa a ser observada, Tabela 5-25.

Page 155: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

131

Tabela 5-25 – Lista de todas as variável a observar, da análise de testabilidade efectuada a nível RTL

Variável RTL Bits Potencia_Load_Counter 22

Voltage_Timer_Del 25 Wd_Reset_Counter 24

Q 15 Second 6

Clk32khz_Del 1

S.O

Cond_L_628 1 S.O. TOTAL 94

Após a aplicação das máscaras para a resolução dos problemas de testabilidade

identificados, obteve-se o gráfico da Figura 5-11 com as curvas de coberturas de faltas para as

situações descritas e resolvidas. É possível constatar, pelas curvas disponibilizadas, as

evoluções que ocorrem quando se aplicam as máscaras. Ilustradas estão as situações onde se

efectua a simulação sem máscaras e sem observar as saídas secundárias com problemas de

observabilidade [Wom (Without mask), WoSo (Without Secondary Output)], sem máscara e

com as SO [Wom], com máscara e sem SO [Wm (With mask), WoSo] e finalmente a situação

final, com máscaras e com as SO.

Figura 5-11 – Cobertura de faltas, a nível RTL, FC(5) para as diferentes simulações efectuadas

Page 156: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

132

A Tabela 5-26 apresenta, de forma resumida, as estatísticas sobre o número de entradas

primárias (MPI) e de entradas secundárias (MSI) que foram efectivamente mascaradas e a sua

percentagem, relativamente ao total de entradas existentes. Como se observa, obteve-se uma

eficácia do teste elevada, mascarando 55% das entradas primárias existentes e 28% do total de

entradas secundárias RTL existentes. Como é possível constatar, o mascaramento de entradas

secundárias (MSI) incidiu somente sobre sinais de controlo, o que era previsível devido ao

carácter destes. No caso das MPI, tornou-se necessário mascarar tanto sinais de controlo,

como seria de esperar, como sinais de dados – que, por sua vez, são utilizados internamente

como sinais de controlo (daí a importância de os controlar).

Tabela 5-26 – Número de sinais mascarados, no módulo PIC

Entradas # CUT MPI MSI % MPI % MSI dados 30 16 - 53.0 - controlo 17 10 - 59.0 - P.I. total 47 26 - 55.0 - dados 89 - 0 - 0.0 controlo 189 - 77 - 41.0 S.I. total 278 - 77 - 28.0

Total 325 26 77 31.7

Os valores de controlabilidade das faltas no nível RTL, antes e após a injecção de

máscaras, apresentam as alterações expostas na Figura 5-12. Como se observa, existe uma

melhoria significativa na controlabilidade de variáveis difíceis de controlar com o teste

pseudo-aleatório, e uma tendência para nos aproximarmos de controlabilidades da ordem de

50%.

Page 157: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

133

PIC: CO - Uso de máscaras

0

0,2

0,4

0,6

0,8

1

0 200 400 600 800 1000

# Faltas RTL

% @ 0/1

CO(Sem Máscaras)CO(Com Máscaras)

Figura 5-12 - Alteração nos valores de controlabilidade devido às máscaras

A evolução dos valores de detectabilidade, para as situações (1) sem máscaras, (2) com

máscaras e sem os problemas de observabilidade resolvidos e, finalmente, (3) para a situação

final (TPI para reforço da controlabilidade e da observabilidade), encontra-se ilustrada na

Figura 5-13. Os ganhos são evidentes, e prenunciam ganhos na cobertura de faltas estruturais

significativos.

PIC: DO - Uso de máscaras

0

5

10

15

20

25

30

0 200 400 600 800 1000

Faltas RTL

DO

DO(Sem máscaras)

DO(Com máscaras, Com SO)

DO(Com máscaras, Sem SO)

Figura 5-13 – Alteração nos valores de detectabilidade, devido à resolução dos problemas de testabilidade

Page 158: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

134

5.4. 2º. Ciclo: Implantação de M-BIST

Concluído o 1º. Ciclo, retiraram-se as alterações ao código RTL para permitir a injecção

de faltas e gerou-se o MISR. Em seguida, procedeu-se à síntese lógica do PIC com m-BIST.

Para tal, utilizou-se a ferramenta comercial Design Vision da Synopsys e uma biblioteca de

células (cell library) cyx_3.3V da tecnologia CMOS AMS 0,35 μm, privilegiando quer a área

e quer o período de relógio mínimo (fMAX). Em ambas as optimizações, optou-se por definir o

registo por defeito (default) como sendo o registo DFAQ – tipo de registo só com uma saída

(Q). No caso da optimização por período mínimo, optou-se por definir um relógio com um

período de 1 ns, que informa a ferramenta de síntese para a minimização de níveis de lógica

entre registos que se pretende para operar nesta frequência de relógio.

Com a descrição estrutural (duas versões, area e delay), procedeu-se à simulação de

faltas, a nível lógico. O VeriFault™, da Cadence, foi novamente a ferramenta utilizada. Os

resultados permitiram obter o gráfico da Figura 5-14, para a situação da optimização para área,

e o da Figura 5-15, para a optimização para período mínimo. As duas estruturas conduzem a

uma evolução das curvas de cobertura de faltas FC(N) para o caso onde a simulação decorre

sem máscaras e sem SO [Wom, WoSo], sem máscara e com SO [Wom], com máscaras e sem

SO [Wm, WoSo]e finalmente a situação final.

Figura 5-14 – Cobertura de faltas a nível lógico (DC=FC(NSA) para o pic, com e sem a aplicação das máscaras (versão area, de área de implantação mínima)

Page 159: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

135

Figura 5-15 – Cobertura de faltas a nível lógico (DC=FC(NSA) para o pic, com e sem a aplicação das

máscaras (versão delay, de período de relógio mínimo)

A Tabela 5-27 resume os valores obtidos para os ganhos nas coberturas de faltas, obtidos

com m-BIST, nas versões estruturais do módulo PIC.

Tabela 5-27 - Ganhos na cobertura de faltas estrutural obtidos com m-BIST.

Circuito DC Struct_Area (wo_m) 71,08% Struct_Area (w_m) 95,59%Struct_Delay (wo_m) 69,74% Struct_Delay (w_m) 94,17%

Procedeu-se em seguida à avaliação da sobrecarga de teste introduzida pela

funcionalidade de auto-teste integrado. Os resultados, obtidos com a ferramenta Design

Vision, estão apresentados na Tabela 5-28.

Tabela 5-28 – Sobrecarga de teste (aumento de área) no PIC com m-BIST

Módulo Unids de Área [%] PIC (wo_m) (Optimização Área) 1109330,5 0,0 PIC (w_m) (Optimização Área) 1136940,8 +2,49 PIC (Opt. Área) c/ Cadeia de Scan 1406531,3 +26,79 PIC (wo_m) (Optimização Delay) 1464746,6 0,0 PIC (w_m) (Optimização Delay) 1561791,4 +6,6

Page 160: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

136

PIC (Opt. Delay) c/ Cadeia de Scan 1860323,0 +27,0 BIST_C 188702,6 -- LFSR_20 38577,2 -- MISR_167 762510,7 0,0

Ou MISR_84 383800,4 -- Xor_168_84 83160,7 -- MISR_84+ Xor_168_84 466961,1 -38,76

Area 1831181,70 65,0 Total Delay 2256032,30 54,0 5.5. Conclusões

A metodologia proposta de m-BIST estendida a circuitos sequenciais foi aplicada no

circuito demonstrador PIC. Conforme se observa, num 1º. Ciclo, a metodologia realiza a

preparação do auto-teste integrado, a nível RTL, utilizando-se principalmente a

abordagem por simulação.

Realiza-se uma primeira reconfiguração do código de descrição do PIC, a nível RTL

e em linguagem Verilog, para injecção de faltas na ferramenta VeriDOS com recurso à

ferramenta RTL2FO. A simulação é realizada sobre o circuito em modo normal de

funcionamento, isto é, é uma simulação de faltas de um circuito sequencial. Estuda-se

primeiro o efeito do sinal de Reset, escolhendo-se uma periodicidade de activação que

permita quase maximizar a cobertura múltipla de faltas a nível RTL.

Identificam-se a seguir, com recurso a esse padrão de activação do sinal de Reset, os

principais cantos escuros da funcionalidade descriminados ao longo de capítulo e as

medidas tomadas para os resolver.

Dada a dimensão do circuito em análise, torna-se necessário utilizar a ferramenta

ASCOPA para a geração automática de máscaras. Verifica-se, como era de esperar, que a

introdução de uma máscara modifica a detectabilidade de faltas associadas a outros

cantos escuros. Assim, após algumas experiências de simulação, define-se um conjunto

mínimo de máscaras a utilizar, qual a sequência de activação, e qual o número de ciclos

de relógio necessários por cada activação de cada máscara. Consegue-se uma cobertura

Page 161: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

137

FC(n=5)=100% com 17 máscaras e cerca de N=13500 vectores, o que assegura uma

solução de reduzido consumo de energia.

Concluído o ciclo de preparação do m-BIST (1º. Ciclo), o que inclui a definição do

padrão de auto-teste a utilizar durante a sessão de BIST, procede-se ao 2º. Ciclo da

metodologia – o ciclo de implantação do m-BIST na versão final do circuito. Regressa-se

à versão original da descrição Verilog do circuito demonstrador, PIC, à qual se adicionou

a funcionalidade de teste – o LFSR, o controlador de BIST, a ML (Masking Logic) e a

reconfiguração limitada do CUT (o PIC), já efectuada no 1º Ciclo aquando da injecção de

faltas no nível RTL, para assegurar a injecção de máscaras em entradas secundárias

(M.S.I.). Gera-se o analisador de assinatura (MISR) e, de seguida, procede-se à síntese

lógica da versão m-BIST do PIC (de acordo com a metodologia proposta) e do PIC sem

auto-teste, para efeitos de avaliação da sobrecarga do teste. Utilizam-se para o efeito duas

opções de síntese (área mínima, e período de relógio mínimo).

Finalmente, concluiu-se a caracterização da solução obtida, através do cálculo das

métricas de testabilidade. Primeiro, a eficácia do teste (TE) é avaliada, através do cálculo

da cobertura singular de faltas NSA, a nível estrutural. Verifica-se a boa correlação entre

a cobertura múltipla de faltas RTL (n=5) e a cobertura singular de faltas a nível lógico

(NSA). Avaliou-se também a sobrecarga do teste, em especial em termos do aumento

percentual de área devido à implantação de funcionalidade de auto-teste integrado.

Salienta-se, novamente, o facto de numa arquitectura de teste onde se pretendesse aplicar

a técnica de test-per-scan, só a introdução de um cadeia de full-scan, à partida, resultar

numa sobrecarga no CUT de mais de 26%, no caso da optimização para área, ou de 27%

no caso da optimização para FMAX.

Page 162: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

138

6. Conclusões

6.1. Conclusões

Como se identificou no início deste trabalho, sistemas electrónicos complexos, realizados

em tecnologias de resolução nanométrica, requerem técnicas inovadoras de auto-teste

integrado (BIST), que conduzam a uma cobertura de faltas dinâmicas elevada. As restrições

de consumo de potência e de energia necessitam de soluções BIST com sessões muito curtas.

Nesta tese de Mestrado desenvolveu-se uma nova metodologia BIST de alta qualidade para

sistemas digitais sequenciais. A metodologia foi aplicada no contexto do projecto de um

produto industrial (controlador PIC).

A metodologia de BIST proposta é uma extensão (para sistemas sequenciais) da

metodologia de BIST baseada em mascaras (m-BIST) A metodologia m-BIST proposta para

sistemas sequenciais é uma técnica de teste ao ritmo do relógio (test-per-clock) que não

reconfigura o CUT em modo de BIST. Esta característica permite realizar auto-teste à

frequência nominal do relógio (at-speed testing) e deverá conduzir a uma cobertura elevada

de faltas dinâmicas, já que as propriedades temporais do CUT não são modificadas

significativamente no modo de auto-teste.

A metodologia explora duas abordagens – a baseada em simulação (com a ferramenta

VeriDOS) e a probabilística (com a ferramenta ASCOPA). Permite uma injecção de faltas

RTL quasi automática, a identificação e remoção de eventuais erros de projecto e a

identificação de problemas de testabilidade. A ferramenta ASCOPA gera automaticamente as

máscaras. Desenvolveu-se uma nova técnica de injecção de máscaras, que permite a

realização de experiências de simulação de faltas a nível RTL e a reconfiguração de código

RTL, de tal forma que, quando o nível de testabilidade especificado é atingido, se dispõe de

uma descrição RTL do CUT e funcionalidade de m-BIST pronta para a síntese lógica. A

validação da qualidade da solução de auto-teste é realizada, a nível lógico, com recurso a uma

ferramenta de simulação de faltas comercial (Verifault™, da Cadence). A metodologia foi

incorporada no fluxo de projecto do parceiro industrial (Tecmic).

Page 163: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

139

A metodologia m-BIST proposta foi validada para faltas estáticas, a nível RTL e a nível

estrutural. A metodologia é caracterizada, no seu fluxo de procedimentos, por dois ciclos, o

primeiro inteiramente a nível RTL, e o segundo primariamente a nível estrutural (lógico).

No primeiro ciclo, efectua-se uma reconfiguração do código RTL para injecção de faltas

(em parte realizada pela ferramenta RTL2FO, em parte manualmente), identificam-se e

removem-se eventuais erros de projecto, e identificam-se os principais problemas de

testabilidade. Identificam-se, a nível RTL as partes da funcionalidade difíceis de testar (cantos

escuros) com padrões de teste pseudo-aleatório. A abordagem de simulação (VeriDOS) e a

probabilística permitem discriminar entre problemas de controlabilidade e/ou de

observabilidade. A ferramenta ASCOPA gera automaticamente as máscaras necessárias para

reforçar a controlabilidade e a detectabilidade do sistema. O código RTL é progressiva e

iterativamente reconfigurado para incluir a funcionalidade de auto-teste (controlador, LFSR,

MUX, ML, e a reconfiguração do CUT para injecção de máscaras nas SI (MSI)). A TPI

(inserção de pontos de teste) é realizada, primeiro, para reforço da controlabilidade (através

das máscaras), e segundo, para reforço da observabilidade (através de tornar observável

algumas SO no MISR). Quando a cobertura múltipla (n=5) de faltas RTL atinge os 100%, o

processo iterativo cessa.

No 2º. Ciclo, reconfigura-se novamente o código RTL para remover as modificações

associadas à injecção de faltas, e para gerar a descrição comportamental do MISR. Procede-se

à síntese lógica, e à validação da qualidade do teste a nível estrutural. Essa validação, em

termos de eficácia do teste, é efectuada com simulação de faltas estruturais, recorrendo-se a

um simulador comercial (Verifault™). A síntese, junto com a simulação lógica, permite

identificar a sobrecarga de teste em termos de área adicional e de degradação do desempenho.

A metodologia m-BIST proposta foi explicada, na sua execução passo a passo, com

recurso ao circuito de referência de b13, (do conjunto de ITC’99). A metodologia foi validada

usando o projecto industrial de um PIC, controlador de um contador estático de energia

eléctrica.

Mostrou-se que a correlação entre a cobertura múltipla de faltas RTL (judiciosamente

escolhidas, para que os modelos de faltas reflictam a expansão topológica que se observa, a

Page 164: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

140

nível estrutural) e a cobertura singular de faltas estruturais (tais como faltas LSA, ou defeitos

físicos) continua a verificar-se no caso dos sistemas sequenciais.

Demonstrou-se que se podem desenvolver soluções m-BIST para sistemas sequenciais

com elevada eficácia de teste, sobrecarga de teste limitada (área e desempenho), comprimento

de teste reduzido e consumo de potência similar ao que se obtém com teste pseudo-

aleatório19.

No caso do b13, utilizam-se 2 máscaras, não é necessário TPI para observabilidade (isto

é, não é preciso tornar SO observáveis no MISR ) e, com cerca de N=7000 vectores, obtém-se

97% de cobertura de faltas estruturais, mantendo o carácter sequencial do CUT. Em

percentagem, apenas 15% das SI (MSI) e 0% das PI (MPI) precisam ser forçadas. A

sobrecarga de teste é bem modesta, quando comparada com a sobrecarga que resulta da

aplicação de uma técnica de test-per-scan.

No caso do controlador PIC (sistema sequencial muito mais complexo), utilizam-se 17

máscaras. Neste caso, torna-se necessário observar 94 bit (SO) no MISR. Com cerca de

N=14.000 vectores, obtém-se 95% de cobertura de faltas estruturais, mantendo o carácter

sequencial do CUT. Neste caso, 41% das SI (MSI) e 55% das PI (MPI) (32% de todas as

variáveis) precisam ser forçadas. Novamente, se verifica que a sobrecarga de teste é reduzida,

quando comparada com a sobrecarga que resulta da aplicação de uma técnica de test-per-

scan.

6.2. Trabalho Futuro

O autor deste trabalho tem consciência das limitações da metodologia agora

proposta, e do trabalho que deve ser realizado a fim que a mesma possa ter uma aplicação

no mundo real, industrial. Tais limitações, e as melhorias que podem ser realizadas,

enquadram as perspectivas de trabalho futuro, já previsto (pelo menos em parte) no novo

projecto Medea+, designado NANOTEST.

19 O cálculo da potência dissipada pode ser realizado pela ferramenta VeriDOS, que calcula automaticamente a actividade de comutação ponderada (WSA, Weighted Switching Activity) [24]. Forçando os bit determinísticos e mantendo-os a um valor fixo durante um número significativo de ciclos do relógio, reduz-se a actividade das entradas, relativamente ao teste pseudo-aleatório. Tipicamente, isso conduz a uma actividade do CUT menor ou igual à que se verifica quando este é exercitado pelo padrão pseudo-aleatório.

Page 165: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

141

Em primeiro lugar, refira-se a dificuldade (que o autor enfrentou) de trabalhar com

ferramentas computacionais académicas (VeriDOS e ASCOPA), em fase de permanente

desenvolvimento, depuração e aprimoramento. Tais ferramentas são, em boa verdade,

demonstradoras dos algoritmos e metodologias em desenvolvimento, e não são

ferramentas estabilizadas e inteiramente confiáveis. Por exemplo, pretende-se que, no

futuro, a ferramenta VeriDOS realize (se possível) automaticamente todo o processo de

injecção de faltas RTL. Assim, o processamento realizado pela ferramenta auxiliar

RTL2FO deve migrar para o VeriDOS. O estudo da possibilidade de automatizar a

injecção de faltas em operadores aritméticos deve também ser conduzido. A geração de

máscaras, realizada pela ferramenta ASCOPA, poderá também ser aprimorada.

Em segundo lugar, existe a possibilidade de, apesar da correlação elevada entre a

detecção-n de faltas RTL e a detecção singular de faltas estruturais, não se conseguir

valores de cobertura de faltas singular de acordo com as especificações. Isso significará

que haverá que realizar um refinamento (a posteriori, depois da síntese lógica) da

qualidade do teste. É convicção do autor que esse refinamento pode ser efectuado sem

modificação significativa da solução de auto-teste obtida. Todavia, a confirmação disso

necessita de trabalho futuro. Com efeito, pode verificar-se que o comprimento do teste

associado a cada máscara, julgado suficiente a nível RTL (uma vez que conduz a uma

saturação da curva FC(n)) não o seja a nível estrutural, pelo facto de que a estrutura a ser

escrutinada, por activação da máscara, seja de complexidade apreciável. Assim, há que

experimentar alongar certas partes da sessão de BIST, realizando isso criteriosamente,

tendo em atenção a complexidade da funcionalidade não inteiramente exercitada, a nível

lógico (isto é, reutilizando a informação disponível em RTL).

Em terceiro lugar, uma perspectiva muito interessante e natural, como sequência

deste trabalho, é a análise da capacidade da solução m-BIST encontrada servir para se

obter elevadas coberturas de faltas dinâmicas. Uma vez que estas dependem, não apenas

dos vectores, mas também das sequências de pares de vectores, isso pode justificar (1)

uma análise da vantagem (ou não) de recorrer a outros geradores de padrões pseudo-

aleatórios, tais como CA, ou TPG aritméticos, ou (2) a geração de pares de máscaras que

activem caminhos críticos de sinal (mesmo a nível RTL) entre entradas e saídas

observáveis.

Page 166: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

142

Uma perspectiva adicional de trabalho futuro é a possibilidade de reutilizar a técnica

de injecção de máscaras que se propõe (mantendo o carácter sequencial do CUT) para

outro tipo de vectores determinísticos. De facto, conceptualmente, nada impede que os

vectores determinísticos julgados necessários na aplicação de uma técnica de test-per-

scan, tal como a de bit-fixing, sejam injectados na técnica test-per-clock proposta.

Page 167: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

143

7. Bibliografia [1] M.L. Bushnel, V.D. Agrawal, “Essentials of Electronic Testing for Digital Memory and

Mixed-Signal VLSI Circuits”, Kluwer Academic Publishers, 2000. [2] R. Rajsuman, “Digital Hardware Testing: Transistor-Level Fault Modeling and Testing”,

Artech House, Boston, London, 1992. [3] P. Bardell, W. McAnney, J. Savir, “Built-In Self Test for VLSI: Pseudo-Random Sequences”,

John Wiley and Sons, Somerset, New Jersey, 1987. [4] H. Fujiwara, “Logic Testing and Design for Testability”, MIT Press, Cambridge, USA, 1985. [5] N. K. Jha, S. Kundu, “Testing and Reliable Design of CMOS Circuits”, Kluwer Academic

Publishers, 1990. [6] G. Hetherington, T. Fryars, N. Tamarapalli, M. Kassab, A. Hassan, J. Rajski, “Logic BIST for

Large Industrial Designs: Real Issues and Case Studies”, Proc. IEEE Int. Test Conf. (ITC), pp. 358-367, 1999.

[7] S. Swaminathan and K. Chakrabarty, "A deterministic scan-BIST architecture with application to field testing of high-availability systems", Proc. IEEE Custom Integrated Circuits Conference, pp. 259-262, May 2001.

[8] ITRS, International Technology Roadmap for Semiconductors, versão de 2004 (disponível em http://www.itrs.net/Common/2004Update/2004_02_Test.pdf ).

[9] OPC, http://www.synopsys.com/products/ntimrg/opc_ds.html 2005. [10] K.-T. Cheng, S. Devadas, K. Keutzer, “Delay Fault Test Generation and Synthesis for

Testability under a Standard Scan Design Methodology”, IEEE Trans. on CAD of Int. Circs. and Systems, vol. 12, nº. 8, pp. 1217-1231, August 1993.

[11] Franco, P., and E.J. McCluskey, "Delay Testing of Digital Circuits by Output Waveform Analysis", Proc. 1991 Int. Test Conf., Nashville, TN, pp. 798-807, Oct. 26-30, 1991.

[12] Jonathan T.-Y. Chang and E. J. McCluskey, “Detecting Delay Flaws By Very-Low-Voltage Testing”, Proc. International Test Conference, 1996.

[13] W.B. Jone, Y.P. Ho, S.R. Das, “Delay Fault Coverage Enhancement Using Variable Observation Times”, Journal of Electronic Testing: Theory and Applications (JETTA), vol. 11, pp. 131-146, 1997.

[14] Keerthi Heragu, Janak H. Patel, and V. D. Agrawal, “Segment Delay Faults: A new Fault Model”, Proc. of the VLSI Test Symposium, pp. 32-39, April 1996.

[15] Manish Sharma, “Enhancing Defect Coverage of VLSI Chips by Using Cost Effective Delay Fault Tests“,UILU-ENG-03-2220, October2003, available at http://www.crhc.uiuc.edu/TechReports/reports.html

[16] S. Bendhia, M. Ramdani, E. Sicard, “Electromagnetic Compatibility of Integrated Circuits”, Springer, ISBN 0-387-26600-3, Nov. 2005.

[17] A. Krstic, Y-M. Jiang, K.-T. Cheng, "Pattern Generation for Delay Testing and Dynamic Timing Analysis Considering Power-Supply Noise Effects" IEEE Transactions on CAD, vol. 20, nº. 3, pp. 416-425, 2001.

[18] T. Karnik, P. Hazucha, J. Patel, “Characterization of Soft Errors Caused by Single Event Upsets in CMOS Processes”, IEEE Trans. On Dependable and Secure Computing, vol. 1, Nº. 2, pp. 128-143, April-June 2004.

[19] S. Mitra, N. Seifert,M. Zhang, Q. Shi, K.S. Kim, “Robust system design with built-in soft-error resilience”, IEEE Computer, vol. 38, nº. 2, pp. 43- 52, February 2005.

[20] S. Pateras, “Achieving at-speed structural test”, IEEE Design & Test of Computers, vol. 20, nº. 5, pp. 26-33, Sept- Oct. 2003.

[21] M.B. Santos, F.M. Gonçalves, I.C. Teixeira and J.P. Teixeira, "RTL-Based Functional Test Generation for High Defects Coverage in Digital Systems", Journal of Electronic Testing, Theory and Application (JETTA), vol. 17, Nº 3/4, pp. 311-319, Kluwer, June/August 2001.

[22] C. Leong, P. Bento, J. P. Teixeira, I. C. Teixeira, P. Rodrigues, A. Trindade, J. C. Silva, J. Varela, J. Rego, J. Nobre, P. Lousã, “Design and Test Methodology for a Reconfigurable

Page 168: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

144

PEM Data Acquisition Electronics System”, Proc. of 15th. Int. Conf. On Field-Programmable Logic and Applications (FPL), 2005.

[23] M.B. Santos, F.M. Gonçalves, I.C. Teixeira and J.P. Teixeira, "Implicit Functionality and Multiple Branch Coverage (IFMB): a Testability Metric for RT-Level", Proc. of the International Test Conf. (ITC), pp. 377-385, 2001.

[24] M. B. Santos, I.C. Teixeira, J. P. Teixeira, S. Manich, R. Rodriguez and J. Figueras, "RT-Level Preparation of High-Quality/Low Energy/Low-Power BIST", Proc. of the International Test Conf. (ITC), pp.814-823, October, 2002.

[25] M. B. Santos, J.M. Fernandes, I.C. Teixeira, J.P. Teixeira, “RTL Test Pattern Generation for High Quality Loosely Deterministic BIST”, Proc. of the Design Automation and Test in Europe Conference (DATE), pp. 994-999, March 2003.

[26] J. Braga, P. Coimbrão, M. B. Santos, I.C. Teixeira and J. P. Teixeira, "On the Practical Implementation of Masked-based BIST", Proc. of the 18th. Conf. On Design of Circuits and Integrated Systems (DCIS), pp. 139-144, November 2003.

[27] J. M. Fernandes, M. B. Santos, A. L. Oliveira, J. C. Teixeira, “A Probabilistic Method for the Computation of RTL Constructs”, Proc. of the Design Automation and Test in Europe Conference (DATE), pp. 176-181, February 2004.

[28] F. Guerreiro, J.M. Fernandes, M.B. Santos, A.L. Oliveira, I.M. Teixeira, J.P. Teixeira, “Probabilistic and Simulation-Based Masked-BIST Implementation”, Proc. Of the Design of Circuits and Integrated Systems Conference (DCIS), Bordeaux, France, November 2004.

[29] F. Guerreiro, J.M. Fernandes, M.B. Santos, A.L. Oliveira, I.M. Teixeira, J.P. Teixeira, “Probabilistic and Simulation-Based Approaches to Off-Line BIST of Sequential IP Cores”, Proc. of the 8th. Design and Diagnostics of Electronic Circuits and Systems Workshop (DDECS), pp. 174-177, April 2005.

[30] F. Guerreiro, M.B Santos and J.P. Teixeira, “LPBIST Methodology”, Associate Project Deliverable R5.1, April 2004.

[31] Marcelino B. dos Santos, "Preparação de Teste de Sistemas Digitais a Nível de Transferência de Registos para Detecção de Defeitos Físicos", Tese Doutoramento, DEEC / IST, 2001.

[32] M. B. Santos, F.M. Gonçalves, I.C. Teixeira and J. P. Teixeira, “Defect-Oriented Verilog Fault Simulation of SoC Macros using a Stratified Fault Sampling Technique”, Proc. of the IEEE VLSI Test Symposium (VTS), pp. 326-332, 1999.

[33] K.-T. Cheng, C.J. Lin, “Timing-driven Test Point Insertion for Full-Scan and Partial Scan BIST”, Proc. IEEE Int. Test Conf. (ITC), pp. 506-514, 1995.

[34] S. Wang, “Low Hardware Overhead Scan-based 3-weight Weighted Random BIST”, Proc. IEEE Int. Test Conf. (ITC), pp. 868-877, 2001.

[35] K.-T. Cheng, C.J. Lin, “Timing-driven Test Point Insertion for Full-Scan and Partial Scan BIST”, Proc. IEEE Int. Test Conf. (ITC), pp. 506-514, 1995.

[36] M. B. Santos, F.M. Gonçalves, I.C. Teixeira and J. P. Teixeira, “Defect-Oriented Verilog Fault Simulation of SoC Macros using a Stratified Fault Sampling Technique”, Proc. of the IEEE VLSI Test Symp. (VTS), pp. 326-332, 1999.

[37] Scott Davidson, “ITC’99 Benchmark Circuits – Preliminary Results”, Proc. IEEE International Test Conf (ITC), pp. 1125, 1999; benchmarks available at http://www.cerc.utexas.edu/itc99-benchmarks/bench.html.

[38] F. Corno, M. Sonza-Reorda, G. Squillero, “RT-level ITC’99 Benchmarks and First ATPG Results”, IEEE Design & Test of Computers, July-August 2000, pp. 44-53.

[39] Tecmic, http://www.tecmic.pt/eng/index.html [40] IEEE Standard 1364-1995, “IEEE Standard Hardware Description Language Based on the

Verilog Hardware Description Language”, IEEE, Inc., New York, NY, USA, October 14, 1996.

[41] IEEE Standard P1364.1/D1.4, “Draft Standard for Verilog Register Transfer Level Synthesis”, IEEE, Inc., New York, NY, USA, April 26, 1999.

[42] R. Marculescu, D Marculescu, and M. Pedram, “Probabilistic Modeling of Dependencies During Switching Activity Analysis”, IEEE Trans. on Computer Aided Design of Int. Circuits and Systems, Vol. 17, Nº. 2, pp. , 1998.

Page 169: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

145

[43] G. Ferrara, F. Ferrandi, A. Fin, F. Fummy, D. Sciuto, “Functional Test Generation for Behaviorally Sequential Models”, Proc. of the Design Automation and Test in Europe Conference (DATE), pp. 403-410, March 2001.

[44] A. T. Freitas and A. L. Oliveira, “Implicit resolution of the Chapman-Kolmogorov equations in sequential circuits: An application in power estimation”, Proc. of the Design Automation and Test in Europe Conference (DATE), pp. 764-769, March 2003.

[45] F. Fallah, S. Devadas, K. Keutzer, “OCCOM: Efficient Computation of Observability-Based Code Coverage for Functional Verification “, Proc. of the 34th. Design Automation Conference (DAC), pp. 152-157, June 1998.

[46] F. Fallah, P. Ashar, S. Devadas, “Simulation Vector Generation from HDL Descriptions for Observability-Enhanced Statement Coverage”, Proc. of the 35th. Design Automation Conference (DAC), pp. 666-671, 1999.

[47] R. David, “Random Testing of Digital Circuits – Theory and Application”, Marcel Dekker, Inc., 1998.

[48] C.E. Stroud, “A Designer’s Guide to Built-In Self Test”, Kluwer Academic Pubs., ISBN 1-4020-7050-0, 2002.

[49] G. Jervan, “Hybrid Built-In Self-Test and Test Generation Techniques for Digital Systems”, Ph.D. thesis, Linkoping University, Sweden, July, 2005.

[50] F.M. Gonçalves, M.B. Santos, I.C. Teixeira, J.P.Teixeira, “Defect-Oriented Test Quality Assessment using Fault Sampling and Simulation”, Proc. Int. Test Conf. (ITC), pp. 35-41, 1998.

[51] J.J.T. Sousa, F.M. Gonçalves, J.P.Teixeira, C. Marzocca, F. Corsi, T.W. Williams, "Defect Level Evaluation in an IC Design Environment", IEEE Trans. on CAD, vol. 15, nº. 10, pp. 1286-1293, 1996.

[52] SIS: A System for Sequential Circuits Synthesis, Electronics Research Laboratory, Memorandum No. UCB/ERL M92/41, Dept. EECS, University of California, Berkeley, May 1992.

[53] B. Koenemann, “LFSR-coded test patterns for scan designs”, Proc. IEEE European Test Conference (ETC), pp. 237-242, 1991.

[54] S. Hellebrand, S. Tarnick, J. Rajski, B. Courtois, “Generation of vector patterns through reseeding of multiple-polynomial linear feedback shift registers”, Proc. Int. Test Conference (ITC), pp. 120-129, 1992.

[55] N. Zacharia, J. Rajski, J. Tyszer, “Decompression of test data using variable length-seed LFSR”, Proc. VLSI Test Symposium (VTS), pp. 426-433, 1995.

[56] L.-R. Huang, J.-Y. Jou, S.-Y. Kuo, “Gauss-elimination-based generation of multiple seed-polynomial Pairs for LFSR”, IEEE Trans. On CAD of ICS, vol. 16, nº9, pp.1015-1024, 1997.

[57] D. Kagaris, S. Tragoudas, “On the design of optimal counter-based schemes for test set embedding”, IEEE Trans. On CAD of ICS, vol. 18, nº 2, pp. 219-230, 1999.

[58] K. Chakrabarty, B. Murray, V. Yyengar, “Deterministic Built-in test pattern generation for high-performance circuits using twisted ring counters”, IEEE Trans. On VLSI Systems, vol. 8, nº5, pp. 633-636, 2000.

[59] A. Al-Yamani, E. McCluskey, “Low overhead built-in BIST reseeding”, Proc. IEEE Test Resource Partitioning Workshop (TRP), 2002.

[60] A. Stroele, H. Wunderlich, “Hardware Optimal Test Register Insertion”, Proc. TCAD, pp. 531-540, 1998.

[61] S. Ravi, G. Lakshminarayana, “TAO-BIST a framework for testability analysis and Optimization of RTL circuits for BIST”, Proc. IEEE VLSI Test Symposium (VTS), pp. 398-406, 1999.

[62] F. Corno, M. Rebaudengo, M. Sonza-Reorda, M. Violante, “A new BIST architecture for low power circuits”, Proc. IEEE European Test Workshop (ETW), pp. 160-164, 1999

[63] A. A. Al-Yamani, E.J. McCluskey, “Seed Encoding with LFSRs and Cellular Automata”, Proc. ACM/IEEE Design Automation Conf. (DAC), pp. 560-565, 2003.

[64] S. Hellebrand, H. G. Liang, H.-J. Wunderlisch, “A Mixed-mode BIST Scheme Based on Reseeding of Folding Counters”, Proc. IEEE Int. Test Conf. (ITC), pp. 778-784, 2000.

Page 170: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

146

[65] H. G. Liang, S. Hellebrand, H.-J. Wunderlisch, “Two-dimensional Test Data Compression for Scan-based Deterministic BIST”, Proc. IEEE Int. Test Conf. (ITC), pp. 894-902, 2001.

[66] H.-J. Wunderlisch, G. Kiefer, “Bit-flipping BIST”, Proc. Int. Conf. On Computer-aided Design (ICCAD), pp. 337-343, 1996

[67] N. A. Touba, E. J. McCluskey, “Altering a Pseudo-random Bit Sequence for Scan-based BIST”, Proc. IEEE Int. Test Conf. (ITC), pp. 167-175, 1996.

[68] G. Kiefer, H.-J. Wunderlisch, “Deterministic BIST with Multiple Scan Chains”, Proc. IEEE Int. Test Conf. (ITC), pp. 1057-1064, 1998.

[69] W. Li, C. Yu, S.M. Reddy, I. Pomeranz, “A Scan BIST Generation Method Using a Markov Source and Partial Bit-fixing”, Proc. ACM/IEEE Design Autom. Conf. (DAC), pp. 554-559, 2003.

[70] H. D. Schnurmann, E. Lindbloom and R.G. Carpenter, "The Weighted Random Test-Generator", IEEE Trans. Computers, vol. 24, no.7, pp.695-700, July 1975.

[71] E.B. Eichelberger, E. Linbloom, “Random-Pattern Coverage Enhancement and Diagnosis for LSSD Logic Self-Test”, IBM Journal of Research and Development, vol. 27, nº. 3, pp. 265-272, May 1983.

[72] J. A. Waicukauski, E. Lindboom, E.B. Eichelberger and O.P. Forlenza, "A Method for Generating Weighted Random Test Patterns", IBM J. Research & Development, vol. 33, no. 2, pp 149-161, March 1989.

[73] H.-J. Wunderlich, “Multiple Distributions for Biased Random Test Patterns”, IEEE Trans. On Computer-aided Design, vol. 9, nº. 6, pp. 584-593, 1990.

[74] D. Neebel and C. Kime, “Cellular Automata for Weighted Random Pattern Generation”, IEEE Trans. On Computers, vol. 46, no. 11, pp. 1219-1229, November 1997.

[75] S. Wang, “Low Hardware Overhead Scan-based 3-weight Weighted Random BIST”, Proc. IEEE Int. Test Conf. (ITC), pp. 868-877, 2001.

[76] C.V. Krishna, A. Jas, N.A. Touba, “Test Vector Encoding Using Partial LFSR Reseeding”, Proc. IEEE Int. Test Conf. (ITC), pp. 885-893, 2001.

[77] J. Rajski, J. Tyszer, N. Zacharia, “Test Data Compression for Multiple Scan Designs with Boundary Scan”, IEEE Trans. On Computers, vol. 47, nº. , pp. 1188-1200, Nov. 1998.

[78] S. Swaminathan and K. Chakrabarty, "A deterministic scan-BIST architecture with application to field testing of high-availability systems", Proc. IEEE Custom Integrated Circuits Conference, pp. 259-262, May 2001.

[79] Y. Zhang and K. Chakrabarty, "Energy-aware adaptive checkpointing in embedded real-time systems", Proc. IEEE/ACM Design, Automation and Test in Europe (DATE) Conference, pp. 918-923, 2003.

[80] L. Li and K. Chakrabarty, "Deterministic BIST based on a reconfigurable interconnection network", Proc. IEEE International Test Conference, pp. 460-469, 2003.

[81] Y. Zhang, R. P. Dick and K. Chakrabarty, "Energy-aware deterministic fault tolerance in distributed real-time embedded systems", Proc. IEEE/ACM Design Automation Conference, pp. 550-555, 2004.

[82] Rajski, J.; Kassab, M.; Mukherjee, N.; Tamarapalli, N.; Tyszer, J.; Jun Qian, “Embedded deterministic test for low-cost manufacturing”, IEEE Design & Test of Computers, vol. 20, nº. 5, pp. 58-66, Sept- Oct. 2003.

[83] Mak, T.M.; Krstic, A.; Cheng, K.-T.; Wang, Li.-C, “New challenges in delay testing of nanometer, multigigahertz designs”, IEEE Design & Test of Computers, vol. 21, nº. 3, pp. 241-248, May-June 2004.

[84] P. Girard, “Survey of Low-Power Testing of VLSI Circuits”, IEEE Design & Test of Computers, vol. 19, n° 3, pp. 82-92, May-June 2002.

[85] L.C. Wang, R. Mercer, T.W. Williams, "On the Decline of Testing Efficiency as Fault Coverage Approaches 100%", Proc. IEEE VLSI Test Symposium (VTS), pp. 74-83, 1995.

[86] C. Hawkins, J. Segura, “The Anatomy of Nanometer Ting Failures”, Proc. IEEE European Test Symposium (ETS), pp. 210-215, 2005.

[87] L. Sourgen, SmartCard Div, STMicroelectronics, “Security Constraints in Integrated Circuits”, Proc. IEEE Int. On-Line Testing Symposium (IOLTS), pp. 117, 2005.

Page 171: Aplicação da Abordagem de Auto-Teste Integrado Baseado em ... · Esta característica permite realizar auto-teste à frequência nominal do relógio (at-speed testing) e deverá

147

[88] Rajski, J.; Kassab, M.; Mukherjee, N.; Tamarapalli, N.; Tyszer, J.; Jun Qian, “Embedded Deterministic Test for Low-cost Manufacturing”, IEEE Design and Test of Computers, vol. 20, nº. 5, pp. 58- 66, 2003.

[89] A. Parreira, J. P. Teixeira, M. B. Santos, “Built-In Self-Test Quality Assessment Using Hardware Fault Emulation in FPGAs”, Computing and Informatics Journal (CAI), vol. 23, pp. 537-556 [published by the Institute of Informatics Slovak Academy of Sciences, Slovak University of Technology, Comenius (http://www.cai.sk )], 2005.

[90] M. Saraiva, M.B. Santos, A.P. Casimiro, I.M. Teixeira and J.P. Teixeira, "On the Design of a Highly Testable Cell Library", Microprocessing and Microprogramming, vol. 35, pp. 383-390, 1992.

[91] Adit D. Singh, M. Seuring, M. Gössel, E. S. Sogomonyan, “Multimode Scan: Test per Clock BIST for IP Cores”, ACM Trans. on Design Automation of Electronic Systems (TODAES), Vol. 8, nº. 4, pp. 491-505, October 2003

[92] O.P. Dias, J. Semião, I.M. Teixeira and J.P. Teixeira, "Test Resource Partitioning: A Design and Test Issue", Proc. of the Design Automation and Test in Europe (DATE) Conference (Embedded Tutorial - TRP: Integrating Embedded Test and ATE), pp. 34-35, March, 2001.

[93] Cadence Design Systems™, http://www.cadence.com/ [94] Synopsys™, http://www.synopsys.com/ [95] O.P. Dias, I.C. Teixeira, and J.P. Teixeira, “Metrics and Criteria for Quality Assessment of

Testable Hw/Sw System Architectures”, in Journal of Electronic Testing, Theory and Application (JETTA), vol. 14, nº. 1/2, pp. 149-158, Kluwer Academic Publishers, February /April 1999.

[96] Y. Zorian, Erik Jan Marinissen, “System Chip Test: How Will It Impact Your Design?”, Proc. IEEE Design Automation Conf. (DAC), pp. 136-141, 2000.

[97] CMUDSP benchmark (I – 99 - 5, ITC 99 5]), http://www.ece.cmu.edu/~lowpower/benchmarks.html

[98] The Torch processor benchmark, http://www-flash.stanford.edu:80/torch/