A Testabilidade e o Teste de Cartas de Circuito Impresso com BST

June 5, 2017 | Autor: Gustavo Alves | Categoria: Design for Testability
Share Embed


Descrição do Produto

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO Departamento de Engenharia Electrot´ ecnica e de Computadores

A Testabilidade e o Teste de Cartas de Circuito Impresso com BST

Gustavo Ribeiro da Costa Alves Licenciado em Engenharia Electrot´ecnica e de Computadores pela Faculdade de Engenharia da Universidade do Porto

Disserta¸ca˜o submetida para satisfa¸ca˜o parcial dos requisitos do programa do curso de Mestrado em Engenharia Electrot´ecnica e de Computadores (´area de especializa¸ca˜o em Inform´atica Industrial)

PORTO, Junho 1995

Disserta¸ca˜o realizada sob a supervis˜ao do Professor Doutor Jos´e Manuel Martins Ferreira, Professor Auxiliar do Departamento de Engenharia Electrot´ecnica e de Computadores da Faculdade de Engenharia da Universidade do Porto

` R´ A oea ` Diana ...

Agradecimentos ´ uma tarefa que me apraz e que no entanto considero ingrata por ter de agradecer E num curto espa¸co a tantas pessoas que de uma maneira ou de outra me ajudaram num percurso longo de ˆexitos, alguns fracassos e muito trabalho. Come¸co por agradecer a` JNICT a bolsa de Mestrado concedida e ao INESC em geral pelas excelentes condi¸co˜es de trabalho que sempre me proporcionou. Recordo aqui com gratid˜ ao todo o apoio e tempo que o Eng. Filipe Pinto me dispensou durante os meus primeiros tempos no INESC. De igual modo agrade¸co a todos os meus colegas do grupo de CAD e Microelectr´ onica pela disponibilidade e paciˆencia que sempre demonstraram para com as minhas constantes d´ uvidas e perguntas. A todos os elementos do grupo PTSE desejo expressar aqui um grande e sincero obrigado por todo o apoio e est´ımulo, que em todos os momentos me concederam. Por u ´ltimo desejo manifestar a minha profunda gratid˜ ao ao Professor Doutor Jos´e Manuel Martins Ferreira, porque desde o in´ıcio sempre me encorajou e orientou com um elevado esp´ırito e sentimento profissional, a ponto de, com o decorrer do tempo a rela¸ca˜o existente se ter transformado numa rela¸ca˜o de estima e admira¸ca˜o.

Abstract Boundary Scan Test (BST) is now supported by several Integrated Circuits (ICs) manufacturs, with the objective of finding solutions to the structural test of digital Printed Circuit Boards (PCBs). Acceptance of BST is gradually increasing, but most designs in the near future will lead to PCBs with a partial implementation of this test technology. Although some test oriented commercial ICs exist, the variety is small and their characteristics may not fit into the specific needs of each PCB. A group of Testability Building Blocks (TBBs) has therefore been developed using Programmable Logic Devices (PLDs) and a Hardware Description Language (HDL) to match the particular design and test requirements of each case. These TBBs were then used in two ways: the definition of testability guidelines for PCBs with partial implementation of BST and the development of a low-cost tester for this type of boards.

Resumo O Boundary Scan Test (BST) ´e actualmente aceite por v´ arios fabricantes de Circuitos Integrados (CIs) que disponibilizam esta infraestrutura de teste com o objectivo de facilitar o teste estrutural de Cartas de Circuito Impresso (CCIs) digitais onde estes componentes sejam empregues. Contudo esta aceita¸ca˜o n˜ ao ´e total, o que leva a` existˆencia de CCIs onde s˜ ao montados CIs com e sem BST. Apesar de existirem componentes comerciais vocacionados para o projecto e teste de CCIs com BST, a variedade dispon´ıvel n˜ ao ´e grande, existindo em certos casos alguma dificuldade em adaptar as caracter´ısticas dos componentes a`s necessidades espec´ıficas de cada CCI. O desenvolvimento de um conjunto de componentes vocacionados para o projecto e teste de CCIs com implementa¸ca˜o parcial de BST foi considerado e efectuado. Utilizaram-se Dispositivos L´ ogicos Program´ aveis e uma Linguagem de Descri¸ca˜o de Hardware para permitir ao utilizador modifica¸co˜es pontuais de forma a adaptar as caracter´ısticas dos componentes a`s necessidades espec´ıficas de cada caso. O conjunto de componentes desenvolvidos foi ent˜ ao aproveitado para dois fins: a elabora¸ca˜o de solu¸co˜es de testabilidade para CCIs com implementa¸ca˜o parcial de BST e a constru¸ca˜o de um testador de baixo custo para este tipo de cartas.

Lista de Abreviaturas ALU

Arithmetic Logic Unit

ASIC

Application Specific Integration Circuit

ASP

Addressable Shadow Port

BiCMOS

Bipolar/Complementary Metal Oxide Semiconductor

BS

Boundary Scan

BSDL

Boundary Scan Description Language

BSM

Boundary Scan Master

BST

Boundary Scan Test

CAD

Computer-Aided Design

CCI

Carta de Circuito Impresso

CA

Circuito Aberto

CC

Curto-Circuito

CI

Circuito Integrado

CMOS

Complementary Metal Oxide Semiconductor

CO

Controlabilidade/Observabilidade

CPLD

Complex Programmable Logic Device

DFT

Design For Testability

DIP

Dual In-line Package

EDIF

Electronic Data Interchange Format

EE

Electric Erasable

EPROM

Erasable Programmable Read Only Memory

E/S

Entradas/Sa´ıdas

ES2

European Silicon Structures

ESPRIT

European Strategic Programme for Research/Development in Information Technology

ETA

Equipamento de Teste Autom´ atico

FPGA

Field Programmable Gate Array

GAPT

Gera¸ca˜o Autom´ atica de Programas de Teste

i

ii

HASP

Hierarchically Addressable Shadow Port

HDL

Hardware Description Language

HP

Hewlett-Packard

IEEE

Institute of Electrical and Electronic Engineers

JETAG

Joint European Test Action Group

JNICT

Junta Nacional de Investiga¸ca˜o Cient´ıfica

JTAG

Joint Test Action Group

LED

Light Emitting Diode

LFSR

Linear Feedback Shift Register

LSI

Large Scale Integration

MCM

Multi-Chip Module

MISR

Multiple Input Signature Register

MSI

Medium Scale Integration

MTM

Module Test and Maintenance

NS

National Semiconductor

OTP

One-Time Programmable

PLD

Programmable Logic Device

PODEM

Path Oriented DEcision Making

RAM

Random Access Memory

ROM

Read Only Memory

SMT

Surface Mount Technology

SPL

Scan Path Linker

SSI

Small Scale Integration

SVF

Serial Vector Format

TAB

Tape Auomated Bounding

TAP

Test Access Port

TBC

Test Bus Controller

TCK

Test Clock

TDI

Test Data Input

TDO

Test Data Output

TI

Texas Instruments

TMS

Test Mode Select

TRST

Test Reset

UPI

Unidade de Processamento de Inteiros

UPVF

Unidade de Processamento em Virgula Flutuante

VHDL

Very high speed integrated circuit Hardware Description Language

VLSI

Very Large Scale Integration

List of Figures 2.1

Exemplo de um testador funcional . . . . . . . . . . . . . . . . . . . . . . . 12

2.2

Princ´ıpio de funcionamento de um testador in-circuit . . . . . . . . . . . . . 13

2.3

Acesso f´ısico no teste in-circuit . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.4

Infraestrutura de teste com pormenor de uma c´elula BS . . . . . . . . . . . 16

2.5

Diagrama de estados do controlador do TAP . . . . . . . . . . . . . . . . . 17

2.6

Modos de funcionamento de uma c´elula BS . . . . . . . . . . . . . . . . . . 19

2.7

Ac¸co˜es efectuadas no registo de instru¸ca˜o durante os estados Capture-IR, Shift-IR e Update-IR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.1

Arquitectura do barramento MTM . . . . . . . . . . . . . . . . . . . . . . . 33

3.2

Utiliza¸ca˜o do SCAN Bridge em configura¸ca˜o multidrop . . . . . . . . . . . . 35

3.3

Utiliza¸ca˜o do SCAN Bridge em configura¸ca˜o hier´ arquica . . . . . . . . . . . 35

4.1

Solu¸ca˜o desenvolvida para o teste das E/S prim´ arias digitais . . . . . . . . . 45

4.2

Diagrama de blocos do controlador de E/S digitais . . . . . . . . . . . . . . 46

4.3

Diagrama de blocos do registo de BS . . . . . . . . . . . . . . . . . . . . . . 47

4.4

Diagrama de blocos do controlador de teste de grupos de l´ ogica n˜ ao BST . 48

4.5

Liga¸co˜es no interior do conjunto de c´elulas de sa´ıda do registo de BS . . . . 49

4.6

Liga¸co˜es no interior do conjunto de c´elulas de entrada do registo de BS . . . 49

4.7

Solu¸ca˜o desenvolvida para o acesso a n´ os anal´ ogicos . . . . . . . . . . . . . 51

4.8

Diagrama de blocos do controlador de teste de n´ os anal´ ogicos . . . . . . . . 52

4.9

Diagrama de blocos do controlador de teste residente . . . . . . . . . . . . . 54

5.1

Diagrama de blocos da CCI-exemplo . . . . . . . . . . . . . . . . . . . . . . 60

5.2

Troca de buffers para efeitos de teste de liga¸co˜es . . . . . . . . . . . . . . . 67

5.3

Diagrama temporal da execu¸ca˜o da instru¸ca˜o MOVX r,(DPTR) . . . . . . . 71

6.1

O testador de CCIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

6.2

Diagrama de blocos da arquitectura global (n´ıvel f´ısico) do testador iii

. . . . 79

LIST OF FIGURES

iv

6.3

Bloco do controlador de teste e mem´ oria dos programas de teste . . . . . . 80

6.4

Bloco de desserializa¸ca˜o e mem´ oria das respostas aos vectores de teste . . . 82

6.5

Conectores para liga¸ca˜o das E/S prim´ arias digitais da CCI a testar . . . . . 84

6.6

Localiza¸ca˜o e exemplos de utiliza¸ca˜o do primeiro controlador de teste das E/S prim´ arias digitais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

6.7

Localiza¸ca˜o e exemplo de utiliza¸ca˜o do segundo e terceiro controlador para o teste das E/S prim´ arias digitais . . . . . . . . . . . . . . . . . . . . . . . . 85

6.8

Bloco de teste das E/S prim´ arias anal´ ogicas . . . . . . . . . . . . . . . . . . 85

6.9

Bloco das entradas anal´ ogicas . . . . . . . . . . . . . . . . . . . . . . . . . . 86

6.10 Bloco das sa´ıdas anal´ ogicas . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 6.11 Localiza¸ca˜o e exemplo de utiliza¸ca˜o do bloco para o teste das E/S prim´ arias anal´ ogicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 6.12 Exemplo de utiliza¸ca˜o de todos os recursos existentes no testador . . . . . . 87 6.13 Bloco de comunica¸co˜es e controlo de actividades . . . . . . . . . . . . . . . 88 6.14 Diagrama de blocos do controlo de actividades . . . . . . . . . . . . . . . . 89 6.15 Acesso aos barramentos de dados e endere¸cos do bloco do controlador de teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 6.16 Acesso aos barramentos de dados e endere¸cos do bloco do desserializador . . 90 6.17 Diagrama de estados da rotina principal . . . . . . . . . . . . . . . . . . . . 91 6.18 Diagrama de estados da rotina de modo de opera¸ca˜o . . . . . . . . . . . . . 92 6.19 Fluxo de informa¸ca˜o na GAPT . . . . . . . . . . . . . . . . . . . . . . . . . 94 6.20 Etapas de teste de uma CCI . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 7.1

A CCI usada no exemplo de utiliza¸ca˜o . . . . . . . . . . . . . . . . . . . . . 98

7.2

Diagrama de blocos da CCI usada no exemplo de utiliza¸ca˜o . . . . . . . . . 98

7.3

Tipos de liga¸co˜es existentes na carta a testar . . . . . . . . . . . . . . . . . 99

7.4

Configura¸ca˜o do testador para o exemplo de utiliza¸ca˜o . . . . . . . . . . . . 100

7.5

Menu Project Definitions do WinGAPT . . . . . . . . . . . . . . . . . . . . 101

7.6

Mensagem inicial apresentada pelo testador . . . . . . . . . . . . . . . . . . 102

7.7

Mensagem que indica o funcionamento do testador em TURBO mode

7.8

Imagem capturada no oscilosc´ opio durante a execu¸ca˜o do programa de teste em TURBO mode

7.9

. . . 103

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

Mensagem que indica o final da execu¸ca˜o de teste em TURBO mode . . . . 104

7.10 Falta do tipo curto-circuito entre duas entradas prim´ arias . . . . . . . . . . 105 7.11 Mensagem apresentada pelo testador no modo de funcionamento normal . . 105

LIST OF FIGURES

v

7.12 Mensagem apresentada pelo testador no modo de funcionamento Breakpoint por endere¸co . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 7.13 Extracto do ficheiro relat´ orio do programa de teste . . . . . . . . . . . . . . 106 7.14 Mensagem apresentada pelo testador ap´ os a transferˆencia, para o PC, do conte´ udo da mem´ oria das respostas ao teste . . . . . . . . . . . . . . . . . . 107

List of Tables 2.1

Tipos de teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

2.2

Algumas falhas causadas por erros e defeitos de fabrico . . . . . . . . . . . .

7

4.1

Instru¸co˜es suportadas pelo controlador de E/S digitais . . . . . . . . . . . . 45

4.2

Registos existentes no controlador de E/S digitais . . . . . . . . . . . . . . . 46

4.3

Polin´ omios implementados pelo conjunto de c´elulas de sa´ıda do registo de BS 50

4.4

Instru¸co˜es suportadas pelo controlador de teste de grupos de l´ ogica n˜ ao BST 50

4.5

Instru¸co˜es suportadas pelo controlador de E/S anal´ ogicas . . . . . . . . . . 53

4.6

Registos existentes no controlador de E/S anal´ ogicas . . . . . . . . . . . . . 53

4.7

Instru¸co˜es do controlador de teste . . . . . . . . . . . . . . . . . . . . . . . . 55

4.8

Percentagem de recursos utilizados em cada componente . . . . . . . . . . . 57

5.1

Facilidades desej´ aveis exibidas pelos componentes existentes na CCI-exemplo 61

5.2

Grupos de liga¸co˜es existentes na CCI-exemplo e respectiva classifica¸ca˜o . . 63

5.3

Solu¸co˜es, ac¸co˜es e precau¸co˜es a tomar na detec¸ca˜o de liga¸co˜es em aberto em cada um dos tipos identificados . . . . . . . . . . . . . . . . . . . . . . . 65

5.4

Solu¸co˜es, ac¸co˜es e precau¸co˜es a tomar na detec¸ca˜o de liga¸co˜es em curtocircuito para cada um dos tipos identificados . . . . . . . . . . . . . . . . . 66

5.5

An´ alise do tipo de liga¸co˜es existentes na CCI-exemplo e respectivo teste ap´ os a aplica¸ca˜o das solu¸co˜es de testabilidade . . . . . . . . . . . . . . . . . 68

5.6

Recursos necess´ arios para a implementa¸ca˜o das solu¸co˜es propostas . . . . . 69

vi

Contents 1 Introdu¸ c˜ ao

1

2 Tecnologias de Teste de CCIs

3

2.1

Conceitos gerais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

2.1.1

Tipos de teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

2.1.2

Origens e consequˆencias das falhas . . . . . . . . . . . . . . . . . . .

6

2.1.3

Modelos de faltas . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7

2.1.4

Gera¸ca˜o autom´ atica dos est´ımulos de teste

. . . . . . . . . . . . . .

8

2.1.5

Testabilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

2.1.6

Metodologias estruturadas de projecto orientado a` testabilidade . . .

9

2.1.7

Auto-teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.2

O teste funcional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.3

O teste in-circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.4

Boundary Scan Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.5

2.4.1

O controlador do TAP . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.4.2

Os registos de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.4.3

O registo de instru¸ca˜o . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.4.4

O conjunto de instru¸co˜es

. . . . . . . . . . . . . . . . . . . . . . . . 21

Conclus˜ ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3 Implanta¸ c˜ ao da Tecnologia BST 3.1

3.2

Estado actual ao n´ıvel dos CIs

24 . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.1.1

Componentes gen´ericos . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.1.2

Componentes vocacionados para o teste . . . . . . . . . . . . . . . . 29

3.1.3

Aplica¸co˜es alternativas possibilitadas pela infraestrutura BST . . . . 35

Ferramentas de CAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.2.1

Inser¸ca˜o autom´ atica da infraestrutura BST . . . . . . . . . . . . . . 37

3.2.2

Gera¸ca˜o autom´ atica dos testes . . . . . . . . . . . . . . . . . . . . . 38 vii

CONTENTS

viii

3.3

Equipamentos de teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

3.4

Conclus˜ ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4 Testabilidade por Medida em CCIs: Blocos B´ asicos

42

4.1

Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.2

Os blocos para o teste de liga¸co˜es n˜ ao BST . . . . . . . . . . . . . . . . . . 44 4.2.1

Teste das E/S prim´ arias da CCI . . . . . . . . . . . . . . . . . . . . 45

4.2.2

Teste de liga¸co˜es em grupos de l´ ogica n˜ ao BST . . . . . . . . . . . . 47

4.3

O bloco para o teste de liga¸co˜es entre componentes anal´ ogicos . . . . . . . . 51

4.4

O controlador de teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

4.5

Conclus˜ ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

5 Solu¸ c˜ oes de Testabilidade para CCIs com BST

58

5.1

Facilidades desej´ aveis ao n´ıvel dos CIs . . . . . . . . . . . . . . . . . . . . . 58

5.2

O projecto orientado a` testabilidade . . . . . . . . . . . . . . . . . . . . . . 59 5.2.1

Estudo de uma caso: Uma CCI de m´edia complexidade . . . . . . . 59

5.2.2

Tipos de liga¸co˜es existentes . . . . . . . . . . . . . . . . . . . . . . . 62

5.2.3

Solu¸co˜es para o teste de liga¸co˜es . . . . . . . . . . . . . . . . . . . . 64

5.2.4

Solu¸co˜es para o teste de componentes . . . . . . . . . . . . . . . . . 72

5.2.5

Implementa¸ca˜o de auto-teste . . . . . . . . . . . . . . . . . . . . . . 73

5.2.6

Solu¸co˜es de testabilidade com componentes comerciais orientados ao teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

5.3

Repercuss˜ oes ao n´ıvel do sistema . . . . . . . . . . . . . . . . . . . . . . . . 74

5.4

Conclus˜ ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

6 O Testador de CCIs com BST 6.1

77

Arquitectura do testador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 6.1.1

O bloco do controlador de teste . . . . . . . . . . . . . . . . . . . . . 80

6.1.2

O bloco de desserializa¸ca˜o . . . . . . . . . . . . . . . . . . . . . . . . 81

6.1.3

O bloco para o teste das E/S digitais . . . . . . . . . . . . . . . . . . 83

6.1.4

O bloco para o teste das E/S anal´ ogicas . . . . . . . . . . . . . . . . 84

6.1.5

O bloco de comunica¸co˜es e controlo de actividades . . . . . . . . . . 87

6.2

Os modos de funcionamento . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

6.3

A gera¸ca˜o autom´ atica de programas de teste

6.4

Conclus˜ ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

. . . . . . . . . . . . . . . . . 94

CONTENTS

ix

7 Um Exemplo de Utiliza¸ c˜ ao

97

7.1

Descri¸ca˜o da CCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

7.2

Configura¸ca˜o do testador em fun¸ca˜o da CCI . . . . . . . . . . . . . . . . . . 99

7.3

Gera¸ca˜o autom´ atica do programa de teste . . . . . . . . . . . . . . . . . . . 100

7.4

Execu¸ca˜o do teste

7.5

Conclus˜ ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

8 Conclus˜ ao

108

Bibliografia

120

Chapter 1

Introdu¸ c˜ ao O grupo de Projecto e Teste de Sistemas Electr´ onicos (PTSE) beneficiou do trabalho desenvolvido no aˆmbito do projecto ESPRIT 2478 denominado Research into BoundaryScan Test, e no aˆmbito do projecto PMCT/C/TIT/937/90 da JNICT, denominado Sistema de valida¸ca˜o e teste de cartas de circuito impresso com BST. Foi atrav´es deste u ´ltimo projecto que o autor iniciou o seu trabalho na a´rea do teste electr´ onico. O projecto e teste estrutural de Cartas de Circuito Impresso (CCIs) digitais disp˜ oe desde o in´ıcio dos anos 90 da primeira metodologia adoptada como norma do IEEE (a norma 1149.1 de Fevereiro de 1990): o Boundary Scan Test (BST) ou teste com varrimento pela periferia. Este aparecimento n˜ ao se ficou a dever a acontecimentos fortuitos mas sim a` constata¸ca˜o, em meados da d´ecada de 80, de que os testadores existentes na altura, baseados noutras tecnologias de teste, n˜ ao conseguiam responder aos desafios lan¸cados pelas novas tecnologias de encapsulamento e montagem de Circuitos Integrados (CIs) e pelos constantes aumentos dos n´ıveis de integra¸ca˜o nos CIs. Apesar das grandes vantagens que apresenta e por v´ arias raz˜ oes, a infraestrutura BST n˜ ao est´ a dispon´ıvel em todos os CIs, pelo que a introdu¸ca˜o desta tecnologia de teste tem tido lugar de uma forma gradual, conduzindo deste modo a` existˆencia de CCIs possuidoras de componentes com e sem BST. Este panorama justificou o desenvolvimento de um conjunto de componentes vocacionados para apoiar o projecto e o teste de CCIs com BST, cuja primeira aplica¸ca˜o consistiu no desenvolvimento de um testador de baixo custo, constituindo estes temas a base do trabalho descrito nesta tese. A estrutura da tese encontra-se organizada em oito cap´ıtulos, sendo o primeiro constitu´ıdo por esta introdu¸ca˜o e o u ´ltimo pela conclus˜ ao do trabalho. Numa perspectiva global pode dividir-se esta tese em trˆes partes. Uma parte introdut´ oria que engloba os cap´ıtulos 1 a 3. Uma parte principal que descreve o desenvolvimento de um conjunto de 1

˜ CHAPTER 1. INTRODUC ¸ AO

2

componentes vocacionados para apoiar o projecto e o teste de CCIs com BST (cap´ıtulo 4), cuja aplica¸ca˜o em dois dom´ınios distintos ´e ent˜ ao descrita: a implementa¸ca˜o de solu¸co˜es de testabilidade para CCIs com BST (cap´ıtulo 5) e a constru¸ca˜o de um testador de baixo custo para CCIs com BST (cap´ıtulo 6). Finalmente, uma parte de conclus˜ ao, constitu´ıda pelos cap´ıtulos 7 e 8. O cap´ıtulo 2 fornece ao leitor os conhecimentos de base, bem como a terminologia usada na a´rea do teste electr´ onico de CCIs. Referem-se os conceitos gerais que cobrem a necessidade do teste e os seus v´arios tipos, as origens e consequˆencias das falhas, os modelos de faltas, a gera¸ca˜o autom´ atica dos est´ımulos de teste, a cobertura de faltas, a no¸ca˜o de testabilidade, as metodologias estruturadas de projecto orientado a` testabilidade e o auto-teste. S˜ ao ainda apresentadas as diferentes tecnologias de teste de CCIs: o teste funcional, o teste in-circuit e o BST, este u ´ltimo em maior detalhe. No cap´ıtulo 3 ilustra-se o estado actual de implanta¸ca˜o da tecnologia BST ao n´ıvel dos CIs, das ferramentas de CAD e dos equipamentos de teste electr´ onico. Em termos de CIs distinguem-se componentes gen´ericos e componentes vocacionados para o teste. Inclui-se igualmente uma breve descri¸ca˜o de aplica¸co˜es alternativas possibilitadas pela infraestrutura BST. O cap´ıtulo 4 descreve o processo de identifica¸ca˜o, especifica¸ca˜o e desenvolvimento de um conjunto de componentes vocacionados para o teste de CCIs. O seu desenvolvimento visa permitir o teste das Entradas/Sa´ıdas (E/S) prim´ arias digitais e anal´ ogicas atrav´es da infraestrutura BST, o aumento da testabilidade de grupos de componentes n˜ ao BST e a implementa¸ca˜o de auto-teste ao n´ıvel da CCI. O cap´ıtulo 5 descreve algumas solu¸co˜es de testabilidade para CCIs com BST, que incluem exemplos de aplica¸ca˜o de alguns dos componentes desenvolvidos. No cap´ıtulo 6 apresenta-se um segundo campo de aplica¸ca˜o dos componentes desenvolvidos: o desenvolvimento de um testador de baixo custo para CCIs com BST. A utiliza¸ca˜o do testador ´e descrita no cap´ıtulo 7, atrav´es de um exemplo com uma CCI de demonstra¸ca˜o. Ap´ os a apresenta¸ca˜o desta CCI, refere-se o processo da gera¸ca˜o autom´ atica do programa de teste e ilustra-se com algum detalhe a sua execu¸ca˜o, percorrendose alguns dos menus de interface do testador com o utilizador. O cap´ıtulo 8 encerra a tese com um conjunto de conclus˜ oes sobre o trabalho desenvolvido e a indica¸ca˜o de direc¸co˜es futuras. Ao longo da tese utiliza-se o estilo it´ alico para termos numa l´ıngua estrangeira e inclinado para real¸car o significado do termo utilizado.

Chapter 2

Tecnologias de Teste de CCIs As tecnologias de teste aplicam-se nos trˆes n´ıveis hier´ arquicos principais em que se podem dividir os produtos electr´ onicos: o CI, a CCI e o sistema. A fase de teste, em qualquer um destes trˆes n´ıveis, constitui uma das mais importantes, pois aparece ao longo de todo o ciclo de vida do produto: desenvolvimento e constru¸ca˜o do primeiro prot´ otipo, na fabrica¸ca˜o em s´erie e finalmente na manuten¸ca˜o (para as CCIs e sistemas). O trabalho descrito nesta tese situa-se fundamentalmente ao n´ıvel da CCI, pelo que os outros dois n´ıveis ser˜ ao referidos apenas quando tal for vantajoso para a compreens˜ ao do assunto em discuss˜ ao. Este cap´ıtulo tem por objectivo fornecer ao leitor os conhecimentos de base, bem como a terminologia usada na a´rea do teste. Come¸ca-se por referir os conceitos gerais, abordando-se de seguida as tecnologias de teste de CCIs, por ordem cronol´ ogica de aparecimento: o teste funcional ou teste atrav´es dos conectores, o teste in-circuit e finalmente a tecnologia de teste dos anos 90, o Boundary-Scan Test (BST) ou teste com varrimento pela periferia.

2.1

Conceitos gerais

O sucesso de um produto electr´ onico depende de muitos factores, sendo no entanto normalmente aceite que uma boa rela¸ca˜o pre¸co/qualidade ´e um dos factores importantes. Em menor escala pode afirmar-se que a assistˆencia, para certos tipos de produtos (ex. fotocopiadoras ou equipamentos para a ind´ ustria), representa igualmente um factor importante. De igual modo o conceito de time-to-market, i.e. o tempo que medeia entre a concep¸ca˜o de um produto e a sua coloca¸ca˜o no mercado, assume uma maior importˆ ancia dentro das empresas que fabricam produtos electr´ onicos, atendendo a` rapidez que caracteriza a evolu¸ca˜o tecnol´ ogica neste dom´ınio. O teste de um produto contribui em grande medida 3

CHAPTER 2. TECNOLOGIAS DE TESTE DE CCIS

4

para estes trˆes factores, dois vis´ıveis para o exterior da empresa, a rela¸ca˜o pre¸co/qualidade e a assistˆencia, sendo o terceiro (time-to-market) apenas vis´ıvel no interior da empresa.

2.1.1

Tipos de teste

A constru¸ca˜o de um prot´ otipo constitui a primeira fase do ciclo de vida de um produto electr´ onico. O teste, nesta fase designado por teste de prot´ otipos, permite verificar se o produto funciona de acordo com as especifica¸co˜es, sendo t˜ ao exaustivo quanto poss´ıvel e geralmente executado pelo(s) projectista(s). A an´ alise exaustiva ´e necess´ aria pela impossibilidade de se enumerar todos os poss´ıveis erros do projecto. A maior ou menor facilidade de testar o produto, i.e. detectar, localizar o erro e posteriormente corrigi-lo, voltando depois a repetir este procedimento at´e que se obtenha um produto que funcione 100% de acordo com as especifica¸co˜es, ditar´ a a dura¸ca˜o do time-to-market. ´ E ainda durante a fase de valida¸ca˜o do prot´ otipo que s˜ ao dados os primeiros passos para a concep¸ca˜o do teste de produ¸ca˜o. A produ¸ca˜o s´ o poder´ a come¸car quando este estiver pronto, impondo assim que a elabora¸ca˜o deste tipo de teste seja feita o mais rapidamente poss´ıvel. Geralmente esta tarefa ´e atribu´ıda a um engenheiro de teste, de forma a poder libertar o projectista para novos desenvolvimentos. Desta forma a elabora¸ca˜o do teste de produ¸ca˜o surge como uma tarefa ad-hoc, o que como veremos mais adiante, poder´ a em certos casos trazer s´erios problemas [1, 2]. O teste de produ¸ca˜o ir´ a ter um papel decisivo na rela¸ca˜o pre¸co/qualidade, uma vez que influencia estes dois parˆ ametros. Quanto mais exaustivo for um teste, mais certeza se tˆem que os produtos que saem para o mercado se encontram em perfeitas condi¸co˜es, contribuindo assim para uma imagem de qualidade. No entanto, quanto mais exaustivo for um teste mais tempo e dinheiro se gasta na sua concep¸ca˜o e realiza¸ca˜o, o que afecta negativamente o pre¸co final de um produto. Apesar de n˜ ao ser poss´ıvel enumerar todos os poss´ıveis defeitos de fabrico, o custo de um teste de produ¸ca˜o pode ser reduzido pela transposi¸ca˜o para o plano l´ ogico das consequˆencias dos defeitos, como se ver´ a nas duas sec¸co˜es seguintes. A importˆ ancia do teste para a qualidade e pre¸co de um produto electr´ onico ´e referida em [3], onde se prop˜ oe ainda uma aproxima¸ca˜o geral aos v´ arios factores de custo na elabora¸ca˜o e aplica¸ca˜o do teste. A manuten¸ca˜o pode ser feita em duas situa¸co˜es, nomeadamente a dos produtos que tenham sido rejeitados na linha de produ¸ca˜o, onde apenas se faz a detec¸ca˜o de erros, e a dos produtos que retornem do utilizador com algum tipo de avaria. Num e noutro caso ´e preciso efectuar um teste de manuten¸ca˜o, uma vez que j´ a se sabe `a partida que existe algum tipo de erro. Conv´em referir aqui que a manuten¸ca˜o s´ o faz sentido se: • tecnicamente for poss´ıvel ou vi´ avel, como por exemplo a repara¸ca˜o de um CI.

CHAPTER 2. TECNOLOGIAS DE TESTE DE CCIS

5

• economicamente for vi´ avel. Neste caso compara-se o custo de concep¸ca˜o e realiza¸ca˜o do teste, mais os custos m´edios da repara¸ca˜o em tempo e material, com o custo de se deitar fora o produto defeituoso e troc´ a-lo por um outro n˜ ao defeituoso. Note-se que o teste de manuten¸ca˜o, destinado a` localiza¸ca˜o do erro e posterior repara¸ca˜o, ´e mais dif´ıcil de conceber do que o teste de produ¸ca˜o, orientado apenas a` detec¸ca˜o de erros (ou seja, classificar simplesmente o produto como BOM/MAU). Os tipos de teste at´e agora mencionados referem-se apenas `as etapas do ciclo de vida de um produto em que s˜ ao aplicados. Este crit´erio n˜ ao ´e u ´nico, existindo outros que permitem diferenciar o teste aplicado, seguindo uma outra terminologia, de acordo com o crit´erio utilizado e com os atributos do m´etodo de teste. A tabela 2.1 sumariza alguns dos crit´erios, referindo-se para cada um os atributos do m´etodo de teste e a terminologia usada. Crit´erio Origem dos est´ımulos de teste e verifica¸ca˜o dos resultados Velocidade de aplica¸ca˜o dos est´ımulos

Atributos do m´etodo de teste Na pr´ opria CCI

Terminologia Auto-teste

Num testador externo ` velocidade de funcionamento normal A do circuito

Teste externo

Teste est´ atico

Objectivo do teste

Independente da velocidade de funcionamento normal do circuito Detec¸ca˜o de defeitos de fabrico Verifica¸ca˜o do funcionamento Em funcionamento normal

Teste funcional Teste on-line

Estado inactivo S´ o entradas e sa´ıdas prim´ arias

Teste off-line Teste funcional

Entradas e sa´ıdas prim´ arias mais um conjunto de n´ os internos

Teste in-circuit

Estado de funcionamento da CCI aquando da aplica¸ca˜o do teste N´ os acess´ıveis para o teste

Teste dinˆ amico ou at-speed

Teste estrutural

Table 2.1: Tipos de teste Diz-se que uma CCI disp˜ oe de auto-teste quando esta possui o hardware necess´ ario para gerar os est´ımulos, bem como a capacidade de verificar os resultados, de modo a indicar no fim da execu¸ca˜o do teste um resultado do tipo BOM/MAU. O teste estrutural destina-se a verificar faltas do tipo estrutural (essencialmente localizadas nas liga¸co˜es entre os v´arios n´ os do circuito) geralmente produzidas por defeitos de fabrico. A realiza¸ca˜o deste teste requer o conhecimento da estrutura do circuito, dispensando no entanto informa¸ca˜o acerca do seu funcionamento. O teste funcional destina-se a

CHAPTER 2. TECNOLOGIAS DE TESTE DE CCIS

6

verificar se o circuito funciona de acordo com as especifica¸co˜es, sendo geralmente efectuado a` velocidade de funcionamento normal do circuito. O teste on-line ´e efectuado em ambientes onde se requerem elevados n´ıveis de fiabilidade, sendo feito durante o funcionamento normal do circuito, atrav´es da an´ alise de propriedades que se mantˆem est´ aveis ao longo desse estado de funcionamento. Os equipamentos de teste funcional realizam a aplica¸ca˜o de est´ımulos e an´ alise de respostas atrav´es dos conectores de E/S prim´ arias das CCIs, enquanto que os equipamentos de teste in-circuit realizam esta mesma actividade atrav´es de uma matriz-de-agulhas que acede fisicamente aos n´ os interiores do circuito. As express˜ oes teste funcional e teste in-circuit referem-se deste modo tamb´em a duas tecnologias de teste de CCIs, que ser˜ ao abordadas novamente nas sec¸co˜es 2.2 e 2.3, respectivamente.

2.1.2

Origens e consequˆ encias das falhas

Diz-se que um circuito ´e defeituoso, quando se detectam uma ou mais falhas que impedem o seu funcionamento correcto. As faltas constituem o efeito vis´ıvel das falhas. De acordo com [4, 5] as falhas num circuito electr´ onico podem ser causadas por erros de projecto, erros ou defeitos de fabrico e por acontecimentos fortuitos ocorridos durante a sua utiliza¸ca˜o. Os erros de projecto resultam de uma especifica¸ca˜o incompleta ou devido a` viola¸ca˜o das regras de projecto. Os erros e os defeitos de fabrico, particularmente devido ao processo de soldadura das CCIs [6], s˜ ao sumariados na tabela 2.2, que refere igualmente os efeitos dessas falhas. Os acontecimentos fortuitos como a exposi¸ca˜o prolongada do circuito a temperaturas elevadas ou campos electrost´ aticos intensos, descargas el´ectricas, choques, quedas ou similares, podem provocar no circuito falhas f´ısicas. Os erros e defeitos de fabrico e as falhas f´ısicas, que em conjunto s˜ ao designadas por faltas f´ısicas, podem ser classificadas em fun¸ca˜o da sua estabilidade no tempo. Uma falta f´ısica permanente mant´em-se presente ap´ os a sua primeira ocorrˆencia, enquanto que uma falta intermitente s´ o ocorre durante alguns intervalos de tempo e uma falta transit´ oria ocorre isolada. A importˆ ancia da qualidade dos componentes utilizados nas CCIs, as vantagens de se realizar um teste de stress para detectar falhas provocadas pelas condi¸co˜es de utiliza¸ca˜o e um conjunto de dados e estat´ısticas referentes aos defeitos encontrados no fabrico de alguns circuitos, s˜ ao ainda alguns dos t´ opicos sobre este assunto que se podem encontrar em [5].

CHAPTER 2. TECNOLOGIAS DE TESTE DE CCIS

Erros e defeitos de fabrico Inser¸ca˜o de componentes incorrecta ou n˜ ao efectuada Componentes defeituosos Pinos dos CIs dobrados ou partidos Borr˜ oes de solda Solda em excesso nos pinos Solda a menos nos pinos Aquecimento insuficiente da solda ou tempo a menos de soldadura Aquecimento em excesso da solda ou tempo a mais de soldadura

7

Efeito poss´ıvel Funcionamento incorrecto do circuito Funcionamento incorrecto do circuito Liga¸co˜es em curto ou aberto Liga¸co˜es em curto Liga¸co˜es em curto Liga¸co˜es em aberto imediatas ou provocadas por esfor¸cos mecˆ anicos Liga¸co˜es em aberto Danos a n´ıvel componentes

interno

nos

Table 2.2: Algumas falhas causadas por erros e defeitos de fabrico

2.1.3

Modelos de faltas

A dificuldade em tratar matematicamente as faltas f´ısicas, de modo a facilitar o processo de teste e diagn´ ostico de circuitos electr´ onicos, levou a que se considerassem as faltas l´ ogicas: uma representa¸ca˜o conveniente do efeito da falta f´ısica na opera¸ca˜o do circuito. Um modelo de faltas pode ser expl´ıcito ou impl´ıcito. O primeiro define um universo de faltas onde cada falta ´e identificada individualmente, pelo que as faltas a analisar podem ser enumeradas explicitamente. O segundo define um universo de faltas onde as faltas s˜ ao agrupadas de acordo com um determinado crit´erio - tipicamente propriedades que s˜ ao comuns a um dado n´ umero de faltas l´ ogicas. Os modelos de faltas dos circuitos digitais, no entanto, dependem dos modelos de representa¸ca˜o usados na descri¸ca˜o do circuito, da tecnologia e, em certos casos, da fase que o circuito atravessa no seu ciclo de vida. A detec¸ca˜o de uma falta implica tornar observ´ avel para o exterior o seu efeito no funcionamento do circuito, sendo a` percentagem de faltas totais detectadas atribu´ıda a designa¸ca˜o de cobertura de faltas. A utiliza¸ca˜o de um modelo de faltas permite reduzir o n´ umero de est´ımulos de teste utilizados, ao restringir-se o n´ umero de situa¸co˜es de funcionamento incorrecto que s˜ ao consideradas, simplificando assim o processo de gera¸ca˜o autom´ atica dos est´ımulos. Dos v´ arios modelos de faltas existentes, o mais utilizado tem sido o modelo stuck-at [7, 8] que considera apenas dois tipos de faltas em n´ os de um circuito: stuck-at-1 e stuck-at-0 (s@1,s@0). Existem duas vers˜ oes deste modelo, uma que considera a existˆencia num dado momento de apenas uma falta no circuito (single stuckat), e a outra que considera a existˆencia em simultˆ aneo de v´ arias faltas deste tipo (multiple stuck-at). Apesar de esta u ´ltima vers˜ ao ser mais consonante com a realidade, utiliza-se

