40
Curso de Engenharia de Computação UM ESTUDO DA TECNOLOGIA BOUNDARY-SCAN Ricardo Fernandes Itatiba – São Paulo – Brasil Novembro de 2004

Curso de Engenharia de Computação UM …lyceumonline.usf.edu.br/salavirtual/documentos/97.pdfvii Lista de Figuras FIGURA 1 – TESTADOR IN-CIRCUIT (ADAPTADO DE [BEN02]) 4 FIGURA

  • Upload
    vuongtu

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

Curso de Engenharia de Computação

UM ESTUDO DA TECNOLOGIA BOUNDARY-SCAN

Ricardo Fernandes

Itatiba – São Paulo – Brasil

Novembro de 2004

ii

Curso de Engenharia de Computação

UM ESTUDO DA TECNOLOGIA BOUNDARY-SCAN

Ricardo Fernandes

Monografia apresentada à disciplina Trabalho de Conclusão de Curso, do Curso de Engenharia de Computação da Universidade São Francisco, sob a orientação do Prof. Ms Thales Coelho Lima, como exigência parcial para conclusão do curso de graduação. Orientador: Prof. Ms. Thales Coelho Lima

Itatiba – São Paulo – Brasil

Novembro de 2004

iii

O presente exemplar da monografia Um Estudo da Tecnologia Boundary-Scan

contempla as correções sugeridas pela banca examinadora durante a apresentação do

Trabalho de Conclusão de Curso.

Itatiba/SP, 03 de Dezembro de 2004

_______________________________

Prof. Ms. Thales Coelho Lima

iv

Agradecimentos

Agradeço ao Professor Ms Thales Coelho Lima, meu orientador, que acreditou em mim e

incentivou-me para a conclusão deste trabalho, face aos inúmeros percalços do trajeto.

v

Sumário

Lista de Siglas......................................................................................................................vi

Lista de Figuras..................................................................................................................vii

Resumo ..............................................................................................................................viii

Abstract ............................................................................................................................... ix

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

2 OBJETIVO .................................................................................................................... 3

3 CONCEITOS INICIAIS................................................................................................3 3.1 Teste In-Circuit .........................................................................................................3 3.2 Encapsulamentos dos Componentes .......................................................................... 4 3.3 Placas Multi-Camadas ............................................................................................... 5

4 A TECNOLOGIA BOUNDARY-SCAN ........................................................................ 6 4.1 O Surgimento do JTAG............................................................................................. 6 4.2 O Que é Boundary-Scan? .......................................................................................... 6 4.3 A Motivação..............................................................................................................8 4.4 Como o Boundary-Scan Resolve estes Problemas...................................................... 9

4.4.1 Os Elementos de um Componente Boundary-Scan ............................................10 4.5 Modos de Operação e Instrução............................................................................... 13

4.5.1 Modo de Operação Normal ...............................................................................13 4.5.2 Modo de Operação de Teste ..............................................................................14

4.6 Funções de Teste ..................................................................................................... 14 4.6.1 Instruções de Teste Boundary-Scan...................................................................15 4.6.2 O Controlador TAP...........................................................................................20 4.6.3 Descrição dos Estados do Controlador TAP ......................................................22

5 CONCLUSÃO.............................................................................................................. 27 5.1 Contribuições .......................................................................................................... 27 5.2 Extensões ................................................................................................................ 28

Glossário............................................................................................................................. 29

Referências Bibliográficas.................................................................................................. 30

Bibliografia consultada ...................................................................................................... 31

vi

Lista de Siglas

ASIC Application Specific Integrated Circuits

ATE Automatic Test Equipment

DFT Design For Testability

JETAG Joint European Test Action Group

JTAG Joint Test Action Group

IEEE Institute of Electrical and Electronics Engineers

PTH Pin-Through-Hole

SMT Surface Mount Technology

TAP Test Access Port

TCK Test Clock

TDI Test Data In

TDO Test Data Out

TMS Test Mode Select

TRST Test Reset

vii

Lista de Figuras

FIGURA 1 – TESTADOR IN-CIRCUIT (ADAPTADO DE [BEN02]) ..................................................4

FIGURA 2 – TIPOS DE ENCAPSULAMENTOS (ADAPTADO DE [BEN02]) .......................................5

FIGURA 3 – PLACA MULTI-CAMADA (ADAPTADO DE [BEN02])................................................5

FIGURA 4 – COMPONENTE BOUNDARY-SCAN (ADAPTADO DE [AGI02])......................................7

FIGURA 5 – CONTROLADOR TAP (ADAPTADO DE [BEN02])...................................................11

FIGURA 6 – EXTEST (ADAPTADO DE [BEN02])........................................................................15

FIGURA 7 – PASSAGEM (ADAPTADO DE [BEN02])..................................................................17

FIGURA 8 – RUNBIST (ADAPTADO DE [BEN02])......................................................................19

FIGURA 9 – IDCODE (ADAPTADO DE [BEN02]).......................................................................20

FIGURA 10 - DIAGRAMA DE ESTADOS DO CONTROLADOR TAP (ADAPTADO DE [BEN02]) ......21

viii

Resumo

Tradicionalmente, os defeitos de manufatura no nível de placa são detectados e

localizados pelo testador in-circuit. Estes testadores utilizam uma “cama-de-pregos”, o qual

provê acesso físico aos pontos de teste na superfície da placa e proporcionam acesso aos

componentes. O testador in-circuit permite verificar a presença, orientação e a soldabilidade

dos componentes na placa.

Em meados de 1980, os tradicionais componentes com encapsulamentos pin-through-

hole (PTH) começaram a ser substituídos pelo encapsulamento de montagem de superfície

(SMT). Componentes de montagem de superfície são soldados no mesmo lado da placa onde

