trabalho qualidade - henrique leonardo

12
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

Upload: sephirothhg

Post on 18-Feb-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Trabalho Qualidade - Henrique Leonardo

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

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

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

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

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

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

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

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

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

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

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

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.