CHAPTER 2. TECNOLOGIAS DE TESTE DE CCIS

8

mais a primeira pelas seguintes raz˜ oes: ´ mais simples de tratar, simplificando grandemente o processo de gera¸ca˜o au• E tom´ atica de est´ımulos de teste. • A efic´ acia deste modelo tem sido comprovada ao longo dos anos, atrav´es dos resultados obtidos na sua aplica¸ca˜o. O problema maior do modelo stuck-at reside na sua menor efic´ acia quando aplicado a faltas f´ısicas do tipo curto-circuito [7], que s˜ ao extremamente comuns em circuitos digitais. Existem no entanto outros modelos de faltas que lidam eficazmente com esta situa¸ca˜o.

2.1.4

Gera¸ c˜ ao autom´ atica dos est´ımulos de teste

A gera¸ca˜o autom´ atica de est´ımulos de teste permite reduzir o tempo necess´ ario ao desenvolvimento do teste para um circuito electr´ onico digital. O seu objectivo consiste em encontrar um vector (est´ımulo de teste) ou sequˆencia de vectores de entrada que tornem observ´ avel numa sa´ıda (ou outro n´ o acess´ıvel do circuito) a presen¸ca de uma falta. Muitos dos algoritmos de gera¸ca˜o autom´ atica de est´ımulos de teste baseiam-se no princ´ıpio da sensibiliza¸ca˜o de um percurso, i. e. tentam encontrar um est´ımulo que active um percurso desde o s´ıtio onde se localiza a falta at´e um n´ o observ´ avel do circuito. A gera¸ca˜o autom´ atica de est´ımulos de teste ´e geralmente feita para circuitos combinacionais, tarefa j´ a de si complicada, utilizando-se para circuitos sequenciais metodologias v´ arias que tˆem por objectivo comum evitar a necessidade de se considerar o comportamento sequencial (as metodologias mais importantes ser˜ ao referidas na sec¸ca˜o 2.1.6). O algoritmo mais utilizado para a gera¸ca˜o autom´ atica de est´ımulos de teste ´e o designado por algoritmo-D e foi originalmente descrito em [9]. Este algoritmo foi sendo melhorado ao longo dos anos, dando origem a vers˜ oes tamb´em largamente utilizadas, como o PODEM [10], o FAN [11] e outros [12].

2.1.5

Testabilidade

A avalia¸ca˜o da qualidade dos testes aplicados ´e feita em fun¸ca˜o de v´ arios factores, entre os quais, a cobertura de faltas desempenha um papel de relevo. Quanto mais elevada for a cobertura de faltas, mais elevado ser´ a o grau de confian¸ca em que o circuito n˜ ao tenha defeitos, embora uma cobertura de faltas de 100% n˜ ao signifique que o circuito testado n˜ ao possua quaisquer defeitos, j´ a que o modelo de faltas considerado n˜ ao abranger´ a concerteza todos os defeitos poss´ıveis. A maior ou menor dificuldade em atingir uma determinada cobertura de faltas est´ a directamente relacionada com a testabilidade do circuito, ou em

CHAPTER 2. TECNOLOGIAS DE TESTE DE CCIS

9