o componente está. Esta tecnologia possibilitou a montagem de componentes em ambos os

lados da placa, aumentando a densidade de componentes na placa e a necessidade de

interconexão entre eles. Conseqüentemente, a tecnologia de placas multi-camadas foi

desenvolvida a fim de suportar o aumento da densidade de interconexões.

O resultado foi que o acesso físico para os pontos de teste foi diminuído e este acesso é

uma exigência do testador in-circuit. Uma alternativa foi formulada por uma organização

chamada Joint Test Action Group (JTAG). Esta solução definiu um registrador universal ao

redor da borda do componente digital, a fim de proporcionar acesso aos pontos de conexão.

Este registrador boundary-scan adicionado não alterou em nada a funcionalidade do

componente e resolveu o problema de acesso físico na placa. JTAG desenvolveu a tecnologia

boundary-scan dentro de um padrão internacional de habilidade de teste: o padrão IEEE

1149.1-1990 Boundary-Scan.

O registrador boundary-scan trouxe de volta o acesso perdido, permitindo o teste de

presença, orientação e soldabilidade. Os registradores também permitem o acesso interno no

componente, se requerido, a fim de diagnosticar testes ao nível de placa.

PALAVRAS-CHAVE: In-Circuit, Registrador

ix

Abstract

Traditionally, manufacturing defects at the board level have been detected and located by

bed-of-nail In-Circuit Testers. These testers utilize a bed-of-nail fixture that penetrates into

test lands on the surface of the board and, in so doing, gain access to the bonding points of the

devices. The In Circuit Tester allow to determine device presence, device orientation, and

correct device bonding at the solder points.

In the mid-1980s, traditional through-hole device packaging began to give way to

surface-mount packaging styles. Surface-mount devices are soldered on the same side of the

board as the device package itself. This opened up the possibility of mounting devices on both

surfaces of the board, thereby increasing the density of devices on the board, and the need to

interconnect between them. Consequently, multi-layer board technology was developed to

cope with the increased density of interconnection.

The result was that the one thing that an In-Circuit Tester requires, physical access for

nail probe started to decrease. An alternative solution was formulated by an organization

called the Joint Test Action Group (JTAG). This solution defined a new universal register

around the boundary of a digital device to bring back the access to the bonding points. This

boundary-scan register added nothing to the functionality of the device but solved the problem

of limited physical access. JTAG developed the technology of boundary scan into the first

true international standard on testability: the IEEE 1149.1-1990 Boundary-Scan Standard.

The boundary-scan registers bring back the lost access thereby allowing presence,

orientation and bonding tests to be carried out. The registers also allow access inside the

device, if required, to assist board-level diagnostic test requirements.

KEY WORDS: In-Circuit, Register

1

1 INTRODUÇÃO

Algumas das tendências atuais da indústria eletrônica apresentam novas tecnologias de

montagem de superfície (SMT), redução no tamanho das placas eletrônicas e

conseqüentemente dos componentes, incluindo circuitos integrados mais complexos, tais

como os circuitos integrados para aplicações específicas (ASICs). Enquanto essas tecnologias

fornecem novas oportunidades de projeto e manufatura, as mesmas ocasionam dificuldades no

desenvolvimento de testes e grandes desafios para a engenharia de teste. Os dois principais

problemas para a área de testes correspondem à falta de acesso aos pinos dos componentes na

placa de circuito impresso e à complexidade dos mesmos.

Técnicas atuais de teste in-circuit e funcional estão se tornando menos efetivas devido

aos problemas de acesso e incapacidade dos testadores cobrirem todos os pinos dos

componentes. Conseqüentemente, o desenvolvimento dos testes demanda muito tempo,

investimentos e aumento no custo.

Estes problemas foram vistos com tal importância que, em 1985, algumas empresas

Européias formaram um grupo chamado Joint European Test Action Group (JETAG). Mais

tarde, algumas empresas Americanas, incluindo Hewlett-Packard, se juntaram ao grupo, o

qual foi renomeado para Joint Test Action Group (JTAG). O JTAG formulou a técnica de

boundary-scan a fim de endereçar estes problemas. Isto foi finalmente documentado na

proposta JTAG Rev 2.0 em 1988.

Uma proposta para desenvolver esta técnica foi oferecida ao Instituto de Engenheiros

Elétricos e Eletrônicos (IEEE) e foi refinada por este grupo. Em 1990 foram publicados os

padrões IEEE 1149.1-1990, Porta de Acesso de Teste (TAP) e a Arquitetura Boundary-Scan,

que definem um modelo de como projetar recursos de teste dentro de componentes digitais, os

quais irão simplificar os testes. Estes recursos podem ser usados nos testes dos componentes,

inspeção de chegada de componentes, testes de placas, testes de sistemas, manutenções de

campo e reparos.

2

No capítulo 2 são abordados os conceitos de teste in-circuit, encapsulamento de

componentes e placas multi-camadas. Posteriormente, no capítulo 3, inicia-se a abordagem da

tecnologia boundary-scan, onde são apresentados os tópicos do assunto, desde o seu

surgimento, do que se trata esta tecnologia, a motivação, de que forma os problemas são

resolvidos, modos de operação e instrução e finalmente as funções de teste.

3

2 OBJETIVO

Apresentar um projeto de pesquisa sobre a tecnologia Boundary-Scan, onde serão

abordados conceitos e técnicas para aplicações em testes In-Circuit.

3 CONCEITOS INICIAIS

Este capítulo apresenta alguns conceitos iniciais, importantes para o entendimento da

tecnologia boundary-scan.

3.1 Teste In-Circuit

Desde meados dos anos 70, há uma tendência muito forte no uso do chamado teste in-

