Вы находитесь на странице: 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-Aleatrios
Analisadores de Assinatura

Guaba, 5 de julho de 2010

INTRODUO

Algoritmos implementados em um computador so, por definio, determinsticos,


ou seja, incapazes de produzir efeitos aleatrios de qualquer natureza. Porm, possvel
gerar, atravs de determinados algoritmos, valores numricos aparentemente aleatrios,
com base em um valor inicial, o qual chamado de semente. A esses algoritmos d-se o
nome de geradores pseudo-aleatrios, pois os nmeros gerados por estes no so de
fato aleatrios, sendo possvel prever valores com base no conhecimento do algoritmo e
do seu valor inicial.
Apesar da aparentemente inutilidade de se gerar nmeros que no so realmente
aleatrios, a gerao pseudo-aleatria de nmeros encontra vrias aplicaes, tais como
simulaes de fenmenos fsicos, amostragens populacionais, entretenimento (jogos),
testes de software e hardware. Isto se d pelo fato de se poder repetir uma sequncia
numrica gerada, bastante til em caso de simulaes, para fins de teste e depurao.
Neste trabalho, sero abordados os apectos de gerao pseudo-aleatria ligados ao teste
de hardware alm do mecanismo de anlise de assinaturas.

BIST

Existem diversas tcnicas de teste de hardware. Dentre elas, pode-se destacar a


BIST (Bult-In Self Test). A BIST uma tcnica 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 possvel, so 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 tcnicas 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 operao normal, isto , o circuito no necessita entrar em um modo de teste,

Figura 1: estrutura BIST genrica

deixando de realizar suas funes normais. O BIST on-line pode ser concorrente, o que
quer dizer que os testes so realizados em paralelo com as operaes normais do
circuito, ou no concorrente, onde os testes so realizados enquanto o sistema est em
um estado ocioso, podendo voltar as suas atividades normais quando necessrio.
No BIST off-line, o sistema testado quando no est em seu modo de operao
normal. H o BIST off-line funcional e o estrutural, sendo o primeiro baseado na descrio
funcional do CUT e geralmente implementado como um software ou firmware de
diagnstico.
O BIST off-line estrutural se baseia no teste da estrutura do CUT, onde so
utilizados TPGs (Test-Pattern Generatosr)

e ORAs (Output Response Analyzers).

Geralmente utiliza-se um TPG do tipo PRPG (Pseudorandom Pattern Generator) para


gerar pradres de vetores de teste de entrada que so 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 padres de entrada. Uma sada MISR incorreta indica
um defeito no dispositivo.

GERAO ALETRIA DE TESTES (RTG)

A gerao aleatria de testes no verdadeiramente um processo aleatrio de