u ´ltima an´ alise com o menor ou maior grau de Controlabilidade/Observabilidade (CO) de cada um dos n´ os do circuito. A testabilidade de um circuito ´e pois um conceito abstracto relacionado com o custo de um teste. No pref´ acio de [1] ´e apresentada a seguinte defini¸ca˜o de testabilidade: • Um circuito ´e test´ avel se um conjunto de est´ımulos de teste puderem ser gerados, avaliados (no sentido de determinar a cobertura de faltas por recurso a` simula¸ca˜o de faltas) e aplicados de modo a se satisfazerem n´ıveis pr´e-definidos de desempenho, definidos em termos de detec¸ca˜o de faltas, localiza¸ca˜o de faltas e crit´erios de aplica¸ca˜o de teste, dentro de um prazo e or¸camento pr´e-definido. Esta defini¸ca˜o apresenta as duas ideias-base da testabilidade: custo e qualidade do teste. Qualidade no sentido de se atingir uma cobertura de faltas elevada, aliada a` facilidade de aplica¸ca˜o do teste e localiza¸ca˜o das faltas detectadas. Custo no sentido de rapidamente e com o m´ınimo de recursos se cumprirem todos os objectivos do teste de um circuito. O facto de a fase de teste ser frequentemente considerada em separado, relativamente a` fase de desenvolvimento de um circuito, levou a que o aumento da testabilidade se efectuasse frequentemente atrav´es de t´ecnicas ad-hoc, ou seja, atrav´es de modifica¸co˜es pontuais introduzidas no circuito a` posteriori. Com o aumento da complexidade dos circuitos a reflectir-se na fase de teste, rapidamente se concluiu pela necessidade de se considerar a testabilidade durante a fase de desenvolvimento do circuito, criando assim o conceito de projecto orientado a` testabilidade (DFT, Design For Testability). O grande esfor¸co da investiga¸ca˜o na a´rea do projecto e teste, durante a d´ecada de 80, foi assim dedicado ao desenvolvimento de metodologias estruturadas de projecto orientado a` testabilidade.

2.1.6

Metodologias estruturadas de projecto orientado a ` testabilidade

Historicamente, as metodologias estruturadas de projecto orientado a` testabilidade apareceram para limitar as dificuldades inerentes ao teste de CIs. Com o aparecimento dos circuitos LSI aumentou drasticamente a dificuldade de se efectuarem os testes (do tipo funcional) que permitem aferir se um CI n˜ ao apresenta defeitos de fabrico. Esta dificuldade era ainda mais evidente quando se tratava de circuitos sequenciais. Devido a` impossibilidade de se aceder fisicamente aos n´ os internos, considerou-se a hip´ otese de os CIs possu´ırem um modo de teste que facilitasse esta tarefa. Para que este modo de funcionamento fosse compat´ıvel com a generalidade dos circuitos e blocos empregues pelos projectistas, tornou-se necess´ ario considerar formas de abordagem sistem´ aticas, nomeadamente no que respeita ao projecto e teste de circuitos sequenciais s´ıncronos. Nascem assim

CHAPTER 2. TECNOLOGIAS DE TESTE DE CCIS

10

as metodologias estruturadas de projecto orientado a` testabilidade, verdadeira ”revolu¸ca˜o” na tarefa de desenvolvimento de circuitos digitais, pois a fase de teste passa a ser considerada simultaneamente com a fase de projecto [13]. O princ´ıpio fundamental subjacente a`s metodologias estruturadas consiste na substitui¸ca˜o dos registos normais (conjunto de flip-flops) por registos que acumulam a fun¸ca˜o de deslocamento e a que se d´ a habitualmente a designa¸ca˜o de registos de varrimento (scan registers). O circuito completo fica assim particionado em blocos combinacionais, rodeados pelos registos de varrimento. Os est´ımulos de teste podem deste modo ser gerados unicamente para a parte combinacional, sendo a aplica¸ca˜o feita atrav´es do seu deslocamento para o interior do registo. As respostas s˜ ao observ´ aveis atrav´es do deslocamento para o exterior dos valores capturados. A inclus˜ ao de uma infraestrutura de teste no interior do pr´ oprio circuito, n˜ ao se estendeu da escala do CI `a escala da CCI, apesar do aumento da complexidade destas, devido ao aparecimento do teste in-circuit que permitia o acesso f´ısico aos seus n´ os internos. A aplica¸ca˜o de metodologias estruturadas de projecto orientado a` testabilidade ao n´ıvel da CCI, foi assim atrasada at´e ao momento em que o acesso f´ısico aos n´ os internos da CCI se tornou extremamente dif´ıcil de efectuar na pr´ atica. Seguindo o exemplo dos CIs, foi considerada a possibilidade de se aceder aos n´ os internos por via electr´ onica. A norma IEEE 1149.1, que ser´ a abordada na sec¸ca˜o 2.4, representa uma solu¸ca˜o estruturada neste dom´ınio. Continuando a considerar o caso dos CIs, a etapa seguinte das metodologias estruturadas consistiu na integra¸ca˜o da infraestrutura de teste juntamente com um controlador residente, que fosse capaz de comandar a aplica¸ca˜o dos est´ımulos de teste e verificar os resultados, levando assim ao aparecimento do auto-teste.

2.1.7

Auto-teste

A disponibilidade de uma infraestrutura de teste no interior dos CIs conduziu a` inclus˜ ao dos mecanismos que permitissem igualmente gerar e aplicar os est´ımulos de teste, observar as respostas, compar´ a-las e dar para o exterior a indica¸ca˜o da presen¸ca ou n˜ ao de faltas. O auto-teste tem ainda a vantagem de poder ser utilizado em todas as fases do ciclo de vida do circuito: teste de produ¸ca˜o, teste de aceita¸ca˜o efectuado pelo comprador e teste do CI inserido na CCI nas fases de produ¸ca˜o e de manuten¸ca˜o. Embora a inclus˜ ao da capacidade de auto-teste implique um certo overhead em termos de ´area e hardware necess´ arios, o certo ´e que os benef´ıcios que da´ı advˆem ultrapassam os custos da sua implementa¸ca˜o, nomeadamente quando se aumentam as quantidades de produ¸ca˜o do circuito [14]. O hardware necess´ ario para a implementa¸ca˜o de auto-teste baseia-se geralmente em

CHAPTER 2. TECNOLOGIAS DE TESTE DE CCIS

11

circuitos do tipo LFSR (Linear Feedback Shift Registers) para a gera¸ca˜o dos est´ımulos de teste, em circuitos do tipo MISR (Multiple Input Signature Registers) para a compacta¸ca˜o das respostas e num controlador. O trabalho desenvolvido nesta a´rea por McCluskey ´e considerado ponto de referˆencia para uma melhor compreens˜ ao do assunto [15, 16, 17]. O conceito de auto-teste foi alargado ao n´ıvel da CCI nos finais da d´ecada de 80, altura em que apareceram os primeiros trabalhos descrevendo a possibilidade de se aproveitarem as infraestruturas de teste situadas ao n´ıvel da carta (como o BS por exemplo) para, com a ajuda de um CI adicional, o controlador de teste, se implementar o auto-teste em CCIs [18]. Este conceito ´e actualmente estudado ao n´ıvel do sistema, havendo no entanto algumas dificuldades, nomeadamente no que diz respeito a` n˜ ao existˆencia de uma norma para uma infraestrutura de teste a este n´ıvel. A esperada aprova¸ca˜o da proposta P1149.5 [19], Module Test and Maintenance Bus ou MTM Bus, ainda no decorrer de 1995, poder´ a impulsionar a investiga¸ca˜o nesta a´rea.

2.2

O teste funcional

Com o avan¸co da produ¸ca˜o em massa de circuitos electr´ onicos, durante os anos 60, tornou-se necess´ ario formalizar e automatizar a actividade de teste. A existˆencia no mercado de Equipamentos de Teste Autom´ atico (ETA) tornava-se assim uma necessidade dos fabricantes de circuitos electr´ onicos. Embora as grandes companhias verticais da ind´ ustria electr´ onica j´ a possu´ıssem internamente algum equipamento deste tipo, foi s´ o por volta de meados da d´ecada de 60 que apareceram a` venda os primeiros testadores. Estes aplicavam um tipo de teste funcional, ou como alguns autores referem, teste atrav´es dos conectores, visto a liga¸ca˜o entre o testador e a CCI sob teste ser feita atrav´es dos conectores das E/S prim´ arias da carta, tal como se ilustra na figura 2.1. A filosofia deste tipo de teste consiste em utilizar um simulador l´ ogico, onde s˜ ao introduzidos os modelos dos CIs e um mapa das liga¸co˜es internas da CCI, por forma a se poder simular o funcionamento do circuito na presen¸ca de uma falta e descobrir um vector de entrada que torne observ´ avel o efeito dessa falta nas sa´ıdas prim´ arias da carta. Geralmente restringe-se o n´ umero de faltas poss´ıveis, de acordo com o modelo de faltas aplicado, de modo a tornar o teste exequ´ıvel. Uma boa fonte de informa¸ca˜o sobre tipo de teste, nomeadamente sobre a gera¸ca˜o, avalia¸ca˜o e aplica¸ca˜o de est´ımulos de teste para circuitos combinacionais e sequenciais, pode ser encontrada em [20]. Estes tipos de testadores apresentam no entanto v´ arias limita¸co˜es: • A gera¸ca˜o do programa de teste ´e uma opera¸ca˜o complexa, dada a inexistˆencia de acesso directo aos n´ os que se pretende controlar/observar. Este problema ´e tanto

CHAPTER 2. TECNOLOGIAS DE TESTE DE CCIS

12

Ponta de prova para acesso aos n ós interiores da CCI (utilizada no diagnóstico).

CCI

Aplicação dos est ímulos de teste

Entradas primárias

Saidas primárias

Leitura das respostas aos est ímulos de teste

Dispositivo sob teste

Figure 2.1: Exemplo de um testador funcional mais grave quanto mais complexas forem as cartas a testar. • A reutiliza¸ca˜o dos testes ´e reduzida ou inexistente. A t´ıtulo de exemplo, o mesmo CI empregue em duas cartas diferentes ser´ a testado atrav´es de diferentes vectores, j´ a que as condi¸co˜es de propaga¸ca˜o dos valores l´ ogicos diferem de um caso para outro. • A localiza¸ca˜o de faltas obriga geralmente a` utiliza¸ca˜o de uma ponta de prova guiada (figura 2.1), introduzindo um operador humano, o que torna a tarefa semi-autom´ atica e consequentemente mais demorada. Existem no entanto alguns testadores topo-degama que utilizam uma mesa do tipo X-Y, de forma a posicionar automaticamente ´ necess´ a ponta de prova no ponto pretendido do circuito. E ario por´em criar uma representa¸ca˜o X-Y da carta. Com o aumento da integra¸ca˜o dos CIs, no in´ıcio da d´ecada de 70 (aparecimento dos primeiros circuitos LSI), em breve se come¸caram a sentir dificuldades em algumas etapas fundamentais do teste funcional de cartas que possu´ıssem este tipo de componentes: cria¸ca˜o dos modelos para os CIs do tipo LSI; simula¸ca˜o l´ ogica das cartas; propaga¸ca˜o de uma determinada falta para as sa´ıdas da CCI. Estas dificuldades, aliadas a`s limita¸co˜es j´ a referidas, coduziram ao aparecimento do testador in-circuit.

2.3

O teste in-circuit

O aumento dr´ astico da complexidade das cartas com componentes LSI/VLSI, tornou o respectivo teste muito dif´ıcil ou mesmo imposs´ıvel para os testadores baseados no teste

CHAPTER 2. TECNOLOGIAS DE TESTE DE CCIS

13

funcional. Nasce assim, por volta dos finais da d´ecada de 70, o teste in-circuit [5], uma nova tecnologia de teste que consiste na utiliza¸ca˜o de uma matriz-de-agulhas que possibilita o acesso f´ısico a n´ os internos de uma CCI.

CCI

Testador 1 Estimulos de teste

BOM/MAU

Valores recebidos

2

BOM = 0 MAU = 1

3 Receptores

4

Valores esperados

Drivers

Figure 2.2: Princ´ıpio de funcionamento de um testador in-circuit

CCI

Topo

Movimento da CCI quando se provoca o vácuo

Fundo

Agulhas

Figure 2.3: Acesso f´ısico no teste in-circuit Os est´ımulos de teste para um dado CI passam a ser reutiliz´ aveis, podendo ser armazenados numa biblioteca e chamados para testar os v´ arios CIs presentes numa CCI. Os est´ımulos s˜ ao aplicados directamente nos pinos de entrada do CI, sendo as respostas capturadas nos seus pinos de sa´ıda e comparadas com os valores esperados. Este princ´ıpio de funcionamento pode ser visto na figura 2.2, representando-se na figura 2.3 o princ´ıpio de acesso f´ısico atrav´es da matriz-de-agulhas. A carta ´e fixada num suporte herm´etico, sendo depois retirado todo o ar existente entre a CCI e a base da matriz-de-agulhas, de modo a criar v´ acuo nesse espa¸co, facilitando assim o contacto entre as agulhas e a superf´ıcie inferior da CCI. Esta tecnologia divide de facto o teste de uma CCI em duas etapas:

CHAPTER 2. TECNOLOGIAS DE TESTE DE CCIS

14

• teste de liga¸co˜es • teste de componentes A primeira etapa ´e efectuada com a alimenta¸ca˜o da carta desligada, sendo aplicados est´ımulos com amplitudes de d´ecimas de Volt, prevenindo assim danos causados por pistas em curto-circuito. O teste de componentes ´e efectuado com a carta alimentada, sendo por isso necess´ ario for¸car os valores l´ ogicos nas entradas do componente sob teste, uma vez que estas est˜ ao ligadas a sa´ıdas de outros componentes. A esta ac¸ca˜o, que for¸ca o valor l´ ogico oposto ao existente, d´ a-se o nome de backdriving, sendo eventualmente prejudicial para o drive de sa´ıda que se encontra ligado ao n´ o, pelo que o tempo de aplica¸ca˜o de est´ımulos consecutivos deve ser limitado. A introdu¸ca˜o de um tempo de espera para n˜ ao danificar o drive de sa´ıda implica um aumento do tempo total de teste, efeito considerado indesej´ avel. A liga¸ca˜o em paralelo de pinos de entrada de um componente, ou a sua liga¸ca˜o a` massa ou Vcc, levanta ainda alguns problemas a` utiliza¸ca˜o do teste in-circuit [21]. O aparecimento da Surface Mount Technology (SMT), ou tecnologia de montagem superficial, levou a uma redu¸ca˜o dr´ astica dos tamanhos dos componentes, diminuindo a distˆ ancia entre pinos e permitindo ainda a montagem de componentes dos dois lados da carta. Al´em disso, passaram a existir pistas que n˜ ao s˜ ao vis´ıveis na parte inferior da CCI. O teste in-circuit encontrou assim dificuldades acrescidas de acesso, uma vez que a utiliza¸ca˜o dos componentes com encapsulamento DIP (Dual In-line Package), com montagem through-hole, tornava todas as liga¸co˜es vis´ıveis na parte inferior da carta. Embora o teste in-circuit tenha ainda durante mais algum tempo atrasado o aparecimento de m´etodos estruturados de projecto orientado a` testabilidade, devido ao recurso a t´ecnicas de inser¸ca˜o de pads de acesso na CCI apenas para efeitos de teste, `a miniaturiza¸ca˜o das agulhas de forma a acompanhar os espa¸camentos entre pinos e a` constru¸ca˜o de testadores com capacidade de acesso aos dois lados da carta, surgem em meados da d´ecada de 80 os primeiros passos para o desenvolvimento de uma tecnologia de teste que constitui um complemento poderoso a`s tecnologias funcional e in-circuit: O Boundary-Scan Test (BST) ou teste com varrimento pela periferia.

2.4

Boundary Scan Test

A utiliza¸ca˜o cada vez mais generalizada de componentes de montagem superficial (SMT) levou a uma maior densidade de componentes por CCI, diminuindo assim o espa¸co entre componentes. Este aumento de densidade, aliado a` redu¸ca˜o do espa¸camento entre pinos (alguns componentes SMT tˆem um espa¸camento entre pinos de 0,5 mm), e

CHAPTER 2. TECNOLOGIAS DE TESTE DE CCIS

15

a` montagem de componentes nos dois lados da CCI, tornou o acesso aos n´ os interiores muito dif´ıcil ou mesmo imposs´ıvel. O aparecimento e prolifera¸ca˜o dos Circuitos Integrados de Aplica¸ca˜o Espec´ıfica, tradu¸ca˜o do termo inglˆes Application Specific Integrated Circuit (ASIC), causou igualmente dificuldades ao teste in-circuit. Os vendedores de bibliotecas de modelos de teste, n˜ ao possuem (nem querem possuir) os modelos/testes de ASICs, porque cada caso ´e um caso e h´ a milhares e milhares de casos diferentes. O pr´ oprio conceito de biblioteca ´e o de utiliza¸ca˜o generalizada, o que tem sentido com ”componentes de cat´ alogo” mas n˜ ao com ASICs. O aparecimento de outras tecnologias, como os Multi-chip Modules (MCM), o Tap Automated Bonding (TAB), ou os Chip-on-Board (COB), aumentou ainda mais o espectro de dificuldades para o teste in-circuit. Este facto ´e sublinhado pela previs˜ ao de que a utiliza¸ca˜o destes novos tipos de componentes aumentaria regularmente no decorrer da d´ecada de 90. Face a este panorama, algumas companhias europeias criaram em 1986 o Joint European Test Action Group (JETAG), com o intuito de desenvolverem uma infraestrutura de teste, residente no CI, que permitisse o acesso ”virtual” aos n´ os internos de uma CCI. Este grupo de trabalho foi mais tarde alargado a algumas companhias norte-americanas, mudando a designa¸ca˜o para Joint Test Action Group (JTAG), tendo finalmente conduzido a que em Fevereiro de 1990 fosse aprovada pelo IEEE a norma 1149.1 ”Standard Test Ac´ poss´ıvel encontrar em [21, 23, 24] cess Port and Boundary-Scan Architecture” [22]. E uma descri¸ca˜o mais pormenorizada das origens e etapas de desenvolvimento do BST. As referˆencias [25, 26, 27] constituem ainda uma excelente fonte para uma introdu¸ca˜o ao BST. Apresenta-se agora um descri¸ca˜o detalhada desta tecnologia de teste, uma vez que constitui a base do trabalho efectuado e descrito nesta tese. A infraestrutura de teste m´ınima representada na figura 2.4 ´e constitu´ıda pelo controlador do TAP (Test Access Port), registo de BS, registo de Bypass, registo de instru¸ca˜o e bloco de descodifica¸ca˜o. Identificam-se ainda os quatro sinais que constituem o interface para o exterior da infraestrutura de teste. Um quinto sinal opcional pode ser utilizado para fazer a inicializa¸ca˜o da l´ ogica de teste. Este conjunto de 4(5) sinais formam o TAP, n˜ ao podendo ser utilizados para outro fim que n˜ ao seja o teste. O protocolo de controlo desta infraestrutura ´e implementado atrav´es do TAP. Dois destes sinais, o Test Mode Select (TMS) e o Test Clock (TCK), servem para comandar e sincronizar a l´ ogica de teste. O sinal Test Data In (TDI) permite deslocar dados (em formato s´erie) para o interior do CI e o sinal Test Data Out (TDO) ´e o que permite deslocar dados para o exterior do CI. O sinal Test Reset (/TRST), activo ao n´ıvel baixo, permite inicializar a l´ ogica de teste. A constitui¸ca˜o e funcionalidade de cada um destes blocos ´e desenvolvida a seguir.

CHAPTER 2. TECNOLOGIAS DE TESTE DE CCIS

16

Saída série Saída série Entrada paralela

Celula BS

Entrada paralela

Saída paralela

Saída paralela Entrada série

andar de andar de varrimento actualização

Entrada série

Registo de Boundary-Scan Reg. Bypass

Descodificador Reg. de instrução

TDI

/TRST TMS TCK

TDO

Controlador do TAP

Figure 2.4: Infraestrutura de teste com pormenor de uma c´elula BS

2.4.1

O controlador do TAP

O controlador do TAP ´e na realidade uma m´ aquina de estados, cujo diagrama se representa na figura 2.5, sendo as transi¸co˜es entre os 16 estados comandadas pelo valor do sinal TMS, cadenciadas pela transi¸ca˜o ascendente do sinal TCK. A m´ aquina de estados pode ser dividida em trˆes blocos: um anel superior de selec¸ca˜o que engloba os estados Test-Logic-Reset, Run-Test/Idle, Select-DR-Scan e Select-IR-Scan; o ramo dos registos de dados, que engloba os estados Capture-DR, Shift-DR, Exit1-DR, Pause-DR, Exit2-DR e Update-DR; e o ramo do registo de instru¸ca˜o, que engloba os restantes estados Capture-IR, Shift-IR, Exit1-IR, Pause-IR, Exit2-IR e Update-IR. Uma descri¸ca˜o breve do significado e prop´ osito de cada estado dar´ a ao leitor uma ideia mais clara do respectivo protocolo de controlo. ✷

Test-Logic-Reset - A l´ ogica de teste encontra-se inactiva, n˜ ao interferindo com o funcionamento normal do CI. Este estado pode ser alcan¸cado atrav´es de um impulso ao n´ıvel baixo na linha TRST ou ap´ os cinco transi¸co˜es de TCK com a linha TMS no estado alto.



Run-Test/Idle - O estado da l´ ogica de teste depende da instru¸ca˜o actual. No caso da instru¸ca˜o RUNBIST o auto-teste ser´ a executado neste estado, caso contr´ ario a l´ ogica de teste estar´ a inactiva.

CHAPTER 2. TECNOLOGIAS DE TESTE DE CCIS

17

1

Test Logic Reset 0 1

1

Run Test / Idle

1

Select-IR-scan

Select-DR-scan 0

0 1

0 1

Capture-DR

Capture-IR

0

0

Shift-DR

Shift-IR 0

1

1

Exit1-DR

0

1

1

Exit1-IR

0

0

Pause-DR

Pause-IR 0

1 0

0

1 0

Exit2-DR

Exit2-IR

1

1

Update-IR

Update-DR 1

0

1

0

Figure 2.5: Diagrama de estados do controlador do TAP



Select-DR-Scan - Este estado tempor´ ario permite, no caso de a linha TMS estar no estado baixo, seleccionar o ramo dos registos de dados de teste. A l´ ogica de teste encontra-se inactiva.



Capture-DR - A instru¸ca˜o actual determina qual o registo de dados que ir´ a ser afectado. O andar de varrimento das c´elulas do registo seleccionado captura o valor presente na entrada paralela.



Shift-DR - O conte´ udo do registo seleccionado pela instru¸ca˜o actual, ´e deslocado de um bit por cada transi¸ca˜o ascendente do rel´ ogio de teste, no sentido de TDI para TDO.



Update-DR - Neste estado, o andar de actualiza¸ca˜o das c´elulas do registo de dados seleccionado passa para a sua sa´ıda o valor presente no andar de varrimento.

CHAPTER 2. TECNOLOGIAS DE TESTE DE CCIS



18

Select-IR-Scan, Capture-IR, Shift-IR e Update-IR - Estes estados s˜ao an´ alogos aos estados Select-DR-Scan, Capture-DR, Shift-DR e Update-DR, com a u ´nica diferen¸ca de que dizem respeito apenas ao registo de instru¸ca˜o. A nova instru¸ca˜o deslocada no estado Shift-IR passa a estar efectiva no estado UpdateIR. Nos restantes estados Exit1-DR, Exit1-IR, Pause-DR, Pause-IR, Exit2-DR e Exit2-IR,

a l´ ogica de teste encontra-se inactiva, servindo estes como estados de pausa, ou como pontos de decis˜ ao.

2.4.2

Os registos de dados

A norma define os v´ arios registos de dados de teste: o registo de bypass (obrigat´ orio), o registo de BS (obrigat´ orio), um registo designado por Registo de Identifica¸ca˜o do CI (opcional) e uma classe de registos de dados de teste definidos pelo fabricante (opcionais). O registo de BS O registo de BS ´e constitu´ıdo pelas c´elulas BS que est˜ ao associadas aos pinos do CI. Os u ´nicos pinos que n˜ ao possuem estas c´elulas s˜ ao os pinos de alimenta¸ca˜o e os pinos que constituem o TAP. As c´elulas BS podem ser representadas de uma maneira simb´ olica tal como se ilustra na figura 2.4. Consoante ainda o tipo de pino (bidireccional, entrada, sa´ıda com ou sem controlo de estado), este pode ter uma ou mais c´elulas associadas. Embora existam algumas varia¸co˜es, as c´elulas BS s˜ ao geralmente constitu´ıdas internamente pelo circuito representado na figura 2.4. S˜ ao poss´ıveis quatro modos de funcionamento definidos pela instru¸ca˜o presente no registo de instru¸ca˜o e pelo estado em que se encontra o controlador do TAP, tal como se ilustra na figura 2.6: • Controlabilidade - O valor aplicado num pino de sa´ıda ou numa entrada da l´ ogica interna do CI ´e determinado pela c´elula BS. • Observabilidade - A c´elula BS captura o valor presente num pino de entrada ou numa sa´ıda da l´ ogica interna do CI. • Deslocamento - O conte´ udo do registo de BS, formado por todas as c´elulas BS, ´e deslocado no sentido de TDI para TDO. • Transparˆencia - A c´elula BS n˜ ao afecta o funcionamento normal do CI (a entrada paralela liga a` sa´ıda paralela).

CHAPTER 2. TECNOLOGIAS DE TESTE DE CCIS

Transparência: Entrada paralela

19

Controlabilidade: Saída série mux

Entrada paralela

mux

Saída série mux

mux Saída paralela

Saída paralela

Entrada série

Entrada série

Deslocamento: Entrada paralela

Observabilidade: Saída série mux

Entrada paralela

mux

Saída série mux

mux Saída paralela

Entrada série

Saída paralela Entrada série

Figure 2.6: Modos de funcionamento de uma c´elula BS

O registo de Bypass O registo de Bypass ´e constitu´ıdo por um u ´nico flip-flop, sendo a sua existˆencia obrigat´ oria. Este registo constitui um percurso de comprimento m´ınimo, quando seleccionado, entre o pino TDI e o pino TDO do CI. Para melhor entendermos a sua utilidade, suponhamos um conjunto de 50 CIs com BST, ligados em s´erie formando uma u ´nica cadeia. Caso se pretendesse aceder ao registo de BS de um CI situado a meio da cadeia, seria necess´ ario deslocar primeiro os valores ao longo de todos os registos de BS dos CIs situados entre o in´ıcio da cadeia e o pino TDI do CI pretendido. Com o registo de Bypass seleccionado nesses mesmos CIs, ´e poss´ıvel encurtar significativamente este percurso. Nesta situa¸ca˜o, o n´ umero de deslocamentos agora necess´ arios seria igual ao n´ umero de CIs presentes entre o in´ıcio da cadeia e o pino TDI do CI pretendido.

O registo de identifica¸ c˜ ao O registo de identifica¸ca˜o definido pela norma tem um car´ acter opcional, permitindo ´ poss´ıvel assim, ao seleccionar identificar electronicamente um determinado componente. E este registo em todos os CIs presentes numa determinada cadeia de BS, verificar se n˜ ao existem trocas de componentes e identificar ainda qual o fabricante e a vers˜ ao de cada CI.

CHAPTER 2. TECNOLOGIAS DE TESTE DE CCIS

20

Registos definidos pelo fabricante ´ poss´ıvel para um fabricante de CIs, definir ainda um conjunto de registos de dados E de teste, acess´ıveis atrav´es da infraestrutura BST. A norma n˜ ao obriga o fabricante a publicar a maneira de aceder a estes registos, dando-lhe assim a possibilidade de poder utiliz´ a-los para o teste de produ¸ca˜o. Estes registos podem pertencer a uma ou v´ arias das categorias a seguir enumeradas: • Registos com o resultado de opera¸co˜es de auto-teste. • Registos de cadeias de varrimento internas. • Registos de identifica¸ca˜o do utilizador (ex.: FPGAs, CPLDs). • Registos de gera¸ca˜o de est´ımulos pseudo-aleat´ orios que necessitem de uma semente.

2.4.3

O registo de instru¸ c˜ ao

O registo de instru¸ca˜o representado na figura 2.4 ´e um dos blocos obrigat´ orios, sendo constitu´ıdo na realidade por dois andares. O andar inferior ´e um registo de varrimento com carga paralela, por onde s˜ ao deslocados os valores que entram pelo sinal TDI, sendo o andar superior um registo de reten¸ca˜o que armazena o conte´ udo do registo de varrimento. A ac¸ca˜o que ocorre nos estados principais do ramo do registo de instru¸ca˜o pode ser melhor entendida atrav´es da figura 2.7. CAPTURE-IR

SHIFT-IR

Descodificação

Descodificação

... x x

...

UPDATE-IR Descodificação

... 0 1

0 1 TDI

...

0 1

...

1 1

...

1 1 TDO

Figure 2.7: Ac¸co˜es efectuadas no registo de instru¸ca˜o durante os estados Capture-IR, Shift-IR e Update-IR Quando o controlador do TAP passa pelo estado Capture-IR, o registo de varrimento ´e carregado com 01 nos dois bits menos significativos. No estado Shift-IR o registo de varrimento desloca, por cada transi¸ca˜o de rel´ ogio, um bit no sentido de TDI para TDO. Quando o controlador do TAP passa pelo estado Update-IR, o registo de reten¸ca˜o ´e carregado com o conte´ udo do registo de varrimento.

CHAPTER 2. TECNOLOGIAS DE TESTE DE CCIS

2.4.4

21

O conjunto de instru¸ co ˜es

O conjunto de instru¸co˜es descritas na norma inclui trˆes categorias: • Instru¸co˜es obrigat´ orias. • Instru¸co˜es opcionais. • Instru¸co˜es definidas pelo utilizador. Estes trˆes tipos de instru¸co˜es permitem controlar a l´ ogica de teste, podendo esta interferir ou n˜ ao com o funcionamento normal do CI. As instru¸co˜es obrigat´ orias e as opcionais s˜ ao descritas uma a uma. Apresentam-se igualmente duas novas instru¸co˜es que fazem parte da revis˜ ao da Norma efectuada no final de 1993 [28]. Instru¸ c˜ oes obrigat´ orias As trˆes instru¸co˜es obrigat´ orias garantem que a funcionalidade da infraestrutura BST permite satisfazer o objectivo principal que presidiu ao seu desenvolvimento: o teste estrutural de CCIs digitais. A instru¸ca˜o de BYPASS selecciona o registo com o mesmo nome, colocando-o entre os pinos TDI/TDO. As instru¸co˜es EXTEST e SAMPLE/PRELOAD colocam o registo de BS entre estes dois pinos. Para cada uma delas, analisa-se a seguir o que se passa a n´ıvel das c´elulas BS, em cada um dos trˆes estados principais. BYPASS - A vantagem desta instru¸ca˜o j´ a foi explicada aquando da referˆencia ao registo de Bypass. EXTEST - Esta instru¸ca˜o vai seleccionar o ramo inferior do multiplexer identificado no diagrama de uma c´elula BS (garantindo a controlabilidade dos n´ os ligados a`s sa´ıdas paralelas das c´elulas). O BST assume nestas condi¸co˜es um modo intrusivo no funcionamento do CI. A l´ ogica interna deste fica desligada do exterior, sendo poss´ıvel atrav´es do registo de BS impor valores nos pinos de sa´ıda e capturar os valores presentes nos pinos de entrada. As entradas da l´ ogica interna s˜ ao alimentadas pelas sa´ıdas paralelas das c´elulas BS. Esta instru¸ca˜o ´e utilizada para o teste de interliga¸co˜es entre CIs. SAMPLE/PRELOAD - Esta instru¸ca˜o tem um car´ acter n˜ ao intrusivo, n˜ ao afectando o funcionamento normal do CI. Permite amostrar os sinais a` entrada e a` sa´ıda do componente (sample), sendo depois poss´ıvel deslocar os valores amostrados para o exterior, atrav´es da cadeia de BS. Pode ainda ser utilizada

CHAPTER 2. TECNOLOGIAS DE TESTE DE CCIS

22

para carregar previamente (preload) valores no andar de sa´ıda da c´elula BS. Quando a instru¸ca˜o EXTEST for carregada ser˜ ao estes os primeiros valores que ir˜ ao aparecer nos pinos de sa´ıda do CI. Instru¸ c˜ oes opcionais Este conjunto de instru¸co˜es de car´ acter opcional permite ao fabricante de CIs tirar partido da infraestrutura implementada para efeitos de identifica¸ca˜o, teste da l´ ogica interna ou activa¸ca˜o do auto-teste do CI. No caso de a instru¸ca˜o n˜ ao estar implementada, a instru¸ca˜o BYPASS fica seleccionada por omiss˜ ao. Analisa-se em seguida o objectivo e a funcionalidade de cada uma destas instru¸co˜es. IDCODE - Esta instru¸ca˜o permite ao utilizador aceder ao registo de identifica¸ca˜o do CI. USERCODE - Esta instru¸ca˜o permite ao utilizador aceder ao registo que cont´em a identifica¸ca˜o do projectista do CI. Esta instru¸ca˜o aparece geralmente implementada em FPGAs ou CPLDs, visto este tipo de componentes serem programados pelo utilizador. INTEST - Esta instru¸ca˜o permite testar a l´ ogica interna de um CI atrav´es de um teste vector-a-vector. Os vectores de teste s˜ao deslocados para as c´elulas BS associadas aos pinos de entrada do CI, sendo as respostas a estes vectores capturadas nas c´elulas associadas aos pinos de sa´ıda e posteriormente deslocadas para o exterior, para efeitos de diagn´ ostico. RUNBIST - Esta instru¸ca˜o permite activar, quando implementada, a fun¸ca˜o de auto-teste de um CI. O teste ´e executado quando o controlador do TAP estiver no estado Run-Test/Idle, devendo a linha TMS ser mantida ao n´ıvel baixo. O fabricante deve definir quantos ciclos de rel´ ogio de teste devem ser fornecidos, at´e que o registo do resultado do teste contenha uma informa¸ca˜o v´ alida. O utilizador pode ter que deslocar um determinado vector para o registo de BS, antes de se iniciar o auto-teste. Novas instru¸ c˜ oes Este conjunto de instru¸co˜es opcionais definido em [28] ´e particularmente u ´til quando se pretende usar um ETA do tipo in-circuit para o teste de CCIs com implementa¸ca˜o parcial de BST. Apresentam-se seguidamente as duas instru¸co˜es que fazem parte deste conjunto, descrevendo-se a sua funcionalidade.

CHAPTER 2. TECNOLOGIAS DE TESTE DE CCIS

23

HIGHZ - Esta instru¸ca˜o tem um car´ acter intrusivo. Permite colocar todos os pinos de sa´ıda ou bidireccionais num estado de alta-impedˆ ancia, diminu´ındo assim os problemas de backdriving, no caso de se usar um ETA. Esta instru¸ca˜o selecciona o registo de Bypass entre os pinos TDI e TDO. CLAMP - Esta instru¸ca˜o tem um car´ acter intrusivo. Permite colocar valores anteriormente deslocados para o registo de BS nas sa´ıdas de um CI. Estes valores assumem a condi¸ca˜o do que se designa por valores de guarda. Apesar de este procedimento poder ser implementado com a instru¸ca˜o EXTEST, a grande vantagem desta instru¸ca˜o reside no facto de seleccionar o registo de Bypass. Nesta situa¸ca˜o, encurta-se o comprimento total da cadeia de BS.

2.5

Conclus˜ ao

Neste cap´ıtulo introduziu-se a terminologia essencial para a compreens˜ ao deste trabalho. Deu-se uma panorˆ amica geral da evolu¸ca˜o do teste de circuitos digitais ao n´ıvel da CCI, com referˆencias pontuais aos restantes dois n´ıveis: CI e sistema. Referiram-se as tendˆencias actuais neste dom´ınio, permitindo que no pr´ oximo cap´ıtulo se explore o estado de implanta¸ca˜o da tecnologia BST.

Chapter 3

Implanta¸ c˜ ao da Tecnologia BST Este cap´ıtulo tem por objectivo ilustrar o estado actual de implanta¸ca˜o da tecnologia BST ao n´ıvel dos CIs, das ferramentas de CAD e dos equipamentos de teste electr´ onico. Apesar de v´ arios autores terem sugerido e demonstrado a utiliza¸ca˜o do BST em circuitos mistos (digitais e anal´ ogicos) quer ao n´ıvel do CI [29, 30] quer ao n´ıvel da CCI [31, 32], iremos restringir o dom´ınio deste cap´ıtulo aos circuitos puramente digitais. Refira-se apenas para o leitor mais interessado na a´rea do teste de circuitos mistos, que a proposta P1149.4 [33, 34, 35] tem vindo a evoluir significativamente, estando neste momento numa fase adiantada no processo de aprova¸ca˜o como norma do IEEE.

3.1

Estado actual ao n´ıvel dos CIs

V´ arios fabricantes tˆem vindo a implementar a norma IEEE 1149.1 nos seus CIs e a desenvolver novos componentes vocacionados para o teste de CCIs atrav´es de BST ou para a implementa¸ca˜o desta infraestrutura a n´ıvel do sistema. Nesta sec¸ca˜o pretende-se dar uma ideia da implanta¸ca˜o do BST em componentes gen´ericos como microprocessadores, CPLDs, FPGAs e dispositivos l´ ogicos para fins gen´ericos (buffers, latches, line drivers, flip-flops), bem como apresentar alguns CIs vocacionados para o teste de CCIs atrav´es de BST ou destinados a fazer a interliga¸ca˜o entre a infraestrutura BST de uma CCI e um barramento de teste situado ao n´ıvel do sistema. Estes CIs incluem controladores de teste residentes, circuitos de observa¸ca˜o/controlo, circuitos selectores de cadeias de BS e circuitos de interliga¸ca˜o entre cadeias de BS (existentes ao n´ıvel da CCI) e um barramento de teste situado ao n´ıvel hier´ arquico superior. No final da sec¸ca˜o referem-se ainda algumas aplica¸co˜es alternativas do BST, possibilitadas pela existˆencia desta infraestrutura em dispositivos l´ ogicos reprogram´ aveis. 24

˜ DA TECNOLOGIA BST CHAPTER 3. IMPLANTAC ¸ AO

3.1.1

25

Componentes gen´ ericos

A infraestrutura BST permite o acesso electr´ onico a cada um dos pinos do componente para efeitos de controlo e/ou observa¸ca˜o. A norma refere por´em que esta infraestrutura pode ser utilizada para outros fins ao n´ıvel do CI, nomeadamante para iniciar fun¸co˜es de auto-teste e posteriormente capturar o resultado deste, aceder a registos de varrimento internos, etc. Apresentam-se seguidamente alguns dos tipos de componentes com BST referidos (microprocessadores, CPLDs, FPGAs e dispositivos l´ ogicos para fins gen´ericos), focando-se em cada um dos casos os aspectos considerados mais relevantes na utiliza¸ca˜o desta infraestrutura. FPGAs e CPLDs V´ arios fabricantes tˆem vindo a implementar o BST nas suas novas fam´ılias de FPGAs e CPLDs. Os exemplos que se apresentam a seguir, constituindo apenas uma amostra do que existe actualmente, n˜ ao deixam de referir os fabricantes mais importantes deste tipo de CIs. Todos os componentes que pertencem `a fam´ılia XC4000 LCA da Xilinx [36] disp˜ oem de BST. A Intel reconheceu, ap´ os incluir uma infraestrutura BST em alguns dos dispositivos da sua fam´ılia de FPGAs [37], que esta op¸ca˜o permitiu melhorar o teste de produ¸ca˜o, de manuten¸ca˜o de equipamentos que possu´ıssem estes dispositivos e ainda que este tipo de infraestrutura se mostra como ideal para aplica¸co˜es tolerantes a falhas. Os componentes mais complexos da fam´ılia FLEX 8000 da Altera [38], nomeadamente o EPF8282, o EPF8820 e o EPF81500 possuem uma infraestrutura compat´ıvel com a norma IEEE 1149.1, que apenas suporta as trˆes instru¸co˜es obrigat´ orias (SAMPLE/PRELOAD, EXTEST e BYPASS). Todos os componentes da fam´ılia MAX9000 de CPLDs da Altera, possuem igualmente uma infraestrutura de teste compat´ıvel com a norma IEEE 1149.1. Contudo, a` data em que esta tese foi escrita, apenas foi disponibilizada para o mercado informa¸ca˜o preliminar, pelo que n˜ ao se disp˜ oe de mais dados referentes a` utiliza¸ca˜o da infraestrutura BST nestes componentes. Todos os dispositivos com mais de 84 pinos das fam´ılias MACH3 e MACH4 de CPLDs da AMD [39] disp˜ oem tamb´em de BST. Microprocessadores Os microprocessadores s˜ao circuitos VLSI com estruturas internas complexas devido a` existˆencia de diferentes blocos que v˜ ao desde ALUs, registos de armazenamento, mem´ orias cache at´e m´ aquinas de estado complexas. Para facilitar a tarefa de valida¸ca˜o e teste deste

˜ DA TECNOLOGIA BST CHAPTER 3. IMPLANTAC ¸ AO

26

tipo de dispositivos, os projectistas recorrem a t´ecnicas de projecto orientado a` testabilidade, incluindo capacidades de auto-teste ou cadeias de varrimento dentro do microprocessador. A tecnologia BST permite assim ao utilizador deste tipo de componentes n˜ ao s´ o testar as liga¸co˜es ap´ os a montagem na CCI, como repetir o teste do CI, bastando-lhe para isso carregar a instru¸ca˜o RUNBIST ou deslocar uma s´erie de vectores para as cadeias de varrimento internas e posteriormente capturar e analisar as respostas (isto caso o fabricante implemente e disponibilize para o utilizador esta possibilidade). Seguidamente referem-se alguns microprocessadores que disp˜ oem de BST, juntamente com uma descri¸ca˜o sum´ aria das suas caracter´ısticas em termos de testabilidade. O microprocessador 80486 da Intel possui uma infraestrutura BST que permite iniciar e posteriormente capturar o resultado do seu auto-teste [40]. As partes do CI que s˜ ao testadas durante esta opera¸ca˜o incluem a l´ ogica n˜ ao-aleat´ oria, o controlo da ROM, o buffer de referˆencias de transla¸co˜es e a mem´oria cache interna. Para iniciar o auto-teste o utilizador carrega a instru¸ca˜o RUNBIST, coloca o controlador do TAP no estado RunTest/Idle, fornece 220 ciclos de rel´ ogio e no final desloca para o exterior do CI, atrav´es do pino TDO, o resultado da opera¸ca˜o (armazenado num registo de um bit seleccionado pela pr´ opria instru¸ca˜o). Este microprocessador possui ainda um registo de identifica¸ca˜o, acess´ıvel atrav´es da instru¸ca˜o IDCODE, que especifica o c´ odigo do componente, o c´ odigo da vers˜ ao, o n´ umero do componente e o c´ odigo de identifica¸ca˜o do fabricante. Os microprocessadores MC68040, MC68060, MC68340 e MC88110 da Motorola, Inc., possuem igualmente uma infraestrutura compat´ıvel com a norma IEEE 1149.1. As caracter´ısticas do MC68040, um componente da terceira gera¸ca˜o de 32 bits com uma Unidade de Processamento de Inteiros (UPI), uma Unidade de Processamento em V´ırgula Flutuante (UPVF) (compat´ıvel com a norma IEEE 754) e uma unidade de mem´ oria que inclui duas caches separadas de 4K Bytes para instru¸co˜es e dados, incluem diversos contributos de projecto orientado a` testabilidade para facilitar o teste de produ¸ca˜o [41]. Al´em das trˆes instru¸co˜es obrigat´ orias, foram suportadas mais trˆes instru¸co˜es de dom´ınio p´ ublico: HIGHZ, PULLUP e DRVCNTL [42]. A instru¸ca˜o HIGHZ foi j´ a descrita na apresenta¸ca˜o da norma. A instru¸ca˜o PULLUP permite associar resistˆencias de pull-up de valor baixo aos pinos bidireccionais e de entrada. Esta implementa¸ca˜o foi feita para satisfazer os pedidos de alguns clientes da Motorola que apontavam o facto de liga¸co˜es em aberto poderem provocar resultados indeterminados durante a execu¸ca˜o de um teste convencional com BST (i.e. EXTEST) devido a`s caracter´ısticas das entradas do tipo CMOS. A presen¸ca das resistˆencias de pull-up determina um comportamento regular das entradas perante liga¸co˜es em aberto. A instru¸ca˜o DRVCNTL permite ao utilizador seleccionar a impedncia do drive de sa´ıda atrav´es da l´ ogica BST. Esta possibilidade ´e u ´til no caso de existirem

˜ DA TECNOLOGIA BST CHAPTER 3. IMPLANTAC ¸ AO

27

nos barramentos da CCI efeitos de transmiss˜ ao de linhas, requerendo assim algum tipo de termina¸ca˜o de linha. A l´ ogica BST permitiu igualmente a` Motorola implementar um meio de acesso `as v´ arias cadeias de varrimento internas existentes nos v´ arios dispositivos. Estas cadeias s˜ ao seleccionadas por um controlador de teste residente no microprocessador e inseridas como registos de dados de teste no percurso entre os pinos TDI e TDO. O projecto do MC68060 envolveu t´ecnicas de varrimento completo (full-scan, em que todos os flip-flops do CI incluem facilidades de varrimento) em todo o circuito a` excep¸ca˜o da l´ ogica BST [43]. O controlador de teste ´e apenas acess´ıvel ao fabricante, permitindo testar a l´ ogica do circuito atrav´es das cadeias de varrimento internas e testar as mem´ orias cache atrav´es de auto-teste. Ambos os testes s˜ao iniciados atrav´es de instru¸co˜es privadas descodificadas pelo controlador do TAP. O conjunto de instru¸co˜es de dom´ınio p´ ublico inclui as instru¸co˜es opcionais IDCODE, HIGHZ, CLAMP e uma instru¸ca˜o especial LPSAMPLE, que permite colocar o dispositivo num estado de funcionamento de baixo consumo [44]. A Hewlett-Packard (HP) integrou no seu microprocessador PA7100LC um controlador de teste compat´ıvel com o BST, mas apto a suportar teste por IDDQ , teste interno, um buffer interno de instru¸co˜es de teste e a captura de estados internos a` velocidade de funcionamento normal [45]. Cinco instru¸co˜es de dom´ınio p´ ublico, HIGHZ, CLAMP, DRV INH DRV EN e SELECT BYPASS s˜ ao igualmente suportadas pelo controlador do TAP. As instru¸co˜es HIGHZ e CLAMP foram j´ a referidas. A instru¸ca˜o SELECT BYPASS, que apenas permite seleccionar o registo de BYPASS, ´e na realidade um artefacto da implementa¸ca˜o das cadeias de varrimento internas. As instru¸co˜es DRV INH e DRV EN permitem controlar o estado dos pinos do CI ap´ os a realiza¸ca˜o de um teste de liga¸co˜es na CCI. Os pinos s˜ ao colocados num estado de alta-impedncia para precaver situa¸co˜es em que os vectores de teste deslocados para o interior do componente possam corromper o estado interno do CI e assim provocarem situa¸co˜es de conten¸ca˜o nos barramentos aquando da passagem do controlador do TAP para o estado Test-Logic-Reset. A instru¸ca˜o DRV EN anula a ac¸ca˜o da instru¸ca˜o DRV INH. A HP implementou ainda um conjunto de instru¸co˜es privadas divididas em trˆes classes, consoante o fim a que se destinam: selec¸ca˜o de cadeias de varrimento internas (SELECT DR0 a SELECT DR31), controlo dos rel´ ogios internos (FREE RUN, SINGLE STEP, DOUBLE STEP, NSTEP, HALT HIGH e HALT LOW) e captura dos estados internos do componente (ISAMPLE e ESAMPLE). O SuperSP ARC T M da Texas Instruments (TI) ´e um microprocessador superescalar com 3,1 milh˜ oes de trans´ıstores implementado em tecnologia BiCMOS [46], onde toda a l´ ogica a` excep¸ca˜o do controlador de rel´ ogio, do controlador do BST e do controlador do auto-teste, foi implementada segundo t´ecnicas de projecto com varrimento completo. Devido ao elevado n´ umero de flip-flops existentes, a l´ ogica foi dividida em quatro cadeias de

˜ DA TECNOLOGIA BST CHAPTER 3. IMPLANTAC ¸ AO

28

varrimento independentes (3100, 2176, 996 e 1000 flip-flops). O controlador do TAP existente neste dispositivo suporta, para al´em das trˆes instru¸co˜es obrigat´ orias, v´ arias instru¸co˜es privadas que permitem: o controlo do auto-teste do componente, o controlo/leitura das cadeias de varrimento internas e o controlo/leitura de registos que fazem a emula¸ca˜o incircuit do dispositivo. A emula¸ca˜o do dispositivo, atrav´es do BST, ap´ os ter sido montado na CCI, facilita a tarefa de teste e depura¸ca˜o do circuito quando integrado num sistema. Ainda dentro da fam´ılia de microprocessadores SPARC, refira-se que o microSP ARC T M , projectado com t´ecnicas de varrimento completo, possui um controlador de rel´ ogio que pode ser comandado atrav´es da infraestrutura BST. Em [47] ´e referido que esta op¸ca˜o foi essencial para o teste e depura¸ca˜o do projecto deste dispositivo. A tendˆencia verificada actualmente, quer pelos exemplos dados quer pelos novos microprocessadores que entretanto v˜ ao sendo disponibilizados no mercado [48, 49, 50], mostra at´e que ponto a infraestrutura BST tem sido utilizada neste tipo de dispositivos. Dispositivos l´ ogicos para fins gen´ ericos A designa¸ca˜o dispositivos l´ ogicos para fins gen´ericos abarca uma s´erie de componentes (buffers, latches, transceivers, D-type flip-flops e line drivers) de reduzida complexidade e de utiliza¸ca˜o generalizada. A inclus˜ ao do BST neste tipo de componentes justifica-se apenas pelas vantagens que proporciona em termos de teste da CCI, visto que em termos percentuais a quantidade de l´ ogica directamente relacionada com o BST ultrapassa largamente a l´ ogica funcional dos v´ arios dispositivos. A fam´ılia SCAN T M da National Semiconductor (NS) [51] ´e composta por componentes de 18 bits dos v´ arios tipos mencionados. Para al´em das trˆes instru¸co˜es obrigat´ orias da norma 1149.1, suporta igualmente as instru¸co˜es CLAMP, IDCODE e HIGHZ em todos os componentes. A fam´ılia SCOP E T M da TI [52] ´e composta por componentes de 8 e 18 bits dos v´ arios tipos mencionados. A TI optou por incluir nos dispositivos v´ arias extens˜ oes ao BST, no sentido de aumentar as solu¸co˜es poss´ıveis para o teste das CCIs que possuam componentes desta fam´ılia. A forma¸ca˜o de uma assinatura nas entradas, com a possibilidade de especificar m´ ascaras, a gera¸ca˜o pseudo-aleat´ oria de vectores nas sa´ıdas com polin´ omios de grau program´ avel (igual a uma ou duas vezes o n´ umero de sa´ıdas existentes), a implementa¸ca˜o de contagem bin´ aria nas sa´ıdas e a possibilidade de inverter o estado das sa´ıdas por cada impulso do rel´ ogio de teste s˜ ao algumas das caracter´ısticas adicionais de alguns dos componentes desta fam´ılia. Para al´em das trˆes instru¸co˜es obrigat´ orias da norma 1149.1, as instru¸co˜es CLAMP e HIGHZ s˜ ao igualmente suportadas em todos os dispositivos. As caracter´ısticas dos componentes anteriormente referidos permitiriam igualmente defini-los como componentes vocacionados para o teste de CCIs atrav´es de BST. No en-

˜ DA TECNOLOGIA BST CHAPTER 3. IMPLANTAC ¸ AO

29

tanto, dada a sua funcionalidade inicial n˜ ao estar relacionada com o BST, optou-se por incluir a sua referˆencia nesta subsec¸ca˜o.

3.1.2

Componentes vocacionados para o teste

A designa¸ca˜o componentes vocacionados para o teste agrupa um conjunto de componentes com BST destinados unicamente ao teste de CCIs e cuja funcionalidade principal cai numa das seguintes categorias: controladores de teste, CIs de observa¸ca˜o/controlo de n´ os do circuito, CIs de particionamento de cadeias de BS e ainda CIs destinados a fazer a interliga¸ca˜o entre a infraestrutura BST de uma CCI e um barramento de teste situado ao n´ıvel do sistema. Controladores de teste Os controladores de teste tˆem normalmente por objectivo implementar o auto-teste ao n´ıvel da CCI. Para isso, o controlador ´e respons´ avel pelas opera¸co˜es que ocorrem ao n´ıvel dos TAPs de cada um dos CIs com BST e pela aplica¸ca˜o dos vectores de teste armazenados no pr´ oprio dispositivo ou numa mem´ oria externa. Inicialmente propostos em finais da d´ecada de 80 [53, 54], os controladores de teste tˆem vindo a incorporar novas capacidades a` medida que as suas potencialidades v˜ ao sendo demonstradas em exemplos de aplica¸ca˜o pr´ aticos. Actualmente existem j´ a dispon´ıveis no mercado alguns controladores de teste baseados na norma IEEE 1149.1, nomeadamente, o Boundary Scan Master (BSM) da AT&T, o SCANPSC100F da NS e o SN74ACT8990 Test Bus Controller (TBC) da TI. O BSM [55, 56] pode ser descrito como um conversor de protocolo paralelo-s´erie que implementa o interface entre um microprocessador gen´erico, utilizado neste caso como processador de teste ao n´ıvel do sistema, e os TAPs das cadeias de BS que controla (duas no m´ aximo em alternado). Este dispositivo possui os seguintes blocos principais: interface gen´erico com o processador, conjunto de registos internos, bloco de controlo do pino TDO, bloco de controlo do pino TMS, bloco de recep¸ca˜o de valores atrav´es do pino TDI, gerador de impulsos de rel´ ogio de teste (TCK) e l´ ogica de configura¸ca˜o para suportar a utiliza¸ca˜o do BST ao n´ıvel hier´ arquico do sistema. No que respeita a` implementa¸ca˜o de auto-teste ao n´ıvel da CCI, existem trˆes blocos que permitem a gera¸ca˜o autom´ atica de vectores de teste (GAVT), a forma¸ca˜o de uma assinatura das respostas do circuito e a modifica¸ca˜o da sequˆencia de deslocamento. Este u ´ltimo bloco, designado pelo fabricante como SSM, ´e constitu´ıdo por dois buffers de comprimento fixo, um associado ao pino TDO e outro ao pino TDI, que armazenam um mapa estrutural das liga¸co˜es associadas a pinos BST. Pode assim carregar-se um buffer com o vector a aplicar e armazenar no outro buffer a resposta

˜ DA TECNOLOGIA BST CHAPTER 3. IMPLANTAC ¸ AO

30

ao vector aplicado. Os m´ odulos de GAVT e de forma¸ca˜o de assinatura permitem facilitar a tarefa de teste, embora a sua utiliza¸ca˜o sofra restri¸co˜es consoante o tipo e complexidade do circuito a testar. Refira-se por u ´ltimo que o BSM disp˜ oe de auto-teste que cobre aproximadamente 96,4% da l´ ogica do circuito. O SCANPSC100F [51] ´e igualmente um conversor de protocolo paralelo-s´erie control´ avel por um microprocessador/microcontrolador. A sua estrutura interna ´e semelhante ao BSM, controlando uma ou duas cadeias de BS. Os buffers associados aos pinos TDI e TDO s˜ ao no entanto mais pequenos, embora possuam a mesma capacidade de GAVT e de forma¸ca˜o de assinatura das respostas capturadas. Possui ainda um contador de 32-bits para controlar o n´ umero de impulsos de rel´ ogio de teste a aplicar aos componentes com auto-teste. Ao contr´ ario do BSM n˜ ao possui auto-teste, o que introduz algumas limita¸co˜es suplementares. Finalmente, o SN74ACT8990 ou TBC [52] apresenta em rela¸ca˜o aos dois u ´ltimos controladores descritos algumas caracter´ısticas adicionais. Sendo igualmente control´ avel por um microprocessador externo, o TBC possui seis linhas TMS, o que lhe permite controlar outras tantas cadeias de BS. As linhas TMS, TDO e TDI podem ser ligadas directamente a` cadeia a controlar ou ent˜ ao passarem primeiro por um buffer interno que permite introduzir um atraso program´ avel pelo conte´ udo de um registo de 31 bits. Um pino adicional (TOFF) permite passar o controlo das cadeias de BS ligadas ao TBC, para um outro bloco, colocando os pinos TMS(5..0), TDO e TCK num estado de alta-impedncia. O TBC disp˜ oe ainda de um conjunto de quatro pinos (EVENT3-0) destinados a` implementa¸ca˜o de uma comunica¸ca˜o ass´ıncrona com os dispositivos inseridos na(s) cadeia(s) que controla. Este sistema permite dar in´ıcio a uma dada opera¸ca˜o quando uma condi¸ca˜o l´ ogica do circuito se tornar verdadeira [57]. CIs de observa¸ c˜ ao/controlo Os CIs de observa¸ca˜o/controlo de n´ os de circuitos digitais s˜ ao componentes com BST destinados a observar o estado l´ ogico de n´ os do circuito de dif´ıcil acesso (principalmente os que se encontram no interior de grupos de componentes n˜ ao BST) e/ou a impor valores nesses mesmos n´os. Dois destes componentes, o PROBE [58, 59] e o Digital Bus Monitor (DBM) [52, 60], ser˜ ao aqui descritos por forma a ilustrar as caracter´ısticas e o modo de utiliza¸ca˜o deste tipo de componentes. O circuito PROBE permite controlar/observar n´ os de um dado circuito de duas maneiras, n˜ ao intrusivamente e intrusivamente. Na primeira um dos seus pinos ´e ligado ao n´ o seleccionado, sendo poss´ıvel capturar os valores presentes; no caso de mais nenhum driver estar a impor um valor nesse n´ o, ´e poss´ıvel tamb´em controlar o seu estado l´ ogico. Na segunda,

˜ DA TECNOLOGIA BST CHAPTER 3. IMPLANTAC ¸ AO

31

quebra-se uma liga¸ca˜o existente entre um pino de sa´ıda e um pino de entrada, ligando-se para isso o pino de sa´ıda a um dos pinos do PROBE e ligando um outro pino deste ao pino de entrada da liga¸ca˜o inicial. Deste modo, pode optar-se por duas situa¸co˜es: efectuar a liga¸ca˜o inicial via PROBE (os valores impostos pelo pino de sa´ıda s˜ ao capturados no interior do componente, passando a existir apenas um pequeno atraso na nova liga¸ca˜o) ou capturar atrav´es do pino do PROBE os valores impostos pelo pino de sa´ıda e controlar atrav´es do outro pino do PROBE os valores no pino de entrada. Esta solu¸ca˜o permite aumentar a testabilidade de um dado circuito, evitando a necessidade de se recorrer a equipamentos de teste do tipo in-circuit, com as desvantagens associadas ao backdriving. O PROBE possui igualmente a capacidade de gerar vectores pseudo-aleat´ orios nos seus pinos de sa´ıda e de formar uma assinatura dos valores capturados nos seus pinos de entrada. O DBM ´e um dos CIs de observa¸ca˜o controlado por BST mais completos que existem dispon´ıveis no mercado. Num encapsulamento de 28 pinos, possui 16 pinos de entrada de dados (s´ o permite observar valores), 3 pinos de rel´ ogio, 4 pinos para o TAP, um par de pinos para qualifica¸ca˜o de eventos (um de entrada e outro de sa´ıda) e um pino destinado a` coloca¸ca˜o em s´erie de v´ arios DBMs, para aumentar o comprimento do polin´ omio usado para a forma¸ca˜o de assinatura das entradas de dados. Apesar de s´ o possuir 16 pinos de observa¸ca˜o, oferece ao utilizador modos de funcionamento poderosos, permitindo: • armazenar numa mem´ oria interna de 1024 * 16 bits os valores capturados. • comprimir o conte´ udo da mem´ oria numa assinatura de 16 bits atrav´es de um polin´ omio definido pelo utilizador. • efectuar a captura de valores nas entradas quando uma das oito combina¸co˜es poss´ıveis com os trˆes rel´ ogios de entrada se tornar verdadeira ou quando a entrada de qualifica¸ca˜o de eventos se tornar verdadeira. • gerar uma condi¸ca˜o verdadeira no pino de sa´ıda de qualifica¸ca˜o de eventos quando os valores presentes nas entradas forem idˆenticos a um vector pr´e-definido. As capacidades deste CI permitem mesmo a realiza¸ca˜o de alguns teste funcionais a uma CCI. Por´em, o facto de n˜ ao possuir a capacidade de controlar n´ os do circuito, restringe de alguma forma a sua utiliza¸ca˜o. CIs de particionamento de cadeias de BS Os CIs de particionamento de cadeias de BS podem ser descritos como componentes destinados a dividir uma dada cadeia de BS existente numa CCI em duas ou mais cadeias

˜ DA TECNOLOGIA BST CHAPTER 3. IMPLANTAC ¸ AO

32

de comprimento inferior por forma a diminuir o n´ umero de bits deslocados. O SN74ACT8997 Scan Path Linker (SPL) da TI [52] permite que uma de quatro cadeias de BS secund´ arias seja inserida numa cadeia de BS prim´ aria. Estes componentes podem ser agrupados de uma forma horizontal ou vertical de modo a expandir o n´ umero de cadeias de BS secund´ arias, ou criar n´ıveis hier´ arquicos inferiores para outras cadeias de BS. A selec¸ca˜o do registo de Bypass remove todas as cadeias de BS secund´ arias do percurso da cadeia de BS prim´ aria. Nos casos em que a CCI sob teste possua v´arias cadeias de BS, torna-se vantajosa a utiliza¸ca˜o destes componentes, pela redu¸ca˜o do n´ umero de TAPs acess´ıveis a partir do exterior da carta, permitindo na mesma a selec¸ca˜o de uma u ´nica cadeia. CIs de interliga¸ c˜ ao entre a infraestrutura BST da CCI e a infraestrutura de teste situada ao n´ıvel do sistema Os sistemas formados por CCIs que disponham de BST levantam alguns problemas em termos da execu¸ca˜o do teste individual em cada uma das CCIs e do teste das interliga¸co˜es entre elas via backplane. Sendo o BST um barramento de teste dedicado para CCIs, a passagem para o n´ıvel hier´ arquico superior, o sistema, implica actualmente para o projectista a escolha entre duas grandes op¸co˜es: o MTM Bus (Module Test and Maintenance Bus) ou a extens˜ ao do BST como barramento de teste ao n´ıvel do sistema. Ambas as op¸co˜es obrigam a` coloca¸ca˜o de um dispositivo em cada CCI, que fa¸ca o interface entre os barramentos de cada um dos n´ıveis hier´ arquicos. Embora fosse poss´ıvel formar uma u ´nica cadeia de BS que percorresse todas as CCIs inseridas num sistema, ou reservar TAPs individuais para cada uma, o n´ umero de linhas do backplane necess´ arias, conjuntamente com a impossibilidade de retirar (no primeiro caso) ou de trocar de posi¸ca˜o (no segundo caso), alguma das CCIs, seriam importantes desvantagens que desaconselham este tipo de solu¸ca˜o. Come¸cando por se considerar a hip´ otese do MTM Bus [19] que est´ a a ser desenvolvido no mbito do grupo de trabalho 1149.5 do comit´e de normas para o teste do IEEE, s˜ ao os seguintes os sinais que dever˜ ao percorrer o barramento do backplane: • Master Data ou MMD • Slave Data ou MSD • Clock ou MCLK • Control ou MCTL • Pause Request ou MPR (opcional)

˜ DA TECNOLOGIA BST CHAPTER 3. IMPLANTAC ¸ AO

MTM-Bus módulo escravo

MTM-Bus módulo mestre

33

MTM-Bus módulo escravo

Master Data (MMD) Slave Data (MSD) Pause Request (MPR) Control (MCTL) Clock (MCLK)

Figure 3.1: Arquitectura do barramento MTM A arquitectura deste barramento, ilustrada na figura 3.1, apresenta v´ arios m´ odulos escravos (MTM-Slaves), que podem ir at´e um m´ aximo de 251, pendurados num barramento que ´e controlado por um m´ odulo de comando designado por MTM-Master. Este m´ odulo de comando pode endere¸car individualmente cada um dos m´ odulos escravos, grupos de m´ odulos seleccionados previamente, ou enviar mensagens a n´ıvel global. Em termos de comandos, pode inicializar a l´ ogica de cada uma das CCIs, colocar num estado de altaimpedncia todas as sa´ıdas que estejam ligadas ao backplane e ainda iniciar fun¸co˜es de auto-teste ao n´ıvel da CCI. Possui ainda um protocolo complexo para transmiss˜ ao de informa¸ca˜o, por forma a detectar e recuperar de situa¸co˜es de erro que possam ocorrer. O interface entre o MTM Bus e o BST encontra-se neste momento numa fase final de especifica¸ca˜o, tendo no decorrer do processo de discuss˜ ao da proposta IEEE P1149.5, surgido algumas sugest˜ oes [61, 62] acerca da liga¸ca˜o deste barramento a` infraestrutura BST existente na CCI. Paralelamente ao desenvolvimento do MTM Bus, alguns fabricantes decidiram desenvolver CIs que suportassem a utiliza¸ca˜o do BST ao n´ıvel do sistema. Dois destes fabricantes, a TI e a NS, possuem CIs que permitem efectuar o interface entre um barramento BST localizado ao n´ıvel da CCI e um segundo barramento BST localizado ao n´ıvel do sistema. O ASP (Addressable Shadow Port) da TI resultou de uma proposta apresentada por Lee Whetsel em 1992 [63]. Apesar de j´ a existir informa¸ca˜o preliminar sobre este CI, a verdade ´e que ainda n˜ ao se encontra inclu´ıdo nos produtos do cat´ alogo da TI [52] dispon´ıvel aquando da escrita desta tese. As caracter´ısticas deste CI incluem: • oito pinos para especifica¸ca˜o do endere¸co (´ unico) do ASP; cinco pinos para liga¸ca˜o ao barramento BST da CCI em que se encontra inserido e cinco pinos para liga¸ca˜o ao barramento BST de n´ıvel superior (sistema).

˜ DA TECNOLOGIA BST CHAPTER 3. IMPLANTAC ¸ AO

34

• a capacidade ligar directamente e de uma maneira transparente um controlador de teste, situado ao n´ıvel do sistema, a` cadeia de BS situada ao n´ıvel da CCI. • controlo de todo o funcionamento atrav´es de instru¸co˜es carregadas a partir do TAP do n´ıvel hier´ arquico superior. A grande vantagem deste CI reside no facto de n˜ ao ser necess´ ario para o projectista especializar-se em dois barramentos de teste diferentes (IEEE 1149.1 e IEEE P1149.5), podendo concentrar-se apenas no desenvolvimento da estrat´egia de teste para todo o sistema, com base no BST. O autor props posteriormente numa continua¸ca˜o do seu trabalho, o HASP (Hierarchically Addressable Shadow Port) [64], um CI que permite a utiliza¸ca˜o do BST a n´ıveis hier´ arquicos superiores, i.e. ao n´ıvel de sistemas de sistemas. O SCANPSC110F SCAN T M Bridge da NS [51] ´e um componente compat´ıvel com a norma IEEE 1149.1, que permite estender o BST do n´ıvel da CCI para o n´ıvel do sistema. Estes componentes podem ser ligados de duas formas: pendurados todos num u ´nico barramento formando o que se designa por configura¸ca˜o multidrop (figura 3.2), ou ent˜ ao hierarquicamente, de maneira a formar uma a´rvore de testabilidade (figura 3.3), i. e. CCIs ligadas em subsistemas ligados por sua vez em sistemas. As caracter´ısticas deste componente incluem: • endere¸camento hier´ arquico ou em multidrop de m´ odulos com BST, com a distin¸ca˜o de 59 endere¸cos individuais, quatro endere¸cos de grupo e um endere¸co global. • um modo de funcionamento especial em que as cadeias podem ser inseridas em s´erie (individualmente ou em grupos de duas ou trˆes) no percurso de outras cadeias de BS. • a possibilidade de passar o controlo das trˆes cadeias de BS para um controlador externo. • a existˆencia de um contador de 32 bits para controlo do n´ umero de ciclos de rel´ ogio de teste (TCK) a aplicar a qualquer uma das cadeias durante a execu¸ca˜o de fun¸co˜es de auto-teste dos componentes nela inseridos. • a existˆencia de um LFSR para forma¸ca˜o de uma assinatura dos valores s´erie deslocados do interior da cadeia de BS seleccionada. Esta assinatura pode ser posteriormente comparada com a assinatura esperada para uma r´ apida detec¸ca˜o da ocorrˆencia de erros.

˜ DA TECNOLOGIA BST CHAPTER 3. IMPLANTAC ¸ AO

CCI 1

35

CCI 2

cadeia BS 1

cadeia BS 1 cadeia BS 2

cadeia BS 2

cadeia BS 3

cadeia BS 3

Scan Bridge #1

Scan Bridge #2

endereço 1

Lógica de interface com o backplane

endereço 2

Lógica de interface com o backplane

Linhas do controlador de teste do sistema

TRST TCK TMS TDO TDI

Linhas do Backplane

Figure 3.2: Utiliza¸ca˜o do SCAN Bridge em configura¸ca˜o multidrop Sistema 1

Sistema 2

CCI 1

CCI 2

Scan Bridge 1

Scan Bridge 2

cadeia BS

Scan Bridge s1 cadeia BS

Scan Bridge

Figure 3.3: Utiliza¸ca˜o do SCAN Bridge em configura¸ca˜o hier´ arquica A adop¸ca˜o da norma IEEE 1149.1 para o n´ıvel hier´ arquico superior, aliada a` capacidade de controlar trˆes cadeias de BS de uma forma hier´ arquica ou em configura¸ca˜o multidrop, fazem deste componente uma op¸ca˜o preferencial face ao ASP e ao HASP da TI, que mesmo em conjunto n˜ ao conseguem igualar as capacidades do primeiro em termos do n´ umero de cadeias de BS que conseguem controlar.

3.1.3

Aplica¸ co ˜es alternativas possibilitadas pela infraestrutura BST

A infraestrutura BST pode ainda ser aproveitada para outros fins n˜ ao relacionados com o teste, tais como reprogramar FPGAs e EE CPLDs ap´ os terem sido montados na CCI, ou emular o funcionamento de alguns microcontroladores [65, 66, 67, 68, 69]. Curiosamente

˜ DA TECNOLOGIA BST CHAPTER 3. IMPLANTAC ¸ AO

36

esta ideia de reprogramar a funcionalidade de um CI ap´ os ter sido montado na CCI foi igualmente sugerida por fabricantes de testadores do tipo in-circuit como uma das poss´ıveis aplica¸co˜es deste tipo de equipamentos [70]. Todos os componentes que pertencem `a fam´ılia XC4000 LCA da Xilinx, al´em de suportarem as trˆes instru¸co˜es obrigat´ orias, aceitam mais quatro instru¸co˜es, sendo duas do utilizador (USER 1 e USER 2) e duas do fabricante (READBACK e CONFIGURE). A instru¸ca˜o CONFIGURE permite a utiliza¸ca˜o da infraestrutura BST para efeitos de configura¸ca˜o do dispositivo, sendo ainda poss´ıvel verificar quais os dados introduzidos para essa configura¸ca˜o atrav´es da instru¸ca˜o READBACK. As instru¸co˜es USER 1 e USER 2, juntamente com um conjunto adicional de seis sinais provenientes do bloco de BS da FPGA, permitem ao utilizador implementar fun¸co˜es de auto-teste no circuito por ele projectado. Refira-se ainda que a Xilinx, apesar de n˜ ao dispor de BST na sua fam´ılia XC3000, disponibilizou recentemente um documento t´ecnico que especifica a forma de emular nestes componentes a infraestrutura BST, apenas para efeitos de teste de liga¸co˜es (s´ o suporta o EXTEST) [36]. Ap´ os a valida¸ca˜o das liga¸co˜es configura-se o dispositivo de modo a implementar o circuito projectado pelo utilizador. A infraestrutura BST existente nas FPGAs da INTEL ´e utilizado para programa¸ca˜o, reconfigura¸ca˜o e reprograma¸ca˜o in-circuit das FPGAs. Al´em das trˆes instru¸co˜es obrigat´ orias, a iFX780 suporta as duas instru¸co˜es opcionais IDCODE e USERCODE (a Intel optou neste caso pela designa¸ca˜o UESCODE ou User Electronic Signature), bem como a instru¸ca˜o HIGHZ (definida na revis˜ ao da norma 1149.1 [28]), que coloca todos os pinos de sa´ıda do dispositivo num estado de alta-impedncia. Para efeitos de reconfigura¸ca˜o e reprograma¸ca˜o, a INTEL disponibiliza um conjunto de sete instru¸co˜es: LDVECT, FPGM, FREAD, SWRITE, SREAD, RADLOAD e PORST. A instru¸ca˜o LDVECT ´e utilizada para seleccionar o endere¸co da linha/coluna e enviar dados para a programa¸ca˜o. As instru¸co˜es SWRITE e SREAD permitem opera¸co˜es de escrita e leitura na mem´ oria est´ atica do dispositivo. Neste caso, apenas o endere¸co da linha ´e especificado no vector deslocado para o interior do registo seleccionado. A instru¸ca˜o FREAD permite a leitura de uma linha completa do conte´ udo da EPROM de programa¸ca˜o do dispositivo. A instru¸ca˜o FPGM permite programar a EPROM que cont´em a configura¸ca˜o do dispositivo. Esta opera¸ca˜o ocorre no estado Run-Test/Idle do controlador do TAP, tendo como condi¸co˜es a permanˆencia neste estado durante pelo menos 200 microsegundos e a aplica¸ca˜o pr´evia de um impulso a um n´ıvel de tens˜ ao alto no pino Vpp. A instru¸ca˜o PORST pode ser utilizada para conduzir o dispositivo ao seu estado inicial, onde a sua configura¸ca˜o ´e carregada a partir da EPROM. A instru¸ca˜o RADLOAD carrega os 6 bits do endere¸co de uma linha, sendo apenas utilizada para compatibilizar a opera¸ca˜o de programa¸ca˜o do dispositivo com

˜ DA TECNOLOGIA BST CHAPTER 3. IMPLANTAC ¸ AO

37

a reconfigura¸ca˜o in-circuit atrav´es da infraestrutura BST. Os dispositivos com mais de 84 pinos das fam´ılias MACH3 e MACH4 de CPLDs da AMD [39], para al´em das trˆes instru¸co˜es obrigat´ orias, suportam igualmente um conjunto de cinco instru¸co˜es que permitem ao utilizador, atrav´es da infraestrutura BST, reprogramar o dispositivo ap´ os montagem na CCI. Para suportar esta funcionalidade foram acrescentados dois novos registos, o ”registo de endere¸cos de comprimento A” e o ”registo de dados de comprimento D”. A instru¸ca˜o ERASE permite apagar toda a matriz de programa¸ca˜o. As instru¸co˜es ADDRESS e DATA permitem colocar o registo de endere¸cos seleccionado e o registo de dados seleccionado no percurso entre os pinos TDI e TDO. A instru¸ca˜o PROGRAM coloca o conte´ udo do registo de dados na linha da matriz de programa¸ca˜o apontada pelo endere¸co contido no registo de endere¸cos. Finalmente, a instru¸ca˜o VERIFY realiza a opera¸ca˜o contr´ aria a` da instru¸ca˜o PROGRAM, ou seja, coloca o conte´ udo da linha da matriz de programa¸ca˜o (apontada pelo endere¸co contido no registo de endere¸cos) no registo de dados. Para evitar poss´ıveis confus˜ oes na identifica¸ca˜o de um dado componente, estes dispositivos possuem igualmente um registo do utilizador de 32 bits, que facilita a tarefa de identifica¸ca˜o e possibilita ainda o armazenamento de um c´ odigo que indique a vers˜ ao actual de programa¸ca˜o. Refira-se que esta possibilidade de reprograma¸ca˜o in-circuit s´ o ´e poss´ıvel pelo facto da tens˜ ao de programa¸ca˜o n˜ ao ser superior a` tens˜ ao de alimenta¸ca˜o do dispositivo (5V).

3.2

Ferramentas de CAD

Para que o BST possa ter sucesso ´e necess´ ario que exista uma linguagem normalizada, pass´ıvel de ser lida por programas de computador, que descreva a infraestrutura BST de um CI. O BSDL (Boundary Scan Description Language) [27] ´e actualmente usado, pela generalidade dos fabricantes de ferramentas de CAD, para descrever a infraestrutura BST existente nos CIs compat´ıveis com a norma 1149.1. O aparecimento do BST originou ainda duas novas necessidades em termos de ferramentas de CAD: a inser¸ca˜o autom´ atica da infraestrutura BST durante o projecto de CIs e a gera¸ca˜o autom´ atica de programas para o teste de CCIs atrav´es da infraestrutura BST.

3.2.1

Inser¸ c˜ ao autom´ atica da infraestrutura BST

A primeira necessidade, referida em v´ arios artigos de opini˜ ao de especialistas na a´rea do teste [71, 72, 73], tem sido gradualmente satisfeita pelos fabricantes de ferramentas de projecto de CIs, nomeadamente de ASICs. Casos como o da Synopsis, da ES2, da Philips ED&T e da LogicVision, uma companhia formada recentemente (1992) por Vinod

˜ DA TECNOLOGIA BST CHAPTER 3. IMPLANTAC ¸ AO

38

K. Agarwal, um nome bem conhecido na a´rea do teste electr´ onico, s˜ ao alguns exemplos de como companhias j´ a existentes passaram a integrar estas capacidades e de como novas companhias emergiram para produzirem e comercializarem estas novas ferramentas. De uma maneira geral, as seguintes capacidades s˜ ao suportadas por estas ferramentas: • Inser¸ca˜o autom´ atica da infraestrutura m´ınima de BST ao n´ıvel estrutural, RTL (Register Transfer Level) ou comportamental do CI. • Inser¸ca˜o de cadeias de varrimento internas sob a forma de registos de dados de teste, no percurso entre os pinos TDI e TDO. • Possibilidade de controlar atrav´es da infraestrutura BST os circuitos de auto-teste do CI. • Gera¸ca˜o autom´ atica da descri¸ca˜o em BSDL da infraestrutura BST do CI.

3.2.2

Gera¸ c˜ ao autom´ atica dos testes

A segunda necessidade assenta na constata¸ca˜o de que, apesar da existˆencia de uma infraestrutura BST facilitar em larga escala a tarefa de teste de uma CCI, se n˜ ao existirem ferramentas computacionais que produzam automaticamente os vectores para o teste completo da CCI, incluindo as instru¸co˜es para o controlo dos v´ arios TAPs, a tarefa poder´ a tornar-se extremamente morosa ou mesmo imposs´ıvel. Tipicamente, o teste de uma CCI atrav´es de BST ´e dividido em trˆes etapas principais: • teste da infraestrutura BST. • teste das liga¸co˜es (dividido geralmente em teste de liga¸co˜es BST e teste de liga¸co˜es pertencentes a grupos de l´ ogica n˜ ao BST) • teste dos componentes (atrav´es de vectores aplicados aos pinos dos CIs ou atrav´es da activa¸ca˜o de fun¸co˜es de auto-teste) Estas etapas podem ser abordadas em separado, por forma a facilitar a tarefa de gera¸ca˜o autom´ atica do programa de teste (GAPT) e a permitir a utiliza¸ca˜o de algumas ferramentas de gera¸ca˜o autom´ atica de vectores para o teste dos grupos n˜ ao BST. A etapa de teste da infraestrutura BST ´e efectuada atrav´es da desloca¸ca˜o s´erie de um vector pela cadeia formada pelos v´ arios registos de instru¸ca˜o dos componentes inseridos nessa cadeia. As liga¸co˜es entre os v´arios sinais que formam o TAP (TMS,TCK,TDO,TDI) s˜ ao validadas no que respeita a faltas do tipo stuck-at, de continuidade e do tipo curto-circuitos entre

˜ DA TECNOLOGIA BST CHAPTER 3. IMPLANTAC ¸ AO

39

pistas. Esta etapa resulta da existˆencia e consequente utiliza¸ca˜o do BST para o teste da CCI, tendo sido necess´ ario criar novas ferramentas que geram automaticamente a sequˆencia de comandos e vectores necess´ arios. Os vectores para o teste de liga¸co˜es s˜ ao gerados por uma ferramenta que necessita da descri¸ca˜o estrutural da CCI, geralmente no formato normalizado Electronic Data Interchange Format (EDIF), da descri¸ca˜o dos grupos de l´ ogica n˜ ao BST e ainda da descri¸ca˜o dos componentes com BST. O teste dos componentes pode ser dividido em duas fases: teste dos componentes com auto-teste e teste dos componentes sem auto-teste. Na primeira fase desloca-se a instru¸ca˜o RUNBIST para cada um dos componentes com auto-teste, colocam-se os TAPs no estado Run-Test/Idle e aplica-se o n´ umero de ciclos de rel´ ogio especificado. No final retira-se a assinatura de cada componente e compara-se com a assinatura esperada. Para o teste dos componentes sem auto-teste, nos casos em que as restri¸co˜es de tempo n˜ ao o impe¸cam, desloca-se a instru¸ca˜o INTEST e seguidamente aplicam-se os vectores de teste, comparando-se a resposta a cada um deles com a resposta esperada. Tanto os vectores de teste como as respostas s˜ao geralmente importados durante a GAPT, a partir de uma biblioteca fornecida pelo fabricante do CI.

3.3

Equipamentos de teste

A introdu¸ca˜o da tecnologia BST n˜ ao eliminou a existˆencia de componentes que n˜ ao dispusessem deste tipo de tecnologia, criando assim um panorama geral caracterizado por CCIs mistas, i. e. CCIs possuidoras de componentes com e sem BST. A complexidade dos grupos de componentes sem BST pode dificultar, se n˜ ao mesmo impossibilitar, o teste de liga¸co˜es no seu interior a partir de est´ımulos aplicados pelos n´ os control´ aveis que os rodeiam (E/S prim´ arias e pinos de componentes com BST). O teste atrav´es da infraestrutura BST deve portanto ser visto como um complemento (poderoso) das tecnologias j´ a existentes, que por sua vez passar˜ ao a surgir em testadores que incluem geralmente canais de teste para blocos com BST. V´ arios testadores possuem actualmente as duas capacidades, teste in-circuit e teste atrav´es da infraestrutura BST, podendo citar-se como exemplo o caso da associa¸ca˜o entre a Tektronix e a TI. A s´erie IntegraT M da Tektronix [74] ´e constitu´ıda por um equipamento baseado em m´ odulos para barramentos do tipo VXI (permitindo assim a sua expansibilidade), cada um com capacidade para controlar duas cadeias de BS, uma mem´ oria de 16 MBytes para armazenamento de vectores e podendo ir at´e uma taxa m´ axima de rel´ ogio de teste (TCK) de 25 MHz. Este sistema integra uma ferramenta computacional denominada

˜ DA TECNOLOGIA BST CHAPTER 3. IMPLANTAC ¸ AO

40

ao exclusiva da Tektronix do pacote de software, com nome ASSET T M VXI, uma vers˜ idˆentico, desenvolvido pela TI. O programa gera automaticamente o teste de integridade das cadeias de BS. Para o teste das interliga¸co˜es, a Tektronix utiliza o ASSET Interconnect Test (AIT), um programa do pacote de software V ICT ORY T M da Teradyne, que possui como caracter´ısticas uma cobertura total no teste de liga¸co˜es entre pinos BST e a gera¸ca˜o autom´ atica de relat´ orios de cobertura e de diagn´ ostico de faltas, com indica¸ca˜o da malha e do componente/pino faltoso. Para facilitar a utiliza¸ca˜o em conjunto com diferentes plataformas, na gera¸ca˜o do teste atrav´es de BST, o ASSET VXI suporta as seguintes normas da ind´ ustria electr´ onica: • Serial Vector Format (SVF), para descri¸ca˜o dos vectores de teste em formato s´erie. • EDIF e BSDL, para constru¸ca˜o da base de dados referente a` CCI sobre teste. • Hierarchical Scan Description Language (HSDL), para descri¸ca˜o ao n´ıvel do sistema e subsistema [75]. A s´erie IntegraT M ´e ainda facilmente acopl´ avel aos testadores do tipo in-circuit da Tektronix, formando o conjunto uma plataforma de teste para CCIs mistas. O problema do teste da CCI mista ´e atacado na sua globalidade, particionando-se a aplica¸ca˜o dos vectores de teste, entretanto gerados, pelo testador in-circuit e pelos canais BST. A detec¸ca˜o de erros pode ser feita localmente, gra¸cas a` quantidade de mem´ oria dispon´ıvel, que permite armazenar as m´ ascaras de compara¸ca˜o e os valores esperados. Para efeitos de diagn´ ostico de faltas, as respostas capturadas s˜ ao armazenadas e posteriormente transferidas para um m´ odulo de processamento (instalado no mesmo barramento VXI) ou para um PC, onde se efectuam os c´alculos e se produz o respectivo relat´ orio. V´ arios outros equipamentos de teste como o PM3705 da Philips T&M ou o PF8683 BST Adapter da Fluke [76], destinado a` sua fam´ılia de analisadores l´ ogicos, poderiam ter sido apresentados. Por´em, em termos de caracter´ısticas gerais, estes pouco ou nada teriam a acrescentar ao que aqui foi j´ a apresentado, pelo que se optou por n˜ ao descrever mais nenhum.

3.4

Conclus˜ ao

Neste cap´ıtulo ilustrou-se o estado actual de implanta¸ca˜o da tecnologia BST ao n´ıvel dos CIs, das ferramentas de CAD e dos equipamentos de teste electr´ onico. Distinguiramse dois tipos de componentes com BST consoante a sua funcionalidade e objectivo. O primeiro tipo, abordado na subsec¸ca˜o 3.1.1, agrupa o conjunto de componentes em que

˜ DA TECNOLOGIA BST CHAPTER 3. IMPLANTAC ¸ AO

41

a infraestrutura BST representa um pequena frac¸ca˜o da totalidade da l´ ogica existente no CI e ainda todos os componentes referidos como dispositivos l´ ogicos para fins gen´ericos (buffers, latches, line drivers, flip-flops). O segundo tipo, abordado na subsec¸ca˜o 3.1.2, agrupa o conjunto de componentes destinados ao controlo ou aproveitamento da infraestrutura BST existente ao n´ıvel da CCI. Este conjunto engloba controladores de teste, CIs de observa¸ca˜o/controlo de n´ os do circuito, CIs de particionamento de cadeias de BS e ainda os componentes destinados a fazer a interliga¸ca˜o entre o barramento de BST existente na CCI e um barramento de teste situado no n´ıvel hier´ arquico imediatamente superior (sistema ou subsistema). Na subsec¸ca˜o 3.1.3 descreveram-se algumas aplica¸co˜es alternativas possibilitadas pela infraestrutura BST. Na sec¸ca˜o 3.2 debateram-se as necessidades originadas pela existˆencia da norma IEEE 1149.1, em termos das ferramentas de CAD actuais para projecto de CIs, tendo-se igualmente apresentado novas ferramentas que apareceram para tirar partido da existˆencia da infraestrutura BST, gerando automaticamente o programa de teste da CCI. Finalmente, abordaram-se na sec¸ca˜o 3.3 os equipamentos de teste actuais, que permitem efectuar o teste de uma CCI atrav´es de uma (ou v´ arias) cadeia(s) de BS. Tendo por base o contexto introduzido at´e agora, poder-se-´ a no cap´ıtulo seguinte come¸car com a apresenta¸ca˜o do trabalho desenvolvido, nesta primeira fase relativamente a um conjunto de componentes concebidos para se tirar partido da infraestrutura BST existente numa CCI.

Chapter 4

Testabilidade por Medida em CCIs: Blocos B´ asicos Este cap´ıtulo descreve o processo de identifica¸ca˜o, especifica¸ca˜o e desenvolvimento de um conjunto de blocos orientados a` testabilidade, que permitem dotar uma CCI de capacidades de auto-teste, ou ainda o desenvolvimento de equipamentos de teste de baixo custo [77, 78, 79].

4.1

Requisitos

Apesar das vantagens que a tecnologia BST apresenta, o n´ umero de CCIs que disp˜ oem unicamente de componentes com BST ´e ainda muito reduzido, sobretudo por raz˜ oes que tˆem a ver com a relativa ”juventude” desta tecnologia (relativa escassez de componentes, ´ assim frequente de ferramentas de apoio ao projecto, de forma¸ca˜o de projectistas, etc.). E que uma infraestrutura BST numa CCI n˜ ao se estenda a todos os seus componentes, proporcionando deste modo uma capacidade de cobertura de faltas limitada [80, 81, 82]. Este panorama justificou o desenvolvimento de um conjunto de blocos orientados a` testabilidade, que tiram partido da existˆencia de uma infraestrutura BST numa CCI, por forma a aumentar a cobertura de faltas e inclusivamente dotar a pr´ opria CCI com capacidade de auto-teste. Estes blocos devem por´em obedecer a certos requisitos que tornem vi´ avel a sua utiliza¸ca˜o, nomeadamente: • baixo custo e uma disponibilidade alargada, i. e. facilidade de os adquirir. • possibilidade de solu¸co˜es a` medida, i. e. o utilizador deve poder adaptar facilmente a configura¸ca˜o dos componentes a`s necessidades concretas de cada CCI. 42

´ CHAPTER 4. TESTABILIDADE POR MEDIDA EM CCIS: BLOCOS BASICOS

43

Estes requisitos apontam para a implementa¸ca˜o dos blocos orientados a` testabilidade em componentes do tipo program´ avel. Os Dispositivos L´ ogicos Program´ aveis (PLDs, Programmable Logic Devices) encontram-se actualmente numa fase de expans˜ ao not´ oria, sendo as suas vers˜ oes de reduzida/m´edia complexidade f´ aceis de adquirir a um custo razo´ avel, apresentam tempos de prototipagem muito reduzidos (minutos) e possibilitam uma grande flexibilidade ao utilizador em termos de altera¸co˜es ao projecto. As ferramentas de projecto neste tipo de componentes, incluem linguagens descritivas (HDLs, Hardware Description Languages) poderosas e f´ aceis de aprender e utilizar. Foi assim decidido implementar os blocos em PLDs, utilizando-se para o seu desenvolvimento uma HDL. Sendo poss´ıvel implementar uma solu¸ca˜o flex´ıvel e de custo reduzido para aumentar a testabilidade de CCIs com BST, a identifica¸ca˜o dos requisitos ao n´ıvel da CCI constitui o primeiro passo a dar neste sentido. As liga¸co˜es que incluem pinos com BST proporcionam n´ıveis elevados de CO, permitindo aproxima¸co˜es directas e imediatas para a detec¸ca˜o (e eventual diagn´ ostico) de faltas estruturais. Contudo, os baixos n´ıveis de CO associados a liga¸co˜es no interior de grupos de componentes n˜ ao BST, podem tornar extremamente complicada a tarefa de teste destas liga¸co˜es, sobretudo em duas situa¸co˜es: grupos de componentes do tipo VLSI ou grupos de componentes anal´ ogicos com acesso reduzido ou inexistente atrav´es da infraestrutura BST. Assim, dois dos requisitos em termos de testabilidade da CCI, podem ser descritos da seguinte forma: • acesso atrav´es de BST a n´ os digitais n˜ ao BST, quer sejam E/S prim´ arias quer sejam n´ os situados no interior de grupos de componentes n˜ ao BST. O acesso `as E/S prim´ arias dever´ a ser simples (o modo EXTEST ser´ a suficiente), por´em para o caso de grupos de componentes n˜ ao BST a utiliza¸ca˜o de t´ecnicas como a Gera¸ca˜o PseudoAleat´ oria de Vectores (GPAV) e An´ alise de Assinatura (AS) deveria ser considerada. • acesso atrav´es de BST a n´ os anal´ ogicos. Contudo, devido a` complexidade do teste de componentes anal´ ogicos, o acesso a estes n´os dever´ a ser limitado a dois modos b´ asicos: captura dos valores anal´ ogicos presentes nos n´ os que se pretendem observar e imposi¸ca˜o de valores anal´ ogicos nos n´ os que se pretendem controlar. A capacidade de dotar a CCI com auto-teste s´ o ser´ a poss´ıvel se o conjunto de opera¸co˜es que ocorrem ao n´ıvel do TAP em cada CI (incluindo as que dizem respeito aos vectores de teste), for armazenado na pr´ opria CCI. Como j´ a foi referido na sec¸ca˜o 3.2.2, o teste de uma CCI atrav´es da infraestrutura BST pode ser dividido em trˆes etapas fundamentais: teste da infraestrutura BST, teste das liga¸co˜es (incluindo as que se situam no interior de grupos de componentes n˜ ao BST) e teste dos componentes (atrav´es de vectores de teste

´ CHAPTER 4. TESTABILIDADE POR MEDIDA EM CCIS: BLOCOS BASICOS

44

aplicados internamente no caso de componentes pouco complexos, ou atrav´es de fun¸co˜es de auto-teste nos componentes que o suportem) [83]. Uma an´ alise atenta das opera¸co˜es elementares que ocorrem no TAP, em cada uma das etapas anteriormente descritas, permitiu a identifica¸ca˜o dos seguintes trˆes tipos de opera¸co˜es: transi¸ca˜o de estados do controlador do TAP (o valor presente em TMS define qual o estado seguinte aquando da transi¸ca˜o ascendente de TCK), aplica¸ca˜o de ciclos de rel´ ogio em TCK com a linha TMS ao n´ıvel ”0” (para executar fun¸co˜es de auto-teste nos componentes que o suportem), e a desloca¸ca˜o de valores (bits) atrav´es dos registos dos componentes seleccionados. Esta u ´ltima opera¸ca˜o ocorre com a linha TMS mantida ao n´ıvel ”0”, a` excep¸ca˜o do u ´ltimo bit deslocado, altura em que a linha TMS ´e posta a ”1” para for¸car a transi¸ca˜o do controlador do TAP do estado Shift para o estado Exit1. A frequente repeti¸ca˜o destas opera¸co˜es sugere a especifica¸ca˜o de uma arquitectura simples para um processador dedicado, com um conjunto de instru¸co˜es especialmente vocacionado para a implementa¸ca˜o dos trˆes tipos de opera¸co˜es identificados. A existˆencia do processador dedicado constituiria assim um importante requisito, no caso de se pretender dotar a CCI com capacidade de auto-teste [84, 85]. Este u ´ltimo requisito pode assim ser especificado da seguinte forma: • O auto-teste da CCI dever´ a ser suportado por um processador de teste residente, que possua um conjunto de instru¸co˜es vocacionado para o controlo dos trˆes tipos de opera¸co˜es elementares que ocorrem durante a execu¸ca˜o do teste da CCI. O modelo do processador dever´ a ainda poder ser utilizado por uma ferramenta de gera¸ca˜o autom´ atica de programas de teste, que produza o c´ odigo necess´ ario para o teste completo de uma CCI.

Estes requisitos levaram ao desenvolvimento do conjunto de blocos orientados a` testabilidade, implementados em PLDs, que se passam a descrever neste cap´ıtulo. Refira-se que o facto de se ter utilizado uma HDL facilita grandemente ao utilizador a introdu¸ca˜o de altera¸co˜es aos blocos, no sentido de atingir uma solu¸ca˜o a` medida do problema de testabilidade da sua CCI.

4.2

Os blocos para o teste de liga¸ co ˜es n˜ ao BST

As liga¸co˜es n˜ ao BST numa CCI podem ser divididas em dois tipos: liga¸co˜es que incluem E/S prim´ arias e liga¸co˜es que incluem pinos pertencentes a componentes sem BST. Para um e outro tipo foram desenvolvidas solu¸co˜es diferentes.

´ CHAPTER 4. TESTABILIDADE POR MEDIDA EM CCIS: BLOCOS BASICOS

4.2.1

45

Teste das E/S prim´ arias da CCI

O teste das liga¸co˜es que incluem E/S prim´ arias da CCI pode ser efectuado atrav´es de um equipamento de teste externo, por´em uma solu¸ca˜o mais simples e econ´ omica, ilustrada na figura 4.1, consiste em estender a infraestrutura BST existente na CCI a um conjunto externo de c´elulas BS que permita incluir o teste deste tipo de liga¸co˜es no teste efectuado atrav´es da infraestrutura BST. O conjunto externo de c´elulas BS pode ser visto como um bloco que ´e constitu´ıdo na realidade por um ou mais componentes que contˆem apenas a infraestrutura BST, tal como se ilustra no diagrama de blocos da figura 4.2, que representa a arquitectura interna de um destes componentes. Este componente, a partir de agora designado por controlador de E/S digitais, foi projectado e implementado numa PLD da Altera, mais concretamente num dispositivo da s´erie EPM5128, que cont´em 128 macroc´elulas e uma complexidade equivalente a cerca de cinco mil portas l´ ogicas. O conjunto de instru¸co˜es suportado pelo controlador de E/S digitais, indicado na tabela 4.1, reduz-se ao conjunto m´ınimo exigido pela norma. Os registos existentes s˜ ao indicados na tabela 4.2, juntamente com a indica¸ca˜o do comprimento e fun¸ca˜o de cada um. células BS externas Pinos de E/S primárias

Controlador do auto-teste ao nivel da CCI

lógica da CCI

Figure 4.1: Solu¸ca˜o desenvolvida para o teste das E/S prim´ arias digitais C´ odigo Bin´ ario 00 01 10 11

C´ odigo da opera¸ca˜o EXTEST SAMPLE/PRELOAD BYPASS BYPASS

Registos de dados Boundary Scan Boundary Scan Bypass Bypass

Table 4.1: Instru¸co˜es suportadas pelo controlador de E/S digitais O registo de BS do controlador de E/S digitais tem associados pinos bidireccionais e pinos de entrada da PLD. Os pinos bidireccionais permitem uma solu¸ca˜o mais flex´ıvel, pois facilitam a tarefa da liga¸ca˜o f´ısica aos pinos dos conectores da CCI. Assim, no caso

´ CHAPTER 4. TESTABILIDADE POR MEDIDA EM CCIS: BLOCOS BASICOS

entradas[0..9]

46

sa ídas[0..24]

Registo de BS registo de Bypass controlo descodificador de Instru ção TDI

TDO

Registo de Instru ção controlo do RI

TMS TCK /TRST

controlador do TAP

controlo dos registos de Dados

Figure 4.2: Diagrama de blocos do controlador de E/S digitais Nome do Registo Instru¸ca˜o Bypass Boundary Scan

Comprimento 2 bits 1 bit 62 bits

Fun¸ca˜o Selecciona o modo de funcionamento Selecciona o menor percurso entre TDI-TDO Acesso `as E/S digitais da CCI sobre teste

Table 4.2: Registos existentes no controlador de E/S digitais de se considerar uma entrada prim´ aria do conector, configura-se a c´elula BS associada ao pino bidireccional como uma sa´ıda, bastando para isso colocar o valor correcto (neste caso 1) na c´elula de controlo associada com o mesmo pino. Na situa¸ca˜o oposta, coloca-se um 0 na c´elula de controlo, ficando o pino configurado como uma entrada, de modo a suportar a liga¸ca˜o a uma sa´ıda prim´ aria da CCI. A figura 4.3 ilustra o diagrama de blocos do registo de BS do controlador de E/S digitais, onde se identifica um conjunto de 10 c´elulas de entrada e um conjunto de 26 c´elulas bidireccionais comandadas por um outro conjunto de 26 c´elulas de controlo. Os valores presentes nos pinos de entrada e nos pinos bidireccionais s˜ ao capturados nas respectivas c´elulas associadas, aquando da passagem do controlador do TAP pelo estado Capture-DR (com a instru¸ca˜o EXTEST ou SAMPLE/PRELOAD carregada no registo de instru¸ca˜o). O pino bidireccional encontra-se num estado de altaimpedˆ ancia sempre que o valor da c´elula de controlo seja 0 ou que a instru¸ca˜o presente seja diferente da instru¸ca˜o EXTEST. Note-se que qualquer que seja o valor da c´elula de controlo ´e sempre poss´ıvel capturar o valor presente num pino bidireccional. No caso do n´ umero de E/S prim´ arias da CCI sobre teste ultrapassar as capacidades de um s´ o componente, basta colocar em s´erie o n´ umero de componentes necess´ arios. Refira-se

´ CHAPTER 4. TESTABILIDADE POR MEDIDA EM CCIS: BLOCOS BASICOS

pinos de entrada (0..9)

células de entrada (0..9)

TDI

47

pinos bidireccionais (0..25)

células bidireccionais (10..35)

cé lulas de controlo de estado (36..61)

TDO

Modo ActualizaRD RelogioRD DeslocaRD

Figure 4.3: Diagrama de blocos do registo de BS a concluir que uma solu¸ca˜o teoricamente idˆentica a` utiliza¸ca˜o destes componentes poderia ser obtida por recurso aos buffers bidireccionais da TI ou da NS, por´em estes componentes n˜ ao incluem a capacidade de controlo individual do estado dos pinos, o que como foi ressaltado facilita a adapta¸ca˜o para cada caso concreto, podendo mesmo ser uma necessidade.

4.2.2

Teste de liga¸ co ˜es em grupos de l´ ogica n˜ ao BST

As liga¸co˜es n˜ ao BST podem ser testadas atrav´es dum testador externo, ou em certas situa¸co˜es atrav´es de c´elulas BS que rodeiem estes grupos de componentes. Se considerarmos grupos de l´ ogica puramente combinacional, o teste poder´ a ser feito por recurso a t´ecnicas de gera¸ca˜o pseudo-aleat´ oria de vectores e forma¸ca˜o de uma assinatura da resposta do circuito. O desenvolvimento de um componente com BST que possu´ısse um registo de BS vers´ atil no sentido de permitir a gera¸ca˜o pseudo-aleat´ oria de vectores na totalidade ou num subconjunto das c´elulas BS de sa´ıda, e a forma¸ca˜o de uma assinatura nas c´elulas BS de entrada, foi considerado e efectuado. O componente designado a partir de agora por controlador de teste de grupos de l´ ogica n˜ ao BST foi implementado numa EPM5128 da Altera, sendo constitu´ıdo pelo: controlador do TAP, registo de instru¸ca˜o (3 bits) e respectivo descodificador, registo de Bypass, registo de BS e por um registo de controlo com 4 bits, conforme se pode ver pela figura 4.4. O registo de controlo permite seleccionar o n´ umero de c´elulas BS de sa´ıda que ir˜ ao formar o registo de gera¸ca˜o pseudo-aleat´ oria, segundo polin´ omios primitivos pr´e-definidos. As restantes c´elulas associadas a pinos de sa´ıda mant´em um valor de guarda durante a

´ CHAPTER 4. TESTABILIDADE POR MEDIDA EM CCIS: BLOCOS BASICOS

48

sa ídas[0..19]

entradas[0..19]

Registo de BS com capacidade de GPAV e AS registo de Bypass

registo de controlo controlo descodificador de Instrução TDI TMS TCK /TRST

TDO

Registo de Instru ção controlo do RI controlador do TAP

controlo dos registos de Dados

Figure 4.4: Diagrama de blocos do controlador de teste de grupos de l´ ogica n˜ ao BST gera¸ca˜o de vectores. Estes valores de guarda permitem impor valores constantes em certos pinos especiais de alguns componentes, como os de Enable ou Select, permitindo evitar a ocorrˆencia de conflitos, ou criar condi¸co˜es especiais que melhorem a cobertura de faltas. Repare-se que, atendendo ao facto de a probabilidade de aparecer 0 ou 1 numa c´elula pertencente a um registo de gera¸ca˜o pseudo-aleat´ oria ser 50%, pode afirmar-se que se estas c´elulas estiverem ligadas a pinos de Enable, 50% dos vectores aplicados a`s entradas de dados do CI em quest˜ ao ser˜ ao redundantes. Sumarizando, o registo de BS ´e formado por trˆes conjuntos de c´elulas: c´elulas de sa´ıda, c´elulas de entrada e c´elulas de controlo. A figura 4.5 ilustra as liga¸co˜es no interior do conjunto formado pelas c´elulas de sa´ıda, configur´ aveis atrav´es da instru¸ca˜o actual e do valor contido no registo de controlo. O bloco que representa uma a´rvore de EXORs permite seleccionar um circuito de realimenta¸ca˜o que implementa um dos dezasseis polin´ omios primitivos listados na tabela 4.3. Esta tabela descreve ainda a configura¸ca˜o do registo de BS, no caso da instru¸ca˜o actual ser RUN-TEST, em fun¸ca˜o do valor contido no registo de controlo que determina o polin´ omio implementado no conjunto de c´elulas pertencentes ao registo de gera¸ca˜o pseudo-aleat´ oria. As c´elulas de sa´ıda possuem tamb´em neste caso controlo individual de estado para permitir solu¸co˜es mais flex´ıveis, no caso de existirem v´ arios pinos de sa´ıda interligados entre si ou nas situa¸co˜es em que se queira utilizar algum equipamento de teste externo. A figura 4.6 ilustra o esquema das liga¸co˜es no interior do

´ CHAPTER 4. TESTABILIDADE POR MEDIDA EM CCIS: BLOCOS BASICOS

TDI

cel. BS 0

....

cel. BS 5

cel. BS 6

...

cel. BS 19

....

.... ....

á rvore de EXORs, cuja topologia depende do conteúdo do registo de controlo

cel. BS 1

49

Figure 4.5: Liga¸co˜es no interior do conjunto de c´elulas de sa´ıda do registo de BS

conjunto formado pelas c´elulas de entrada, que podem assumir trˆes configura¸co˜es (tantas quantas as linhas de entrada do multiplexer 1), consoante a instru¸ca˜o actual. No caso de esta ser a instru¸ca˜o RUN TEST, as c´elulas formam um registo de assinatura segundo um polin´ omio primitivo de grau 20, alimentado pelas entradas paralelas. No caso de ser a instru¸ca˜o BOUNDARY READ, a passagem pelo estado Capture-DR n˜ ao modifica o conte´ udo das c´elulas, permitindo assim ler a assinatura formada anteriormente. No caso de ser a instru¸ca˜o EXTEST ou SAMPLE/PRELOAD, as c´elulas capturam o valor presente nos pinos de entrada, aquando da passagem do controlador do TAP pelo estado Capture-DR. A tabela 4.4 cont´em o conjunto completo das instru¸co˜es suportado pelo controlador de teste de grupos de l´ ogica n˜ ao BST.

vindo do pino de entrada

1 2 vindo da célula BS anterior

cel. BS 20

para a célula BS seguinte

Figure 4.6: Liga¸co˜es no interior do conjunto de c´elulas de entrada do registo de BS

´ CHAPTER 4. TESTABILIDADE POR MEDIDA EM CCIS: BLOCOS BASICOS

Conte´ udo do registo de controlo 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

C´elulas BS com valores de guarda 19 18..19 17..19 16..19 15..19 14..19 13..19 12..19 11..19 10..19 9..19 8..19 7..19 6..19 5..19

C´elulas BS do registo de gera¸ca˜o pseudo-aleat´ oria 0..19 0..18 0..17 0..16 0..15 0..14 0..13 0..12 0..11 0..10 0..9 0..8 0..7 0..6 0..5 0..4

50

Polin´ omio implementado 1 + x3 + x20 1 + x + x4 + x16 + x19 1 + x7 + x18 1 + x3 + x17 1 + x + x7 + x10 + x16 1 + x + x15 1 + x2 + x3 + x13 + x14 1 + x + x2 + x12 + x13 1 + x + x5 + x8 + x12 1 + x2 + x11 1 + x3 + x10 1 + x 4 + x9 1 + x + x 2 + x7 + x8 1 + x 3 + x7 1 + x + x6 1 + x 2 + x5

Table 4.3: Polin´ omios implementados pelo conjunto de c´elulas de sa´ıda do registo de BS

C´ od. Bin. 000

C´ odigo da opera¸ca˜o EXTEST

001

SAMPLE/PRELOAD

010 011 100 1x1 11x

BOUNDARY CONTROL BOUNDARY READ RUN-TEST BYPASS BYPASS

Descri¸ca˜o Controlo/Observa¸ca˜o das E/S Amostragem/pr´ecarregamento dos valores das E/S Configura reg. BS Lˆe conte´ udo reg. BS GPAV e AS Bypass Scan Bypass Scan

Registos de dados Boundary Scan Boundary Scan

Registo de controlo Boundary Scan Bypass Bypass Bypass

Table 4.4: Instru¸co˜es suportadas pelo controlador de teste de grupos de l´ ogica n˜ ao BST

´ CHAPTER 4. TESTABILIDADE POR MEDIDA EM CCIS: BLOCOS BASICOS

4.3

51

O bloco para o teste de liga¸ co ˜es entre componentes anal´ ogicos

O teste de liga¸co˜es entre componentes anal´ ogicos n˜ ao faz parte dos objectivos para os quais o BST foi proposto. Contudo, a existˆencia de um componente BST que permitisse o acesso a n´ os anal´ ogicos podia proporcionar uma solu¸ca˜o mais econ´ omica face a` utiliza¸ca˜o de um equipamento de teste externo para efectuar tais acessos, nos casos mais simples. Ainda que o acesso se limitasse a opera¸co˜es ”lentas” de captura (` a escala de um conversor A/D por aproxima¸co˜es sucessivas) e de controlo (` a escala imposta pelo deslocamento s´erie dos valores digitais correspondentes), esta possibilidade poderia revelar-se u ´til para efectuar testes simples. Nos casos em que a inser¸ca˜o dum multiplexer fosse aceit´ avel, as opera¸co˜es de controlo poderiam mesmo estender-se ao interior dos blocos anal´ ogicos, tal como se ilustra na figura 4.7. O componente que implementa esta funcionalidade foi implementado numa PLD da Altera, mais concretamente numa EPM5064, e que se designa a partir de agora por controlador de teste de n´ os anal´ ogicos. Na figura 4.7 encontram-se igualmente representados os interfaces A/D e D/A comandados pelo controlador. multiplexador analógico

cadeia BST

Controlador do interface com os nós analógicos

Saídas D/A

multiplexador analógico

Bloco analógico

entradas A/D

Figure 4.7: Solu¸ca˜o desenvolvida para o acesso a n´ os anal´ ogicos A arquitectura do controlador de teste de n´ os anal´ ogicos, ilustrada atrav´es do diagrama de blocos da figura 4.8, depende da constitui¸ca˜o dos interfaces A/D e D/A. Na altura da especifica¸ca˜o, optou-se por conversores que constitu´ıssem um bom compromisso em termos econ´ omicos, de rapidez e de facilidade de controlo. O interface D/A ´e assim constitu´ıdo por dois conversores D/A, cada um com oito canais de sa´ıda, sendo o interface A/D constitu´ıdo

´ CHAPTER 4. TESTABILIDADE POR MEDIDA EM CCIS: BLOCOS BASICOS

para o conversor D/A

células de sa ída do registo de BS

52

vindo do conversor A/D

Conversor Binário para có digo Gray e c élulas de entrada do registo de BS

registo de Bypass

controlo descodificador de Instru ção TDI

TMS TCK /TRST

TDO Registo de Instru ção controlo do RI controlador do TAP

Controlo dos registo de Dados

bits de estado

interface com os conversores A/D and D/A sinais de sincronismo com o processador de teste

sinais de sincronismo com os conversores A/D e DA

Figure 4.8: Diagrama de blocos do controlador de teste de n´ os anal´ ogicos

por dois multiplexers anal´ ogicos de oito canais de entrada, seguidos de dois conversores A/D por aproxima¸co˜es sucessivas. O conjunto de instru¸co˜es suportadas pelo controlador ´e descrito na tabela 4.5. Al´em das trˆes instru¸co˜es obrigat´ orias existem mais 32 instru¸co˜es que permitem endere¸car individualmente cada um dos 16 canais de entrada ou cada um dos 16 canais de sa´ıda existentes. A tabela 4.6, descreve em termos de comprimento e funcionalidade, cada um dos registos existentes neste componente. O registo de BS (2 x 8 bits) pode ser particionado em dois, atrav´es de multiplexers comandados pela instru¸ca˜o actual, de forma a reduzir o n´ umero de bits deslocados em opera¸co˜es de acesso aos canais anal´ ogicos. Assim, no caso da instru¸ca˜o actual corresponder a uma convers˜ ao D/A, o registo ´e formado pelas oito c´elulas que armazenam o c´ odigo bin´ ario do valor a ser aplicado pelo canal D/A seleccionado. No caso da instru¸ca˜o actual corresponder a uma convers˜ ao A/D, o registo de BS ´e formado apenas pelas oito c´elulas que armazenam o c´ odigo referente a` convers˜ ao efectuada. O c´ odigo armazenado nas c´elulas de entrada n˜ ao corresponde ao c´ odigo bin´ ario presente nas sa´ıdas do conversor A/D, pela necessidade de se simplificar a compara¸ca˜o dos valores

´ CHAPTER 4. TESTABILIDADE POR MEDIDA EM CCIS: BLOCOS BASICOS

C´ odigo Bin´ ario xxxx xxxx 000 xxxx xxxx 001

xxxx ibbb 010 ibbb xxxx 011 xxxx xxxx 1xx

C´ odigo da opera¸ca˜o EXTEST

Descri¸ca˜o Controlo/Observa¸ca˜o das E/S SAMPLE/PRELOAD Amostragem/pr´ecarregamento dos valores das E/S CONVERSO A/D Conv. A/D, canal bbb (0..7), bloco i (0,1) CONVERSO D/A Conv. D/A, canal bbb (0..7), bloco i (0,1) BYPASS Bypass Scan

53

Registos de dados Boundary Scan Boundary Scan

Boundary Scan In Boundary Scan Out Bypass

Table 4.5: Instru¸co˜es suportadas pelo controlador de E/S anal´ ogicas Nome do Registo Instru¸ca˜o Bypass Boundary Scan

Comprimento 11 bits 1 bit 2 x 8 bits

Fun¸ca˜o Selecciona o modo de funcionamento Selecciona o menor percurso entre TDI-TDO Acesso aos conversores A/D e D/A

Table 4.6: Registos existentes no controlador de E/S anal´ ogicas capturados com os valores esperados. Com efeito, as opera¸co˜es de compara¸ca˜o entre os valores capturados nos n´ os anal´ ogicos e os valores esperados nesses n´os, assumem a existˆencia de um dado intervalo de varia¸ca˜o dentro do qual se pode considerar ”aceit´ avel” o valor capturado. Este intervalo faz supor a existˆencia de uma m´ ascara de compara¸ca˜o que defina os seus limites. Dado o facto de c´ odigos bin´ arios adjacentes poderem exibir mudan¸cas em apenas um ou em todos os bits (considere-se por exemplo os c´ odigos bin´ arios referentes a 127 e 128), torna-se necess´ ario efectuar uma convers˜ ao de c´ odigo, de modo a possibilitar a especifica¸ca˜o de uma m´ ascara de compara¸ca˜o. Uma solu¸ca˜o simples consiste na convers˜ ao de c´ odigo bin´ ario para c´ odigo Gray, que garante que c´ odigos adjacentes exibem apenas diferen¸cas num u ´nico bit. Pode assim especificar-se um intervalo de quatro valores adjacentes, bastando para isso gerar uma m´ ascara atrav´es de uma opera¸ca˜o de EX-NOR entre os dois c´ odigos adjacentes ao c´ odigo esperado. Dando um exemplo, se o c´ odigo Gray esperado de uma convers˜ ao for 00011100, a m´ ascara de compara¸ca˜o ser´ a igual ao resultado da opera¸ca˜o /(00011101 ⊕ 00010100), ou seja, 11110110. Esta m´ ascara permite especificar para o c´ odigo referente a uma convers˜ ao A/D, um intervalo de varia¸ca˜o definido pelos c´ odigos 0001x10x (x = ”0” ou ”1”). Uma vez que a convers˜ ao de c´ odigo bin´ ario para c´ odigo Gray se pode efectuar atrav´es de uma opera¸ca˜o de EX-OR de cada bit com o bit vizinho da esquerda (o c´ odigo bin´ ario bn , bn Gray bn , bn ⊕ bn

1,

1,

.., b0 corresponde ao c´ odigo

.., b1 ⊕ b0 ), basta colocar um EX-OR na entrada s´erie de cada uma

das c´elulas BS ligadas a`s sa´ıdas dos conversores A/D.

´ CHAPTER 4. TESTABILIDADE POR MEDIDA EM CCIS: BLOCOS BASICOS

4.4

54

O controlador de teste

Os requisitos das etapas de teste de uma CCI, identificados na sec¸ca˜o 4.1, permitiram uma especifica¸ca˜o directa das instru¸co˜es necess´ arias para controlar as opera¸co˜es elementares no teste de uma CCI com BST. O controlador de teste pode assim ser visto como um processador dedicado, com um conjunto de instru¸co˜es pr´ oprio, que permite o controlo a baixo-n´ıvel das opera¸co˜es elementares necess´ arias para utilizar a infraestrutura BST de uma CCI. O conjunto completo das instru¸co˜es suportadas, que inclui instru¸co˜es de controlo dos recursos internos e dos canais de sincronismo com equipamentos externos, foi adaptado de [85] e ´e apresentado na tabela 4.7. O diagrama de blocos deste processador dedicado, a partir de agora designado por controlador de teste residente, encontra-se ilustrado na figura 4.9. Este componente inclui algumas melhorias em rela¸ca˜o ao controlador originalmente descrito em [85], embora esta implementa¸ca˜o em PLD n˜ ao tenha permitido que se continuasse a manter dispon´ıvel a infraestrutura BST existente na vers˜ ao ASIC.

D[0..7]

DeserEn

8

1

Descodificador de instru ç ão e controlo do processador

entradas do TAP saídas do TAP (TAP 0, TAP 1) (TAP 0, TAP 1)

A[0..19] 20

Apontador de programa

Contador 16 e 24 bits

2

erro fim de teste saídas de sincronismo TAP seleccionado

2

5

Registo Registo de Selector TDI err. registos de TDO de saída estado e entrada do TAP de sincronismo de vectores vectores

saídas de controlo entradas de estado 2

Entradas de sincronismo

Figure 4.9: Diagrama de blocos do controlador de teste residente O bloco Selector de TAP multiplexa os mesmos recursos internos, por duas cadeias de BS externas. O apontador de programa ´e constitu´ıdo por um contador de 20 bits, o que permite endere¸car programas de teste at´e 1 MByte. Refira-se que programas de teste que incluam sequˆencias de vectores de teste para blocos de l´ogica n˜ ao BST, sem recurso a gera¸ca˜o pseudo-aleat´ oria de vectores e an´ alise de assinatura, podem facilmente atingir dimens˜ oes na ordem das centenas de KBytes, dependendo da complexidade da carta a testar. Um outro bloco implementa dois contadores, um de 16 e outro de 24 bits,

´ CHAPTER 4. TESTABILIDADE POR MEDIDA EM CCIS: BLOCOS BASICOS

55

Instru¸ c˜ oes de controlo do TAP SELTAP0/ Selecciona a cadeia de BS que ir´ a ser controlada pelas instru¸co˜es SELTAP1 seguintes TRST Inicializa a l´ ogica de BS da cadeia seleccionada atrav´es de um impulso ao n´ıvel baixo aplicado pela sa´ıda TRST NSHF Desloca N bits (armazenados em mem´ oria, logo a seguir ao c´ odigo da instru¸ca˜o) atrav´es da cadeia de BS seleccionada. Os bits deslocados do interior da cadeia de BS n˜ ao s˜ ao comparados. N constitui o conte´ udo do contador interno de 16 bits. NSHFCP Desloca N bits (armazenados em mem´ oria, logo a seguir ao c´ odigo da instru¸ca˜o) atrav´es da cadeia de BS seleccionada. Os bits deslocados do interior da cadeia de BS s˜ ao comparados com os valores esperados. S˜ ao usadas m´ ascaras de compara¸ca˜o para se ignorar o resultado de determinadas compara¸co˜es. N constitui o conte´ udo do contador interno de 16 bits. TMS0/TMS1 For¸ca uma transi¸ca˜o nos v´ arios controladores do TAP da cadeia seleccionada, de acordo com o n´ıvel l´ ogico aplicado (0,1). NTCK Aplica N impulsos de rel´ ogio a` cadeia de BS seleccionada, mantendo a linha TMS a 0. N constitui o conte´ udo do contador interno de 24 bits. Controlo dos recursos internos e dos canais de sincronismo LD C16, N Carrega o contador interno de 16 bits com o n´ umero de bits a serem deslocados para o interior da cadeia de BS seleccionada. LD C24, N Carrega o contador interno de 24 bits com o n´ umero de impulsos do rel´ ogio de teste (TCK) a serem aplicados. JPE endere¸co Executa um salto condicional para o endere¸co indicado, de acordo JPNE endere¸co com o estado da flag interna de erro SSA0/SSA1 Aplica o valor l´ ogico indicado (0,1) a` sa´ıda de sincronismo A. SSB0/SSB1 Aplica o valor l´ ogico indicado (0,1) a` sa´ıda de sincronismo B. WSA0/WSA1 Espera pelo valor l´ ogico indicado (0,1) na entrada de sincronismo A. WSB0/WSB1 Espera pelo valor l´ ogico indicado (0,1) na entrada de sincronismo B. HALT Termina a execu¸ca˜o do programa de teste. Table 4.7: Instru¸co˜es do controlador de teste

´ CHAPTER 4. TESTABILIDADE POR MEDIDA EM CCIS: BLOCOS BASICOS

56

o primeiro utilizado para controlo do n´ umero de bits a deslocar para o interior da cadeia de BS seleccionada e o segundo utilizado para o controlo do n´ umero de ciclos do rel´ ogio de teste (TCK) a aplicar aos componentes durante a execu¸ca˜o das fun¸co˜es de auto-teste. O bloco que cont´em o registo de sa´ıda de vectores faz a serializa¸ca˜o dos vectores de teste a serem aplicados a` cadeia seleccionada. O bloco que cont´em o registo de entrada de vectores, faz a compara¸ca˜o entre os valores recebidos e os valores esperados, usando para tal uma m´ ascara de compara¸ca˜o. A ocorrˆencia de um erro ´e indicada para um conjunto de flags de estado do controlador, que fazem parte de um bloco que cont´em igualmente o interface com os dois canais de sincronismo externo. O controlador de teste residente possui um pino de sa´ıda (DeserEn na figura 4.9) que se encontra activo sempre que se efectua uma opera¸ca˜o de deslocamento e compara¸ca˜o. Este pino pode ser utilizado para controlar um componente externo que fa¸ca a recep¸ca˜o dos valores deslocados para o exterior da cadeia de BS activa, os compacte em palavras de oito bits e os armazene numa mem´ oria. Estes valores poder˜ ao mais tarde ser utilizados por uma ferramenta que fa¸ca o diagn´ ostico da CCI testada. Outros trˆes pinos de sa´ıda indicam para o exterior informa¸ca˜o acerca do estado interno do controlador. O pino fim de teste indica o final da execu¸ca˜o do programa de teste. O pino erro indica a ocorrˆencia de uma diferen¸ca entre um valor recebido e um valor esperado, o que ´e entendido como uma falta no circuito sobre teste. Finalmente, o pino TAP seleccionado indica qual dos dois TAPs comandados pelo controlador de teste residente se encontra activo. As entradas e sa´ıdas de sincronismo, controladas directamente pelas correspondentes instru¸co˜es indicadas na tabela 4.7, permitem a implementa¸ca˜o de um protocolo simples de handshake com outros recursos de teste externos (por exemplo, com os sinais de in´ıcio e fim de convers˜ ao presentes no controlador de teste de n´ os anal´ ogicos, apresentado na sec¸ca˜o 4.3, ou com um testador externo). Refira-se por u ´ltimo que o controlador de teste residente foi implementado numa EPM5128JC-2 da Altera (o componente mais r´ apido desta s´erie, para permitir frequˆencias de rel´ ogio at´e 20 MHz), tendo-se utilizado t´ecnicas de projecto especiais com vista a optimizar o aproveitamento da l´ ogica dispon´ıvel e a permitir o fitting do circuito projectado. O facto do n´ umero de macroc´elulas utilizadas neste dispositivo ter atingido os 96% mostra que estas t´ecnicas de optimiza¸ca˜o se revelaram efectivamente indispens´ aveis.

4.5

Conclus˜ ao

O aumento do ´ındice de testabilidade nas CCIs com implementa¸ca˜o parcial de BST justifica, pelas v´ arias raz˜ oes j´ a apontadas no cap´ıtulo 2, o desenvolvimento de um conjunto

´ CHAPTER 4. TESTABILIDADE POR MEDIDA EM CCIS: BLOCOS BASICOS

57

de blocos orientados a` testabilidade que tirem partido da existˆencia da infraestrutura de teste presente. Com base neste objectivo foram ent˜ ao identificados os requisitos para o aumento de testabilidade: acesso BST a n´ os n˜ ao BST (E/S prim´ arias digitais, n´ os localizados no interior de grupos de componentes n˜ ao BST, n´ os anal´ ogicos) e implementa¸ca˜o de auto-teste ao n´ıvel da CCI. Para os quatro requisitos identificados foram desenvolvidos outros tantos componentes, descritos com algum pormenor ao longo deste cap´ıtulo. Os componentes foram implementados em PLDs devido a trˆes factores considerados vitais para a sua aplicabilidade: flexibilidade, disponibilidade e baixo custo. Flexibilidade no sentido de ser f´ acil para o utilizador adaptar os blocos ao seu problema espec´ıfico de testabilidade (por exemplo a necessidade de ter mais pinos de entrada e menos pinos bidireccionais, ou aumentar a resolu¸ca˜o dos valores anal´ ogicos para 12 bits). A facilidade de adapta¸ca˜o ´e assegurada por dois factores: as PLDs serem reprogram´ aveis em minutos e o facto de os blocos terem sido projectados atrav´es de uma HDL poderosa e f´ acil de aprender, o que garante ao utilizador um meio r´ apido de efectuar as modifica¸co˜es que necessita. Actualmente a disponibilidade e o baixo custo s˜ ao algumas das vantagens reais apresentadas pelas PLDs de m´edia/reduzida complexidade (as que foram aqui usadas), pelo que se considera que estes dois factores s˜ao garantidos quando se opta por este tipo de componentes. Para al´em destes trˆes factores, as PLDs apresentam como vantagens adicionais, nas situa¸co˜es em que se utilizam baixos volumes de produ¸ca˜o, o menor custo dos componentes program´ aveis uma u ´nica vez (OTP, One-Time Programmable) e os tempos reduzidos que decorrem desde o projecto at´e a` coloca¸ca˜o do produto no mercado. Designa¸ca˜o Controlador de E/S digitais Controlador de teste de grupos de l´ ogica n˜ ao BST Controlador de E/S anal´ ogicas Controlador de teste residente

Dispositivo EPM5128 EPM5128

Pinos I/O 75% 71%

Macroc´elulas Expansores 100% 9% 99% 92%

EPM5064 EPM5128

96% 78%

95% 99%

28% 82%

Table 4.8: Percentagem de recursos utilizados em cada componente Refira-se por u ´ltimo que dado o ´ındice elevado de recursos utilizados nos componentes desenvolvidos, apresentado na tabela 4.8, foi necess´ ario utilizar-se t´ecnicas de projecto especiais com vista a optimizar o aproveitamento da l´ ogica dispon´ıvel e a permitir o fitting dos v´ arios circuitos.

Chapter 5

Solu¸ co ˜es de Testabilidade para CCIs com BST Este cap´ıtulo tem por objectivo ilustrar a utiliza¸ca˜o de alguns dos componentes apresentados no cap´ıtulo 4, desenvolvidos para implementar solu¸co˜es de testabilidade por medida em CCIs com BST. Come¸ca-se por referir quais as facilidades desej´ aveis ao n´ıvel dos CIs j´ a existentes nas CCIs a testar. Segue-se a sec¸ca˜o principal, que para al´em de cumprir o objectivo deste cap´ıtulo, aborda ainda solu¸co˜es alternativas baseadas em alguns dos componentes comerciais orientados para o teste, apresentados no cap´ıtulo 3. O dom´ınio das solu¸co˜es propostas reduz-se a CCIs puramente digitais, por forma a manter uma dimens˜ ao razo´ avel dos assuntos a abordar. Ainda nesta sec¸ca˜o apresenta-se uma CCI que ir´ a servir de exemplo de aplica¸ca˜o das solu¸co˜es propostas. Na sec¸ca˜o 5.3 discutem-se as repercuss˜ oes que as solu¸co˜es apresentadas provocam ao n´ıvel do teste de sistema. Finalmente conclui-se este cap´ıtulo com uma breve an´ alise das solu¸co˜es apresentadas em termos de custos.

5.1

Facilidades desej´ aveis ao n´ıvel dos CIs

O problema do teste de CCIs assenta em parte na n˜ ao existˆencia a este n´ıvel de uma metodologia estruturada orientada a` testabilidade, que permita lidar com situa¸co˜es em ´ prefer´ıvel assim falar-se que coexistem componentes com e sem BST na CCI a testar. E em solu¸co˜es orientadas a` testabilidade, visto existir uma rela¸ca˜o intr´ınseca entre estas e as caracter´ısticas da CCI a testar. As solu¸co˜es propostas podem ser facilitadas no caso dos componentes inseridos na CCI possu´ırem as seguintes caracter´ısticas desej´ aveis: • capacidade de colocar todas as sa´ıdas num estado de alta-impedˆ ancia, sob o controlo 58

˜ CHAPTER 5. SOLUC ¸ OES DE TESTABILIDADE PARA CCIS COM BST

59

de um u ´nico pino de entrada. • compatibilidade com a norma IEEE 1149.1. • fun¸co˜es de auto-teste. As duas primeiras caracter´ısticas desej´ aveis facilitam a tarefa de teste das interliga¸co˜es existentes na CCI. No primeiro caso facilita-se a detec¸ca˜o de liga¸co˜es em curto-circuito e a aplica¸ca˜o de vectores para o teste de componentes. Ambas as situa¸co˜es ser˜ ao demonstradas na sec¸ca˜o seguinte. No segundo caso ´e desnecess´ ario qualquer coment´ ario, visto j´ a se ter referido exaustivamente quais as vantagens que o BST apresenta para o teste das liga¸co˜es em CCIs. A terceira caracter´ıstica ´e desej´ avel para a etapa de teste dos componentes, visto o teste de um componente do tipo VLSI/LSI ser uma tarefa de grande complexidade. Idealmente as fun¸co˜es de auto-teste deveriam ser acess´ıveis atrav´es da infraestrutura BST. No caso de componentes do tipo SSI/MSI a inclus˜ ao de auto-teste n˜ ao se justifica, dado os benef´ıcios (redu¸ca˜o no tempo/complexidade de teste do componente) n˜ ao cobrirem os custos (´ area de sil´ıcio, custo de desenvolvimento, n´ umero de pinos, etc.).

5.2

O projecto orientado ` a testabilidade

A apresenta¸ca˜o de solu¸co˜es de testabilidade para CCIs com implementa¸ca˜o parcial de BST, implica em primeira instˆ ancia conhecer o objecto de aplica¸ca˜o das solu¸co˜es, i. e. conhecer a CCI a testar. A CCI, que seguidamente ´e apresentada, ´e uma vers˜ ao reduzida de um sistema implementado e serve apenas para exemplificar a aplica¸ca˜o das solu¸co˜es propostas. O conjunto de simplifica¸co˜es idealizadas permitiu criar uma situa¸ca˜o caracterizada pela existˆencia de componentes que possu´ıssem algumas das facilidades desej´ aveis referidas na sec¸ca˜o 5.1.

5.2.1

Estudo de uma caso: Uma CCI de m´ edia complexidade

A funcionalidade da CCI-exemplo, ela pr´ opria desenvolvida como a implementa¸ca˜o de um conjunto m´ınimo de recursos para o teste de CCIs com BST, pode ser definida da seguinte maneira: • Circuito capaz de controlar duas cadeias de BS exteriores, atrav´es de um microprocessador (µP) dedicado com um conjunto de instru¸co˜es pr´ oprio. O programa a executar, que cont´em igualmente o conjunto de vectores a deslocar para o interior das cadeias comandadas, dever´ a estar armazenado numa RAM. O µP dedicado

˜ CHAPTER 5. SOLUC ¸ OES DE TESTABILIDADE PARA CCIS COM BST

60

armazenar´ a numa segunda RAM os valores deslocados do interior das cadeias comandadas. Um microcontrolador (µC), da fam´ılia do 8051, tamb´em existente nesta CCI, ter´ a acesso a ambas as mem´orias, de modo a poder transferir para a primeira o programa recebido de um PC atrav´es de um interface RS-232 e a transferir para esse mesmo PC o conte´ udo da segunda RAM.

B. de endereços (msb)

B. de endereços (msb) B. de end. (lsb)

1

5 B. endereços (lsb)

ALE

2

4

6 B. de dados

B. de dados 3

B. controlo

7 B. controlo

PSEN RST CLK

µC 80535

RST

EPROM

PLD

CLK

µP ASIC

RAM 1

RAM 2

Figure 5.1: Diagrama de blocos da CCI-exemplo A CCI-exemplo descrita est´ a ilustrada na figura 5.1 e cont´em assim os seguintes componentes necess´ arios para cumprir a funcionalidade especificada: • Um µP dedicado (controlador de teste), implementado num ASIC. • Um µC 80535 com interface RS-232 incorporado. • Uma latch para fixar o Byte menos significativo do barramento de endere¸cos (multiplexado com o barramento de dados) do µC 80535. • Uma EPROM com o programa do µC 80535. • Uma RAM (1) onde ´e armazenado o programa do controlador de teste. • Uma RAM (2) onde s˜ ao armazenados os valores deslocados do interior das cadeias de BS comandadas. • Buffers para isolar os barramentos de dados e endere¸cos do controlador de teste e do µC 80535. • Buffers para isolar do exterior os barramentos de dados e endere¸cos do µC 80535 (E/S prim´ arias, a` esquerda dos buffers 1, 2 e 3).

˜ CHAPTER 5. SOLUC ¸ OES DE TESTABILIDADE PARA CCIS COM BST

61

• Uma PLD que integra toda a l´ ogica de descodifica¸ca˜o e controlo do circuito.

Na tabela 5.1 analisam-se estes componentes em face das facilidades desej´ aveis enunciadas na sec¸ca˜o 5.1. Conv´em aqui dar uma breve explica¸ca˜o sobre o porquˆe da existˆencia ou inexistˆencia de algumas facilidades. As mem´ orias n˜ ao possuem BST (obriga a um acr´escimo do n´ umero de pinos e da a´rea de sil´ıcio) nem auto-teste (obriga a um acr´escimo na a´rea de sil´ıcio) devido a estas duas facilidades desej´ aveis contrariarem as press˜ oes que caracterizam este sector importante do mercado de componentes: pre¸cos competitivos e aumento da capacidade (aproveitamento de toda a a´rea de sil´ıcio) e velocidade. O µC 80535 corresponde a um CI j´ a com algum tempo de existˆencia, n˜ ao existindo nenhuma vers˜ ao equivalente com BST. O controlador de teste foi implementado num ASIC, fazendo parte da especifica¸ca˜o a inclus˜ ao de BST. A l´ ogica do descodificador ´e relativamente simples, tendo-se utilizado uma PLD de m´edia complexidade sem BST. No cap´ıtulo 3 foi referido que apenas algumas PLDs mais complexas (e com maior n´ umero de pinos) possuem actualmente BST. Na fase de projecto, incluiu-se por´em uma entrada que permite colocar todas as sa´ıdas do descodificador num estado de alta-impedˆ ancia. Os buffers e a latch possuem BST, pertencendo a uma das duas fam´ılias de dispositivos l´ ogicos para fins gen´ericos apresentadas igualmente no cap´ıtulo 3 (a da TI).

Sa´ıdas com estado de alta-impedˆ ancia Infraestrutura BST Auto-teste

N˜ ao

N˜ ao

µC 80535 Ver coment´ ario N˜ ao

N˜ ao

N˜ ao

N˜ ao

EPROM RAMs Sim Sim

Buffers Sim

Latch Sim

PLD Sim

µP Sim

Sim

Sim

N˜ ao

Sim

N˜ ao

N˜ ao

N˜ ao

N˜ ao

Table 5.1: Facilidades desej´ aveis exibidas pelos componentes existentes na CCI-exemplo Coment´ ario: Os pinos do 80535, podem ser divididos em dois tipos. O primeiro tipo agrupa as sa´ıdas que possuem uma resistˆencia ligada ao terminal positivo de alimenta¸ca˜o. No estado de reset, estas sa´ıdas est˜ ao inactivas exibindo um valor l´ ogico alto, devido a` resistˆencia de pull-up. O segundo tipo agrupa os pinos bidireccionais, que ficam num estado de alta-impedˆ ancia durante o estado de reset. Pelo exposto considera-se que os pinos do 80535 possuem o estado de alta-impedˆ ancia, control´ avel atrav´es do pino de Reset. A CCI-exemplo encontra-se agora definida, quer em termos da sua funcionalidade quer em termos dos componentes nela existentes. Falta agora classificar as liga¸co˜es existentes no circuito para que se possa apresentar as solu¸co˜es de testabilidade para a CCI-exemplo.

˜ CHAPTER 5. SOLUC ¸ OES DE TESTABILIDADE PARA CCIS COM BST

5.2.2

62

Tipos de liga¸ co ˜es existentes

Antes de classificar as liga¸co˜es existentes na CCI-exemplo conv´em apresentar as defini¸co˜es que estiveram na base da classifica¸ca˜o feita. Um pino ´e Directamente Control´ avel (DC) se corresponder a uma entrada prim´ aria da CCI ou a um pino de sa´ıda de um componente com BST. Um pino ´e Directamente Observ´ avel (DO) se corresponder a uma sa´ıda prim´ aria da CCI ou a um pino de entrada de um componente com BST. Uma sa´ıda prim´ aria ´e ainda DC, a partir do exterior, no caso de corresponder a uma sa´ıda com estado de alta-impedˆ ancia. As liga¸co˜es existentes numa CCI podem ser tipificadas com base em dois crit´erios: • 1o Crit´erio: n´ umero de pinos de sa´ıda e n´ umero de pinos de entrada interligados entre si. • 2o Crit´erio: quantidade de pinos DC e quantidade de pinos DO. Este primeiro crit´erio permite distinguir duas (1,2) situa¸co˜es: 1. um pino de sa´ıda ligado a n pinos de entrada, com n ≥ 1. 2. m pinos de sa´ıda ligados a n pinos de entrada, com m > 1 e n ≥ 1. Esta divis˜ ao considera, nos casos em s´o haja um pino de sa´ıda (1), a inexistˆencia de conflitos na selec¸ca˜o do n´ o de controlo, o que facilita a considera¸ca˜o destas liga¸co˜es durante o teste. No segundo caso, a ferramenta de gera¸ca˜o de est´ımulos de teste ser´ a respons´ avel pela n˜ ao ocorrˆencia de conflitos nas liga¸co˜es, impondo que apenas uma das sa´ıdas assuma a condi¸ca˜o de n´ o de controlo. No caso de existirem pinos bidireccionais, as situa¸co˜es aqui apresentadas continuam a ser v´ alidas, visto poder considerar-se este tipo de pino como um pino de entrada ou de sa´ıda conforme a situa¸ca˜o mais vantajosa. Por exemplo numa liga¸ca˜o entre dois pinos (A e B) bidireccionais, pode utilizar-se a sa´ıda do pino A e a entrada do pino B, ou vice-versa, para efeitos do teste da liga¸ca˜o. Mais uma vez, no caso de existirem pinos bidireccionais, ser´ a responsabilidade da ferramenta de gera¸ca˜o de est´ımulos de teste, a n˜ ao ocorrˆencia de situa¸ca˜o de conflito. A aplica¸ca˜o do segundo crit´erio origina nove (a, b, c, d, e, f, g, h, i) situa¸co˜es: a) nenhum pino DC e nenhum pino DO (NN). b) nenhum pino DC e pelo menos um pino DO (NA). c) nenhum pino DC e todos os pinos DOs (NT).