circuit, também conhecido como “cama-de-pregos” (bed-of-nails), para o teste de placas de

circuito impresso populadas (Figura 1). Esta técnica de teste faz o uso de um acessório

(fixture) contendo uma “cama-de-pregos” que proporciona o acesso individual dos

componentes na placa através dos pontos de teste. O teste in-circuit consiste de duas fases,

testes não alimentados seguidos dos testes alimentados:

1) Os testes não alimentados verificam a integridade do contato físico entre o nó e o

ponto de acesso na placa, seguido pelos testes de aberto e curto, baseados em

medidas de impedância.

2) Os testes alimentados aplicam estímulos no componente ou grupo de componentes

a serem testados e medem suas respostas.

Outros componentes que são eletricamente conectados ao componente sob teste são

usualmente colocados em um estado de proteção chamado “guarding”. Desta maneira, o

testador é capaz de verificar a presença, orientação e a funcionalidade do componente

colocado na placa [BEN02].

4

3.2 Encapsulamentos dos Componentes

Fundamentalmente, a técnica de teste in-circuit depende de um acesso físico a todos os

pinos dos componentes da placa. Para a tecnologia pin-through-hole (PTH) o acesso é

usualmente garantido adicionando “ilhas” de teste nas trilhas do lado “B” da placa, ou o lado

da solda. O surgimento dos encapsulamentos para a tecnologia de montagem de superfície

(SMT) proporcionou colocar componentes em ambos lados da placa, o lado “A” e o lado “B”

(Figura 2). As pequenas distâncias entre os terminais dos componentes da tecnologia de

montagem de superfície causaram uma diminuição da distância física entre as trilhas

[BEN02].

Figura 1 – Testador In-Circuit (adaptado de [BEN02])

5

Figura 2 – Tipos de Encapsulamentos (adaptado de [BEN02])

3.3 Placas Multi-Camadas

Os novos modelos de encapsulamentos de componentes causaram um impacto muito

grande na habilidade para se alocar pontos de testes nas placas. Toda a questão gerada sobre o

acesso foi promovida pelo desenvolvimento das placas multi-camadas criadas para acomodar

o aumento do número de trilhas entre os componentes (Figura 3). Basicamente, a habilidade

para alocar pontos de teste fisicamente na placa não existe mais. O acesso físico se tornou

limitado [BEN02].

Figura 3 – Placa Multi-Camada (adaptado de [BEN02])

6

4 A TECNOLOGIA BOUNDARY-SCAN

4.1 O Surgimento do JTAG

Em meados dos anos 80, um grupo de engenheiros de testes de diferentes empresas

européias se reuniram a fim de examinar o problema do limite de acesso para teste das placas

e também as possíveis soluções. O grupo foi chamado inicialmente de Joint European Test

Action Group (JETAG). A solução proposta foi proporcionar o acesso aos pinos dos

componentes utilizando um registrador de deslocamento interno em torno da borda do

componente chamado de Registrador Boundary-Scan.

Mais tarde, o grupo se uniu a representantes de companhias americanas e o “E” de

European foi removido do título da organização, permanecendo apenas Joint Test Action

Group, JTAG. O grupo JTAG não inventou o conceito do boundary-scan. Muitas

companhias, tais como IBM, Texas Instruments e Philips, já haviam trabalhado nesta idéia. O

que o grupo JTAG fez, foi converter as idéias para um padrão internacional, o padrão IEEE

1149.1-1990, publicado inicialmente em abril de 1990 [PAR03].

4.2 O Que é Boundary-Scan?

De acordo com [PAR03], Boundary-Scan é uma técnica de teste que envolve

componentes com registradores de deslocamento colocados entre cada um de seus pinos e a

lógica interna do componente (Figura 4). Cada registrador de deslocamento é chamado de

célula. Estas células permitem controlar e monitorar o que acontece com cada pino de entrada

e saída. Quando estas células são conectadas entre si, formam uma cadeia de registradores de

dados ou Registrador Boundary-Scan.

7

Figura 4 – Componente Boundary-Scan (adaptado de [AGI02])

Existem ainda outros registradores dentro de um componente boundary-scan. Um

Registrador de Instruções decodifica bits de instruções, que permitem o componente executar

várias funções; um Registrador de Passagem fornece um caminho de um bit para minimizar a

distância entre a entrada e a saída durante a varredura; um Registrador de Identificação,

chamado de Registrador IDCODE, identifica o componente e o fabricante; outros

registradores de dados especificamente desenvolvidos executam funções de teste internas.

Componentes boundary-scan possuem portas dedicadas, chamadas de Portas de Acesso

de Teste (TAP), que roteiam os sinais de entrada para o chamado Controlador TAP e as

células registradoras. O Controlador TAP é uma máquina de 16 estados que controla o

Registrador Boundary-Scan (Figura 4).

Os sinais mostrados na ilustração correspondem às entradas do TAP, usadas para

controlar o componente boundary-scan.

8

- Entrada de Dados de Teste (TDI) - entrada serial para dados de teste e bits de

instruções.

- Saída de Dados de Teste (TDO) - saída serial para dados de teste.

- Clock de Teste (TCK) - um clock independente usado para executar o componente.

- Seleciona Modo de Teste (TMS) - fornece níveis lógicos necessários para mudar o

Controlador TAP de um estado para outro.

Componentes boundary-scan podem executar muitas funções de testes. Três delas,

EXTEST, SAMPLE/PRELOAD e BYPASS são mandatórias para todos os componentes

boundary-scan. Quatro outras funções de testes, INTEST, RUNBIST, IDCODE, e

USERCODE, são descritas pelo padrão IEEE, mas são opcionais. Fabricantes podem também

adicionar testes os quais a implementação é direcionada pelo padrão IEEE. Estas funções de

