trabalho qualidade - henrique leonardo
TRANSCRIPT
![Page 1: Trabalho Qualidade - Henrique Leonardo](https://reader036.vdocuments.com.br/reader036/viewer/2022081807/5695cfa51a28ab9b028ef028/html5/thumbnails/1.jpg)
7/23/2019 Trabalho Qualidade - Henrique Leonardo
http://slidepdf.com/reader/full/trabalho-qualidade-henrique-leonardo 1/12
Universidade Estadual do Rio Grande do Sul – UERGS
Engenharia em Sistemas Digitais
Henrique Gabriel Rodrigues Cordeiro
Leonardo Bordignon Ceolin
Qualidade e Teste de Sistemas:
Geradores Pseudo-Aleatórios
Analisadores de Assinatura
Guaíba, 5 de julho de 2010
![Page 2: Trabalho Qualidade - Henrique Leonardo](https://reader036.vdocuments.com.br/reader036/viewer/2022081807/5695cfa51a28ab9b028ef028/html5/thumbnails/2.jpg)
7/23/2019 Trabalho Qualidade - Henrique Leonardo
http://slidepdf.com/reader/full/trabalho-qualidade-henrique-leonardo 2/12
INTRODUÇÃO
Algoritmos implementados em um computador são, por definição, determinísticos,
ou seja, incapazes de produzir efeitos aleatórios de qualquer natureza. Porém, é possívelgerar, através de determinados algoritmos, valores numéricos aparentemente aleatórios,
com base em um valor inicial, o qual é chamado de semente. A esses algoritmos dá-se o
nome de geradores pseudo-aleatórios, pois os números gerados por estes não são de
fato aleatórios, sendo possível prever valores com base no conhecimento do algoritmo e
do seu valor inicial.
Apesar da aparentemente inutilidade de se gerar números que não são realmente
aleatórios, a geração pseudo-aleatória de números encontra várias aplicações, tais comosimulações de fenômenos físicos, amostragens populacionais, entretenimento (jogos),
testes de software e hardware. Isto se dá pelo fato de se poder repetir uma sequência
numérica gerada, bastante útil em caso de simulações, para fins de teste e depuração.
Neste trabalho, serão abordados os apectos de geração pseudo-aleatória ligados ao teste
de hardware além do mecanismo de análise de assinaturas.
BIST
Existem diversas técnicas de teste de hardware. Dentre elas, pode-se destacar a
BIST (Bult-In Self Test ). A BIST é uma técnica DFT (Design For Testability ; para mais
detalhes, ver anexo A) que se baseia na capacidade de um circuito de realizar testes em
si mesmo. Para que isso seja possível, são adicionados componentes (hardware e/ou
software ) extras no circuito, a fim de gerar e validar testes (figura 1). A estes componentes
extras dá-se o nome de BITE (Built-In-Test Equipment ). Os BITEs podem ser adicionados
ao componente apenas durante o projeto e removidos posteriormente, ou ainda podem
ser utilizados no teste em campo.
As técnicas BIST podem ser divididas em duas categorias: on-line BIST e off-line
BIST.
No BIST on-line, o teste ocorre enquanto o CUT (Circuit Under Test ) está em seu
modo de operação normal, isto é, o circuito não necessita entrar em um “modo de teste”,
![Page 3: Trabalho Qualidade - Henrique Leonardo](https://reader036.vdocuments.com.br/reader036/viewer/2022081807/5695cfa51a28ab9b028ef028/html5/thumbnails/3.jpg)
7/23/2019 Trabalho Qualidade - Henrique Leonardo
http://slidepdf.com/reader/full/trabalho-qualidade-henrique-leonardo 3/12
Figura 1: estrutura BIST genérica
deixando de realizar suas funções normais. O BIST on-line pode ser concorrente, o que
quer dizer que os testes são realizados em paralelo com as operações normais do
circuito, ou não concorrente, onde os testes são realizados enquanto o sistema está em
um estado ocioso, podendo voltar as suas atividades normais quando necessário.
No BIST off-line, o sistema é testado quando não está em seu modo de operação
normal. Há o BIST off-line funcional e o estrutural, sendo o primeiro baseado na descrição
funcional do CUT e é geralmente implementado como um software ou firmware de
diagnóstico.
O BIST off-line estrutural se baseia no teste da estrutura do CUT, onde são
utilizados TPGs (Test-Pattern Generatosr ) e ORAs (Output Response Analyzers ).
Geralmente utiliza-se um TPG do tipo PRPG (Pseudorandom Pattern Generator ) para
gerar pradrões de vetores de teste de entrada que são aplicados à cadeia scan interna do
dispositivo e utiliza-se um ORA do tipo MISR (Multiple Input Signature Register) para obter
a resposta deste dispositivo a estes padrões de entrada. Uma saída MISR incorreta indica
um defeito no dispositivo.
![Page 4: Trabalho Qualidade - Henrique Leonardo](https://reader036.vdocuments.com.br/reader036/viewer/2022081807/5695cfa51a28ab9b028ef028/html5/thumbnails/4.jpg)
7/23/2019 Trabalho Qualidade - Henrique Leonardo
http://slidepdf.com/reader/full/trabalho-qualidade-henrique-leonardo 4/12
GERAÇÃO ALETÓRIA DE TESTES (RTG)
A geração aleatória de testes não é verdadeiramente um processo aleatório de
seleção de vetores de entrada, mas sim um processo pseudo-aleatório. Isto significa queos vetores são gerados por um algoritmo determinístico tal que suas propriedades
estatísticas são semelhantes às de um conjunto de vetores selecionado aleatoriamente.
No teste pseudo-aleatório, geradores especiais podem produzir vetores pseudo-aleatórios
considerando diferentes vetores de inicialização (sementes) e diferentes tamanhos para
seqüências de teste.
A principal vantagem da geração aleatória de testes se encontra na facilidade de
geração de vetores. Sua principal desvantagem se encontra no fato de que um conjuntode teste gerado aleatoriamente que detecta um conjunto de falhas é muito maior
(geralmente 10 vezes ou mais) do que um conjunto de teste gerado de forma
determinística para um mesmo conjunto de falhas. Um problema relacionado é determinar
o número necessário de vetores gerados aleatoriamente para atingir uma dada qualidade
de teste.
Inicialmente, assume-se que os vetores de entrada estão uniformemente
distribuídos, isto é, cada um dos 2n vetores de entrada possíveis de um circuito com n
entradas primárias (PIs) possuem a mesma probabilidade de serem gerados. Isto significa
que cada PI tem probabilidade igual de ter um valor 0 ou 1. Assume-se também que os
vetores de entrada são gerados independentemente. Então o mesmo vetor pode aparecer
mais de uma vez em uma seqüência gerada. Porém, a maioria dos geradores pseudo-
aleatórios funciona de forma que um vetor gerado anteriormente não seja novamente
gerado. Este mecanismo leva a conjuntos de teste menores que aqueles gerados quando
assume-se vetores independentes.
GERADORES PSEUDO-ALEATÓRIOS
A geração pseudo-aleatória de testes é normalmente efetuada através de uma
estrutura conhecida como registrador de deslocamento com realimentação linear (LFSR,
Linear Feedback Shift Register ), composta por flip-flops tipo D e portas XOR interligadas
de forma semelhante a um registrador de deslocamento, porém com uma realimentação
![Page 5: Trabalho Qualidade - Henrique Leonardo](https://reader036.vdocuments.com.br/reader036/viewer/2022081807/5695cfa51a28ab9b028ef028/html5/thumbnails/5.jpg)
7/23/2019 Trabalho Qualidade - Henrique Leonardo
http://slidepdf.com/reader/full/trabalho-qualidade-henrique-leonardo 5/12
que estabelece um funcionamento cíclico, através de um conjunto de estados pré-
definido. O LFSR pode ser dividido nas seguintes partes: shift register, função de
realimentação e seqüências de tap.
Figura 2: Linear Feedback Shift Register
O shift register é um dispositivo formado por flip-flops cuja função é realizar o
deslocamento de bits entre os flip-flops . Este deslocamento pode ser feito para esquerda
ou direita (shift direction ). Por exemplo, supondo que há um deslocamento para esquerda
(shift left , deslocamento dos bits menos significativos para os mais significativos) de 8 bits,
o bit menos significativo (o primeiro bit) será movido para a posição do segundo bit,
enquanto este será movido para a posição do terceiro e assim por diante. É importante
observar o que acontece com as posições extremas (o primeiro e o oitavo bit): o bit maissignificativo será perdido no deslocamento e a posição do bit menos significativo ficará
“vazia”, a menos que seja preenchida com um novo valor (geralmente recebe um valor 0).
No LFSR é feita uma realimentação no shift register , de forma que o último bit não é
perdido e o primeiro bit recebe um valor de acordo com a realimentação.
No LFSR, os bits contidos em posições selecionadas do shift register são
combinados em uma função e o resultado é realimentado no bit de entrada do shift
register . Esta é a chamada função de realimentação (feedback function ). Por definição, os
valores dos bits selecionados são coletados antes do sinal de clock do registrador ser
atualizado e o resultado da função de realimentação é inserido no shift register durante o
deslocamento, preenchendo a posição que estava vazia por conseqüência deste
deslocamento.
Os bits usados na função de realimentação são chamados de taps . Uma lista de
taps é chamada de tap sequence . Por convenção, o bit de saída de um LFSR de n bits é o
n-ésimo bit enquanto que o bit de entrada é o bit um.
Um LFSR pertence a uma classe de dispositivos conhecidos como máquinas de
estados. O conteúdo do registrador, os bits utilizados na função de realimentação e a
![Page 6: Trabalho Qualidade - Henrique Leonardo](https://reader036.vdocuments.com.br/reader036/viewer/2022081807/5695cfa51a28ab9b028ef028/html5/thumbnails/6.jpg)
7/23/2019 Trabalho Qualidade - Henrique Leonardo
http://slidepdf.com/reader/full/trabalho-qualidade-henrique-leonardo 6/12
saída desta função juntos descrevem o estado da LFSR. A cada deslocamento, o LFSR
avança para um novo estado, exceto quando os bits do registrador estão todos em zero,
pois neste caso a LFSR nunca mudará de estado. Para um dado estado, há apenas um
estado sucessor. O inverso também é verdade, para cada estado, há apenas um estado
predecessor.O estado de um LFSR de n bits pode ser um de 2n estados diferentes. O maior
número de estados possível (state space ) para uma LFSR é 2n-1 (número total de estados
menos o estado zero). Devido ao fato de cada estado ser sucedido por apenas um
estado, uma LFSR com uma tap sequence máxima irá passar por cada estado (exceto o
zero) uma única vez antes de repetir um estado. Ao repetir o estado, o LFSR volta a gerar
a mesma sequência. O período de um LFSR é definido como o tamanho da seqüência de
bits de saída antes que esta se repita. O período esta relacionado com a tap sequence e ovalor inicial (semente), sendo este igual ao tamanho do state spaceI .
O maior período possível corresponde ao maior state space possível, que é
produzido pela tap sequence de tamanho máximo. A tap sequence pode ser vista como
um polinômio de grau n, onde n é o número de bits do LFSR e os taps correspondem aos
coeficientes do polinômio diferentes de zero, chamado polinômio gerador. Para que um
LFSR de n bits possua o maior state space possível (2n-1), é necessário que o seu
polinômio gerador seja um polinômio primitivo. Dado um polinômio de grau n na forma
p(x)=c0.x0 + c1.x1 + c2.x² + c3.x³ +... + cnx n, este polinômio é considerado primitivo se:
• Os coeficientes c0 e cn são diferentes de 0;
• Não é divisível por nenhum outro polinômio de menor ordem.
Por exemplo, o polinômio x³ + x² + 1 corresponde a um LFSR de 3 bits, como
ilustra a figura 3. Se para esta LFSR for usada a semente 100, por exemplo, é gerada a
sequência de 7 bits 1011100, como mostra a tabela 1. Após 7 bits, a sequência torna a se
repetir, repetindo-se também os mesmos estados. Portanto este polinômio pode ser
considerado um polinômio primitivo, pois é capaz de gerar o maior state space possível
para um LFSR de 3 bits, ou seja, 7 bits (2³-1). Já, se fosse usado o polinômio gerador x³ +
x² + x + 1, a sequência tornaria a repetir após 4 bits, pois este não é um polinômio
primitivo.
![Page 7: Trabalho Qualidade - Henrique Leonardo](https://reader036.vdocuments.com.br/reader036/viewer/2022081807/5695cfa51a28ab9b028ef028/html5/thumbnails/7.jpg)
7/23/2019 Trabalho Qualidade - Henrique Leonardo
http://slidepdf.com/reader/full/trabalho-qualidade-henrique-leonardo 7/12
Figura 3: LFSR de 3 bits
Tempo (clk) Estados LFSR Saída
0 1 0 0 -
1 0 0 1 1
2 0 1 0 0
3 1 0 1 1
4 0 1 1 1
5 1 1 1 1
6 1 1 0 0
7 1 0 0 0
Tabela 1: Estados LFSR de 3 bits com semente 100 e polinômio gerador x³ + x² + 1
Existem basicamente duas implementações do LFSR: a implementação de
Fibonacci (LFSR externo) e implementação de Galois (LFSR interno). A implementação de
Fibonacci se caracteriza pelo fato de ter os taps somados em módulo 2 e realimentados
na entrada do registrador, como pode ser observado na figura 4. Já a implementação de
Galois de caracteriza por possuir somas de módulo 2 entre a saída de um flip-flop e a
realimentação, passando o resultado para a entrada do flip-flop seguinte (figura 5).
Figura 4: Implementação LFSR de Fibonacci
![Page 8: Trabalho Qualidade - Henrique Leonardo](https://reader036.vdocuments.com.br/reader036/viewer/2022081807/5695cfa51a28ab9b028ef028/html5/thumbnails/8.jpg)
7/23/2019 Trabalho Qualidade - Henrique Leonardo
http://slidepdf.com/reader/full/trabalho-qualidade-henrique-leonardo 8/12
Figura 5: Implementação LFSR de Galois
ANALISADORES DE ASSINATURA
O teste utilizando geradores pseudo-aleatórios baseados em LFSR resulta na
geração de grandes volumes de informação de resposta do CUT (c ircuit under test,
circuito sob teste). Por exemplo, se um LFSR gera em torno de cinco milhões de padrões
aleatórios para um CUT de 256 bits de saída, isso resultará em mais de um bilhão bits de
resposta. A fim de diminuir o tamanho da resposta do circuito, realiza-se a compressão
desses dados, resultando em uma saída comprimida chamada de assinatura. Este
mecanismo é chamado de análise de assinatura.
A análise de assinatura é uma técnica de compressão baseada no conceito de
CRC (Cyclic Redundancy Checking ) e feita em hardware com o uso de LFSRs. Para
realizar a análise de assinatura, conecta-se o LFSR à saída do circuito, iniciando seus
FFs com uma semente (sempre valor zero), de forma que este receberá a sequência de
bits de saída e, ao final do recebimento, os valores mostrados na saída dos flip-flops
formam a assinatura, sendo esta o resto da divisão entre a seqüência de bits de saída do
CUT e o polinômio gerador do LFSR do analisador de assinatura. A idéia é que, para cada
seqüência de bits e gerada uma assinatura, de forma que, se o circuito apresentar alguma
falha, a assinatura gerada será diferente da do mesmo circuito em seu funcionamento
normal. Porém deve-se certificar de que a assinatura possui um número de bits tal que a
assinatura não se repita para seqüências diferentes, o que pode acarretar na não
descoberta de uma falha a qual possui a mesma assinatura que o funcionamento normal
do CUT, fenômeno este conhecido por aliasing .
![Page 9: Trabalho Qualidade - Henrique Leonardo](https://reader036.vdocuments.com.br/reader036/viewer/2022081807/5695cfa51a28ab9b028ef028/html5/thumbnails/9.jpg)
7/23/2019 Trabalho Qualidade - Henrique Leonardo
http://slidepdf.com/reader/full/trabalho-qualidade-henrique-leonardo 9/12
EXEMPLO DE UM BIST
Através da combinação de um PRG (pseudorandom generator ) e de um AS
(signature analyzer ), foi construída uma estrutura BIST simples, afim de testar uma únicaporta NAND de três entradas (figura 6). O LFSR1 gera uma sequência de 7 bits, enquanto
que o LFSR2 computa a assinatura (001). A tabela 2 ilustra os estados do LFSR1, a saída
da nand, os estados do LFSR2 e o quociente da divisão polinomial feita por LFSR2.
Figura 6: exemplo de um BIST com PRG e AS
LFSR1 NAND LFSR2 Q(x)100 - - -010 1 000 -101 1 100 -110 1 110 -111 1 111 0
011 0 001 10001 1 110 110100 1 111 0110
- - 001 10110
Tabela 2: Estados dos LFSRs, saída da NAND e quociente polinomial
A fim de confirmar o resultado obtido pode-se fazer o caminho inverso,
multiplicando o quociente obtido pelo polinômio gerador de LFSR2 e somando àassinatura (resto da divisão). O resultado deve ser a sequência de bits de saída do CUT.
![Page 10: Trabalho Qualidade - Henrique Leonardo](https://reader036.vdocuments.com.br/reader036/viewer/2022081807/5695cfa51a28ab9b028ef028/html5/thumbnails/10.jpg)
7/23/2019 Trabalho Qualidade - Henrique Leonardo
http://slidepdf.com/reader/full/trabalho-qualidade-henrique-leonardo 10/12
1011X 1101
10110000
10111011
1111111+ 1001111011
Supondo que a porta NAND apresente uma falha do tipo stuck-at 0 , a assinatura
será alterada, como ilustra a tabela 3.
LFSR1 NAND LFSR2 Q(x)
100 - - -010 1 000 -101 1 100 -110 1 110 -111 1 111 0011 1 001 10001 1 010 110100 1 101 0110
- - 000 10110
Tabela 3: Estados dos LFSRs, saída da NAND e quociente polinomial, com falha stuck-at 1 presente
![Page 11: Trabalho Qualidade - Henrique Leonardo](https://reader036.vdocuments.com.br/reader036/viewer/2022081807/5695cfa51a28ab9b028ef028/html5/thumbnails/11.jpg)
7/23/2019 Trabalho Qualidade - Henrique Leonardo
http://slidepdf.com/reader/full/trabalho-qualidade-henrique-leonardo 11/12
CONCLUSÃO
Geradores pseudo-aletatórios e geradores de assinatura são componentes
importantes no teste de circuitos integrados, substituindo equipamentos externos de custoelevado e possibilitando testes com maior rapidez e confiabilidade, além de atribuir ao
circuito a capacidade de auto-teste. O LFSR, utilizado nestas apicações, mostra-se uma
boa solução, devido à sua simplicidade e sua elevada velocidade, devido ao fato de ser
constituído por um número pequeno de componentes.
![Page 12: Trabalho Qualidade - Henrique Leonardo](https://reader036.vdocuments.com.br/reader036/viewer/2022081807/5695cfa51a28ab9b028ef028/html5/thumbnails/12.jpg)
7/23/2019 Trabalho Qualidade - Henrique Leonardo
http://slidepdf.com/reader/full/trabalho-qualidade-henrique-leonardo 12/12
REFERÊNCIAS
NETO, Afonso Comba de Araujo; WEBER, Raul Fernando. Um gerador de bits
pseudo-aleatórios seguro baseado em curvas elípticas . Instituto de Informática daUFRGS. <http://www.ppgia.pucpr.br/~maziero/static/ceseg/sbseg05/artigos/12424.pdf>.
Acessado em : 14/06/2010.
Simulação: geração de números pseudo-aleatórios.
<http://web.ist.utl.pt/ist11038/acad/or/simul/GerNumAleat.pdf>. Acessado em: 14/06/2010.
ROSA, Fernando Henrique Ferraz Pereira da; JUNIOR, Vagner Aparecido Pedro. Gerando Números Aleatórios. <www.feferraz.net/files/lista/random_numbers.pdf >.
Acessado em: 23/06/2010.
ABRAMOVICI, Miron; BREUER, Melvin A.; FRIEDMAN, Arthur D. Digital
Systems Testing and Testable Design. IEEE PRESS, 1990.
REIS, Ricardo Augusto da Luz. Concepção de Circuitos Integrados. Sagra
Luzzatto, 2002.
New Wave Instruments. LFSR Reference – M-Sequence, Linear Feedback Shift
Register, Feedback Taps for Maximal Length Sequences.
<http://www.newwaveinstruments.com/resources/articles/m_sequence_linear_feedback_s
hift_register_lfsr.htm>. Acessado em: 04/07/2010.
Linear Feedback Shift Register. <http://homepage.mac.com/afj/lfsr.html>.
Acessado em: 04/07/2010.
HEALY, Dan. Understanding Linear Feedback Shift Registers – The Easy Way.
< http://www.yikes.com/~ptolemy/lfsr_web/index.htm>. Acessado em: 04/07/2010.