˜ CHAPTER 5. SOLUC ¸ OES DE TESTABILIDADE PARA CCIS COM BST

63

d) pelo menos um pino DC e nenhum pino DO (AN). e) pelo menos um pino DC e pelo menos um pino DO (AA). f ) pelo menos um pino DC e todos os pinos DOs (AT). g) todos os pinos DCs e nenhum pino DO (TN). h) todos os pinos DCs e pelo menos um pino DO (TA). i) todos os pinos DCs e todos os pino DOs (TT). (Chave: N = nenhum, A = algum ou pelo menos um, T = todos). Assim uma interliga¸ca˜o tipo 2AA ´e caracterizada por v´ arios pinos de sa´ıda, sendo pelo menos um DC, ligados a um ou mais pinos de entrada, sendo pelo menos um DO. Repare-se que n˜ ao faz sentido falar em liga¸co˜es do tipo 1AN, 1AA ou 1AT uma vez que estas se reduzem aos tipos 1TN, 1TA e 1TT respectivamente. Com base nos tipos definidos e tendo em aten¸ca˜o o diagrama de blocos da CCI-exemplo ilustrado na figura 5.1, apresenta-se na tabela 5.2 a classifica¸ca˜o das liga¸co˜es existentes naquele caso. # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Denominador comum das liga¸co˜es Reset do µC 80535 Barramento de dados do µC 80535 Byte superior do barramento de endere¸cos do µC 80535 Byte inferior do barramento de endere¸cos do µC 80535 Barramento de controlo do µC 80535 Liga¸co˜es entre os buffers e as E/S prim´ arias Barramento de dados do controlador de teste Barramento de endere¸cos do controlador de teste Barramento de controlo do controlador de teste Liga¸co˜es entre os buffers e o descodificador Liga¸co˜es entre o controlador de teste e as E/S prim´ arias ALE PSEN Reset do controlador de teste Rel´ ogio do µC 80535 Rel´ ogio do controlador de teste