testes serão detalhadas mais à frente [PAR03].

4.3 A Motivação

No final do processo de manufatura de uma placa eletrônica, é esperado que a placa

atenda às especificações. Para que isto ocorra, os seguintes itens devem ser considerados:

A: Todos os componentes trabalhem de acordo com suas especificações

B: Todos os componentes tenham sido montados em suas posições corretas.

C: Todos os pinos dos componentes tenham sido soldados corretamente na placa.

D: Todas as funções dos componentes juntos atendam as especificações.

Para alcançar estes objetivos é possível traçar diferentes estratégias:

- Inspeção de recebimento para verificar (A), seguido do teste in-circuit para verificar (B)

e (C), seguido do teste funcional para verificar (D).

- Garantindo componentes bons dos fornecedores, por auditorias de qualidade (A). Teste

in-circuit executado para verificar (B) e (C), seguido pelo teste de sistema (D).

- Inspeção de recebimento amostral para verificar (A), seguido do teste funcional para

verificar (B, C), onde o teste de in-circuit executa diagnósticos, e finalmente teste de

sistema para verificar (D).

9

- Sem inspeção de recebimento, mas combinando testes (in-circuit e funcional) para

verificar (A, B, C). D é assegurado por um pior caso de filosofia de projeto.

Estes são apenas algumas das estratégias primárias, onde há outras possíveis. Existem, de

qualquer modo, alguns pontos importantes sobre a estratégia de teste para o futuro:

- Testes para circuitos integrados complexos e para ASICs consomem muito tempo para

serem desenvolvidos, podendo atrasar o lançamento do produto no mercado.

- O acesso limitado aos nós, pode restringir a opção de teste in-circuit.

O teste funcional em cluster ou via conector pode ser uma solução, mas o complexo

processo de desenvolvimento e a pressão para reduzir o tempo de lançamento no mercado,

tornam esta opção pouco atrativa, pois o desenvolvimento de um teste funcional normalmente

leva muito tempo. Uma forma de aliviar este problema é proporcionar que as áreas de

engenharia de desenvolvimento de testes e de desenvolvimento de placas trabalhem em

conjunto. Outro método que pode ser usado para solucionar o problema de complexidade e

problemas de acesso aos nós é o Projeto para Habilidade de Teste (DFT), que envolve o

desenvolvimento de componentes com estratégias para teste. Boundary-Scan é uma estratégia

de DFT que está ganhando força e pode resolver estes problemas. Boundary-Scan destina-se

principalmente a (B) e (C) dos objetivos de teste para componentes digitais. Pode também se

destinar a (A). Essa tecnologia não engloba componentes analógicos [PAR03].

4.4 Como o Boundary-Scan Resolve estes Problemas

O padrão IEEE 1149.1 fornece muitas alternativas destinadas a variedade de projetos

necessários. A tecnologia boundary-scan pode ser implementada em uma placa de circuito de

várias maneiras, fornecendo flexibilidade necessária para os problemas de teste. A

implementação pode ser desde uma placa de circuito com um componente boundary-scan até

uma placa com todos componentes digitais que tenham boundary-scan.

Como os componentes boundary-scan são conectados com o resto dos componentes na

placa e, além disso, como eles são conectados com outros componentes boundary-scan, fazem

parte da estratégia de teste, como descrito em [PAR03].

10

4.4.1 Os Elementos de um Componente Boundary-Scan

De acordo com [AGI02], a Porta de Acesso de Teste (TAP) roteia os sinais de controle

para dentro do componente boundary-scan (TCK, TMS, TRST*) e fornece a entrada e saída

serial (TDI, TDO) para a lógica boundary-scan.

O Controlador TAP consiste de uma máquina de 16-estados, programada pelas entradas

Seleciona Modo de Teste (TMS) e Clock de Teste (TCK), que controlam o fluxo de bits de

dados para o Registrador de Instruções e registradores de dados.

O Registrador de Instruções decodifica as instruções a serem executadas pelos

registradores de dados e também seleciona o registrador de dados de teste a ser acessado.

Os registradores de dados incluem o Registrador Boundary-Scan e o Registrador de

Passagem, o qual todo componente boundary-scan deve conter. Outros registradores de dados

opcionais que podem ser inclusos são Registrador de Identificação e registradores de dados

projetados.

Na Figura 5 é apresentado um diagrama de blocos de um componente boundary-scan.

Onde é ilustrado como os sinais de controle (TMS, TCK, TRST*) são roteados para dentro do

Controlador TAP e o que as saídas podem ser. Essas saídas controlam o Registrador de

Instruções e os registradores de dados. Os sinais produzidos pela seção de decodificação de

instrução do Registrador de Instruções informam os registradores de dados qual a função de

teste deve ser executada.

Descrição dos sinais da Porta de Acesso de Teste (TAP)

Os sinais de TAP empregados pelo Controlador TAP (Figura 5) incluem Clock de Teste

(TCK), Seleciona Modo de Teste (TMS), Entrada de Dados de Teste (TDI), Saída de Dados

de Teste (TDO) e opcionalmente Inicializa Teste (TRST*).

11

Clock de Teste (TCK)

A entrada Clock de Teste fornece o clock para a lógica de teste. TCK é uma entrada

dedicada que permite uma sequência de dados de testes seriais serem usadas

independentemente da especificação de clock do componente. Esta entrada também permite

que dados de teste sejam chaveados concorrentemente com a operação normal do

componente.

Figura 5 – Controlador TAP (adaptado de [BEN02])

Seleciona Modo de Teste (TMS)

O nível lógico do TMS, junto com a borda de subida aplicada no TCK, possibilita a

alteração de um estado para outro através do Controlador TAP. Isto permite o movimento dos

dados e instruções do TAP através da máquina de estados.