seleo de vetores de entrada, mas sim um processo pseudo-aleatrio. Isto significa que
os vetores so gerados por um algoritmo determinstico tal que suas propriedades
estatsticas so semelhantes s de um conjunto de vetores selecionado aleatoriamente.
No teste pseudo-aleatrio, geradores especiais podem produzir vetores pseudo-aleatrios
considerando diferentes vetores de inicializao (sementes) e diferentes tamanhos para
seqncias de teste.
A principal vantagem da gerao aleatria de testes se encontra na facilidade de
gerao de vetores. Sua principal desvantagem se encontra no fato de que um conjunto
de 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
determinstica para um mesmo conjunto de falhas. Um problema relacionado determinar
o nmero necessrio de vetores gerados aleatoriamente para atingir uma dada qualidade
de teste.
Inicialmente, assume-se que os vetores de entrada esto uniformemente
distribudos, isto , cada um dos 2n vetores de entrada possveis de um circuito com n
entradas primrias (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 tambm que os
vetores de entrada so gerados independentemente. Ento o mesmo vetor pode aparecer
mais de uma vez em uma seqncia gerada. Porm, a maioria dos geradores pseudoaleatrios funciona de forma que um vetor gerado anteriormente no seja novamente
gerado. Este mecanismo leva a conjuntos de teste menores que aqueles gerados quando
assume-se vetores independentes.

GERADORES PSEUDO-ALEATRIOS

A gerao pseudo-aleatria de testes normalmente efetuada atravs de uma


estrutura conhecida como registrador de deslocamento com realimentao linear (LFSR,
Linear Feedback Shift Register), composta por flip-flops tipo D e portas XOR interligadas
de forma semelhante a um registrador de deslocamento, porm com uma realimentao

que estabelece um funcionamento cclico, atravs de um conjunto de estados prdefinido. O LFSR pode ser dividido nas seguintes partes: shift register, funo de
realimentao e seqncias de tap.

Figura 2: Linear Feedback Shift Register

O shift register um dispositivo formado por flip-flops cuja funo 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 posio do segundo bit,
enquanto este ser movido para a posio do terceiro e assim por diante. importante
observar o que acontece com as posies extremas (o primeiro e o oitavo bit): o bit mais
significativo ser perdido no deslocamento e a posio do bit menos significativo ficar
vazia, a menos que seja preenchida com um novo valor (geralmente recebe um valor 0).
No LFSR feita uma realimentao no shift register, de forma que o ltimo bit no
perdido e o primeiro bit recebe um valor de acordo com a realimentao.
No LFSR, os bits contidos em posies selecionadas do shift register so
combinados em uma funo e o resultado realimentado no bit de entrada do shift
register. Esta a chamada funo de realimentao (feedback function). Por definio, os
valores dos bits selecionados so coletados antes do sinal de clock do registrador ser
atualizado e o resultado da funo de realimentao inserido no shift register durante o
deslocamento, preenchendo a posio que estava vazia por conseqncia deste
deslocamento.
Os bits usados na funo de realimentao so chamados de taps. Uma lista de
taps chamada de tap sequence. Por conveno, o bit de sada 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 mquinas de
estados. O contedo do registrador, os bits utilizados na funo de realimentao e a

sada desta funo juntos descrevem o estado da LFSR. A cada deslocamento, o LFSR
avana para um novo estado, exceto quando os bits do registrador esto todos em zero,
pois neste caso a LFSR nunca mudar de estado. Para um dado estado, h apenas um
estado sucessor. O inverso tambm 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
nmero de estados possvel (state space) para uma LFSR 2n-1 (nmero 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 mxima 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 sequncia. O perodo de um LFSR definido como o tamanho da seqncia de
bits de sada antes que esta se repita. O perodo esta relacionado com a tap sequence e o
valor inicial (semente), sendo este igual ao tamanho do state spaceI.
O maior perodo possvel corresponde ao maior state space possvel, que
produzido pela tap sequence de tamanho mximo. A tap sequence pode ser vista como
um polinmio de grau n, onde n o nmero de bits do LFSR e os taps correspondem aos
coeficientes do polinmio diferentes de zero, chamado polinmio gerador. Para que um
LFSR de n bits possua o maior state space possvel (2n-1), necessrio que o seu
polinmio gerador seja um polinmio primitivo. Dado um polinmio de grau n na forma
p(x)=c0.x0 + c1.x1 + c2.x + c3.x +... + cnx n, este polinmio considerado primitivo se:

Os coeficientes c0 e cn so diferentes de 0;

No divisvel por nenhum outro polinmio de menor ordem.

Por exemplo, o polinmio 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
sequncia de 7 bits 1011100, como mostra a tabela 1. Aps 7 bits, a sequncia torna a se
repetir, repetindo-se tambm os mesmos estados. Portanto este polinmio pode ser
considerado um polinmio primitivo, pois capaz de gerar o maior state space possvel
para um LFSR de 3 bits, ou seja, 7 bits (2-1). J, se fosse usado o polinmio gerador x +
x + x + 1, a sequncia tornaria a repetir aps 4 bits, pois este no um polinmio
primitivo.

Figura 3: LFSR de 3 bits

Tempo (clk) Estados LFSR Sada


0

Tabela 1: Estados LFSR de 3 bits com semente 100 e polinmio gerador x + x + 1

Existem basicamente duas implementaes do LFSR: a implementao de


Fibonacci (LFSR externo) e implementao de Galois (LFSR interno). A implementao de
Fibonacci se caracteriza pelo fato de ter os taps somados em mdulo 2 e realimentados
na entrada do registrador, como pode ser observado na figura 4. J a implementao de
Galois de caracteriza por possuir somas de mdulo 2 entre a sada de um flip-flop e a
realimentao, passando o resultado para a entrada do flip-flop seguinte (figura 5).

Figura 4: Implementao LFSR de Fibonacci

Figura 5: Implementao LFSR de Galois

ANALISADORES DE ASSINATURA

O teste utilizando geradores pseudo-aleatrios baseados em LFSR resulta na


gerao de grandes volumes de informao de resposta do CUT (circuit under test,
circuito sob teste). Por exemplo, se um LFSR gera em torno de cinco milhes de padres
aleatrios para um CUT de 256 bits de sada, isso resultar em mais de um bilho bits de
resposta. A fim de diminuir o tamanho da resposta do circuito, realiza-se a compresso
desses dados, resultando em uma sada comprimida chamada de assinatura. Este
mecanismo chamado de anlise de assinatura.
A anlise de assinatura uma tcnica de compresso baseada no conceito de
CRC (Cyclic Redundancy Checking) e feita em hardware com o uso de LFSRs. Para
realizar a anlise de assinatura, conecta-se o LFSR sada do circuito, iniciando seus
FFs com uma semente (sempre valor zero), de forma que este receber a sequncia de
bits de sada e, ao final do recebimento, os valores mostrados na sada dos flip-flops
formam a assinatura, sendo esta o resto da diviso entre a seqncia de bits de sada do
CUT e o polinmio gerador do LFSR do analisador de assinatura. A idia que, para cada
seqncia 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. Porm deve-se certificar de que a assinatura possui um nmero de bits tal que a
assinatura no se repita para seqncias diferentes, o que pode acarretar na no
descoberta de uma falha a qual possui a mesma assinatura que o funcionamento normal
do CUT, fenmeno este conhecido por aliasing.

EXEMPLO DE UM BIST

Atravs da combinao de um PRG (pseudorandom generator) e de um AS


(signature analyzer), foi construda uma estrutura BIST simples, afim de testar uma nica
porta NAND de trs entradas (figura 6). O LFSR1 gera uma sequncia de 7 bits, enquanto
que o LFSR2 computa a assinatura (001). A tabela 2 ilustra os estados do LFSR1, a sada
da nand, os estados do LFSR2 e o quociente da diviso 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
10
001
1
110
110
100
1
111
0110
001
10110
Tabela 2: Estados dos LFSRs, sada da NAND e quociente polinomial

A fim de confirmar o resultado obtido pode-se fazer o caminho inverso,


multiplicando o quociente obtido pelo polinmio gerador de LFSR2 e somando
assinatura (resto da diviso). O resultado deve ser a sequncia de bits de sada do CUT.

1011
X 1101
1011
0000
1011
1011
1111111
100
1111011
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
0
011
1
001
10
001
1
010
110
100
1
101
0110
000
10110
Tabela 3: Estados dos LFSRs, sada da NAND e quociente polinomial, com falha stuck-at 1 presente

CONCLUSO

Geradores pseudo-aletatrios e geradores de assinatura so componentes


importantes no teste de circuitos integrados, substituindo equipamentos externos de custo
elevado e possibilitando testes com maior rapidez e confiabilidade, alm de atribuir ao
circuito a capacidade de auto-teste. O LFSR, utilizado nestas apicaes, mostra-se uma
boa soluo, devido sua simplicidade e sua elevada velocidade, devido ao fato de ser
constitudo por um nmero pequeno de componentes.

REFERNCIAS

NETO, Afonso Comba de Araujo; WEBER, Raul Fernando. Um gerador de bits


pseudo-aleatrios seguro baseado em curvas elpticas . Instituto de Informtica da
UFRGS.

<http://www.ppgia.pucpr.br/~maziero/static/ceseg/sbseg05/artigos/12424.pdf>.

Acessado em : 14/06/2010.
Simulao:

gerao

de

nmeros

pseudo-aleatrios.

<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

Nmeros

Aleatrios.

<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. Concepo 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.

Вам также может понравиться