Tipo 1NN 2AA 1NA 1TA 1NN 1TT 2AA 2TN 2AN 1NT 1TT 1NT 1NN 1NT 1NN 1NT

Table 5.2: Grupos de liga¸co˜es existentes na CCI-exemplo e respectiva classifica¸ca˜o O processo de cataloga¸ca˜o das liga¸co˜es, para cada CCI e de acordo com o n´ umero de possibilidades enunciadas, ´e inc´ omodo de se realizar manualmente, para al´em de ser claramente sujeito a` ocorrˆencia de erros. Assim, esta tarefa deveria ser efectuada por uma ferramenta que lia a descri¸ca˜o da CCI e dos componentes, produzindo no final a respectiva

˜ CHAPTER 5. SOLUC ¸ OES DE TESTABILIDADE PARA CCIS COM BST

64

tabela. Ap´ os se terem classificado as liga¸co˜es (neste caso exemplificou-se para a CCIexemplo), deve analisar-se o respectivo teste. Na sec¸ca˜o seguinte procurou-se sistematizar, para cada um dos tipos identificados, as solu¸co˜es a seguir no teste de liga¸co˜es em aberto e no teste de liga¸co˜es em curto-circuito.

5.2.3

Solu¸ co ˜es para o teste de liga¸ co ˜es

A gera¸ca˜o de vectores para o teste de liga¸co˜es em CCIs com BST ´e um problema j´ a bem estudado e documentado [86, 87, 88]. No entanto, o problema do teste de liga¸co˜es em CCIs com implementa¸ca˜o parcial de BST n˜ ao se encontra na mesma situa¸ca˜o. Tipicamente, divide-se o teste de liga¸co˜es nestas CCIs no teste de liga¸co˜es BST e teste de liga¸co˜es n˜ ao BST. Para o teste de liga¸co˜es n˜ ao BST recorre-se geralmente a uma ferramnenta, que com base na descri¸ca˜o da CCI e dos componentes nela montados, gera automaticamente os est´ımulos de teste que poder˜ ao ser aplicados atrav´es de um testador externo, ou atrav´es do conjunto de c´elulas BS e E/S prim´ arias (ligadas por sua vez a c´elulas BS externas) que rodeiem os grupos de componentes n˜ ao BST. Nos casos em que os grupos de componentes sem BST possuam dimens˜ oes e complexidades elevadas, esta tarefa poder´ a ser extremamente dif´ıcil. O objectivo das solu¸co˜es propostas consiste na inclus˜ ao de componentes do tipo descrito na sec¸ca˜o 4.2.2 (controlador de teste de grupos de l´ ogica n˜ ao BST) para aumentar o ´ındice de CO das v´ arias liga¸co˜es. Se todas as liga¸co˜es duma CCI inclu´ırem pelo menos uma c´elula BS de entrada e pelo menos uma c´elula BS de sa´ıda, o teste das liga¸co˜es em grupos de componentes n˜ ao BST, poder´ a ser inclu´ıdo no teste das liga¸co˜es BST. A complexidade de um grupo de componentes n˜ ao BST seria assim reduzida a` complexidade de cada um dos componentes n˜ ao BST. Neste caso, a ferramenta de gera¸ca˜o autom´ atica de est´ımulos de teste, recorrendo a uma biblioteca de componentes, poderia gerar o teste de todas as liga¸co˜es a partir das c´elulas BS. O teste de liga¸co˜es divide-se geralmente em duas etapas: teste de liga¸co˜es em aberto (CAs) (que detecta igualmente liga¸co˜es stuck-at-0 e stuck-at-1) e teste de liga¸co˜es em curtocircuito (CCs). Analisemos para cada tipo de liga¸ca˜o aqui identificado as duas etapas de teste. No teste de liga¸co˜es em aberto (e admitindo a repetibilidade do teste, embora com resultado desconhecido) procura-se aplicar em cada liga¸ca˜o, atrav´es de cada uma das sa´ıdas, um valor l´ ogico alto (1) seguido de um valor l´ ogico baixo (0), devendo cada entrada capturar igualmente a mesma sequˆencia de valores. Assim o teste das liga¸co˜es do tipo 1 ´e efectuado numa u ´nica fase, dado s´ o existir uma sa´ıda por liga¸ca˜o. No tipo 2, ir˜ ao existir mais fases, tantas quantos os n´ umeros de pinos de sa´ıda existentes na liga¸ca˜o. Tipicamente,

˜ CHAPTER 5. SOLUC ¸ OES DE TESTABILIDADE PARA CCIS COM BST

65

validam-se as liga¸co˜es entre cada pino de sa´ıda e cada um dos pinos de entrada, repetindose o duplo teste (0, 1) tantas vezes quantas o n´ umero de pinos de sa´ıda presentes. No entanto poderia tentar-se uma outra abordagem, ou seja validar-se as liga¸co˜es entre um (qualquer) pino de sa´ıda e cada um dos pinos de entrada e em seguida validar-se as liga¸co˜es entre um (qualquer) pino de entrada e cada um dos restantes pinos de sa´ıda. Pode assim escolher-se um pino de sa´ıda DC, validar a liga¸ca˜o a cada um dos pinos de entrada e seguidamente validar a liga¸ca˜o de cada um dos restantes pinos de sa´ıda a um u ´nico pino de entrada DO. Pelo exposto se conclui rapidamente que as liga¸co˜es do tipo 1TT e 2TT n˜ ao apresentam qualquer problema. A tabela 5.3 resume para cada tipo de liga¸ca˜o, as solu¸co˜es, ac¸co˜es e precau¸co˜es a considerar para o teste de liga¸co˜es em aberto.

Tipo 1TT, 2TT 1NT, 2NT, 2AT

1TN, 1TA, 2TN, 2TA

1NN, 1NA, 2NN, 2NA, 2AN, 2AA

Teste de liga¸co˜es em aberto Solu¸ca˜o Ac¸ca˜o N˜ ao existe problema Nenhuma Controlar o valor presente na(s) sa´ıda(s) atrav´es da aplica¸ca˜o de um vector ou sequˆencia de vectores nas entradas do(s) componente(s) a que pertence(m) a(s) sa´ıda(s) Propagar o(s) valor(es) pretendido(s) para pino(s) DO(s) atrav´es da aplica¸ca˜o de um vector ou sequˆencia de vectores nas restantes entradas do(s) componente(s). Combina¸ca˜o das duas solu¸co˜es anteriores

Procurar que todas as entradas sejam ligadas a pelo menos um pino DC (c´elula BS de sa´ıda em todas as liga¸co˜es)

Idˆentica a` anterior e ainda procurar que as sa´ıdas do(s) componente(s) a que pertencem as entradas estejam ligadas a pinos DOs. Idˆentica a` anterior

Precau¸co˜es Nenhuma A inser¸ca˜o de um pino DC dever´ a ser acautelada, para se evitarem situa¸co˜es de conflito. Todas as sa´ıdas deveriam possuir um estado de alta-impedˆ ancia A inser¸ca˜o de um pino DC dever´ a ser acautelada, para se evitarem situa¸co˜es de conflito. Todas as sa´ıdas deveriam possuir um estado de alta-impedˆ ancia A inser¸ca˜o de um pino DC dever´ a ser acautelada, para se evitarem situa¸co˜es de conflito. Todas as sa´ıdas deveriam possuir um estado de alta-impedˆ ancia

Table 5.3: Solu¸co˜es, ac¸co˜es e precau¸co˜es a tomar na detec¸ca˜o de liga¸co˜es em aberto em cada um dos tipos identificados No teste de liga¸co˜es em curto-circuito, procura-se detectar liga¸co˜es anormais entre duas ou mais interliga¸co˜es independentes. Para isso basta uma sa´ıda (de preferˆencia DC) e uma entrada (de preferˆencia DO) por liga¸ca˜o para se proceder a esta etapa do teste. Um

˜ CHAPTER 5. SOLUC ¸ OES DE TESTABILIDADE PARA CCIS COM BST

66

curto entre duas liga¸co˜es ´e detectado quando uma entrada captura o valor oposto ao que a sa´ıda, a que est´ a normalmente ligada, tenta impor no momento. A tabela 5.4 resume para cada tipo de liga¸ca˜o, as solu¸co˜es, ac¸co˜es e precau¸co˜es a considerar para o teste de curto-circuitos. Teste de liga¸co˜es em curto-circuito Ac¸ca˜o Precau¸co˜es Nenhuma Evitar combina¸co˜es que originem situa¸co˜es de conten¸ca˜o noutras liga¸co˜es

Tipo 1TA, 1TT, 2AA, 2AT, 2TA, 2TT 1TN, 2AN, 2TN

Solu¸ca˜o Desnecess´ aria