12

Entrada de Dados de Teste (TDI)

TDI é responsável pela entrada serial de instruções de teste enviadas para o Registrador

de Instruções e os dados deslocados através do Registrador Boundary-Scan ou outros

registradores de dados. Os valores são deslocados para o registrador selecionado a cada borda

de subida do TCK.

Saída de Dados de Teste (TDO)

TDO é uma saída serial de instruções de teste e dados do Registrador Boundary-Scan ou

outros registradores. Os conteúdos do registrador selecionados (instrução ou dado) são

deslocados para a saída a cada borda de descida do TCK.

Inicializa Teste (TRST*)

Esta entrada opcional fornece inicialização assíncrona do Controlador TAP. A

inicialização coloca o componente em modo de operação normal e torna o Registrador

Boundary-Scan inativo.

Registrador de Instruções

Permite que seja definido o teste a ser executado, ou o registrador de dados de teste a ser

acessado ou ambos.

Registradores de Dados

Diferentes registradores de dados podem ser construídos dentro de um componente

boundary-scan. O mais importante é o Registrador Boundary-Scan, o qual possuí uma célula

boundary-scan adjacente a cada pino de entrada ou saída. Este registrador é usado para

controlar e observar os pinos de entrada e saída do componente. O Registrador Boundary-

Scan é um item obrigatório do padrão IEEE 1149.1.

Outro registrador mandatório é o Registrador de Passagem. Este registrador consiste de

apenas uma célula boundary-scan. O Registrador de Passagem encurta a varredura da cadeia

quando está sendo testado um outro componente boundary-scan da placa.

Um outro registrador, o Registrador de Identificação, descrito pelo padrão IEEE 1149.1 é

opcional. Este registrador contém as informações de identificação do componente. O

registrador oferece duas funções: o IDCODE e o USERCODE.

13

O padrão também permite que os fabricantes de componentes implementem outros

registradores. Estes registradores são normalmente usados para executar instruções

específicas do fabricante, como por exemplo, um auto-teste do componente.

4.5 Modos de Operação e Instrução

Componentes boundary-scan podem ser operados em um de seus dois modos básicos:

modo normal, onde o componente executa sua função primária e o modo teste, onde o

componente é “isolado” para executar as funções de testes. Algumas funções de teste podem

ser executadas durante a operação em modo normal. Dessa forma é possível visualizar o

comportamento do componente de acordo com suas especificações. Testando o componente

em modo teste primeiramente, permite verificar que todos os elementos físicos estão intactos.

Dentro de cada um destes modos, o componente pode executar várias funções,

dependendo da instrução corrente [AGI02].

4.5.1 Modo de Operação Normal

Quando o componente está operando no modo normal o Registrador Boundary-Scan é

transparente. Os sinais podem passar livremente pelas células boundary-scan. Neste modo,

amostras de dados de teste podem ser capturadas na célula do Registrador Boundary-Scan e

então serem deslocados para a saída TDO. Em modo normal, SAMPLE/PRELOAD, BYPASS,

IDCODE, USERCODE e alguma função fornecida pelo fabricante podem ser executadas.

SAMPLE deve ser executado em modo normal, pois o teste coleta uma amostra de

dados presente no componente em um certo momento. A amostra é conseqüentemente

examinada após o deslocamento dos bits para a saída. PRELOAD coloca na saída do

registrador o dado especificado antes de selecionar outra operação boundary-scan. BYPASS

seleciona o registrador de um bit, assim os dados podem ser deslocados através do

componente rapidamente durante operações de varredura. IDCODE e USERCODE verificam

a identificação do componente, fabricante e função do componente [AGI02].

14

4.5.2 Modo de Operação de Teste

Durante o modo de operação de teste, o Registrador Boundary-Scan roteia os sinais de

entrada e saída, dessa forma a lógica interna do componente ignora estas entradas e saídas.

Neste modo somente sinais de testes são permitidos passarem através da lógica (INTEST,

RUNBIST e outros auto-testes). Isto efetivamente isola o componente do resto da placa.

Enquanto o componente está em modo teste, é possível executar o EXTEST, INTEST,

RUNBIST, e funções definidas pelo fabricante que emulam ou estendem estes testes. EXTEST

verifica as conexões físicas do componente boundary-scan. INTEST e RUNBIST testa a lógica

interna do componente.

Testes definidos pelo fabricante talvez precisem que as células do Registrador

Boundary-Scan (PRELOAD) sejam prefixadas, assim os estados serão conhecidos quando o

modo de teste for iniciado [AGI02].

4.6 Funções de Teste

O padrão IEEE 1149.1 descreve os tipos de funções que um componente boundary-scan

deve executar e fornece diretrizes para funções adicionais (opcionais). Cada função possui

uma instrução correspondente.

Instruções mandatórias descritas no padrão incluem EXTEST, BYPASS e

SAMPLE/PRELOAD.

Instruções opcionais definidas pelo padrão incluem INTEST, RUNBIST, IDCODE e

USERCODE. O fabricante deve fornecer instruções adicionais sobre o teste da lógica interna

do componente. Estas instruções possuem um nome específico e código de acesso definido

pelo fabricante e devem ser documentados para indicar a função de cada instrução [AGI02].

15

4.6.1 Instruções de Teste Boundary-Scan

As descrições seguintes irão fornecer uma idéia das instruções mandatórias

comumente usadas e também das instruções opcionais [AGI02].

EXTEST (mandatório)

Está inicialmente voltado para testar o circuito do Registrador Boundary-Scan do

componente para algum ponto na placa (Figura 6).

Figura 6 – Extest (adaptado de [BEN02])

16

Este teste pode incluir apenas o registrador, a ligação interna do componente,

