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.