Incluir um pino DO na liga¸ca˜o existente

Pendurar uma c´elula BS de entrada

1NA, 1NT, 2NA, 2NT

Incluir um pino DC na liga¸ca˜o existente

Pendurar uma c´elula BS de sa´ıda com controlo de estado

1NN, 2NN

Combina¸ca˜o das duas solu¸co˜es anteriores

Combina¸ca˜o das duas ac¸co˜es anteriores (o ideal ser´ a uma c´elula BS bidireccional)

Evitar combina¸co˜es que originem situa¸co˜es de conten¸ca˜o noutras liga¸co˜es. Os tipos de liga¸co˜es sofrem modifica¸co˜es (1TN, 2AN, e 2TN transformam-se em 1TA, 2AA e 2TA respectivamente) Pinos de sa´ıda j´ a existentes nas liga¸co˜es devem ter controlo de estado. Evitar combina¸co˜es que originem situa¸co˜es de conten¸ca˜o noutras liga¸co˜es. Os tipos de liga¸co˜es sofrem modifica¸co˜es (1NA, 1NT, 2NA, e 2NT transformam-se em 2AA, 2AT, 2AA e 2AT respectivamente) Evitar combina¸co˜es que originem situa¸co˜es de conten¸ca˜o noutras liga¸co˜es. Os tipos de liga¸co˜es sofrem modifica¸co˜es (1NN e 2NN transformam-se ambas em 2AA)

Table 5.4: Solu¸co˜es, ac¸co˜es e precau¸co˜es a tomar na detec¸ca˜o de liga¸co˜es em curto-circuito para cada um dos tipos identificados Se repararmos atentamente nas duas tabelas verificamos que as solu¸co˜es propostas para a detec¸ca˜o de curto-circuitos resolvem igualmente o problema do teste de liga¸co˜es em aberto, visto procurar-se que todas as liga¸co˜es tenham pelo menos um pino DC e um pino DO. Ora esta ac¸ca˜o implica que todas as entradas estejam ligadas a pelo menos um pino

˜ CHAPTER 5. SOLUC ¸ OES DE TESTABILIDADE PARA CCIS COM BST

EN1 EN2

1A1 1A4 1A3 1A4 2A1 2A2 2A3 2A4

67

OE DIR

1Y1 1Y2 1Y3 1Y4 2Y1 2Y2 2Y3 2Y4

B1 B2 B3 B4 B5 B6 B7 B8

A1 A2 A3 A4 A5 A6 A7 A8