terminais e trilhas da placa, ou pode incluir também componentes e interconexões entre dois

componentes boundary-scan (dependendo da topologia da placa). EXTEST possui três

funções:

- Um único componente boundary-scan permite testar o Registrador Boundary-Scan e

o circuito que é conectado ao componente.

- Interconectado permite testar o Registrador Boundary-Scan e o circuito que conecta

um componente boundary-scan a outro.

- Um agrupamento permite testar o Registrador Boundary-Scan e o circuito entre um

componente boundary-scan e outro.

BYPASS (mandatório)

A função BYPASS (Figura 7) possui um único registrador de deslocamento, chamado

de Registrador de Passagem, entre o TDI e TDO. Esta função fornece um caminho serial curto

para uma operação de varredura de dados. Quando esta instrução é selecionada, o componente

permanece em modo de operação normal.

SAMPLE/PRELOAD (mandatório)

É uma instrução que executa duas funções: a amostragem do comportamento do

componente em modo normal de operação e permite que seja colocada uma sequência de

dados nas células dos Registradores Boundary-Scan.

PRELOAD possibilita carregar dados antes de selecionar uma instrução. Tão logo a

instrução seja interpretada pelo Registrador de Instruções, os dados pré-carregados são

movidos através dos pinos de saída.

SAMPLE permite visualizar internamente o componente durante a operação normal e

ver o que está acontecendo naquele momento específico. Como os bits de dados fluem dentro

do componente, eles passam através das células de entrada dos Registradores Boundary-Scan,

seguem através da lógica interna, posteriormente para as células de saída e conseqüentemente

seguem para fora do componente. Enquanto o componente opera neste modo, é possível

instruir para que o Registrador Boundary-Scan colete uma amostra dos bits que estão sendo

deslocados através das células no momento especificado. Dessa forma, os bits podem ser

17

deslocados serialmente através do Registrador Boundary-Scan para a saída TDO, onde podem

ser examinados. As amostras podem ser coletadas da entrada ou da saída das células (Figura

8).

Figura 7 – Passagem (adaptado de [BEN02])

INTEST (opcional)

Permite testes estáticos (em modo single-step) da lógica interna do componente,

quando o mesmo está instalado na placa. Isto significa que o componente não está operando e

sim em modo de teste. Em modo single-step, todos os dados devem ser deslocados bit a bit

para a lógica interna. Os resultados são capturados e deslocados para fora da mesma forma.

Os dados de teste são tipicamente carregados na saída das células dos Registradores

Boundary-Scan usando a função PRELOAD.

18

Como este teste é executado com o componente em modo de teste, ele não é afetado

pela topologia da placa. Os pinos de entrada e saída estão inativos e o componente está

isolado.

O dados de teste são serialmente deslocados através dos Registradores Boundary-Scan

e seguem para a lógica interna a fim de serem processados, então saem da lógica interna e

seguem para as células dos Registradores Boundary-Scan. Deste ponto, os bits são deslocados

para a saída TDO e posteriormente são analisados (Figura 8).

RUNBIST (opcional)

Consiste na execução de uma auto-teste no componente (Figura 8). O Controlador

TAP está no estado RUN-TEST/IDLE quando este teste é executado. O componente executa o

auto-teste, dessa forma as informações capturadas podem ser deslocadas para a saída TDO.

Esta informação é então comparada com a informação esperada.

RUNBIST permite verificar a lógica interna do componente sem escrever vetores de

testes complexos e sem executar o modo single-step como seria na instrução INTEST. Como

no INTEST, os sinais passam através do Registrador Boundary-Scan e da lógica interna. Neste

modo o componente está efetivamente isolado, pois os pinos de entrada e saída do

componente estão inativos. O fabricante do componente pode incluir outras instruções

similares para auto-teste, que podem ser chamadas por outras instruções.

IDCODE (opcional)

Permite acessar um Registrador de Identificação opcional (Figura 9), que determina a

identidade do componente. A instrução corrente carrega o código de identificação do

fornecedor dentro do registrador IDCODE. Os elementos primários deste código incluem o

part number do componente, a identificação do fabricante e as variáveis deste componente.

As aplicações para esta instrução incluem a identificação de diferentes programações,

localização de componentes não montados na placa e diferenciação de componentes similares

fornecidos por diferentes fabricantes. O padrão IEEE 1149.1 exige que os registradores sejam

de 32 bits.

19

Figura 8 – Runbist (adaptado de [BEN02])

USERCODE (opcional)

A instrução USERCODE permite que um código de identificação do usuário seja

carregado no Registrador IDCODE e posteriormente deslocado para a saída a fim de ser

examinado. Esta instrução é uma função extendida do IDCODE para componentes

programáveis (Figura 9).

20

Figura 9 – Idcode (adaptado de [BEN02])

4.6.2 O Controlador TAP

A seguir é apresentado o diagrama de estados (Figura 10) aplicado para os

componentes que seguem o padrão IEEE 1149.1. O diagrama de estados permite que seja

seguido a sequência de qualquer teste boundary-scan através do Controlador TAP [AGI02].

A máquina de 16 estados controla cada componente boundary-scan. Os estados

variam apenas no sufixo acrescentado no final de cada estado. Estes sufixos identificam a

coluna e o registrador de operação que eles afetam.

21

DR corresponde a coluna dos Registradores de Dados, onde as instruções de dados

passam e afetam as operações e conteúdos dos registradores. Como mencionado

anteriormente, os registradores de dados podem ser os Registradores Boundary-Scan ou

Registradores de Passagem, o qual todos os componentes boundary-scan devem conter, ou

podem ser os registradores opcionais IDCODE ou USERCODE, ou um registrador

desenvolvido para uma operação específica que contempla o padrão IEEE.