Figure 5.2: Troca de buffers para efeitos de teste de liga¸co˜es DC e que todas as sa´ıdas estejam ligadas a pelo menos um pino DO, correspondendo assim a` ac¸ca˜o a efectuar no caso do teste de liga¸co˜es em aberto. Comecemos ent˜ao por apresentar algumas solu¸co˜es que facilitem o teste de curto-circuitos e seguidamente analisemos o seu efeito para o teste de liga¸co˜es em aberto. A primeira solu¸ca˜o consiste em olhar para a CCI sob teste e procurar buffers unidireccionais. Este tipo de buffer pode ser trocado por outro equivalente bidireccional que exiba o mesmo comportamento em funcionamento normal. Esta situa¸ca˜o, ilustrada na figura 5.2, tem algumas vantagens sob o ponto de vista do teste, no caso dos componentes possu´ırem BST. Assim, em modo EXTEST, o buffer da esquerda s´ o permite observar as liga¸co˜es a` sua esquerda e controlar as liga¸co˜es a` sua direita, enquanto que o buffer da direita, por ser bidireccional, permite controlar/observar todas as liga¸co˜es (` a excep¸ca˜o das linhas de controlo, que apenas s˜ ao observ´ aveis). Repare-se que o sentido dos dados (A para B ou vice-versa) pode ser controlado pela c´elula BS associada ao pino DIR, apesar de este estar permanentemente ligado a` massa. No caso da CCI-exemplo a troca dos buffers unidireccionais 5 e 6 (isolamento entre barramentos de dados e endere¸cos do µC 80535 e controlador de teste) por outros equivalentes bidireccionais vai facilitar o teste de liga¸co˜es em curto-circuito, tal como se pode ver na tabela 5.5. Ap´ os a aplica¸ca˜o da primeira solu¸ca˜o deve analisar-se a nova situa¸ca˜o existente, nomeadamente procurar liga¸co˜es do tipo NN, NA, NT, AN e TN, ou seja liga¸co˜es que n˜ ao possuam pelos menos um pino DC ou um pino DO ou ambos. Da an´ alise da tabela 5.5 constata-se que todas as liga¸co˜es que incluem pinos do descodificador, e ainda um conjunto de seis linhas (ALE, PSEN e linhas de Reset e rel´ ogio do µC 80535 e controlador de teste) adicionais, caem num desses tipos. Chegados a este ponto duas hip´ oteses se colocam: • Colocar pelo menos um pino DC nas liga¸co˜es do tipo NN, NA e NT. • Colocar pelo menos um pino DO nas liga¸co˜es do tipo NN, AN e TN.

˜ CHAPTER 5. SOLUC ¸ OES DE TESTABILIDADE PARA CCIS COM BST

# 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Situa¸ca˜o inicial Tipo CAs CCs 1NN 2AA ok 1NA 1TA ok 1NN 1TT ok ok 2AA ok 2TN 2AN 1NT 1TT ok ok 1NT 1NN 1NT 1NN 1NT -

Ap´ os Tipo 1NN 2AA 2AA 2TA 1NN 1TT 2AA 2TA 2AN 1NT 1TT 1NT 1NN 1NT 1NN 1NT

trocar CAs ok ok -

buffers CCs ok ok ok ok ok ok ok -

Primeira itera¸ca˜o Tipo CAs CCs 2AN 2AA ok 2AA ok 2TA ok 2AN 1TT ok ok 2AA ok 2TA ok 2AA ok 1NT 1TT ok ok 1NT 1NN 1NT 1NN 1NT -

68

Segunda itera¸ca˜o Tipo CAs CCs 2AA ok 2AA ok 2AA ok 2TA ok 2AA ok 1TT ok ok 2AA ok 2TA ok 2AA ok 2AT ok 1TT ok ok 2AT ok 2AA ok 2AT ok 2AA ok 2AT ok

Table 5.5: An´ alise do tipo de liga¸co˜es existentes na CCI-exemplo e respectivo teste ap´os a aplica¸ca˜o das solu¸co˜es de testabilidade

Se todas as liga¸co˜es inclu´ırem pelo menos um pino DC, o controlo de um determinado n´ o do circuito ´e imediato. Se todas as liga¸co˜es inclu´ırem pelo menos um pino DO a complexidade de propaga¸ca˜o reduz-se a um u ´nico n´ıvel, i. e. a` propaga¸ca˜o do(s) valor(es) presente(s) na(s) entrada(s) de um componente para a(s) sua(s) sa´ıda(s). Deve pois optarse por implementar ambas as hip´ oteses, ou seja procurar que todas as liga¸co˜es incluam pelo menos um pino DC e um pino DO. Esta u ´ltima solu¸ca˜o permite que se gere rapidamente os vectores para o teste de curto-circuitos (CCs), como se pode ver pela tabela 5.4, sem informa¸ca˜o relativa a` l´ ogica de cada componente, dado n˜ ao ser necess´ ario propagar valores de n´ os do circuito. Para o caso do teste de continuidade (CAs), o valor presente num pino de entrada n˜ ao DO de um dado componente, ser´ a observ´ avel numa sa´ıda desse mesmo componente. Para que tal seja poss´ıvel, recorre-se aos pinos DCs associados `as entradas do componente (correspondendo a` implementa¸ca˜o da 1a hip´ otese) para propagar o valor presente na entrada para um pino DO associado a` sa´ıda desse componente (correspondendo a` implementa¸ca˜o da 2a hip´ otese). Deve real¸car-se mais uma vez, que os vectores seriam gerados por uma ferramenta computacional que necessitaria da descri¸ca˜o da CCI e dos componentes. Voltando a` nossa CCI-exemplo, comecemos a an´alise pelas liga¸co˜es que incluem pinos do descodificador e deixemos para u ´ltimo o tal conjunto de seis linhas. Para controlar

˜ CHAPTER 5. SOLUC ¸ OES DE TESTABILIDADE PARA CCIS COM BST

69

os valores presentes nos pinos de sa´ıda do descodificador temos que controlar os valores presentes nas suas entradas, que correspondem ao barramento de controlo do µC 80535. Este n˜ ao possui um u ´nico pino DC, pelo que de acordo com o exposto na tabela 5.3 se dever´ a colocar pelo menos um pino DC em cada uma destas liga¸co˜es. Pelas precau¸co˜es enunciadas nessa tabela, devemos igualmente controlar o pino de Reset do µC 80535 de modo a evitar situa¸co˜es de conflito. Assim iremos pendurar em cada uma dessas liga¸co˜es uma c´elula BS de sa´ıda com controlo de estado. Falta agora verificar se todas as liga¸co˜es que incluem pinos de sa´ıda do descodificador incluem pelo menos um pino DO. Analisando outra vez a tabela 5.5, verifica-se que as liga¸co˜es que correspondem ao barramento de controlo do controlador de teste n˜ ao incluem um u ´nico pino DO, pelo que se dever´ a colocar em cada uma destas liga¸co˜es uma c´elula BS de entrada. Ap´ os esta primeira itera¸ca˜o observemos novamente os resultados na tabela 5.5. Ora de todas as liga¸co˜es existentes na CCI-exemplo, as que n˜ ao incluem, agora, pelo menos um pino DC e um pino DO, reduzem-se ao barramento de controlo do µC 80535 (5 linhas), a`s liga¸co˜es entre o descodificador e os buffers (6 linhas) e ainda as linhas ALE, PSEN, de Reset do controlador de teste e de rel´ ogio. Deste total de 16 linhas, 7 n˜ ao incluem pelo menos um pino DO (barramento de controlo do µC 80535, PSEN e linhas de Reset e de rel´ ogio) e outras 11 n˜ ao incluem pelo menos um pino DC (liga¸co˜es entre o descodificador e os buffers, ALE, PSEN e linhas de rel´ ogio). As linhas de rel´ ogio s˜ ao consideradas liga¸co˜es cr´ıticas, pois caso se pretenda controlar o funcionamento de um componente do tipo µC ou µP sem BST, deve controlar-se estas linhas (tendo em aten¸ca˜o que o componente pode necessitar de uma frequˆencia min´ıma de rel´ ogio). A observa¸ca˜o destas linhas, em conjun¸ca˜o com o seu controlo, facilita ainda o teste de curto-circuitos ´ ainda necess´ com outras liga¸co˜es. E ario controlar o tal pino do descodificador que permite colocar as suas sa´ıdas num estado de alta-impedˆ ancia, de modo a evitar conflitos com as c´elulas BS de sa´ıda que ir˜ ao ser penduradas no barramento de controlo do µC 80535. Esta segunda itera¸ca˜o corresponde precisamente a` implementa¸ca˜o em simultˆ aneo das duas hip´ oteses referidas anteriormente. Recursos necess´ arios C´elulas BS de entrada C´elulas BS de sa´ıda Total de c´elulas

Primeira itera¸ca˜o 4 6 10

Segunda itera¸ca˜o 11 8 19

Total 15 14 29

Table 5.6: Recursos necess´ arios para a implementa¸ca˜o das solu¸co˜es propostas Na tabela 5.6 contabilizam-se os recursos necess´ arios para a implementa¸ca˜o das solu¸co˜es enunciadas na primeira e segunda itera¸co˜es. O n´ umero total de c´elulas BS de sa´ıda com

˜ CHAPTER 5. SOLUC ¸ OES DE TESTABILIDADE PARA CCIS COM BST

70

controlo de estado e de c´elulas BS de entrada necess´ arias n˜ ao ultrapassam as capacidades do controlador de teste de grupos de l´ ogica n˜ ao BST, apresentado no cap´ıtulo 4, que cont´em 20 c´elulas BS de sa´ıda com controlo de estado individual e 20 c´elulas BS de entrada. Assim e para este caso espec´ıfico, a u ´ltima solu¸ca˜o seria a mais l´ ogica, pois caso opt´ assemos por parar no final da primeira itera¸ca˜o desperdi¸car´ıamos recursos dispon´ıveis. No entanto, refira-se mais uma vez que cada CCI a testar ´e um caso espec´ıfico, pelo que ser´ a correcto efectuar-se uma an´ alise deste tipo e em face dos recursos necess´arios, ponderar seriamente se os benef´ıcios cobrem os custos.

Teste de liga¸ c˜ oes na CCI-exemplo Ap´ os a apresenta¸ca˜o das solu¸co˜es de testabilidade para o teste de liga¸co˜es em CCIs com BST, iremos descrever brevemente a condu¸ca˜o das duas etapas (CAs e CCs) para o caso espec´ıfico da CCI-exemplo. Tendo por base a situa¸ca˜o final descrita na tabela 5.5, conclui-se que o teste de liga¸co˜es em curto-circuito n˜ ao levanta qualquer problema, pelo que n˜ ao se ir´ a referir mais esta etapa do teste. Quanto ao teste de liga¸co˜es em aberto iremos analisar todas as liga¸co˜es existentes. As liga¸co˜es entre as E/S prim´ arias da CCI-exemplo e os componentes com BST (controlador de teste e buffers do barramento de dados e endere¸cos do µC 80535) n˜ ao levantam qualquer problema. As liga¸co˜es no barramento de dados e endere¸cos do controlador de teste s˜ ao um pouco mais complicadas, devido a`s mem´ orias. No entanto, a resolu¸ca˜o deste problema encontra-se j´ a descrita em alguns artigos, nomeadamente em [89], pelo que n˜ ao nos deteremos mais nesta quest˜ ao. O barramento de controlo do controlador de teste inclui os pinos n˜ ao DCs do descodificador. Neste caso, teremos de validar as liga¸co˜es entre este e as mem´orias, recorrendo ao controlo das entradas da PLD, atrav´es das c´elulas BS colocadas (na primeira itera¸ca˜o) no barramento de controlo do µC 80535. As c´elulas BS dos buffers que est˜ ao ligados a`s duas RAMs permitir˜ ao pˆ or em pr´ atica as solu¸co˜es descritas em [89]. A linha de Reset do controlador de teste e as liga¸co˜es entre o descodificador e as entradas de controlo dos buffers s˜ ao validadas novamente atrav´es da aplica¸ca˜o de vectores pr´e-definidos nas entradas do descodificador. As liga¸co˜es que incluem pinos do µC 80535 s˜ ao mais dif´ıceis de validar em virtude deste ser um componente do tipo VLSI sem BST. Apesar de ser tecnicamente poss´ıvel controlar o valor presente numa sa´ıda do µC 80535, atrav´es da aplica¸ca˜o de um vector ou sequˆencia de vectores nas suas entradas, ser´ a talvez mais f´ acil construir uma pequena rotina de teste que coloque as sa´ıdas deste em 0 ou 1. A rotina de teste seria formada pelas seguintes instru¸co˜es:

˜ CHAPTER 5. SOLUC ¸ OES DE TESTABILIDADE PARA CCIS COM BST

71

1

MOV

DPTR,0000H

;0s no barramento de dados

2

MOVX

(DPTR),FFH

;0s no barramento de endere¸cos e 1s no de dados

3

DEC

DPTR

4

MOVX

A,(DPTR)

;1s no barramento de endere¸cos

Um ciclo máquina s1

s2

s3

s4

s5

Um ciclo máquina s6

s1

s2

s3

s4

s5

s6

p1 p2 p1 p2 p1 p2 p1 p2 p1 p2 p1 p2 p1 p2 p1 p2 p1 p2 p1 p2 p1 p2 p1 p2 p1 p2

Relógio ALE

PSEN RD Byte superior barramento end. Barramento de dados

PCH OUT

INST In

PCH OUT

PCL Out

INST In

DPH OUT

ADDR Out

A

PCH OUT

DATA In

PCL Out

INST In

B

Figure 5.3: Diagrama temporal da execu¸ca˜o da instru¸ca˜o MOVX r,(DPTR) Para se entender melhor o momento em que as c´elulas BS de entrada (dos buffers 1, 3, 5 e 7, da latch e c´elulas BS introduzidas nas liga¸co˜es a`s entradas do descodificador) devem capturar os valores presentes nas sa´ıdas do µC 80535, deve ter-se presente o diagrama temporal da execu¸ca˜o de cada uma das instru¸co˜es. Exemplifiquemos para o caso da figura 5.3, referente ao diagrama temporal da execu¸ca˜o da instru¸ca˜o MOVX A,(DPTR). Neste caso a instru¸ca˜o permite aplicar um vector de tudo 1s ao barramento de endere¸cos (DPTR tem o valor FFFFH) e aplicar um 0 na linha de RD (normalmente a 1). As linhas ALE e PSEN podem ser testadas durante a execu¸ca˜o de qualquer instru¸ca˜o. No momento A as c´elulas BS de entrada da latch e dos buffers 1 e 5, mais a c´elula BS de entrada (colocada na 2a itera¸ca˜o) ligada a` linha RD, capturam o valor 1 . No momento B a c´elula BS de entrada ligada a` linha RD captura o valor 0. As outras instru¸co˜es sofrem uma an´ alise semelhante. O sincronismo entre o funcionamento da l´ ogica de teste e do µC 80535 ´e efectuado atrav´es do controlo das linhas de Reset e de rel´ ogio deste u ´ltimo componente. Para isso recorre-se a`s c´elulas BS associadas a estas duas linhas. Uma outra

˜ CHAPTER 5. SOLUC ¸ OES DE TESTABILIDADE PARA CCIS COM BST

72

hip´ otese, referida em [90], consistiria na liga¸ca˜o da linha TCK a` entrada de rel´ ogio do µC 80535. Procede-se assim numa primeira fase a` valida¸ca˜o das liga¸co˜es entre o µC 80535, a latch, os buffers e o descodificador. Numa segunda fase utiliza-se os componentes com BST para validar as liga¸co˜es a` EPROM seguindo um esquema semelhante ao descrito em [89]. No final todas as liga¸co˜es que incluem pinos do µC 80535 ficam validadas em termos de continuidade.

5.2.4

Solu¸ co ˜es para o teste de componentes

O teste de componentes ´e simplificado pelas solu¸co˜es propostas para o teste de liga¸co˜es, uma vez que o controlo das entradas e a observa¸ca˜o das sa´ıdas de um componente ´e assegurada pela presen¸ca de pelo menos um pino DC e de pelo menos um pino DO em cada liga¸ca˜o existente na CCI. Os vectores a aplicar e os vectores esperados podem ser obtidos atrav´es do fabricante do CI ou atrav´es de simula¸ca˜o l´ ogica. A existˆencia de fun¸co˜es de auto-teste em alguns dos componentes facilita esta etapa. O teste de componentes do tipo VLSI/LSI a partir do exterior ´e mais problem´ atico devido a` sua complexidade. No entanto, para efeitos de teste, pode separar-se este tipo de componentes de acordo com a estrutura que apresentam: regulares (caso de ROMs, RAMs e FIFOs) e n˜ ao regulares (µPs, µCs e equivalentes). O teste de mem´ orias atrav´es de c´elulas BS externas encontra-se j´ a descrito em v´ arios artigos [91, 92]. O teste de µPs, µCs e equivalentes ´e um pouco mais dif´ıcil. Geralmente utiliza-se o pr´ oprio conjunto de instru¸co˜es do componente para se efectuar um teste aos v´arios blocos internos, sendo o resultado posteriormente deslocado para o exterior. Um procedimento deste tipo para o caso do µP 8085 da INTEL encontra-se descrito em [93]. Teste de componentes na CCI-exemplo Para o caso da CCI-exemplo podemos dividir o teste de componentes em cinco fases: • teste dos componentes introduzidos que melhoram a testabilidade. • teste da latch e dos buffers atrav´es da instru¸ca˜o INTEST. • teste do descodificador atrav´es das c´elulas BS pertencentes ao controlador de teste de grupos de l´ ogica n˜ ao BST. Esta fase pode ser executada de duas maneiras poss´ıveis: atrav´es da aplica¸ca˜o de vectores pr´e-determinados ou atrav´es da gera¸ca˜o pseudoaleat´ oria de vectores e forma¸ca˜o de uma assinatura.

˜ CHAPTER 5. SOLUC ¸ OES DE TESTABILIDADE PARA CCIS COM BST

73

• teste das mem´ orias atrav´es das c´elulas BS. Pode utilizar-se um procedimento semelhante ao descrito em [92]. • teste do µC 80535 e do controlador de teste. Pode utilizar-se um procedimento semelhante ao descrito em [93].

O teste de componentes n˜ ao levanta pois grandes dificuldades, uma vez resolvido o problema do teste de liga¸co˜es. Esta afirma¸ca˜o ´e especialmente v´alida para o caso da CCI-exemplo.

5.2.5

Implementa¸ c˜ ao de auto-teste

A realiza¸ca˜o de auto-teste ao n´ıvel da CCI implica a existˆencia de um controlador de teste residente capaz de comandar a(s) cadeia(s) de BS existente(s), nomeadamente as opera¸co˜es elementares que ocorrem em cada TAP e ainda o conjunto de vectores a aplicar, as respostas esperadas e as m´ascaras de compara¸ca˜o. O controlador de teste residente, apresentado no cap´ıtulo 4, permite em conjunto com uma mem´ oria que armazene o programa de teste implementar auto-teste ao n´ıvel da CCI. As E/S prim´ arias da CCI s˜ ao as u ´nicas liga¸co˜es que n˜ ao ficam testadas, em virtude de serem necess´ arios recursos externos para a aplica¸ca˜o e/ou captura de valores nesses pinos especiais. A decis˜ ao sobre a implementa¸ca˜o ou n˜ ao de auto-teste baseia-se, regra geral, em raz˜ oes econ´ omicas, embora possam existir raz˜ oes t´ecnicas que obriguem a` sua implementa¸ca˜o. Para o caso da CCI-exemplo a inclus˜ ao de auto-teste obrigaria a` inclus˜ ao de mais dois componentes (controlador de teste residente e mem´ oria com o programa de teste), elevando o total de componentes orientados ao teste para trˆes. Ora este n´ umero deve ser comparado com o n´ umero de componentes existentes na CCI antes da implementa¸ca˜o do auto-teste, que no caso da CCI-exemplo s˜ ao 13 (14, com a inclus˜ ao do controlador de teste de grupos de l´ ogica n˜ ao BST). A raz˜ ao entre estes dois n´ umeros ´e o primeiro ´ındice a ter em conta, dado que indica o overhead, em termos de componentes, necess´ ario para a implementa¸ca˜o de auto-teste. Para a CCI-exemplo este ´ındice ´e ligeiramente superior a 10%, n´ umero que poder´ a ser elevado. A raz˜ ao entre o n´ umero de pinos dos componentes j´ a existentes e os necess´ arios para implementar o auto-teste, ser´ a o segundo ´ındice a ter em conta. Para a CCI-exemplo este n´ umero rondar´ a os 20%, n´ umero que poder´ a igualmente ser considerado elevado. Regra geral aceita-se que um overhead inferior a 10% (principalmente para o 2o ´ındice apontado) compensa a implementa¸ca˜o de solu¸co˜es de testabilidade, tendo em considera¸ca˜o a redu¸ca˜o nos custos totais do teste da CCI em quest˜ ao.

˜ CHAPTER 5. SOLUC ¸ OES DE TESTABILIDADE PARA CCIS COM BST

5.2.6

74

Solu¸ co ˜es de testabilidade com componentes comerciais orientados ao teste

As solu¸co˜es de testabilidade aqui apresentadas poderiam ter sido implementadas com alguns dos componentes comerciais orientados ao teste, referidos no cap´ıtulo 3. O circuito PROBE permitiria substituir o controlador de teste de grupos de l´ ogica n˜ ao BST sem qualquer altera¸ca˜o. O circuito DBM obrigaria a uma redefini¸ca˜o de algumas das solu¸co˜es de testabilidade aqui apresentadas, em virtude de n˜ ao possuir pinos DCs. Este CI ´e especialmente indicado para CCIs caracterizadas pela existˆencia de um u ´nico barramento de dados e um u ´nico barramento de endere¸cos, uma vez que a monitoriza¸ca˜o da actividade nestas linhas permitiria detectar grande parte das faltas que pudessem existir. Tal n˜ ao ´e o caso da CCI-exemplo, caracterizada pela existˆencia de dois barramentos de dados e endere¸cos. Assim seriam necess´ arios trˆes DBMs (cada DBM possui 16 linhas de entrada) s´ o para monitorizar a actividade em todos os barramentos (2x8 linhas de dados mais 2x16 linhas de endere¸cos). Ali´ as este componente possui caracter´ısticas que o apontam mais para o teste funcional (ou teste at-speed) do que propriamente para o teste estrutural de CCIs, que ´e o objectivo das solu¸co˜es de testabilidade apresentadas neste cap´ıtulo. A implementa¸ca˜o de auto-teste poderia igualmente ser feita com base nos v´ arios controladores de teste residentes apresentados no cap´ıtulo 3. Os controladores da TI e da NS funcionam debaixo da supervis˜ ao de um µP ou de um µC, logo precisar´ıamos de mais um componente para realizar as mesmas fun¸co˜es de auto-teste. Repare-se que n˜ ao poder´ıamos utilizar o µC 80535 j´ a existente na CCI, dado que durante o teste de liga¸co˜es em curtocircuito este ´e colocado no estado de reset (os pinos do µC 80535 ficam num estado de alta-impedˆ ancia). Do exposto ressalta que o overhead no caso da CCI-exemplo seria maior, logo n˜ ao se justificaria a utiliza¸ca˜o de qualquer um destes controladores em detrimento do controlador residente desenvolvido no aˆmbito do trabalho desta tese.

5.3

Repercuss˜ oes ao n´ıvel do sistema

A testabilidade de um sistema composto por v´ arias CCIs pode ser analisada com base na testabilidade de cada uma das CCIs e ainda na capacidade de detectar falhas nas interliga¸co˜es entre estas ao n´ıvel do barramento de sistema. A situa¸ca˜o ideal ´e caracterizada por duas facilidades desej´ aveis ao n´ıvel das CCIs: • existˆencia de uma infraestrutura BST que permita uma cobertura de faltas de 100%. • todos os pinos que ligam ao barramento do sistema s˜ ao DOs ou DCs (podendo colocar-se as sa´ıdas num estado de alta-impedˆ ancia).

˜ CHAPTER 5. SOLUC ¸ OES DE TESTABILIDADE PARA CCIS COM BST

75

As solu¸co˜es de testabilidade apresentadas na sec¸ca˜o anterior tˆem precisamente por objectivo implementar a primeira facilidade desej´ avel, pelo que apenas se p˜ oe o problema de como aceder `a infraestrutura de teste a partir do sistema. Esta quest˜ ao foi j´ a abordada no cap´ıtulo 3, tendo-se conclu´ıdo que apenas duas op¸co˜es s˜ ao vi´ aveis: a utiliza¸ca˜o do BST como barramento de teste ao n´ıvel do sistema ou a utiliza¸ca˜o do MTM-Bus. A primeira op¸ca˜o obriga a` utiliza¸ca˜o de um componente com BST, como o Scan Bridge da NS ou o ASP da TI, que fa¸ca a liga¸ca˜o ao n´ıvel hier´ arquico superior. O MTM-Bus representa uma solu¸ca˜o igualmente poss´ıvel, possuindo a vantagem de ser um barramento de teste orientado para o n´ıvel do sistema. Por´em, a` data em que esta tese foi escrita, n˜ ao existem ainda componentes que suportem o MTM e a proposta IEEE P1149.5 n˜ ao foi ainda aprovada como norma, pelo que esta solu¸ca˜o est´ a condicionada pelos acontecimentos futuros. Dos dois componentes com BST mencionados foi igualmente referido no cap´ıtulo 3 que (aparentemente) apenas o Scan Bridge se encontra actualmente dispon´ıvel no mercado. Uma terceira hip´ otese, consistiria na utiliza¸ca˜o de um componente que suportasse o MTM e que no seu interior possu´ısse um bloco semelhante ao controlador de teste residente desenvolvido. Este componente possuiria um conjunto de instru¸co˜es definidas pelo projectista, recebidas via MTM-Bus, que permitiriam controlar a execu¸ca˜o do teste da CCI e posteriormente enviar o resultado para o controlador de teste de sistema. Dado o interesse desta hip´ otese, foi desenvolvido e validado (por simula¸ca˜o l´ ogica) um modelo em VHDL para este componente [94], embora a complexidade do circuito tenha impedido a sua implementa¸ca˜o numa PLD. A segunda facilidade desej´ avel permite que se efectue o teste das interliga¸co˜es que incluam linhas do barramento do sistema. A condi¸ca˜o de uma sa´ıda possuir o estado de alta-impedˆ ancia ´e obrigat´ oria no caso existir mais do que uma sa´ıda pendurada na mesma linha do barramento. As solu¸co˜es de testabilidade apresentadas na sec¸ca˜o anterior englobam igualmente as E/S prim´ arias da CCI, pelo que a sua aplica¸ca˜o assegura a segunda facilidade desej´ avel ao n´ıvel da CCI.

5.4

Conclus˜ ao

A aplica¸ca˜o das solu¸co˜es de testabilidade propostas implicam um acr´escimo no custo total duma CCI. Geralmente faz-se uma an´ alise em termos de overhead, ou seja, a raz˜ ao entre o custo adicional (custo dos componentes a inserir, aumento na a´rea total da CCI e custo de desenvolvimento) e o custo inicial. Para a an´ alise ser correcta deve igualmente ter-se uma ideia do custo do teste da CCI antes e depois da aplica¸ca˜o das solu¸co˜es. Quando o overhead associado a` implementa¸ca˜o de qualquer uma das solu¸co˜es apresentadas for in-

˜ CHAPTER 5. SOLUC ¸ OES DE TESTABILIDADE PARA CCIS COM BST

76

ferior a` diferen¸ca entre o custo do teste por CCI antes e depois da sua implementa¸ca˜o, n˜ ao existe raz˜ ao para que n˜ ao se proceda a` aplica¸ca˜o das solu¸co˜es propostas. Deve no entanto fasear-se a considera¸ca˜o das solu¸co˜es a aplicar. Assim come¸ca-se por proceder a` an´ alise de trocar os componentes existentes na CCI por outros que possuam o m´ aximo das facilidades desej´ aveis apresentadas na sec¸ca˜o 5.1. Posteriormente analisa-se a troca de buffers unidireccionais (com BST) por outros equivalentes bidireccionais. A seguir analisa-se a aplica¸ca˜o das solu¸co˜es propostas para o teste de liga¸co˜es (tendo por base a utiliza¸ca˜o do controlador de teste de grupos de l´ ogica n˜ ao BST apresentado no cap´ıtulo 4). A implementa¸ca˜o, em simultˆ aneo, das duas hip´ oteses sugeridas na sec¸ca˜o 5.2 (existˆencia de pelo menos um pino DC e um pino DO por liga¸ca˜o) deve ser considerada em u ´ltimo lugar, atendendo ao custo que lhe ´e inerente. Considera-se ent˜ ao o teste de componentes. As solu¸co˜es propostas para o teste de liga¸co˜es v˜ ao influenciar positivamente esta etapa do teste da CCI. A implementa¸ca˜o de auto-teste (utilizando o controlador de teste residente apresentado no cap´ıtulo 4) ao n´ıvel da CCI poder´ a trazer benef´ıcios importantes para o sucesso do produto. Mais uma vez deve fazer-se uma an´ alise do custo, mas tendo em aten¸ca˜o que as vantagens associadas a esta op¸ca˜o n˜ ao se reduzem ao aspecto econ´ omico, repercutindo-se igualmente em outros aspectos como a manuten¸ca˜o ou ainda na possibilidade de controlar a aplica¸ca˜o do auto-teste a partir de localiza¸co˜es remotas. Finalmente ponderam-se quais as repercuss˜ oes que a aplica¸ca˜o das solu¸co˜es propostas originam ao n´ıvel do teste de sistema.

Chapter 6

O Testador de CCIs com BST No cap´ıtulo 4 foi apresentado um conjunto de componentes vocacionados para o teste, que podem ser integrados numa CCI, de forma a aumentar a sua testabilidade. As suas capacidades possibilitam ainda que sejam utilizados na constru¸ca˜o de um testador de baixo custo, ilustrado na figura 6.1, para CCIs que possuam uma ou duas cadeias de BS.

Figure 6.1: O testador de CCIs O seu desenvolvimento foi parcialmente financiado pela JNICT [95, 96, 97, 98, 99, 100, 77

CHAPTER 6. O TESTADOR DE CCIS COM BST

78

101]. O testador, composto por trˆes CCIs, constitui o hardware de um Sistema de Teste e Valida¸ca˜o de CCIs com BST. O software ´e constitu´ıdo por um gerador autom´ atico de programas de teste para as cartas a testar. Na sec¸ca˜o 6.1 apresenta-se a arquitectura global do n´ıvel f´ısico do sistema, designada abreviadamente a partir de agora por arquitectura do testador. Descreve-se cada um dos blocos que a formam, referindo-se igualmente a distribui¸ca˜o destes pelas trˆes CCIs que constituem o testador. Na sec¸ca˜o 6.2 descrevem-se os seus v´arios modos de funcionamento, seguindo-se na sec¸ca˜o 6.3 a apresenta¸ca˜o do pacote de software de Gera¸ca˜o Autom´ atica de Programas de Teste (GAPT). A sec¸ca˜o 6.4 conclui este cap´ıtulo.

6.1

Arquitectura do testador

O controlador de teste residente (referido igualmente neste cap´ıtulo como o processador BST) e a mem´ oria dos programas de teste constituem o n´ ucleo b´ asico que permite testar uma CCI com BST. Assume-se que tal n´ ucleo n˜ ao existe na CCI a testar, apenas existindo os terminais do(s) TAP(s), pelo que dever´ a ser o testador exterior a proporcionar os recursos necess´ arios para a realiza¸ca˜o do testes atrav´es da infraestrutura BST. O n´ıvel de diagn´ ostico atingido pelo testador n˜ ao se resume a simples indica¸ca˜o de BOM/MAU, apesar de o controlador possuir apenas a capacidade de comparar os valores esperados com os valores capturados, bit a bit, sem no entanto os armazenar. Neste sentido, e como o controlador apenas efectua opera¸co˜es de leitura a` mem´ oria, o testador possui um bloco respons´ avel pelo armazenamento das respostas aos vectores aplicados. Este bloco ´e constitu´ıdo por um dispositivo encarregado de desserializar as respostas e de controlar o processo de escrita destas na mem´oria das respostas aos vectores de teste. O conte´ udo desta mem´ oria pode mais tarde ser transferido do testador para o PC, para atrav´es de um programa de an´ alise (ainda n˜ ao dispon´ıvel) permitir a localiza¸ca˜o das faltas detectadas. O n´ ucleo descrito ´e respons´ avel pela aplica¸ca˜o do teste no interior da CCI, sendo o teste das suas E/S prim´ arias efectuado em conjunto com os seguintes blocos adicionais: um bloco constitu´ıdo pelos componentes descritos na sec¸ca˜o 4.2.1, que ´e respons´ avel pelo teste das E/S prim´ arias digitais; um outro bloco, constitu´ıdo pelo controlador descrito na sec¸ca˜o 4.3 e pelas interfaces de liga¸ca˜o A/D e D/A, que ´e respons´ avel pelo teste das E/S prim´ arias anal´ ogicas. Ambos os blocos s˜ ao comandados pelo controlador de teste atrav´es de um dos seus dois grupos de controlo de TAPs. O sistema necess´ ario para a execu¸ca˜o completa do teste de uma CCI ´e assim constitu´ıdo pelo n´ ucleo e pelos blocos de desserializa¸ca˜o, de teste das E/S prim´ arias digitais e de teste das E/S prim´ arias anal´ ogicas. O controlo da execu¸ca˜o do programa de teste e das interfaces

CHAPTER 6. O TESTADOR DE CCIS COM BST

79

do testador com o PC e com o utilizador ´e feito por um u ´ltimo bloco, designado por bloco de comunica¸co˜es e controlo de actividades. A arquitectura do testador de CCIs encontra-se implementada de uma forma modular, tendo possibilitado o desenvolvimento em paralelo dos diferentes blocos e uma mais f´ acil redefini¸ca˜o do conte´ udo de cada um. Esta aproxima¸ca˜o facilita tamb´em o posterior desenvolvimento das capacidades do testador. A figura 6.2 ilustra a arquitectura global do n´ıvel f´ısico do sistema, podendo nela identificar-se os cinco blocos principais que o constituem:

Canal de comunicações Endereços Processador de comunicações e controlo de actividades

Dados Controlo de actividades

Processador BST e memória dos programas de teste

Controlo do desserializador

Relógio do sistema TAP 1

TAP 1

Desserializador e memória das respostas aos vectores de teste

Teste de E/S primárias digitais

Teste de E/S primárias analógicas

Sincronismo

Saídas primárias digitais Entradas primárias digitais Saídas primárias analógicas Entradas primárias analógicas

TAPs da CCI a testar

Figure 6.2: Diagrama de blocos da arquitectura global (n´ıvel f´ısico) do testador • O bloco do controlador de teste e mem´ oria dos programas de teste • O bloco de desserializa¸ca˜o e mem´ oria das respostas aos vectores de teste • O bloco para o teste das E/S prim´ arias digitais • O bloco para o teste das E/S prim´ arias anal´ ogicas • O bloco de comunica¸co˜es e controlo de actividades

CHAPTER 6. O TESTADOR DE CCIS COM BST

80

Cada um destes blocos ´e em seguida descrito e analisado. Inclui-se a apresenta¸ca˜o do diagrama interno de cada um deles, por forma a complementar com mais algum pormenor a descri¸ca˜o feita. Refere-se ainda a distribui¸ca˜o destes blocos por cada uma das trˆes CCIs que formam o testador.

6.1.1

O bloco do controlador de teste

O controlador de teste e mem´ oria dos programas de teste constituem o n´ ucleo do testador, encontrando-se implementados na carta 1 e interagindo com todos os restantes blocos. Esta interac¸ca˜o pode ser melhor entendida atrav´es da an´ alise dos sinais representados no diagrama da figura 6.3. Reset

Sincronismo

Relógio

Processador BST

Dados

Endereços

Memória dos programas de teste

Controlo do desserializador

TAPs da CCI a testar

Figure 6.3: Bloco do controlador de teste e mem´ oria dos programas de teste Os sinais representados na parte inferior da figura 6.3 (TAPs da CCI a testar) constituem as duas cadeias de BS comandadas pelo controlador. Uma destas cadeias liga directamente a` CCI a testar, enquanto a outra pode ou n˜ ao passar pelos blocos de teste das E/S prim´ arias anal´ ogicas e digitais. Esta op¸ca˜o depende das caracter´ısticas da carta a testar. Um conjunto de jumpers permite que apenas sejam inclu´ıdos na cadeia os blocos efectivamente necess´ arios para o teste da CCI. Este assunto ´e tratado posteriormente com mais detalhe nas sec¸co˜es 6.1.3 e 6.1.4. Os sinais representados na parte superior da figura 6.3 incluem os barramentos de dados e endere¸cos e as linhas de rel´ ogio e de Reset do controlador de teste. A linha de Reset pode ser utilizada para dois fins: • inicializa¸ca˜o da l´ ogica interna do controlador

CHAPTER 6. O TESTADOR DE CCIS COM BST

81

• coloca¸ca˜o dos barramentos de dados e de endere¸cos no estado de alta-impedˆ ancia Esta u ´ltima fun¸ca˜o permite o controlo dos barramentos a partir do exterior, conforme ser´ a explicado na sec¸ca˜o 6.1.5. A possibilidade de inicializar a l´ ogica interna permite, conjuntamente com o controlo da linha de rel´ ogio do controlador, comandar a execu¸ca˜o do programa de teste. Com efeito, pode parar-se a execu¸ca˜o do programa num determinado ponto, ao suspender o fornecimento de impulsos de rel´ ogio, o que ´e efectivamente feito pelo bloco de controlo de actividades, com o objectivo de permitir a depura¸ca˜o dos programas de teste. As condi¸co˜es que determinam a suspens˜ ao do rel´ ogio d˜ ao origem aos modos de funcionamento do testador descritos na sec¸ca˜o 6.2. Os sinais representados na parte esquerda da figura 6.3 destinam-se a duas fun¸co˜es: • estabelecer o sincronismo entre o controlador e o bloco para o teste das E/S prim´ arias anal´ ogicas • controlar o processo de desserializa¸ca˜o O controlador possui dois canais de sincronismo (tal como se descreveu na sec¸ca˜o 4.4). Um destes canais ´e utilizado para estabelecer o protocolo de in´ıcio/fim de convers˜ ao, a duas linhas, com os conversores A/D situados no bloco para o teste das E/S prim´ arias anal´ ogicas. O outro canal est´ a dispon´ıvel para ser utilizado, por exemplo, com um equipamento de teste exterior. A linha de controlo do desserializador, denominada DeserEn, serve para indicar o per´ıodo em que o controlador est´ a a analisar as respostas ao u ´ltimo vector de teste aplicado. O funcionamento desta sa´ıda ao longo da execu¸ca˜o de um programa de teste foi j´ a apresentado na sec¸ca˜o 4.4.

6.1.2

O bloco de desserializa¸ c˜ ao

O controlador de teste possui uma sa´ıda que indica a ocorrˆencia de um erro, detectado na compara¸ca˜o bit a bit das respostas aos vectores de teste aplicados. Para passar da detec¸ca˜o ao diagn´ ostico torna-se necess´ ario guardar as respostas. Estas podem mais tarde ser transferidas para o PC, onde uma ferramenta de an´ alise as poderia processar para indicar a liga¸ca˜o ou componente em falha. A arquitectura do controlador n˜ ao inclui os recursos que permitam a desserializa¸ca˜o e o controlo do armazenamento das respostas numa mem´ oria externa (at´e porque esta funcionalidade n˜ ao tem interesse no auto-teste de CCIs). Esta fun¸ca˜o foi remetida para um bloco externo, facilitando assim a constru¸ca˜o do controlador, que apenas possui uma linha que indica o instante em que est˜ ao a ser analisados os valores que recebe nas linhas TDI. Esta linha (DeserEn) ´e utilizada para controlar o processo de desserializa¸ca˜o.

CHAPTER 6. O TESTADOR DE CCIS COM BST

82

O bloco de desserializa¸ca˜o e armazenamento das respostas aos vectores de teste localizase na carta 2 do testador, sendo constitu´ıdo por um desserializador, tamb´em ele implementado numa PLD, e por uma mem´ oria de leitura/escrita. A figura 6.4 ilustra o diagrama de blocos e os sinais que constituem a interface com os restantes blocos do testador. Os sinais representados na parte superior da figura 6.4 provˆem do bloco de comunica¸co˜es e controlo de actividades. A linha de rel´ ogio do sistema serve para sincronizar a actividade do desserializador com os restantes blocos. A linha de Reset possui duas fun¸co˜es: Reset

Pinos de TCK e TDI do Processador BST

Relógio do sistema

Dados

Desserializador

Endereços

Memória das respostas aos vectores de teste

Controlo

Figure 6.4: Bloco de desserializa¸ca˜o e mem´ oria das respostas aos vectores de teste

• inicializa¸ca˜o da l´ ogica interna do desserializador • coloca¸ca˜o dos barramentos de dados e endere¸cos no estado de alta-impedˆ ancia

A primeira fun¸ca˜o permite inicializar o desserializador, nomeadamente o apontador de mem´ oria, antes do in´ıcio da execu¸ca˜o de um programa de teste. A segunda fun¸ca˜o permite que o bloco de controlado de actividades aceda ao barramento de dados e endere¸cos da mem´ oria, podendo assim transferir o conte´ udo desta, atrav´es do canal de comunica¸co˜es, para o PC. Os sinais representados na parte esquerda da figura 6.4 provˆem do controlador de teste. Destes j´ a se referiu a linha de controlo (DeserEn), servindo as linhas TCK para indicar qual das duas cadeias de BS se encontra em actividade, permitindo ao desserializador a comuta¸ca˜o entre a desserializa¸ca˜o de uma ou outra cadeia. Nas linhas TDI s˜ ao deslocados bit a bit os vectores capturados pelo conjunto das c´elulas pertencentes a cada uma das cadeias. Os bits que formam cada um dos vectores s˜ ao agrupados em palavras de 8 bits, bit menos significativo a` direita, e armazenados sequencialmente na mem´ oria.

CHAPTER 6. O TESTADOR DE CCIS COM BST

6.1.3

83

O bloco para o teste das E/S digitais

O n´ umero de E/S prim´ arias digitais de diferentes CCIs pode variar entre algumas unidades e v´ arias centenas. Por exemplo, uma CCI formato duplo EuroCard com conectores de trˆes fileiras possui facilmente cerca de duas centenas de E/S, pelo que o bloco para o teste destas E/S dever´ a satisfazer estes requisitos de expansibilidade. Os componentes desenvolvidos para este fim foram apresentados na sec¸ca˜o 4.2.1, e permitem a sua liga¸ca˜o em s´erie, de modo a satisfazer o n´ umero de E/S prim´ arias que a carta sob teste possa ter. O bloco para o teste das E/S prim´ arias digitais agrupa todos os dispositivos deste tipo que existam no testador. Na vers˜ ao implementada, o testador possui trˆes componentes para o teste das E/S prim´ arias digitais, o que perfaz um total de 78 pinos bidireccionais e de 30 pinos de entrada. Os pinos bidireccionais de cada componente s˜ ao ligados a um conector tipo MOLEX de 26 pinos e os pinos de entrada ligados a um outro conector do mesmo tipo de 10 pinos. Esta montagem pode ser vista na figura 6.5. O bloco completo n˜ ao se encontra localizado numa u ´nica carta, devido ao espa¸co necess´ ario para os conectores frontais, que limitam o n´ umero de componentes de teste de E/S prim´ arias digitais por carta a um m´ aximo de dois. Na vers˜ ao actual um dos componentes localiza-se na carta 1, estando ligado directamente ao TAP1 do controlador de teste, conforme se pode ver pela figura 6.6. Quantos mais componentes estiverem integrados numa cadeia, maior ser´ a o tempo necess´ ario para deslocar um vector ao longo desta. Torna-se assim vantajoso s´ o incluir na cadeia ligada ao TAP1 os componentes efectivamente necess´ arios para o teste de uma CCI. Para isso existe um conjunto de jumpers distribu´ıdos pelas trˆes cartas que permitem configurar a cadeia de BS ligada ao TAP1 do controlador de teste. A figura 6.6 ilustra duas situa¸co˜es em que o n´ umero de E/S prim´ arias digitais da carta a testar n˜ ao ultrapassa as capacidades do controlador instalado na carta 1. Na primeira situa¸ca˜o a carta a testar possui uma u ´nica cadeia de BS ligada ao TAP0 do controlador, ficando o TAP1 dispon´ıvel exclusivamente para o controlador de teste de E/S prim´ arias. Na segunda situa¸ca˜o a carta a testar possui duas cadeias de BS, o que obriga a alterar atrav´es dos jumpers existentes o percurso da cadeia ligada ao TAP1, passando esta a ser formada pelos componentes presentes na carta a testar e pelo controlador instalado na carta 1. Os restantes dois controladores que integram este bloco encontram-se localizados na carta 2 do testador, conforme se pode ver na figura 6.7. A situa¸ca˜o representada ´e an´ aloga a` da figura 6.6a, em que a carta a testar possui uma u ´nica cadeia de BS. O n´ umero de E/S prim´ arias digitais obriga agora a` utiliza¸ca˜o de mais controladores que ir˜ ao ser inclu´ıdos

CHAPTER 6. O TESTADOR DE CCIS COM BST

84

Figure 6.5: Conectores para liga¸ca˜o das E/S prim´ arias digitais da CCI a testar no percurso da cadeia de BS ligada ao TAP1. No caso da carta a testar possuir duas cadeias de BS ´e poss´ıvel, atrav´es dos jumpers, estender o percurso desta u ´ltima cadeia a` carta, numa situa¸ca˜o idˆentica a` representada na figura 6.6b. O percurso desta seria agora: componentes presentes na carta a testar, controladores de E/S instalados na carta 2 e finalmente o controlador de E/S instalado na carta 1.

6.1.4

O bloco para o teste das E/S anal´ ogicas

A carta 3 do testador ´e ocupada integralmente pelo conjunto formado pelo controlador do teste de E/S prim´ arias anal´ ogicas (descrito na sec¸ca˜o 4.3) e pelas respectivas interfaces A/D e D/A. Este conjunto, ilustrado na figura 6.8, ´e designado por bloco para o teste das E/S anal´ ogicas. As interfaces A/D e D/A representados nas figura 6.9 e 6.10 respectivamente, constituem os elementos deste bloco que ir˜ ao ser agora descritos de uma forma pormenorizada. A interface A/D, tamb´em designada por bloco das entradas anal´ ogicas, ´e constitu´ıda por dois grupos idˆenticos. Cada um agrupa um multiplexer anal´ ogico de oito entradas, seguido de um amplificador destinado a baixar a carga do sinal (montagem tipo buffer)

CHAPTER 6. O TESTADOR DE CCIS COM BST

Carta 1 do testador Proc. BST

85

Carta 1 do testador

E/S 0

E/S 0

Proc. BST

TAP

TAPs

TAP

TAPs

CCI a testar

CCI a testar

a) Uma cadeia BS

b) Duas cadeias BS

Figure 6.6: Localiza¸ca˜o e exemplos de utiliza¸ca˜o do primeiro controlador de teste das E/S prim´ arias digitais Carta 1 do testador Proc. BST

Carta 2 do testador

E/S 0

E/S 1

E/S 2

TAPs

TAP

CCI a testar

Figure 6.7: Localiza¸ca˜o e exemplo de utiliza¸ca˜o do segundo e terceiro controlador para o teste das E/S prim´ arias digitais

Dados Bloco das Entradas analógicas

Sincronismo Controlador das E/S analógicas

Entradas primárias analógicas

Controlo Controlo

TAP1 Dados

Bloco das Saídas analógicas

Figure 6.8: Bloco de teste das E/S prim´ arias anal´ ogicas

Saídas primárias analógicas

CHAPTER 6. O TESTADOR DE CCIS COM BST

AmpOp

86

Multiplexer Analógico 8:1

A/D Dados AmpOp

Multiplexer Analógico 8:1

A/D

8 Entradas Analógicas

8 Entradas Analógicas

controlo dos A/Ds Selecção do canal de entrada

Figure 6.9: Bloco das entradas anal´ ogicas

Dados

Selecção do canal de saída

D/A de 8 canais

16 AmpOps 16 Saídas Analógicas

D/A de 8 canais Adaptação de sinal

Figure 6.10: Bloco das sa´ıdas anal´ ogicas e finalmente um conversor A/D por aproxima¸co˜es sucessivas. O bloco disp˜ oe assim de um total de 16 sinais de entrada anal´ ogicos. A gama de excurs˜ ao de um sinal de entrada atinge os 20 Volt, podendo variar entre -10 e +10 Volt. A interface D/A, tamb´em designada por bloco das sa´ıdas anal´ ogicas, ´e igualmente constitu´ıda por dois grupos idˆenticos. Cada grupo cont´em um conversor D/A com oito canais de sa´ıda. Os sinais a` sa´ıda do conversor podem variar entre 0 e +10 Volt. Com a inclus˜ ao de um amplificador operacional entre cada sa´ıda do conversor e o respectivo pino no conector de liga¸ca˜o, aumentou-se a excurs˜ ao do sinal entre -10 e +10 Volt. O amplificador operacional permite tamb´em aumentar a capacidade de sa´ıda em corrente. Alguns dos jumpers referidos na sec¸ca˜o anterior est˜ ao colocados a` entrada da linha TDI do controlador de teste das E/S prim´ arias anal´ ogicas. Estes permitem configurar a cadeia de BS ligada ao TAP1 do controlador de teste tal como se ilustra na figura 6.11. Nesta situa¸ca˜o a carta a testar possui uma cadeia de BS e apenas E/S prim´ arias anal´ ogicas, cujo n´ umero n˜ ao ultrapassa os recursos dispon´ıveis na carta 3. Na vers˜ ao actual do testador, a situa¸ca˜o que obriga a` utiliza¸ca˜o de todos os recursos

CHAPTER 6. O TESTADOR DE CCIS COM BST

Carta 1 do testador Proc. BST

87

Carta 3 do testador

E/S 0

E/S Analóg.

TAPs

TAP

7905

7805

CCI a testar

Figure 6.11: Localiza¸ca˜o e exemplo de utiliza¸ca˜o do bloco para o teste das E/S prim´ arias anal´ ogicas Carta 1 do testador Proc. BST

E/S 0

Carta 2 do testador E/S 1

E/S 2

Carta 3 do testador E/S Analóg.

TAPs

TAPs

7905

7805

CCI a testar

Figure 6.12: Exemplo de utiliza¸ca˜o de todos os recursos existentes no testador existentes pode ser vista na figura 6.12. A carta a testar teria duas cadeias de BS, um n´ umero de E/S prim´ arias digitais que poderia ir at´e 3x(10+26) e ainda um m´ aximo de 16 entradas mais 16 sa´ıdas prim´ arias anal´ ogicas.

6.1.5

O bloco de comunica¸ co ˜es e controlo de actividades

Os quatro blocos apresentados at´e aqui proporcionam os recursos necess´ arios para a execu¸ca˜o completa do teste de uma CCI. O controlo da execu¸ca˜o do programa de teste e das interfaces do testador com o PC e com o utilizador ´e feito por um u ´ltimo bloco representado na figura 6.13 e designado por bloco de comunica¸co˜es e controlo de actividades. A interface com o utilizador realiza-se atrav´es de um teclado e visor de cristais l´ıquidos que se pode ligar por um flat cable a` carta 1 do testador. O interface com o PC ´e realizado

CHAPTER 6. O TESTADOR DE CCIS COM BST

88

Controlo de actividades

Canal de Comunicações

Processador de comunicações e controlo de actividades

Endereços Dados

Relógio do sistema

Figure 6.13: Bloco de comunica¸co˜es e controlo de actividades atrav´es de um canal de comunica¸co˜es RS-232C. O controlo da execu¸ca˜o do programa de teste ´e feito atrav´es das linha de Reset e de rel´ ogio do controlador de teste, tal como se referiu na sec¸ca˜o 6.1.1. A transferˆencia do programa de teste e das respostas ´e feita atrav´es de um conjunto de buffers, que permitem o acesso `as mem´ orias dos blocos do desserializador e do controlador de teste. O controlo dos barramentos destes dois blocos ´e feito atrav´es das linhas de Reset existentes, tal como se referiu nas sec¸co˜es 6.1.1 e 6.1.2. O diagrama de blocos encontra-se representado na figura 6.14, apresentando os seguintes elementos constituintes: • um microcontrolador com porta s´erie incorporada (80535) • uma mem´ oria com o programa monitor • um driver RS-232C • uma PLD respons´ avel pela descodifica¸ca˜o de todo o sistema • um conjunto de buffers para acesso aos restantes blocos • um teclado e um visor de cristais l´ıquidos para comunica¸ca˜o com o utilizador Este bloco encontra-se implementado na carta 1 do testador, a` excep¸ca˜o do conjunto de buffers, visto uma parte (na carta 1) ser utilizada para acesso a` mem´ oria do bloco do controlador de teste e a outra parte (na carta 2) ser utilizada para acesso a` mem´ oria do bloco de desserializa¸ca˜o. Os barramentos de dados e de endere¸cos deste bloco designam-se por barramento de dados geral e barramento de endere¸cos geral, respectivamente.

CHAPTER 6. O TESTADOR DE CCIS COM BST

89

RS232C Relógio e sinais de controlo

Microcontrolador 80535 + PLD de descodificação

Endereços

Endereços Buffers de isolamento de barramentos

Dados

Para o bloco do controlador de teste e para o bloco de desserialização

Dados Relógio do sistema Buffers de leitura do conteúdo dos barramentos

Figure 6.14: Diagrama de blocos do controlo de actividades Na sua fun¸ca˜o de processador de comunica¸co˜es, este bloco ´e respons´ avel pela recep¸ca˜o do programa de teste enviado pelo PC e pelo seu encaminhamento para a mem´ oria do controlador de teste. O utilizador pode ainda visualizar e alterar o conte´ udo desta mem´ oria byte a byte. Para cumprir estas duas tarefas o microcontrolador 80535 acede aos barramentos do bloco do controlador de teste da forma ilustrada na figura 6.15a. Quando se pretende executar o programa de teste no modo de breakpoint por endere¸co, o microcontrolador 80535 lˆe o barramento de endere¸cos do controlador. Esta leitura, ilustrada na figura 6.15b, ´e feita em trˆes fases do byte menos significativo (bits 7 a 0) ao byte mais significativo (bits 19 a 16). A descri¸ca˜o deste modo de funcionamento ´e adiada para a sec¸ca˜o 6.2. Ap´ os a execu¸ca˜o do programa de teste o utilizador pode ordenar, atrav´es do teclado, que o microcontrolador 80535 envie para o PC as respostas aos vectores aplicados, para o que ter´ a lugar o acesso a` mem´ oria do bloco de desserializa¸ca˜o. Numa primeira etapa, ilustrada na figura 6.16a, o microcontrolador 80535 lˆe o barramento de endere¸cos do desserializador, que indica o n´ umero de bytes que foram desserializados. Numa segunda eu ´ltima etapa, ilustrada na figura 6.16b, o microcontrolador 80535 efectua a leitura da mem´ oria e envia para o PC as respostas aos vectores de teste. Na sua fun¸ca˜o de controlador de actividades, este bloco permite comutar a execu¸ca˜o do programa de teste entre os diferentes modos de funcionamento, como ser´ a agora descrito na sec¸ca˜o 6.2. Esta comuta¸ca˜o ´e feita pelo utilizador atrav´es do teclado, sendo o visor de

CHAPTER 6. O TESTADOR DE CCIS COM BST

90

Barramento de Endereços Geral [15..0] Barramento de Dados Geral [7..0]

Barramento de Dados Geral [7..0]

Latch

Cont. de teste

Endereços [19..0]

Memória

Cont. de teste

Dados [7..0]

Endereços [19..0]

Memória

Dados [7..0]

a)

b)

Figure 6.15: Acesso aos barramentos de dados e endere¸cos do bloco do controlador de teste Barramento de Endereços Geral [15..0] Barramento de Dados Geral [7..0]

Barramento de Dados Geral [7..0]

Latch

Desserial.

Endereços [17..0]

Memória

Dados [7..0]

a)

Desserial.

Endereços [17..0]

Memória

Dados [7..0]

b)

Figure 6.16: Acesso aos barramentos de dados e endere¸cos do bloco do desserializador cristais l´ıquidos usado para fornecer todas as indica¸co˜es necess´ arias.

6.2

Os modos de funcionamento

O bloco de comunica¸co˜es e controlo de actividades cont´em uma mem´ oria com um programa monitor, respons´ avel pelo controlo do funcionamento do testador. A rotina principal do programa pode ser esquematizada como se ilustra na figura 6.17. Neste diagrama identificam-se as trˆes sub-rotinas existentes e que correspondem a outras tantas fun¸co˜es permitidas pelo testador. A rotina de acesso a` mem´ oria permite ao utilizador especificar a mem´ oria a que pretende aceder. A rotina de rel´ ogio permite a selec¸ca˜o do rel´ ogio a aplicar ao controlador de teste. Existem duas op¸co˜es:

CHAPTER 6. O TESTADOR DE CCIS COM BST

91

Relógio

Rotina de relógio ESM

Relógio

Modo

Relógio

Modo

Rotina de acesso às memórias

Rotina de modo de operação ESM

ESM

Modo

Figure 6.17: Diagrama de estados da rotina principal • Rel´ ogio do sistema • Rel´ ogio fornecido pelo microcontrolador 80535 No primeiro caso, o programa de teste ´e executado desde o seu in´ıcio, at´e que uma de trˆes condi¸co˜es se torne verdadeira: • Fim do programa de teste. • Tecla de Reset do controlador de teste premida. • Tecla de selec¸ca˜o do rel´ ogio do controlador de teste premida. No caso de ser seleccionada a op¸ca˜o em que o rel´ ogio do controlador de teste ´e fornecido pelo microcontrolador 80535, torna-se poss´ıvel comandar o fluxo de execu¸ca˜o do programa de teste. Esta possibilidade de comando torna-se u ´til quando se pretende analisar e anotar as ac¸co˜es decorridas ao longo dessa execu¸ca˜o. Os modos de opera¸ca˜o poss´ıveis est˜ ao identificados na figura 6.18, que ilustra o diagrama de estados da rotina que os implementa. A funcionalidade e o prop´ osito de cada um destes modos pode ser descrito da seguinte forma: Passo-a-passo Neste modo o microcontrolador 80535 fornece um impulso de rel´ ogio ao controlador de teste, sempre que se premir a tecla Go. Este modo pode ser u ´til para se observar um evento esperado num n´ umero de impulsos de rel´ ogio relativamente curto.

CHAPTER 6. O TESTADOR DE CCIS COM BST

Relógio

ESM

Modo passo-a-passo

92

OK Fornece um impulso de relógio Go

Modo

Relógio

ESM

Breakpoint por endereço

OK Dá impulsos de relógio até encontrar endereço Go

Modo

Relógio

ESM

OK

Breakpoint por dados

Dá impulsos de relógio até encontrar dados Go Modo

Relógio

ESM

N impulsos de relógio

OK Fornece N impulsos de relógio Go

Modo

Relógio

Para a rotina correspondente

ESM

Fornece impulsos de relógio contínuos

Impulsos de relógio contínuos Go Modo

Figure 6.18: Diagrama de estados da rotina de modo de opera¸ca˜o

CHAPTER 6. O TESTADOR DE CCIS COM BST

93

Breakpoint por endere¸ co Neste modo de opera¸ca˜o ´e poss´ıvel executar o programa de teste at´e ser atingido um determinado endere¸co. A especifica¸ca˜o do endere¸co ´e feita atrav´es do teclado. Especificado o endere¸co, pode iniciar-se a execu¸ca˜o do programa premindo-se a tecla Go. Breakpoint por dados Similar ao modo de opera¸ca˜o anterior, este modo permite executar o programa de teste at´e um determinado c´ odigo ser encontrado no barramento de dados do controlador de teste. A forma de especificar o c´ odigo desejado e dar in´ıcio ao teste ´e idˆentica a` descrita no modo de opera¸ca˜o anterior. N impulsos de rel´ ogio Neste modo de opera¸ca˜o, o utilizador pode especificar um n´ umero de impulsos de rel´ ogio a ser fornecido pelo microcontrolador 80535 ao controlador de teste. Pode desta maneira executar-se um segmento de programa de uma s´ o vez. O n´ umero de impulsos de rel´ ogio ´e especificado atrav´es do teclado, tendo a execu¸ca˜o do programa in´ıcio quando se prime da tecla Go. Impulsos de rel´ ogio cont´ınuos Este modo de opera¸ca˜o permite que o programa de teste seja executado desde o endere¸co actual at´e ao fim, como um u ´nico bloco de ´ essencialmente u c´ odigo. E ´til para se executar o programa depois de feita toda a an´ alise e depura¸ca˜o. A utiliza¸ca˜o de cada um destes modos de funcionamento depende do objectivo pretendido pelo utilizador. No sentido de aumentar as possibilidades de atingir esse objectivo ´e poss´ıvel comutar entre cada um dos modos de funcionamento. A comuta¸ca˜o pode ser feita sempre que a condi¸ca˜o especificada, para o modo seleccionado, se torne verdadeira. Apresenta-se a seguir um exemplo poss´ıvel de execu¸ca˜o de um programa. • Correr o programa at´e ao endere¸co 00AA00H • Executar um passo de programa • Executar um passo de programa • Fornecer dez impulsos de rel´ ogio • Executar um passo de programa • Impulsos de rel´ ogio ininterruptos at´e ao fim do programa No cap´ıtulo seguinte ser´ a apresentado um exemplo de utiliza¸ca˜o do testador, sendo poss´ıvel visualizar a execu¸ca˜o do programa de teste em alguns dos modos de funcionamento aqui descritos.

CHAPTER 6. O TESTADOR DE CCIS COM BST

6.3

94

A gera¸ c˜ ao autom´ atica de programas de teste

A GAPT [100] produz os programas de teste que s˜ ao executados no testador e constitui o tema de uma outra tese de mestrado, desenvolvida em paralelo com esta [102]. O processo de gera¸ca˜o ter´ a lugar a partir da informa¸ca˜o de entrada, que descreve as caracter´ısticas da CCI a testar e ser´ a aqui brevemente apresentado, apenas com o objectivo de permitir ao leitor compreender como ´e gerado o programa de teste que ´e executado no testador. A informa¸ca˜o de entrada ´e constitu´ıda pelos trˆes tipos ilustrados na parte superior da figura 6.19, que representa o fluxo da informa¸ca˜o processada por esta ferramenta, a que foi dada a designa¸ca˜o de WinGAPT (de GAPT para Windows). Descrição da Infra. BST dos Componentes

Descrição da CCI

Vectores de Teste para Clusters

GAPT: Geração Automática de Programas de Teste

Programas de Teste

Relatório de Resultados

Figure 6.19: Fluxo de informa¸ca˜o na GAPT O ficheiro de descri¸ca˜o da CCI a testar cont´em os seguintes elementos: • Componentes existentes na carta • Constitui¸ca˜o de cada liga¸ca˜o • Identifica¸ca˜o das E/S prim´ arias existentes O segundo ficheiro cont´em a descri¸ca˜o da infraestrutura BST dos componentes que a possuem. Os c´ odigos das instru¸co˜es suportadas por cada componente, a caracteriza¸ca˜o de cada uma das c´elulas do registo de BS e os vectores para o teste da l´ ogica interna (quando pretendido) s˜ ao algumas das informa¸co˜es nele contido. O terceiro ficheiro cont´em os vectores de teste para grupos de l´ ogica n˜ ao BST, gerados previamente por uma ferramenta exterior.

CHAPTER 6. O TESTADOR DE CCIS COM BST

95

A GAPT produz dois ficheiros de sa´ıda: o programa de teste em linguagem Assembly do controlador de teste e um ficheiro que cont´em todos os vectores de teste a aplicar, as respostas esperadas e as m´ascaras de compara¸ca˜o. O programa de teste ´e ent˜ ao lido por um cross-assembler que produz igualmente dois ficheiros: • Ficheiro com o c´ odigo m´ aquina do programa de teste (ficheiro *.OBJ). Este ´e enviado pelo PC, atrav´es do canal RS-232C, para o testador. Uma caixa de di´ alogo permite configurar o canal de comunica¸ca˜o e comandar o processo de envio. • Relat´ orio com os endere¸cos do programa de teste, as instru¸co˜es em c´odigo m´ aquina e em assembly (ficheiro *.LST). Este relat´ orio ´e u ´til quando se pretende seguir a execu¸ca˜o do programa de teste num dos modos de funcionamento apresentados na sec¸ca˜o 6.2. O programa de teste produzido incluiu trˆes sec¸co˜es correspondentes a`s etapas de teste, ilustradas na figura 6.20. Infraestrutura Ligações Ligações BST Curto circuitos Circuitos abertos Ligações pertencentes a grupos de lógica não BST Componentes com auto-teste sem auto-teste

Figure 6.20: Etapas de teste de uma CCI No cap´ıtulo seguinte ser´ a apresentado um exemplo de utiliza¸ca˜o do testador, que inclui os aspectos relacionados com a utiliza¸ca˜o da ferramenta descrita.

6.4

Conclus˜ ao

Neste cap´ıtulo foi apresentada a arquitectura do testador de CCIs implementado com base nos componentes descritos no cap´ıtulo 4, tendo sido descritos os cinco blocos que a

CHAPTER 6. O TESTADOR DE CCIS COM BST

96

comp˜ oem. O n´ umero m´ aximo de cadeias de BS e E/S prim´ arias (anal´ ogicas e digitais) presentes numa carta a testar foi definido, tendo sido tipificados alguns exemplos de utiliza¸ca˜o correspondentes a diferentes configura¸co˜es do testador. Os modos de execu¸ca˜o do programa de teste foram igualmente apresentados. Finalmente foi abordada a gera¸ca˜o autom´ atica do programa de teste.

Chapter 7

Um Exemplo de Utiliza¸ c˜ ao ´ A utiliza¸ca˜o do testador ´e descrita neste cap´ıtulo, atrav´es de um exemplo concreto. E primeiramente descrita a CCI a testar, real¸cando-se os pontos que devem ser considerados para a configura¸ca˜o do testador. Refere-se o processo da gera¸ca˜o autom´ atica do programa de teste antes de se apresentar com algum detalhe a respectiva execu¸ca˜o, na ausˆencia de faltas e na presen¸ca de um curto entre duas liga¸co˜es. Nesta u ´ltima situa¸ca˜o a execu¸ca˜o ´e efectuada em dois modos diferentes: sem interrup¸co˜es a uma velocidade de 2,5 MHz, apenas para efeitos de detec¸ca˜o, e com Breakpoints por endere¸co de forma a se poder identificar o vector que detecta a falta. No final do cap´ıtulo ´e referido o processamento das respostas capturadas.

7.1

Descri¸ c˜ ao da CCI

A CCI usada neste exemplo de utiliza¸ca˜o encontra-se ilustrada na figura 7.1. Tratase de uma CCI relativamente pouco complexa, sendo de real¸car o facto de s´ o existirem componentes de montagem superficial. Refira-se que os circuitos presentes na CCI n˜ ao desempenham nenhuma fun¸ca˜o concreta, tendo sido escolhidos apenas com o objectivo de criar uma carta que re´ una as caracter´ısticas de cartas mais complexas (implementa¸ca˜o parcial de BST, com dois TAPs). O diagrama de blocos da carta, representado na figura 7.2, evidencia os aspectos a ter em considera¸ca˜o na configura¸ca˜o do testador e na gera¸ca˜o autom´ atica do programa de teste: o n´ umero e configura¸ca˜o das cadeias de BS existentes na carta; a quantidade e tipo de E/S prim´ arias e o tipo de liga¸co˜es presentes, servindo estes trˆes parˆ ametros de base para a descri¸ca˜o da CCI a testar. A carta possui duas cadeias de BS: a primeira, designada por cadeia 0 (TAP0) ´e constitu´ıda por dois buffers unidireccionais de oito canais (74BCT8244), sendo a segunda, designada de cadeia 1 (TAP1), constitu´ıda por um u ´nico buffer do mesmo tipo. O com97

˜ CHAPTER 7. UM EXEMPLO DE UTILIZAC ¸ AO

98

Figure 7.1: A CCI usada no exemplo de utiliza¸ca˜o TAP0

TAP1

Lógica não BST

8 entradas primárias digitais BCT8244

Lógica não BST

BCT8244

8 saídas primárias digitais BCT8244

Figure 7.2: Diagrama de blocos da CCI usada no exemplo de utiliza¸ca˜o primento do registo de instru¸ca˜o e do registo de BS de cada um dos componentes s˜ ao informa¸co˜es utilizadas na gera¸ca˜o autom´ atica do programa de teste, assunto que ser´ a discutido na sec¸ca˜o 7.3. O conector localizado no canto inferior esquerdo da carta (figura 7.1) agrupa as oito entradas e as oito sa´ıdas prim´ arias digitais. As entradas ligam a um dos buffers da cadeia 0 e as sa´ıdas ao buffer da cadeia 1, sendo umas e outras testadas por um controlador de teste de E/S prim´ arias digitais. Os tipos de liga¸co˜es presentes na carta a testar podem ser divididos nos tipos ilustrados na figura 7.3. O primeiro tipo (figura 7.3a) representa a liga¸ca˜o entre uma c´elula BS e uma E/S prim´ aria, que por sua vez ir´ a ligar a um pino bidireccional, configur´ avel como entrada ou como sa´ıda, de um controlador de teste de E/S prim´ arias. A c´elula BS pode pertencer a` cadeia 0 ou a` cadeia 1 da carta. O segundo tipo (figura 7.3b) representa a liga¸ca˜o entre duas c´elulas BS, que poder˜ ao ou n˜ ao pertencer a` mesma cadeia. O terceiro tipo de liga¸ca˜o

˜ CHAPTER 7. UM EXEMPLO DE UTILIZAC ¸ AO

99

(figura 7.3c) ´e o mais complexo, representando a liga¸ca˜o entre um pino de um componente sem BST e um pino de um componente com BST. Na carta utilizada para exemplo os blocos de l´ ogica n˜ ao BST encontram-se rodeados por c´elulas BS, o que facilita o teste deste tipo de liga¸co˜es. Refira-se por fim que as liga¸co˜es interiores aos grupos de l´ ogica n˜ ao BST n˜ ao precisam de ser explicitamente consideradas, j´ a que ser˜ ao testadas pelo conjunto de vectores de teste previamente gerados (por uma ferramenta exterior) para este fim.

E/S primária

Célula BS

Célula BS

Célula BS

Célula BS

Célula BS Lógica não BST

Ligação

Ligação

a)

b)

Ligação

Ligação

c)

Figure 7.3: Tipos de liga¸co˜es existentes na carta a testar A CCI a testar disp˜ oe ainda de v´ arios jumpers que permitem inserir nas liga¸co˜es existentes um conjunto de faltas, tais como circuitos abertos ou curto-circuitos entre pistas. As liga¸co˜es afectadas podem pertencer a` infraestrutura de teste ou a qualquer um dos tipos ilustrados na figura 7.3.

7.2

Configura¸ c˜ ao do testador em fun¸ c˜ ao da CCI

A configura¸ca˜o do testador consiste na defini¸ca˜o e estabelecimento do percurso da cadeia ligada ao TAP1 do controlador de teste. Este assunto foi j´ a abordado nas sec¸co˜es 6.1.3 e 6.1.4. Para o caso presente a carta a testar possui duas cadeias de BS e 16 E/S prim´ arias digitais, n´ umero que n˜ ao ultrapassa as capacidades de teste de um controlador de teste de E/S prim´ arias (26 E/S mais 10 entradas), o que aponta para a utiliza¸ca˜o de ´ poss´ıvel um u ´nico componente, embora fosse poss´ıvel distribuir a tarefa por v´ arios. E seleccionar qualquer um dos trˆes controladores existentes no testador atrav´es dos menus de configura¸ca˜o do WinGAPT. Para este exemplo escolheu-se o controlador existente na carta 1 do testador, evitando-se assim a utiliza¸ca˜o dos recursos existentes na carta 2. A carta 3 do testador n˜ ao ser´ a utilizada devido a` inexistˆencia de E/S prim´ arias anal´ ogicas na CCI a testar. Ap´ os a selec¸ca˜o dos recursos a utilizar, em fun¸ca˜o das caracter´ısticas da CCI a testar, configura-se o percurso da cadeia de BS ligada ao TAP1 do controlador de teste. O

˜ CHAPTER 7. UM EXEMPLO DE UTILIZAC ¸ AO

100

Carta 1 do testador Proc. BST

E/S 0

TAPs

TAPs

CCI a testar

Figure 7.4: Configura¸ca˜o do testador para o exemplo de utiliza¸ca˜o diagrama da figura 7.4 ilustra a configura¸ca˜o efectuada atrav´es dos jumpers existentes na carta 1. O percurso da cadeia 1 ser´ a ent˜ ao: controlador de teste, componente BST (um buffer) da carta a testar e controlador de teste de E/S prim´ arias da carta 1 do testador. A gera¸ca˜o do programa de teste atrav´es do WinGAPT constituir´ a a tarefa seguinte a` configura¸ca˜o do testador.

7.3

Gera¸ c˜ ao autom´ atica do programa de teste

Nesta sec¸ca˜o apresentam-se os passos necess´arios para a obten¸ca˜o do programa de teste para a carta que serve de exemplo. O primeiro passo consiste em fornecer a necess´ aria informa¸ca˜o de entrada, constitu´ıda por trˆes ficheiros: • Descri¸ca˜o da CCI a testar • Descri¸ca˜o da infraestrutura BST dos componentes utilizados na CCI • Vectores de teste para os grupos de l´ ogica n˜ ao BST A sintaxe e estrutura interna dos ficheiros que contˆem a informa¸ca˜o de entrada ´e descrita em [100, 102], onde se apresenta em pormenor a ferramenta WinGAPT. No menu principal do WinGAPT selecciona-se o menu Project Definitions, ilustrado na figura 7.5, que ´e constitu´ıdo por trˆes zonas de preenchimento e pelos bot˜ oes de selec¸ca˜o OK e Cancel. A primeira zona (` a esquerda da figura 7.5) ´e preenchida com o nome do projecto e os nomes dos ficheiros de entrada e de sa´ıda. A segunda zona (canto superior direito da figura 7.5) permite especificar quais as etapas de teste que s˜ ao inclu´ıdas no programa

˜ CHAPTER 7. UM EXEMPLO DE UTILIZAC ¸ AO

101

Figure 7.5: Menu Project Definitions do WinGAPT

de teste. Neste exemplo ser˜ ao gerados vectores para todas as etapas. Na terceira zona selecciona-se a vers˜ao do controlador de teste que ´e utilizada, que para o testador apresentado nesta tese corresponde a` terceira vers˜ ao. Ap´ os o preenchimento e verifica¸ca˜o dos campos contidos no menu, valida-se a informa¸ca˜o atrav´es da tecla OK. O passo seguinte consiste na gera¸ca˜o do programa de teste. No menu principal do WinGAPT selecciona-se o menu Generator, que apresenta o nome dos ficheiros, especificados no menu Project Definitions, que ir˜ ao ser processados e gerados. A selec¸ca˜o do bot˜ ao Make inicia o processo de cria¸ca˜o do programa de teste em linguagem assembly. As mensagens produzidas durante este processo s˜ ao escritas no quadro de mensagens do menu principal. No final desta tarefa ´e necess´ ario criar o ficheiro com o programa de teste em linguagem m´ aquina a partir do ficheiro em assembly. O WinGAPT disp˜ oe de um menu, para este efeito, que acede a um Cross-assembler. A selec¸ca˜o do bot˜ ao Make inicia o processo de convers˜ ao para c´ odigo objecto, que produz ainda um ficheiro relat´ orio com extens˜ ao LST. Este segundo ficheiro cont´em os endere¸cos e as instru¸co˜es do programa de teste em c´odigo m´ aquina e em assembly. O menu cont´em ainda quadros com informa¸co˜es relativas aos ficheiros utilizados, ao n´ umero de linhas processadas e a` existˆencia de erros durante a convers˜ ao. A u ´ltima tarefa consiste no envio, atrav´es da porta s´erie do PC, do ficheiro com o programa de teste em linguagem m´ aquina (extens˜ ao OBJ). O WinGAPT disp˜ oe de um

˜ CHAPTER 7. UM EXEMPLO DE UTILIZAC ¸ AO

102

menu que controla as comunica¸co˜es com o PC. A tecla Send Program permite iniciar o envio, existindo uma segunda tecla para a recep¸ca˜o das respostas aos vectores de teste. A recep¸ca˜o do programa de teste ´e feita pelo testador logo ap´ os o seu estado de Reset, sendo poss´ıvel enviar as respostas em qualquer momento, ap´ os a execu¸ca˜o parcial ou total do programa de teste.

7.4

Execu¸ c˜ ao do teste

O testador, ap´ os ter sido ligado, apresenta inicialmente a mensagem ilustrada na figura 7.6, sendo poss´ıvel nesta altura transferir informa¸ca˜o do PC para o testador.

Figure 7.6: Mensagem inicial apresentada pelo testador Antes ainda da execu¸ca˜o do programa de teste, deve seleccionar-se qual o rel´ ogio que ir´ a alimentar o controlador de teste: o rel´ ogio do sistema (Turbo Mode) ou o rel´ ogio fornecido pelo microcontrolador 80535 (Normal Mode). No primeiro caso o programa de teste ´e executado do princ´ıpio ao fim a uma velocidade de 2,5 MHz, enquanto que no segundo caso podem ser seleccionados os modos de funcionamento apresentados na sec¸ca˜o 6.2. Neste exemplo o programa de teste ´e executado primeiro a` velocidade m´ axima. Para isso selecciona-se o Turbo Mode (rel´ ogio a 2,5 MHz) atrav´es da tecla CLK Slct, que produz a mensagem ilustrada na figura 7.7. Para dar in´ıcio a` execu¸ca˜o carrega-se na tecla Go. A figura 7.8 corresponde a uma imagem capturada no ecran do oscilosc´ opio, durante a execu¸ca˜o do c´ odigo ilustrado na figura 7.13. O c´ odigo refere-se ao teste de integridade da

˜ CHAPTER 7. UM EXEMPLO DE UTILIZAC ¸ AO

103

Figure 7.7: Mensagem que indica o funcionamento do testador em TURBO mode

Figure 7.8: Imagem capturada no oscilosc´ opio durante a execu¸ca˜o do programa de teste em TURBO mode

˜ CHAPTER 7. UM EXEMPLO DE UTILIZAC ¸ AO

104

cadeia 1 do controlador de teste. O sinais 1, 2, 3 e 4 da figura 7.8 referem-se aos sinais (da carta sob teste) TMS1, TCK1, TDO1 e TDI1, respectivamente. Atente-se no pormenor de, nas duas ultimas transi¸co˜es ascendentes do primeiro conjunto de oito impulsos cont´ınuos de TCK, a linha TDO1 apresentar os valores 01, que correspondem aos valores capturados (obrigatoriamente) no registo de instru¸ca˜o de um componente BST (neste caso, um dos buffers instalado na carta sob teste). O fim da execu¸ca˜o do programa de teste ´e indicado pela mensagem ilustrada na figura 7.9. Um LED verde, que se encontra ligado a` linha Erro do controlador de teste, indica (quando aceso) a n˜ ao detec¸ca˜o de faltas. Um LED vermelho, ligado a` mesma linha, indica (quando aceso) a detec¸ca˜o de uma diferen¸ca entre um valor capturado e um valor esperado, o que ´e entendido como a detec¸ca˜o de uma falta no circuito sob teste.

Figure 7.9: Mensagem que indica o final da execu¸ca˜o de teste em TURBO mode A execu¸ca˜o do teste na presen¸ca de faltas ser´ a agora considerada, for¸cando-se uma falta do tipo ilustrado na figura 7.10: um curto-circuito entre duas entradas prim´ arias da CCI. Esta falta permite exemplificar duas situa¸co˜es: a detec¸ca˜o de uma falta entre pistas controladas/observadas por c´elulas BS pertencentes a cadeias diferentes e a aplica¸ca˜o pelo controlador de teste de E/S prim´ arias de um vector cuja resposta ´e capturada num componente situado na CCI sob teste. Ap´ os se ter introduzido a falta, torna-se a executar o programa de teste, acendendo-se no final deste o LED vermelho que indica a detec¸ca˜o de uma falta. Para se identificar o vector que detecta a falta, selecciona-se o modo de funcionamento normal (figura 7.11) e executa-se o programa no modo de Breakpoint por endere¸co, ilustrado na figura 7.12, especificando-se o endere¸co de cada uma das instru¸co˜es NSHFCP. Estes endere¸cos podem obter-se por simples leitura do ficheiro relat´ orio. Por exemplo, vˆe-se na figura 7.13 que o endere¸co HEX 00039 corresponde ao in´ıcio de um dos vectores pertencente a` sequˆencia de

˜ CHAPTER 7. UM EXEMPLO DE UTILIZAC ¸ AO

controlador de teste de E/S primarias situado na carta 1 do testador

105

Octal situado na CCI sobre teste

1 1

0

1 0

Cadeia BS ligada ao TAP1

0

Cadeia BS ligada ao TAP0

Figure 7.10: Falta do tipo curto-circuito entre duas entradas prim´ arias

Figure 7.11: Mensagem apresentada pelo testador no modo de funcionamento normal

Figure 7.12: Mensagem apresentada pelo testador no modo de funcionamento Breakpoint por endere¸co

˜ CHAPTER 7. UM EXEMPLO DE UTILIZAC ¸ AO

106

teste da infraestrutura BST. Ap´ os se ter identificado o vector que detecta a falta, faz-se uma correspondˆencia aos vectores indicados na sec¸ca˜o 6.3, de maneira a determinar o tipo de falta. Neste caso, verifica-se que a falta foi detectada pelo conjunto de vectores gerados para o teste de curto-circuitos entre liga¸co˜es BST. Atrav´es deste exemplo, pode real¸car-se o interesse de colocar no programa de teste, um salto para o fim do programa em caso de ter sido detectada alguma falta, no final da recep¸ca˜o de cada um dos vectores que constitui uma resposta a um vector aplicado. Desta maneira, na mem´ oria das respostas ao teste, o u ´ltimo vector armazenado corresponde precisamente a` resposta ao vector que detectou a falta.

00000000 00000000 00000000 00000000 00000000 00000000 00000000

; ************************************************** ; ; AUTOMATIC TEST PATTERN GENERATOR FOR BST ; Assembly souce code generator ; (c) INESC PORTO, 1992/1993 ; ; ************************************************** ...

00000010 00000010 00000010

;

Sequence to test the BST infrastructure ...

00000031 00000032 00000032 00000033 00000034 00000035 00000036 00000039 0000003a 0000003d 00000040 00000043 00000046 0000004a 0000004b

1b

seltap1

01 01 00 00 02 05 fd 03 28 08 06 01

tms1 tms1 tms0 tms0 ld nshfcp .db .db .db .db jpe tms1

00 1c f5 f7 0f 00 00

0f fc ff 0f 05 9b

; (switch to) TAP 1 ; Select DR Scan ; Select IR Scan ; Capture IR ; Shift IR c16,28 ; Length of IR’s ; Shift in the SAMPLE/PRELOAD opcode $fd,$f5,$0f $03,$f7,$fc $28,$0f,$ff $08,$00,$0f theend ; stop the test if a fault is found ; Update IR

...

Figure 7.13: Extracto do ficheiro relat´ orio do programa de teste No final da execu¸ca˜o parcial ou total do programa de teste, os vectores capturados

˜ CHAPTER 7. UM EXEMPLO DE UTILIZAC ¸ AO

107

Figure 7.14: Mensagem apresentada pelo testador ap´ os a transferˆencia, para o PC, do conte´ udo da mem´ oria das respostas ao teste encontram-se armazenados na mem´ oria das respostas ao teste, podendo ser transferidos para o PC, tal como se ilustra na figura 7.14. Estes vectores apenas s˜ ao u ´teis quando se detecta alguma falta. Nessa situa¸ca˜o poderiam processar-se as respostas de forma a localizar a falta, ou caso tal n˜ ao seja poss´ıvel devido ao n´ıvel de resolu¸ca˜o dos vectores gerados ser insuficiente, poder-se-ia recorrer a um algoritmo que, com base nas respostas capturadas, gerasse um segundo conjunto de vectores com um n´ıvel de resolu¸ca˜o superior, de forma a localizar a falta. Este tipo de situa¸ca˜o foi prevista aquando da especifica¸ca˜o do WinGAPT, n˜ ao estando por´em ainda implementada.

7.5

Conclus˜ ao

´ poss´ıvel, atrav´es do exemplo apresentado, verificar o funcionamento e as capacidades E do testador. O processo de teste de uma determinada CCI come¸ca pela cria¸ca˜o de toda a informa¸ca˜o necess´ aria para a gera¸ca˜o autom´ atica do programa de teste, a que se segue a configura¸ca˜o do testador, de acordo com as caracter´ısticas da CCI a testar. As capacidades do testador para a execu¸ca˜o do programa de teste em diferentes modos foram apresentadas no cap´ıtulo 6, exemplificando-se aqui a utiliza¸ca˜o de dois desses modos, de forma a detectar uma falta introduzida na CCI sob teste.

Chapter 8

Conclus˜ ao Os primeiros CIs de tipo SSI/MSI eram do ponto de vista do teste f´ aceis de tratar, dado serem pouco complexos, possuirem poucos pinos e um espa¸camento entre eles na ordem das 100 milipolegadas (aprox. 2,5 mm). As primeiras CCIs, possuidoras destes CIs, eram assim facilmente test´ aveis, sendo o teste efectuado a partir dos conectores da carta sem necessidade de se aceder a n´os internos. Com o aparecimento dos primeiros CIs do tipo LSI/VLSI, o n´ umero m´ aximo de pinos por componente aumentou e a complexidade da l´ ogica interna passou a estar ao mesmo n´ıvel da complexidade de algumas CCIs. Assim, algumas CCIs come¸caram a levantar problemas ao teste a partir dos conectores, dada a dificuldade em propagar o valor de alguns n´ os internos para o exterior. A solu¸ca˜o veio na forma de novos testadores equipados com uma matriz-de-agulhas que permitia o acesso aos n´ os internos da CCI. Estes testadores baseavam-se no entanto no facto de todas as liga¸co˜es serem vis´ıveis na parte inferior da CCI em virtude de todos os componentes serem do tipo DIP. Mais uma vez, a situa¸ca˜o alterou-se com o aparecimento da tecnologia de montagem superficial de componentes. O espa¸camento entre pinos reduziu dr´ asticamente (m´ın. 0,5 mm) e muitas das liga¸co˜es passaram a n˜ ao ser vis´ıveis na parte inferior da ´ nesta altura CCI, dificultando, ou impossibilitando, o acesso f´ısico aos n´ os internos. E que um grupo de fabricantes de CIs (inicialmente composto por companhias europeias e posteriormente alargado a companhias norte-americanas) lan¸ca a proposta para a norma IEEE 1149.1: o Boundary Scan Test (BST). Cada CI passa a dispˆ or de uma infraestrutura de teste, com o objectivo de facilitar o teste estrutural de CCIs digitais. Esta infraestrutura representa no entanto um custo adicional em face da inclus˜ ao de mais quatro pinos (o quinto ´e opcional) e da l´ ogica de teste. No cap´ıtulo 2 relatou-se com detalhe esta evolu¸ca˜o, referindo-se a terminologia e os conceitos existentes na ´area do teste electr´ onico de circuitos digitais. O BST foi ainda de108

˜ CHAPTER 8. CONCLUSAO

109

scrito com mais pormenor. No cap´ıtulo 3 deu-se uma ideia geral do estado de implanta¸ca˜o da tecnologia BST ao n´ıvel dos CIs, das ferramentas de CAD e dos equipamentos de teste. Foram apresentados alguns componentes comerciais vocacionados para o teste e referiramse aplica¸co˜es alternativas possibilitadas pela existˆencia da infraestrutura BST em alguns CIs. Estes dois cap´ıtulos formam a parte introdut´ oria da tese. As CCIs mistas, i.e. que possuem componentes com e sem BST, apresentam geralmente fracos ´ındices de testabilidade, em virtude dos n´ıveis baixos de CO das liga¸co˜es em grupos de componentes n˜ ao BST. Esta situa¸ca˜o pode ser melhorada com a adop¸ca˜o de solu¸co˜es de testabilidade que permitam ao projectista estender a infraestrutura BST existente na CCI, nomeadamente atrav´es da inclus˜ ao de componentes vocacionados para o teste. Por´em, a variedade existente n˜ ao ´e extensa, e em certos casos n˜ao se consegue adaptar as capacidades destes `as necessidades espec´ıficas de cada CCI. Esta situa¸ca˜o motivou o desenvolvimento de um conjunto de componentes vocacionados para o teste de CCIs atrav´es de BST, fazendo igualmente parte das especifica¸co˜es a utiliza¸ca˜o na fase de projecto de uma HDL poderosa e f´ acil de aprender e ainda a implementa¸ca˜o dos circuitos em dispositivos program´ aveis. Estas duas directivas respondem a` necessidade de f´ acil adapta¸ca˜o das capacidades dos componentes desenvolvidos a`s caracter´ısticas particulares de cada CCI a testar. No cap´ıtulo 4 descreveu-se a base do trabalho, ou seja, o desenvolvimento dos componentes vocacionados para o teste de CCIs atrav´es de BST. Defeniram-se os requisitos a que devem obdecer os componentes, os fins a que se destinam e apresentou-se detalhadamente as caracter´ısticas de cada um: o controlador para o teste de E/S prim´ arias digitais, o controlador para o teste de grupos de l´ ogica n˜ ao BST, o controlador para o teste de n´ os anal´ ogicos e o controlador de teste residente para implementa¸ca˜o de auto-teste ao n´ıvel da CCI. Nos cap´ıtulos 5 e 6 abordaram-se duas utiliza¸co˜es complementares dos componentes desenvolvidos. No cap´ıtulo 5 procurou-se sistematizar um conjunto de solu¸co˜es de testabilidade para CCIs com BST, que fa¸cam uso de alguns dos componentes desenvolvidos. As solu¸co˜es propostas foram analisadas em termos de custo de implementa¸ca˜o, tendo-se procurado justificar o overhead associado a` inclus˜ ao de componentes vocacionados para o teste. No cap´ıtulo 6 descreveu-se a constru¸ca˜o com base nos componentes desenvolvidos de um testador de baixo custo para CCIs com BST. Apresentou-se a arquitectura f´ısica do testador, as suas capacidades e o programa monitor que controla o funcionamento interno e o interface com o utilizador. Os v´ arios modos de funcionamento do testador foram ainda apresentados neste cap´ıtulo. No cap´ıtulo 7 apresentou-se um exemplo de utiliza¸ca˜o do testador, atrav´es do teste de uma CCI possuidora de componentes de montagem superficial com e sem BST.

˜ CHAPTER 8. CONCLUSAO

110

Os resultados obtidos podem ser divididos em trˆes n´ıveis: os referentes aos componentes desenvolvidos, ao testador e a`s solu¸co˜es de testabilidade propostas. A utiliza¸ca˜o dos componentes no desenvolvimento de duas tarefas diferentes: o aumento da testabilidade de CCIs mistas e a constru¸ca˜o a baixo custo de um testador, demonstrou a versatilidade do trabalho efectuado neste dom´ınio. A utiliza¸ca˜o de uma HDL revelou-se uma boa escolha, tendo facilitado a introdu¸ca˜o de altera¸co˜es pontuais. No entanto, a implementa¸ca˜o do controlador de teste residente numa PLD, n˜ ao permitiu que se continuasse a dispˆ or da infraestrutura BST existente na vers˜ ao ASIC. A HDL utilizada, denominada AHDL (Altera Hardware Description Language), n˜ ao ´e uma norma, dificultando assim a utiliza¸ca˜o do c´ odigo por terceiros. A passagem para VHDL poderia trazer vantagens na dissemina¸ca˜o de resultados. A utiliza¸ca˜o do TAP1, do controlador de teste, no interior do testador e na carta sob teste tem dado algum problemas, nomeadamente quando se efectua o teste em TURBO mode (rel´ ogio a 2,5 MHz). Estes problemas resultam de efeitos de transmiss˜ ao nas linhas, uma vez que se utiliza um flat cable para ligar a carta sob teste, e o backplane para liga¸ca˜o entre as cartas do testador. A carta 3 do testador poderia igualmente ser melhorada. A utiliza¸ca˜o de conversores do tipo flash e inclus˜ ao de uma mem´ oria no interior do controlador de teste de n´ os anal´ ogicos, produziria talvez melhores resultados, em virtude se poder aumentar a taxa de amostragem. No geral, o testador tem-se revelado u ´til, tendo mesmo sido utilizado por outro grupo do INESC no desenvolvimento de um trabalho relacionado com a proposta IEEE P1149.4. As solu¸co˜es de testabilidade propostas precisam, talvez, de sofrer uma an´ alise mais vasta e aprofundada. N˜ ao ´e uma mat´eria f´ acil de tratar em virtude do n´ umero de situa¸co˜es diferentes que se podem encontrar em CCIs mistas. Propˆ os-se uma defini¸ca˜o para caracterizar os tipos de liga¸ca˜o existentes em CCIs mistas, tendo-se feito algum esfor¸co para sistematizar as solu¸co˜es em fun¸ca˜o dos tipos de liga¸co˜es definidos. Esta ser´ a talvez a a´rea em que poder´ a ser desenvolvido um trabalho de investiga¸ca˜o mais profundo, nomeadamente na constru¸ca˜o de ferramentas autom´ aticas que analisem a CCI mista e insiram os componentes vocacionados para o teste de modo a aumentar a sua testabilidade. Em termos de direc¸co˜es futuras pode afirmar-se que muito h´ a ainda para fazer. O primeiro passo poder´ a ser a inclus˜ ao de novas capacidades nos componentes desenvolvidos, nomeadamente dot´ a-los de mecanismos que possibilitem a sua utiliza¸ca˜o na depura¸ca˜o de projecto de CCIs mistas e na emula¸ca˜o de blocos de l´ ogica n˜ ao BST. O suporte das propostas P1149.4 e P1149.5, por alguns dos componentes desenvolvidos, seria talvez uma segunda a´rea de trabalho interessante. Um estudo mais aprofundado da utiliza¸ca˜o

˜ CHAPTER 8. CONCLUSAO

111

destes componentes, em paralelo com alguns dos componentes comerciais existentes no teste de CCIs com implementa¸ca˜o parcial de BST, deveria igualmente ser considerado. A implementa¸ca˜o de auto-teste no controlador de teste residente e a inclus˜ ao de um modo especial no controlador para o teste de blocos de l´ ogica n˜ ao BST que permita r´ apidamente, sem necessidade de deslocar novos valores, testar mem´orias de leitura/escrita, deveria igualmente ser efectuada. Para finalizar, as aplica¸co˜es alternativas possibilitadas pela existˆencia da infraestrutura BST em componentes reprogram´ aveis deveriam ser exploradas, no sentido de avaliar quais as vantagens de se implementar os componentes desenvolvidos em CPLDs que possuam estas facilidades.

Bibliography [1] R. G. Bennetts, Design of Testable Logic Circuits. Addison-Wesley Publishers Ltd, 1984. ISBN 0-8449-1385-0. [2] C. M. Maunder, The Board Designer’s Guide to Testable Logic Circuits. AddisonWesley Publishers Ltd, 1992. ISBN 0-201-56513-7. [3] F. F. Tsui, LSI/VLSI Testability Design. McGraw-Hill, 1988. ISBN 0-07-065341-0. [4] M. Abramovici, M. A. Breuer, e A. D. Friedman, Digital Systems Testing and Testable Design. Computer Science Press, 1990. ISBN 0-7167-8179-4. [5] J. Bateson, In-Circuit Testing. Van Nostrand Reinhold Company Inc., 1985. ISBN 0-442-21284-4. [6] R. J. K. Wassinik, Soldering in Electronics. Electromechanical Publications, 1984. ISBN 0-901150-14-2. [7] J. M. Cortner, Digital Test Engineering. John Wiley & Sons, 1987. ISBN 0-47185135-3. [8] V. D. Agrawal e S. C. Seth, Test Generation for VLSI Chips. IEEE Computer Society Press, 1988. ISBN 0-8186-4786-8. [9] J. P. Roth, “Diagnosis of automata failures: A calculus and a method,” IBM Journal Research and Development, vol. 10, pp. 278–291, Jul. 1966. [10] P. Goel e B. C. Rosales, “PODEM-X: An automatic test generation system for VLSI logic structures,” em 18th IEEE Design Automation Conference, pp. 260–268, IEEE Computer Society Press, 1981. [11] H. Fujiwara e T. Shimono, “On the accelaration of test generation algorithms,” IEEE Transactions on Computers, vol. C-32, pp. 1137–1144, Dez. 1983. 112

BIBLIOGRAPHY

113

[12] G. D. Robinson, “HITEST-intelligent test generation,” em International Test Conference, pp. 311–323, IEEE Computer Society Press, 1983. [13] E. Eichelberger e T. Williams, “A logic design structure for LSI testability,” em Design Automation Conference, pp. 462–468, IEEE Computer Society Press, 1977. [14] A. P. Ambler, M. Paraskeva, D. F. Burrows, W. L. Knight, e I. Dear, “Economically viable automatic insertion of self-test features for custom VLSI,” em International Test Conference, pp. 232–243, IEEE Computer Society Press, 1986. [15] E. J. McCluskey e S. Bozorgui-Nesbat, “Design for autonomous test,” IEEE Transactions on Computers, vol. C, pp. 860–875, Nov. 1981. [16] E. J. McCluskey, “Built-in self test techniques,” IEEE Design and Test, vol. C, pp. 21–28, Abr. 1985. [17] E. J. McCluskey, “Built-in self test structures,” IEEE Design and Test, vol. C, pp. 29–36, Abr. 1985. [18] J.-C. Lien e M. A. Breuer, “A universal test and maintenance controller for modules and boards,” IEEE Transactions on Industrial Electronics, vol. 36, pp. 231–240, Maio 1989. [19] Draft Standard: Standard Module Test and Maintenance (MTM) Bus Protocol Draft 1.0.2, Ago. 1993. IEEE P1149.5. [20] R. G. Bennetts, Introduction to Digital Board Testing. Crane Russak, New York, 1982. ISBN 0-201-14403-4. [21] C. M. Maunder e R. E. Tulloss, “Test technology prior to IEEE Std 1149.1,” em The Test Access Port and Boundary Scan Architecture, cap. 1, pp. 3–9, IEEE Computer Society Press, 1990. [22] IEEE Standard Test Access Port and Boundary-Scan Architecture, Fev. 1990. IEEE Std. 1149.1. [23] R. G. Bennetts e A. Osseyran, “IEEE Standard 1149.1-1990 on boundary scan: History, literature survey and current status,” Journal of Electronic Testing Theory and Applications, vol. 2, pp. 11–25, Mar. 1991. [24] C. M. Maunder e R. E. Tulloss, “The development of IEEE Std 1149.1,” em The Test Access Port and Boundary Scan Architecture, cap. 3, pp. 23–30, IEEE Computer Society Press, 1990.

BIBLIOGRAPHY

114

[25] C. M. Maunder e R. E. Tulloss, “IEEE Std 1149.1: The top-level view,” em The Test Access Port and Boundary Scan Architecture, cap. 4, pp. 33–49, IEEE Computer Society Press, 1990. [26] C. M. Maunder e R. E. Tulloss, “An introduction to the boundary scan standard: ANSI/IEEE 1149.1,” Journal of Electronic Testing Theory and Applications, vol. 2, pp. 27–42, Mar. 1991. [27] K. P. Parker, The Boundary-Scan Handbook. Kluwer Academic Publishers, 1992. ISBN 0-7923-9270-1. [28] IEEE Standard Test Access Port and Boundary-Scan Architecture, Out. 1993. IEEE Std. 1149.1 (Includes IEEE Std. 1149.1a). [29] J. Hirzer, “Testing mixed analog/digital ICs,” em The Test Access Port and Boundary Scan Architecture, cap. 19, pp. 199–204, IEEE Computer Society Press, 1990. [30] H. Vefling e M. Viktil, “Test of mixed analog/digital components by boundary scan methods,” relat´ orio t´ecnico, EB Technology, Nov. 1990. [31] C. W. Thatcher e R. E. Tulloss, “Towards a test standard for board and system level mixed-signal interconnects,” em International Test Conference, pp. 300–308, IEEE Computer Society Press, 1993. [32] N. C. Lee, “A hierarchical analog test bus framework for testing mixed-signal integrated circuits and printed circuit boards,” Journal of Electronic Testing Theory and Applications, vol. 4, pp. 361–368, Nov. 1993. [33] B. Wilkins, “P1149.4—towards a mixed-signal test bus,” TEST, Abr. 1993. [34] J. Novellino, “Standards group making progress on mixed-signal test bus standard,” Electronic Design, p. 35, Maio 1993. [35] K. P. Parker, J. E. McDermid, e S. Oresjo, “Structure and metrology for an analog testability bus,” em International Test Conference, pp. 309–322, IEEE Computer Society Press, 1993. [36] Xilinx, The Programmable Logic Data Book, 1994. [37] Intel, Programmable Logic, 1994. [38] Altera, Data Book, 1995.

BIBLIOGRAPHY

115

[39] AMD, MACH 3 and 4 Family Data Book, 1993. [40] Intel, INTEL 486T M SX MicroProcessor, 1991. [41] M. G. Gallup, W. L. J. R. McGarity, S. McMahan, K. C. Scheuer, C. G. Shepard, e L. Sood, “Testability features of the 68040,” em International Test Conference, pp. 749–757, IEEE Computer Society Press, 1990. [42] W. C. Bruce, M. G. Gallup, G. Giles, e T. Munns, “Implementing 1149.1 on CMOS microprocessors,” em International Test Conference, pp. 879–886, IEEE Computer Society Press, 1991. [43] A. L. Crouch, M. Pressly, e J. Circello, “Testability features of the MC68060 microprocessor,” em International Test Conference, pp. 60–69, IEEE Computer Society Press, 1994. [44] A. Crouch, R. Ramus, e C. Maunder, “Low power mode and IEEE 1149.1 compliance: A low power solution,” em International Test Conference, pp. 660–669, IEEE Computer Society Press, 1994. [45] D. D. Josephson, D. J. Dixon, e B. J. Arnold, “Test features of the HP PA7100LC processor,” em International Test Conference, pp. 764–772, IEEE Computer Society Press, 1993. [46] R. Patel e K. Yarlagadda, “Testability features of the SuperSP ARC T M microprocessor,” em International Test Conference, pp. 773–781, IEEE Computer Society Press, 1993. [47] K. Holdbrook, S. Joshid, S. Mitra, J. Petolino, R. Raman, e M. Wong, “microSP ARC T M : A Case-Study of Scan Based Debug,” em International Test Conference, pp. 70–75, IEEE Computer Society Press, 1994. [48] C. Hunter, E. K. Vida-Torku, e J. LeBlanc, “Balancing structured and ad-hoc design for test: Testing of the PowerPC 603T M microprocessor,” em International Test Conference, pp. 76–83, IEEE Computer Society Press, 1994. [49] D. K. Bhavsar e J. H. Edmondson, “Testability strategy of the Alpha AXP 21164 microprocessor,” em International Test Conference, pp. 50–59, IEEE Computer Society Press, 1994. [50] Intel, P EN T IU M T M PROCESSOR at iCOM P T M INDEX 735/90 Mhz, 1994.

BIBLIOGRAPHY

116

[51] National Semiconductor, SCAN T M Databook, 1994. [52] Texas Instruments, SCOP E T M Logic Products—Application and Data Manual, 1994. [53] M. A. Breuer e J.-C. Lien, “A test and maintenance controller for a module containing testable chips,” em International Test Conference, pp. 502–513, IEEE Computer Society Press, 1988. [54] A. Hlawiczka e D. Badura, “Universal test controller chip for board self test,” em Proceedings of Fault-Tolerant Computing Systems, pp. 165–175, IEEE Computer Society Press, 1987. [55] AT&T, AT&T Boundary-Scan Master User Manual, 1991. [56] N. Jarwala e C. W. Yau, “Achieving board-level BIST using the boundary-scan master,” em International Test Conference, pp. 649–658, IEEE Computer Society Press, 1991. [57] L. Whetsel, “Event qualification: A gateway to at-speed system testing,” em International Test Conference, pp. 135–141, IEEE Computer Society Press, 1990. [58] W. D. Ballew e L. M. Streb, “Board-level boundary scan: Regaining observability with an additional IC,” em International Test Conference, pp. 182–189, IEEE Computer Society Press, 1989. [59] W. D. Ballew e L. M. Streb, “Board-level boundary scan: Regaining observability with an additional IC,” IEEE Transactions on Computer-Aided Design, vol. 11, pp. 68–75, Jan. 1992. [60] L. Whetsel, “An IEEE 1149.1 based logic/signature analyzer in a chip,” em International Test Conference, pp. 869–878, IEEE Computer Society Press, 1991. [61] C. Poirier, “IEEE P1149.5 to IEEE 1149.1 data and protocol conversion,” em International Test Conference, pp. 527–535, IEEE Computer Society Press, 1993. [62] O. F. Haberl e T. Kropf, “Self testable boards with standard IEEE P1149.5 module test and maintenace (MTM) bus interface,” em International Test Conference, pp. 527–535, IEEE Computer Society Press, 1993. [63] L. Whetsel, “A proposed method of accessing 1149.1 in a backplane environment,” em International Test Conference, pp. 206–216, IEEE Computer Society Press, 1992.

BIBLIOGRAPHY

117

[64] L. Whetsel, “Hierarchically accessing 1149.1 applications in a system environment,” em International Test Conference, pp. 517–526, IEEE Computer Society Press, 1993. [65] J. Novellino, “On-chip test ports offer a haven,” Electronic Design, vol. 11, p. 20, Abr. 1994. [66] K. Ahrens, “Test standard speeds on-board programming,” Electronic Design, vol. 11, pp. 107–112, Nov. 1994. [67] R. M. Sedmak, “Boundary-scan: Beyond production test,” em International Test Conference, pp. 415–420, IEEE Computer Society Press, 1994. [68] W. Daniel, “Design verification of a high density computer using 1149.1,” em International Test Conference, pp. 84–90, IEEE Computer Society Press, 1992. [69] P. Fleming, “Applications of IEEE Std 1149.1: An overview,” em The Test Access Port and Boundary Scan Architecture, cap. 11, pp. 129–140, IEEE Computer Society Press, 1990. [70] D. W. Raymond, D. Haigh, R. Bodick, B. Ryan, e D. McCombs, “Non-volatible programmable devices and in-circuit test,” em International Test Conference, pp. 817– 823, IEEE Computer Society Press, 1994. [71] D. Strassberg, “ASIC test: It’s a new ball game,” EDN, vol. 11, pp. 24–32, Fev. 1995. [72] J. Novellino, “ASIC vendors looking for test help,” Electronic Design, vol. 11, p. 20, Ago. 1994. [73] M. Muris, “Integrating boundary scan test into an ASIC design flow,” em International Test Conference, pp. 472–477, IEEE Computer Society Press, 1990. [74] Tektronix, IntegraT M Series VXI Boundary-Scan Solutions, 1993. [75] Texas Instruments, ASSET T M Diagnostics System Product Family, 1992. [76] Fluke, Test and Measurement Catalog, 1994. [77] J. M. M. Ferreira, M. G. Gericota, J. L. Ramalho, e G. R. Alves, “An HDL-based approach to BIST of 1149.1 - compatible boards,” em International Design and Automation Workshop, pp. 53–58, Academia das Ciˆencias da Russia, 1993.

BIBLIOGRAPHY

118

[78] G. R. Alves, M. G. Gericota, J. L. Ramalho, e J. M. M. Ferreira, “An HDL approach to board-level BIST,” em Euro Design and Automation Conference, pp. 410–415, IEEE Computer Society Press, 1993. [79] J. M. M. Ferreira, M. G. Gericota, J. L. Ramalho, e G. R. Alves, “BIST for 1149.1 compatible boards: A low-cost and maximum-flexibility solution,” em International Test Conference, pp. 536–543, IEEE Computer Society Press, 1993. [80] P. Hansen, “Taking advantage of boundary-scan in loaded-board test,” em The Test Access Port and Boundary Scan Architecture, cap. 7, pp. 81–96, IEEE Computer Society Press, 1990. [81] P. Hansen, “Assessing fault coverage in virtual in-circuit testing of partial boundaryscan boards,” em European Test Conference, pp. 393–396, IEEE Computer Society Press, 1991. [82] G. D. Robinson e J. G. Deshayes, “Interconnect testing of boards with partial boundary-scan,” em International Test Conference, pp. 572–581, IEEE Computer Society Press, 1990. [83] R. E. Tulloss e C. W. Yau, “BIST & boundary scan for board level test: Test program pseudocode,” em European Test Conference, pp. 106–111, IEEE Computer Society Press, 1989. [84] J. M. Ferreira, J. S. Matos, e F. S. Pinto, “Automatic generation of a single-chip solution for board-level BIST of boundary scan boards,” em European Design and Automation Conference, pp. 154–158, IEEE Computer Society Press, 1992. [85] J. M. M. Ferreira, “O teste de cartas de circuito impresso com BST: Arquitectura de um controlador residente, e gera¸ca˜o autom´ atica do programa de teste,” Abr. 1992. Tese submetida para obten¸ca˜o do grau de Doutor em Engenharia Electrot´ecnica e de Computadores. [86] N. Jarwala e C. W. Yau, “A new framework for analyzing test generation and diagnosis algorithms for wiring interconnects,” em International Test Conference, pp. 63–70, IEEE Computer Society Press, 1989. [87] P. J. Dickinson e B. R. Wilkins, “Interconnect testing for bus-structured systems,” em European Test Conference, pp. 476–483, IEEE Computer Society Press, 1993.

BIBLIOGRAPHY

119

[88] C. W. Yau e N. Jarwala, “A unified theory for designing optimal test generation and diagnosis algorithms for boards interconnects,” em International Test Conference, pp. 71–77, IEEE Computer Society Press, 1989. [89] F. de Jong e A. J. de Lind van Wijngaarden, “Memory interconnection test at board level,” em International Test Conference, pp. 328–337, IEEE Computer Society Press, 1992. [90] M. F. Lefebvre, “Functional test and diagnosis: A proposed JTAG sample mode scan tester,” em International Test Conference, pp. 294–303, IEEE Computer Society Press, 1990. [91] P. Hansen, “Testing conventional logic and memory clusters using boundary scan devices as virtual ATE channels,” em International Test Conference, pp. 166–173, IEEE Computer Society Press, 1989. [92] J. Coleman e R. Thorpe, “Boundary scan speeds static memory tests,” Electronic Design, vol. 41, pp. 61–73, Fev. 1993. [93] A. J. van de Goor e O. Jansen, “Self test for the INTEL 8085,” em North-Holland Microprocessor and Microprogramming, pp. 165–175, 1990. [94] G. Alves, M. Gericota, J. Tavares, e J. M. Ferreira, “A VHDL library for MTM/BST communication,” Maio 1994. apresentado na 21st CAVE Workshop, Sesimbra. [95] G. Alves, M. Gericota, J. Ramalho, e J. Ferreira, “Sistema modular para o teste de cartas de circuito impresso com BST.” Actas do ENDIEL 93, Abr. 1993. [96] J. A. R. Tavares e J. Ferreira, “Gera¸ca˜o autom´ atica de programas de teste para cartas de circuito impresso com BST.” Actas do ENDIEL 93, Abr. 1993. [97] J. M. M. Ferreira, J. S. Matos, e F. Pinto, “Sistema de valida¸ca˜o e teste de cartas de circuito impresso com BST,” Jul. 1991. Projecto PMCT/C/TIT/937/90 - Relat´ orio no. 1 - Defini¸ca˜o de Requisitos. [98] J. M. M. Ferreira, A. J. Ara´ ujo, F. Pinto, J. Tavares, G. Alves, e J. S. Matos, “Sistema de valida¸ca˜o e teste de cartas de circuito impresso com BST,” Nov. 1991. Projecto PMCT/C/TIT/937/90 - Relat´ orio no. 2 - Especifica¸ca˜o da Arquitectura Global.

BIBLIOGRAPHY

120

[99] G. Alves, J. Tavares, M. Gericota, J. Ramalho, F. Pinto, e J. Ferreira, “Sistema de valida¸ca˜o e teste de cartas de circuito impresso com BST,” Jan. 1993. Projecto PMCT/C/TIT/937/90 - Relat´ orio no. 3 - Hardware: Implementa¸ca˜o e Verifica¸ca˜o. [100] J. Tavares, G. Alves, M. Gericota, J. Ramalho, F. Pinto, e J. Ferreira, “Sistema de valida¸ca˜o e teste de cartas de circuito impresso com BST,” Jan. 1993. Projecto PMCT/C/TIT/937/90 - Relat´ orio no. 4 - Software: Implementa¸ca˜o e Verifica¸ca˜o. [101] J. Tavares, G. Alves, M. Gericota, J. Ramalho, F. Pinto, e J. Ferreira, “Sistema de valida¸ca˜o e teste de cartas de circuito impresso com BST,” Dez. 1993. Projecto PMCT/C/TIT/937/90 - Relat´ orio Final do Projecto. [102] J. A. Tavares, “Gera¸ca˜o de programas de teste para cartas de circuito impresso com BST,” Jun. 1995. Tese submetida para obten¸ca˜o do grau de Mestre em Engenharia Electrot´ecnica e de Computadores.

Lihat lebih banyak...

Comentários

Copyright © 2017 DADOSPDF Inc.