IR corresponde a coluna do Registrador de Instruções, onde as instruções de dados

passam e afetam as operações e conteúdos do Registrador de Instruções, o qual é mandatório

em todo componente boundary-scan.

Figura 10 - Diagrama de Estados do Controlador TAP (adaptado de [BEN02])

22

Os dados fluem através das linhas que conectam cada estado do Controlador TAP,

onde são mostrados números “0” ou “1”. Estes números são os bits de estados do sinal de

entrada TMS, responsável por alternar de um estado para outro.

4.6.3 Descrição dos Estados do Controlador TAP

Esta seção descreve o comportamento do Controlador TAP em cada um dos seus

estados, conforme [AGI02].

TEST-LOGIC-RESET

Neste estado, a lógica de teste está desabilitada, de tal modo que o componente

permanece em modo normal de operação. O Registrador de Instruções é inicializado contendo

a instrução de IDCODE se o componente possui um registrador de identificação, ou a

instrução de BYPASS caso não possua o registrador de identificação. Independente do estado

original do controlador, ele entrará em TEST-LOGIC-RESET quando TMS permanecer em

nível alto pelo menos por cinco bordas de subida do TCK. (Isto pode ser visualizado no

Diagrama de Estados do Controlador TAP). O controlador permanece neste estado enquanto

TMS está em nível alto.

Se TMS vai para nível baixo por um curto período, o controlador voltará para o estado

inicial de TEST-LOGIC-RESET dentro de três clocks de TCK. Se a porta Inicializa Teste

(TRST*) é fornecida, um nível baixo aplicado no TRST* forçará o Controlador TAP para o

estado de TEST-LOGIC-RESET. A alimentação inicial do componente também forçará o

Controlador TAP para este estado.

RUN-TEST/IDLE

Uma vez neste estado, o controlador permanecerá em RUN-TEST/IDLE enquanto

TMS estiver em nível baixo. Quando TMS mudar para nível alto, o controlador passará para o

estado de SELECT-DR-SCAN.

No estado RUN-TEST/IDLE, atividade na lógica de teste selecionada ocorre apenas

quando uma certa instrução está presente. Por exemplo, a instrução RUNBIST causa a

23

execução de um auto-teste na lógica interna. Outras instruções podem também executar auto-

testes neste estado.

SELECT-DR-SCAN

Este é um estado temporário do controlador. Aqui, uma decisão é feita quer seja para

entrar na coluna dos Registradores de Dados (DR), ou para continuar na coluna dos

Registradores de Instruções (IR). Se TMS está em nível baixo quando o controlador está neste

estado, o controlador se desloca para o estado CAPTURE-DR e uma sequência de varredura é

iniciada para o registrador de dados de teste selecionado. Se TMS está em nível alto, o

controlador se deslocará para o estado SELECT-IR-SCAN.

SELECT-IR-SCAN

Este é um estado temporário do controlador. Aqui, uma decisão é feita quer seja para

entrar na coluna do Registrador de Instruções (IR), ou para reiniciar o Controlador TAP

retornando para o estado TEST-LOGIC-RESET. Se TMS está em nível baixo quando o

controlador está neste estado, o controlador se desloca para o estado CAPTURE-IR e uma

sequência de varredura é iniciada para o Registrador de Instruções. Se TMS está em nível alto

o controlador retorna para o estado TEST-LOGIC-RESET.

CAPTURE-IR

Neste estado do controlador, o registrador de deslocamento contido no Registrador de

Instrução carrega um padrão de valores lógicos durante a borda de subida do TCK.

Quando o Controlador TAP está neste estado, o controlador desloca seu estado para

EXIT1-IR se TMS está em nível alto ou o estado SHIFT-IR se TMS está em nível baixo.

SHIFT-IR

Neste estado do controlador, a parte do registrador de deslocamento do Registrador de

Instruções está conectado entre TDI e TDO, durante as bordas de subida do TCK, o padrão

capturado é deslocado deste estágio para a saída serial. Ele também desloca os bits de

instruções provenientes do TDI para o Registrador de Instruções.

24

Quando o Controlador TAP está neste estado, o controlador desloca seu estado para

EXIT1-IR se TMS está em nível alto ou permanece no estado SHIFT-IR se TMS está em nível

baixo.

EXIT1-IR

Este é um estado temporário do controlador. Neste ponto uma decisão deve ser

tomada, se desloca para o estado PAUSE-IR ou UPDATE-IR. Se TMS está em nível alto neste

estado, o controlador entra no estado UPDATE-IR, o qual conclui o processo de varredura. Se

TMS está em nível baixo, o controlador entra no estado PAUSE-IR.

PAUSE-IR

Este estado do controlador permite interromper temporariamente o Registrador de

Instruções. Isto é usado, por exemplo, quando o equipamento ATE está carregando a RAM do

testador. O controlador permanece neste estado enquanto TMS está em nível baixo. Se TMS

estiver em nível alto, o controlador entra no estado EXIT2-IR.

EXIT2-IR

Este é um estado temporário do controlador. Mais uma vez uma decisão deve ser

tomada, se desloca para o estado UPDATE-IR ou retorna para o estado SHIFT-IR. Se TMS

está em nível alto neste estado, o processo de varredura é terminado e o Controlador TAP

entra no estado UPDATE-IR. Se TMS estiver em nível baixo, o controlador entra no estado

SHIFT-IR.

UPDATE-IR

A instrução deslocada para dentro do Registrador de Instruções é disponibilizada na

borda de descida do TCK, para a saída paralela do registrador de deslocamento. Os bits de

instrução são deslocados para fora do registrador de deslocamento do Registrador de

Instruções, onde os latches decodificam a instrução. Uma vez que uma nova instrução é

disponibilizada, ela se torna a instrução corrente. Quando o Controlador TAP está neste

estado, o controlador entra no estado SELECT-DR-SCAN se TMS está em nível alto ou no

estado RUN-TEST/IDLE se TMS está em nível baixo.

25

CAPTURE-DR

Neste estado do controlador, dados podem ser paralelamente carregados para os

registradores de dados selecionados pela instrução corrente durante a borda de subida do

TCK. Quando o Controlador TAP está neste estado, o controlador entra no estado EXIT1-DR

se TMS está em nível alto ou no estado SHIFT-DR se TMS está em nível baixo.

SHIFT-DR

Neste estado do controlador, os registradores de dados de teste são conectados entre

TDI e TDO como resultado da instrução corrente. Os dados são transferidos para a saída

serial a cada borda de subida do TCK. No mesmo momento, os dados de TDI são deslocados

para os registradores de dados.

O controlador entra no estado EXIT1-DR se TMS está em nível alto ou permanece no

estado SHIFT-DR se TMS está em nível baixo.

EXIT1-DR

Este é um estado temporário do controlador. Neste ponto uma decisão deve ser

tomada, se desloca para o estado PAUSE-DR ou UPDATE-DR. Se TMS está em nível alto

neste estado, o controlador entra no estado UPDATE-DR, o qual conclui o processo de

varredura. Se TMS estiver em nível baixo, o controlador entra no estado PAUSE-DR.

PAUSE-DR

Este estado do controlador permite interromper temporariamente o deslocamento dos

registradores de dados de teste de forma serial entre TDI e TDO. Isto é usado, por exemplo,

quando o equipamento ATE carrega a RAM do testador. O controlador permanece neste

estado enquanto TMS está em nível baixo. Quando TMS está em nível alto, o controlador se

desloca para o estado EXIT2-DR.

EXIT2-DR

Este é um estado temporário do controlador. Mais uma vez uma decisão deve ser

tomada, se desloca para o estado UPDATE-DR ou retorna para o estado SHIFT-DR. Se TMS

está em nível alto neste estado, o processo de varredura é terminado e o Controlador TAP

entra no estado UPDATE-DR. Se TMS estiver em nível baixo, o controlador entra no estado

SHIFT-DR.

26

UPDATE-DR

Os dados são disponibilizados na saída paralela destes registradores de dados de teste,

durante a borda de descida do TCK.

O controlador entra no estado SELECT-DR-SCAN se TMS está em nível alto ou no

estado RUN-TEST/IDLE se TMS está em nível baixo.

27

5 CONCLUSÃO

A adoção comum do padrão Boundary-Scan IEEE 1149.1 reflete uma necessidade da

indústria em simplificar o complexo problema de teste de placas e sistemas, para uma

variação muito grande de tipos de componentes e defeitos. Este padrão fornece uma

oportunidade única de simplificar a depuração do projeto e o processo de teste, possibilitando

automaticamente criar e aplicar testes em componentes, placas e sistemas. Muitas empresas

vêm utilizando as ferramentas baseadas na tecnologia boundary-scan e tirando vantagens no

acesso e controle fornecido através da arquitetura boundary-scan, facilitando dessa forma o

processo de teste.

Neste trabalho de conclusão de curso, foram apresentadas as motivações para este

padrão, a arquitetura de um componente complacente com o padrão IEEE 1149.1 e uma

introdução aos possíveis recursos em termos de placa.

Por se tratar de uma tecnologia recente, existem poucas publicações oficiais. A maior

parte dos documentos encontrados são manuais e artigos de quem lida com o assunto na

prática, mas fornecem informações e experiências bastante concretas sobre o assunto.

5.1 Contribuições

Resumidamente, as principais contribuições deste estudo foram proporcionar a

divulgação desta tecnologia que está sendo muito utilizada pela indústria eletrônica

atualmente, considerando que o número de publicações sobre o assunto ainda é muito

reduzido, e através da pesquisa realizada enriquecer o conhecimento neste assunto que está

presente nos meus projetos profissionais.

28

5.2 Extensões

Este trabalho pode ser continuado demonstrando de que forma os registradores

contidos nos componentes boundary-scan funcionam internamente e a aplicação desta

tecnologia para testes funcionais.

29

Glossário

Part Number: código de identificação de um componente eletrônico.

Latches: decodificam as instruções inseridas no componente boundary-scan.

Boundary-Scan: conceito no qual células são alocadas na periferia do componente, entre o pino externo e a lógica interna, a fim de proporcionar o teste do componente.

Single-step: significa que os dados são deslocados bit a bit

In-circuit: teste executado individualmente nos componentes montados na placa de circuito, como o prórpio nome diz “no circuito”.

Cluster: grupo de componentes testados ao mesmo tempo

Clock: pulsos de sinal que fornecem sincronismo ao componente ou circuito.

Guarding: estado de proteção que previne danos aos componentes montados na placa.

30

Referências Bibliográficas

[1] [AGI02] AGILENT Technologies. Agilent 3070 User and Service Documentation. 3070 05.30p 0603.USA: Junho, 2003. 1 CD-ROM.

[2] [BEN02] BENNETTS, Dr R. G. Boundary Scan Tutorial. September 25, 2002. URL: http://www.asset-intertech.com/access_world_of_benefits.html. Recuperado em 15/04/2004.

[3] [PAR03] PARKER, Kenneth P. The Boundary Scan Handbook. 3rd ed., Hardcover, 2003.

31

Bibliografia consultada

HEWLETT Packard. HP3070 Family Boundary-Scan Concepts and Applications. E3795C.USA: 1997.

CORELIS. Boundary-Scan Tutorial. URL: http://www. www.corelis.com/products/Boundary-Scan_Tutorial.htm. Recuperado em 12/07/2004.