Uma Nova Arquitetura de FPGA para Aplicações DSP Integrando

Anuncio
Uma Nova Arquitetura de FPGA para Aplicações DSP
Integrando Capacidades de BIST
Alex Gonsales*
Marcelo Lubaszewski**
*PPGC – Instituto de Informática
UFRGS
P.O. Box 15064 – Porto Alegre, RS
91501-970 – Brazil
{alexdg,erika}@inf.ufrgs.br
Luigi Carro**
Érika Cota*
** PPGEE – Dept. Engenharia Elétrica
UFRGS
Av. Osvaldo Aranha, 103 – Porto Alegre, RS
90035-190 – Brazil
{luba,carro}@iee.ufrgs.br
O projeto de sistemas em silício (Systems-on-Chip –
SOC) trouxe aos projetistas um novo desafio em termos
de teste e verificação. Problemas relacionados ao teste
de diversos blocos em um SOC são bem conhecidos
[6,7] e algumas soluções tem sido propostas
recentemente na literatura [8,9]. A partir das abordagens
de teste propostas, está claro que o uso de técnicas de
projeto visando o teste são essenciais para um teste
efetivo. Técnicas de auto-teste embutido (Built-In Self
Test - BIST) têm sido usadas para teste interno de
blocos embutidos ou núcleos [10,11].
A utilização de BIST mantém a proteção de
propriedade intelectual de um núcleo sem perda da
qualidade do teste. Todavia, esta característica pode vir
com um custo proibitivo em termos de área, como
mostrado em [12]. Por outro lado, diferentes
controladores de BIST podem normalmente serem
extraídos a partir do núcleo sem perda da proteção da
propriedade intelectual [13].
Dentro desse contexto, este trabalho discute alguns
aspectos do projeto de uma nova arquitetura de FPGA
otimizada para aplicações DSP e BIST. Esse FPGA
possuirá células específicas, composta de estruturas que
permitam a implementação de filtros FIR de alto
desempenho bem como a implementação de funções de
teste a serem usadas pelos núcleos no sistema. As
operações de BIST serão implementadas de uma
maneira seqüencial, uma a cada vez.
Para a realização deste trabalho, primeiramente foi
realizada uma avaliação da área necessária para
implementação de BIST dedicado para memórias RAM
e ROM, bem como a implementação de Geradores de
Padrões de Teste Pseudo-aleatório. Também foi
realizada uma análise da área requerida para a
implementação dedicada de filtros FIR. Em seguida,
esses mesmos circuitos (FIR e BIST) foram
implementados no FPGA aqui proposto e num
dispositivo FLEX10k da Altera [14]. Uma comparação
da área requerida por cada implementação foi realizada,
mostrando as vantagens de utilização do BiFi-FPGA.
Para ilustrar a idéia da proposta, na figura 1 pode-se
verificar a possível redução de área do sistema devido ao
agrupamento das funções de teste e do filtro FIR na
mesma área reconfigurável.
Resumo
Este trabalho apresenta uma nova arquitetura de
FPGA (BiFi-FPGA) com o objetivo de atender as
funções de processamento digital de sinais e teste dos
sistemas em silício. Além das vantagens de
reconfigurabilidade de um FPGA, a arquitetura
proposta tem a possibilidade de reuso de hardware para
teste enquanto mantém o nível de desempenho requerido
pelas aplicações correntes. Este artigo apresenta o
modelo do FPGA proposto juntamente com resultados
experimentais preliminares que mostram claramente as
vantagens desta técnica de otimização.
1. Introdução
Os sistemas eletrônicos digitais estão sendo cada vez
mais utilizados em aplicações de telecomunicações,
telefonia celular, processamento de voz, instrumentação,
biomédica e multimídia. A maioria destas aplicações
requer algum tipo de processamento de sinal. Essa
função normalmente é executada por um bloco digital
devido as suas vantagens em relação a um bloco
analógico, tais como maior desempenho e maior grau de
automação (facilidade projeto/síntese).
A tarefa de processamento de sinais é muito cara
computacionalmente. Filtros FIR por outro lado, chegam
a representar 80% do poder de computação requerido
pela maioria das aplicações de telecomunicações [1].
Logo, os circuitos digitais que atendem esse tipo de
aplicação devem atender os requisitos de alto
desempenho [2,3]. Consequentemente, a presença de
circuitos digitais otimizados para esse tipo de tarefa nos
sistemas atuais é muito usual.
A utilização dos FPGAs disponíveis no sistema
como recurso extra para processamento de sinal tem
sido estudado recentemente. Porém, os FPGAs
tradicionais não são adequados a implementação de tais
aplicações [2-4], principalmente devido a restrições de
desempenho e área. Com isso, têm surgido diversas
propostas de FPGAs otimizados para aplicações
intensivas em partes operativas ou funções de
processamento digital de sinais (Digital Signal
Processing – DSP) [1-5].
1
Este artigo está organizado como segue: A seção 2
apresenta alguns trabalhos relacionados com arquiteturas
reconfiguráveis e teste. Na seção 3 são analisadas as
estruturas de hardware necessárias para a
implementação de filtros FIR e dos testes abordados
neste trabalho. O FPGA proposto é apresentado na seção
4 enquanto que na seção 5 são mostrados alguns
resultados experimentais. Finalmente, na seção 6 são
apresentadas as conclusões e trabalhos futuros.
FIR and BIST
BIST
SOC
SOC
RAM
ROM
FIR
CC
RAM
ROM
FPGA
CC
Figura 1 – (a) BIST dedicado e (b) BIST reconfigurável.
2. Trabalhos Anteriores
Diversas propostas de arquiteturas reconfiguráveis
para aplicações específicas podem ser encontradas na
literatura [1-5]. Muitas delas estão relacionadas com
aplicações DSP, ou seja, uma arquitetura reconfigurável
otimizada para a implementação dessa classe de
aplicações [1-3].
Essas propostas diferem basicamente pela
granularidade de seus blocos programáveis, modelo de
conexões e estratégia de reconfiguração.
Cherepacha, por exemplo, propõe em [4] (DPFPGA) um FPGA para a implementação de aplicações
intensivas em partes operativas. Esse FPGA é composto
de 3 partes: memória, controle e parte operativa. Cada
parte do DP-FPGA é otimizado para implementar uma
classe de circuito (memória, controle ou parte
operativa), porém, o trabalho foca somente a parte
operativa.
Com relação a FPGAs para implementação de BIST,
existem poucos trabalhos. Renovell propõe em [15] a
criação de uma cadeia de escaneamento (Implicit Scan
Chain) nos FPGAs clássicos. Usando esta nova
arquitetura de FPGA, qualquer circuito seqüencial
implementado nesse FPGA é implicitamente escaneado
e testado.
Em [13], Carro et al propõem o uso de uma área
dedicada do sistema para a implementação das estruturas
de teste. Esta área é um FPGA (FLEX10K da Altera)
[14] usado para implementar controladores BIST. Tal
estratégia tem por objetivo a redução da área no chip
dedicada ao teste, uma vez que o mesmo hardware pode
ser reconfigurado seqüencialmente para implementar
cada um dos procedimentos de teste necessários. Além
disso, essa área dedicada pode ser reutilizada para
implementar outra função do sistema durante o modo de
operação normal do mesmo.
Verifica-se que entre as soluções correntes, ou uma
nova arquitetura de FPGA é criada para atender somente
as otimizações funcionais (DSP) ou uma arquitetura de
FPGA clássico é utilizado para implementar diferentes
soluções de teste. Todavia, a união destes dois
importantes pontos de vista não foi proposto ainda, pelo
conhecimento dos autores.
3. Estruturas de Hardware Para DSP e
BIST
Neste primeiro modelo, foram consideradas as
técnicas de teste para memórias RAM e ROM, e os
geradores de padrões de teste pseudo-aleatórios. Para
modelar as funções DSP foram considerados
inicialmente os filtros FIR.
Esta seção mostra as estruturas de hardware
necessárias para a implementação dessas aplicações.
Somente a parte operativa é analisada, uma vez que a
parte de controle e memória não estão no escopo deste
trabalho.
Essas estruturas são primeiramente descritas como
um conjunto básico de portas lógicas e blocos básicos.
Em seguida, é feita uma estimativa da área requerida
(número de transistores MOS) para sua implementação.
A tabela 1 mostra essa estimativa, onde a área é
representada em número de transistores em função do
número de bits n do bloco.
3.1 Filtros FIR
Os recursos necessários para a implementação de
filtros FIR são: multiplicadores, somadores, e blocos de
atraso (registradores) [16].
A área ocupada por um filtro FIR canônico com T
taps, n bits de dados e um multiplicador paralelo n x n
bits pode ser estimado por:
Area_fir = T(n.Array_Multiplier + 2.n.Adder + 2.n.Reg)
= T (34n2 + 96n)
(1)
Alternativamente, se um multiplicador serial do tipo
soma-desloca for utilizado, então a área ocupada pode
ser estimada por:
Area_FIR = T(n.Serial_Mult + 2.n.Adder + 2.n.Reg)
= T (80n + 56n + 40n)
= T (176n)
(2)
3.2 Teste de Memórias ROM
Para o teste de memórias ROM foi considerado o
algoritmo Check-Sum, o qual consiste em somar todas
as palavras da memória e comparar o resultado com um
valor pré-armazenado de uma memória sabidamente
sem defeitos. Se os dois valores forem diferentes então
um sinal de erro é ativado, indicando que a memória está
com defeito.
As seguintes estruturas são necessárias para a
implementação desse teste: um contador, um
somador/acumulador, um registrador e um comparador.
A Figura 2a mostra um exemplo de implementação
dedicada para o teste de uma memória ROM 4x16 (16
palavras de 4 bits cada). Neste exemplo, o valor do
check-sum a ser comparado é 3 (00112), necessitando os
dois inversores nas entradas da porta NOR.
Considerando d o número de linhas de dados e a o
número de linhas de endereço, a sobrecarga de área para
o circuito em questão é:
Area_rom = a(Counter) + d(Adder + Reg + NOR2)
= 48.a + 50.d
(3)
Tabela 1 – Estimativa de área para blocos básicos
Bloco
#Transistores
Counter
48.n
Adder
28.n
Array Multiplier
34.n 2
Serial Multiplier
80.n
MUX2x1
4.n
MUX4x1
12.n
Register
20.n
Shift Register
28.n
2-Input NOR (NOR2)
4.n
2-Input XOR (XOR2)
6.n
3.3 Teste Pseudo-aleatório
Várias estratégias de teste são baseadas no uso de
geradores de padrões pseudo-aleatórios, os quais podem
ser implementados por estruturas denominadas LFSR
(Linear Feed-back Shift Register) [18]. Essa mesma
estrutura pode ser utilizada tanto como um gerador de
vetores pseudo-aleatórios como um analisador de
assinaturas. A Figura 3 mostra um exemplo de LFSR de
3 bits funcionando como analisador de assinaturas.
A área ocupada por um LFSR com n bits pode ser
estimada por:
Area_lfsr = n(Reg + XOR) = 26.n
D
SET
CLR
Q
Q
D
SET
CLR
Q
Q
(5)
D
SET
CLR
Q
Q
Figura 3 – Linear Feedback Shift Register (LFSR).
4. Arquitetura do BiFi-FPGA
Para a implementação dos testes de memórias RAM,
foi considerado o algoritmo March descrito em [17].
Para o teste de uma memória RAM 4x16, a seguinte
seqüência de padrões de teste deve ser aplicado a cada
palavra da memória: 0000, 0001, 0011, 0111, 1111,
1110, 1100, 1000, 0000. Uma possível implementação
deste algoritmo é mostrada na figura 2b. A sobrecarga
de área para esta implementação é:
O BiFi-FPGA será composto de 3 partes, cada uma
otimizada para a implementação de uma classe de
circuitos (parte operativa, controle e memória) (Fig. 4).
Nesse sentido ele segue a mesma idéia proposta por
Cherepacha [4]. A diferença entre os dois trabalhos está
justamente na arquitetura da célula básica. Enquanto
aquele trabalho se detém na especificação de uma
arquitetura para a implementação de partes operativas
genéricas, este trabalho é mais específico, otimizando a
célula para a implementação de funções DSP e BIST.
Este trabalho se concentra somente no bloco parte
operativa, uma vez que a parte de controle é bem
implementada pelos FPGAs de propósito geral, tais
como Altera e Xilinx [4].
Area_ram = a(Counter) + d(Reg + ShiftReg + XOR2 +
NOR2)
=48.a +58.d
(4)
Como foi mostrado na seção 3, as seguintes
estruturas de hardware são necessárias para a
implementação das funções de DSP e BIST: somadores,
registradores, multiplicadores e portas XOR.
3.3 Teste de Memórias RAM
Normal
Address
ROM
Normal
Data
Normal
Address
Controle
RAM 4xa
Address
0
1
a
Counter
0
1
Data
a
Address
RAM
R/W
Out In
d
+
4
4
0
Counter
Shift
Register
Parte
Operativa
Figura 4 – Visão geral do BiFi-FPGA
1
Register
Error
Error
Figura 2 –Teste de memórias ROM 4x16 (a) e
RAM4x16 (b)
End
Test
Além disso, analisando-se as aplicações alvo, podese verificar que a maior parte das operações se darão
sobre dados múltiplos de 4, 8 ou 16. Consequentemente,
foi escolhida uma granularidade de 4 bits para a célula
básica.
Para a implementação da função lógica da célula,
diversas estratégias podem ser utilizadas: LUT (Look-up
Table), multiplexadores, portas lógicas, ULAs, etc.
Os FPGAs tradicionais, como Altera e Xilinx
utilizam LUTs de 4 ou 5 entradas. Uma k-LUT (LUT de
k entradas) nada mais é que uma memória com 2k bits
mais um multiplexador 2k x 1. Ela pode ser configurada
para implementar qualquer função de k entradas, o que
dá um total de (22)k possíveis funções.
No entanto, visto que nossa célula deverá
implementar somente 4 funções básicas, a escolha de
uma LUT para implementação da célula representaria
um desperdício de área. Logo, com o objetivo de
otimizações de área, projetou-se uma célula baseada em
portas lógicas (na forma de uma ULA) e
multiplexadores.
A figura 5 mostra a arquitetura da célula básica,
cujos principais componentes são: uma ULA, um
registrador, um registrador deslocador e 4
multiplexadores 2x1 de 4 bits. As entradas (inA e inB) e
as saídas (out1, out2 e out3) são de 4 bits também.
A ULA pode executar duas funções, soma e XOR bit
a bit. A operação de subtração (inA-inB) é possível
através da inversão do operando inB e configurando o
cin da ULA para receber o valor lógico 1 (um).
InA
InB
0
1
0
1
bi
0
bi-1
1
0
1
cin
oper
zout
cout
zout
cout
0
pcin
cin
zcin
SoutRMul
SinLMul
MUXout
0
1
SinL
Register
SoutR
ShiftRegLFSR
enaRegLFSR
nLdShLFSR
nLeftRight
enaReg
Out1
4
Out3
Tabela 2 – Área ocupada pela célula BiFi.
Bloco
#
#Transistores
Mux 2x1 de 1 bit
2
8
Mux 2x1 de 4 bits
4
64
ULA
1
136
Register 4-bit
1
80
ShiftRegLFSR
1
154
Latch
10
80
Flip-Flop
1
16
Inversor
5
10
NOR2
2
8
XOR2
1
6
AND2
1
6
Outros
1
6
Total
568
5. Resultados Experimentais
SinR
SoutL
4
implementação
de
somadores/acumuladores
e
contadores.
O registrador-deslocador ShiftRegLFSR pode ser
configurado como um registrador, registradordeslocador (direita ou esquerda) ou como um LFSR
configurável.
Durante
a
implementação
de
multiplicadores seriais, este registrador armazena o
operando multiplicador. O multiplicando deverá ser
fornecido pela entrada inA da célula. Esse bloco é
utilizado para a geração dos vetores durante o teste de
memórias RAM.
Além disso, esse registrador pode ser utilizado para a
implementação de técnicas de teste baseadas em scan
chain [15].
A saída não registrada (combinacional) (Out3) é
utilizada na implementação de multiplicadores paralelos.
A tabela 2 mostra o número de transistores
necessários para a implementação da célula básica.
4
Out2
= 1 bit Latch
Figura 5 – Arquitetura da Célula básica
Embora seja necessário um operador de
multiplicação, para a implementação de filtros, foi
decidido não implementar esse operador diretamente na
célula, visto que esse tipo de estrutura consome muita
área, o que iria significar um desperdício quando não se
estivesse utilizando a célula para a implementação de
filtros. Logo, foram adotadas duas estratégias utilizandose o algoritmo de Booth para a implementação de
multiplicadores:
1) Multiplicador Booth paralelo: Quatro células
implementam um multiplicador 4x4 que executa
em 1 ciclo;
2) Multiplicador Booth serial: Uma célula
implementa um multiplicador 4x4 que executa
em 4 ciclos.
O bloco register na saída Out1 é utilizado na
5.1 Mapeamento de Circuitos no BiFi-FPGA
Para validar a arquitetura proposta, um conjunto de
circuitos de benchmark foram mapeados no BiFi-FPGA.
A figura 6 mostra a implementação de BIST de uma
memória RAM4x16 (a) e uma ROM4x16 (b) utilizando
as células do BiFi-FPGA. A figura 7 mostra a
implementação de um multiplicador paralelo 4x4 bits (a)
e um filtro FIR canônico de 4 taps e 4 bits de dados (b).
5.2 Análise Comparativa de Custos
Três abordagens de projeto foram analisadas:
Implementação dedicada, implementação com FPGA
FLEX10K30 da Altera e com o BiFi-FPGA.
A tabela 3 mostra a estimativa de área ocupada por
alguns circuitos com implementação dedicada. A tabela
4 mostra os mesmos circuitos implementados no BiFiFPGA com o respectivo número de células necessárias e
área ocupada. A expressão da coluna três é calculada
pela equação 6:
Número de Transistores = 568 . Número de Células (6)
Normal
Address
ROM
Normal
Address
Accumulator
RAM
Counter
Normal
Data
Pattern
Generator
1
Counter
0
Addr
1
Tabela 3 - Implementação dedicada.
Circuito
#Transistores
1
+
0
Addr
R/W
+
+
1
Data
4
Zout
R/W
4
Out In
4
4
0
Zout
1
Zout
End Test
Control
Comparator
Control
4
Zout = Error
Comparator
4
4
Zout = Error
Figura 6 – Teste de ROM (a) e RAM (b).
MD
MR
MR0
+
+
0
0
MR1
+
0
+
0
MR2
+
0
0
48a+50d
48a+58d
80d
34d2
176d
34d2 + 96d
176d+56.log2(T)
Tabela 4 –Implementação no BiFi-FPGA.
Circuito
#Células
#Transistores
X[i]
0
0
ROM Test
RAM Test
Serial Multiplier
Array Multiplier
1 Tap FIR filter (with serial
multiplier)
1 Tap FIR filter (with array
multiplier)
*Serial FIR filter (1 serial
multiplier, T Taps)
MR3
ROM Test
RAM Test
Serial Multiplier
Array Multiplier
1 Tap Fir filter
(with serial
multiplier)
1 Tap FIR filter
(with
array
multiplier)
*Serial Fir filter (1
serial multiplier, T
Taps)
(a+2d)/4
(a+3d)/4
d/4
(d2)/4
3d/4
142a+284d
142a+426d
142d
142d2
426d
(d2+2d)/4
142d2+284d
(3d+2log2T)/4
426d+284log2T
+
+
0
4
Y[i]
Result
Figura 7 – Multiplicador Paralelo (a) e Filtro FIR (b).
Em ambas tabelas, considera-se que d (número de
linhas de dados) e a (número de linhas de endereço) são
múltiplos de 4.
A Tabela 5 mostra o número de células necessárias
para a implementação de diversos circuitos de
benchmark utilizando-se o BiFi-FPGA e dispositivos
FLEX10k30 da Altera.
Os valores da coluna BiFi foram calculados
utilizando-se as equações da Tab. 4. Para obter o
número de células necessárias no dispositivo Altera, os
mesmos circuitos foram descritos em VHDL e
sintetizados em dispositivos FLEX10k30, utilizando-se
a ferramenta MaxPlusII, que fornece o número de
células utilizadas na síntese.
Na Tabela 6 é feita uma comparação das 3
abordagens. As colunas 1 e 3 são calculadas utilizandose as equações deduzidas anteriormente (Tab. 3 e 4).
Para a estimativa da área ocupada nos dispositivos
Altera, teve-se de utilizar um artifício, visto que não é
fornecido o número de transistores nem a área ocupada
por um Logic Element dos dispositivos Altera
FLEX10K.
Analisando-se os dados fornecidos em [14], fezse uma estimativa do número de transistores necessários
para a implementação de um Logic Element (Tab 7). Foi
obtido o valor de 316 transistores, o qual foi utilizado
para se calcular os valores da coluna 3 da Tabela 7.
Tabela 5 – Número de células necessárias.
Bloco
FLEX10k
BiFi
Mult. Serial 8x8
38
2
Mult. Paralelo 8x8
64
16
ROM 8x256 BIST
20
6
RAM 8x256 BIST
31
8
RAM 8x4k BIST
35
9
RAM 16x256 BIST
53
14
RAM 16x4k BIST
57
15
LFSR (8bits)
25
2
LFSR (32bits)
97
8
Filtro Paralelo 8 bits (16
468*
320
Taps)
Filtro Serial 8 bits (16
272*
96
Taps)
* Fonte: Altera [19].
É possível verificar (Tab. 6) que em média, o BiFiFPGA ocupa 6 vezes mais área que uma implementação
dedicada. Esses valores também coincidem com aqueles
obtidos por [2]. Com relação a dispositivos FLEX10k, o
BiFi-FPGA tem um ganho de área de 50%, não se
levando em conta a conexão.
Tabela 6 – Comparação do número de transistores.
Bloco
Dedicado FLEX10k BiFi
Mult Serial 8x8
640
12008 1136
Mult Paralelo 8x8
2176
20224 9088
ROM 8x256 BIST
784
5520 3408
RAM 8x256 BIST
848
8556 4544
RAM 8x4k BIST
1040
9660 5112
RAM 16x256 BIST
1312
14628 7952
RAM 16x4k BIST
1504
15732 8520
LFSR (8 bits)
208
7900 1136
LFSR (32 bits)
832
30652 1136
Filtro Paralelo 8 bits
47104
147888 18176
(16 Taps)
0
Filtro Serial 8 bits (16
22528
85952 54528
Taps)
Tabela 7 - Estimativa para um Logic Element Altera.
Bloco
#Transistores
5 MUX2x1
20
1 Flip-Flop
24
1 LUT (4-Input)
128+60=188
(16 latchs + 1 MUX16x1)
Clear/Reset Logic
26
Cascade Chain
12
2-Input OR
6
5-bit Latch (programação)
40
Total
316
6. Conclusões e Trabalhos Futuros
Neste artigo foi apresentada uma nova arquitetura de
FPGA (BiFi-FPGA) destinado a implementação de
funções DSP e BIST. Através dos diversos circuitos de
benchmark mapeados nesse FPGA, foi possível verificar
as vantagens de sua utilização em relação a FPGAs
tradicionais (FLEX10k).
Como trabalhos futuros, estão sendo estudados os
detalhes da arquitetura de conexões, o método de
reprogramação bem como o desenvolvimento de um
software de síntese para o BiFi-FPGA.
7. Referências
[1] BELLILE, O.; DUJARDIN, E. Architecture of a
Programmable FIR Filter Co-Processor. In IEEE
International Symposium on Circuits and Systems (ISCAS),
1998. p. 433-436.
[2] KAVIANI, A.; VRANESIC, D.; BROWN, S.
Computational Field Programmable Architecture. Custom
Integrated Circuits Conference (CICC98), Santa Clara,
CA, May 1998.
[3] CHEN, C.; RABAEY, J. A Reconfigurable Multiprocessor
IC for Rapid Prototyping of Algorithmic-Specific HighSpeed DSP Data Paths. In: IEEE Journal of Solid-State
Circuits, v.27, n.12, p.1895-1904. Dec. 1992.
[4] CHEREPACHA, D. A Field-Programmable Gate Array
Architecture Optimized for Datapaths. Master Thesis of
Applied Science. Graduate Department of Electrical and
Computer Engineering. University of Toronto. Canada.
1994.
[5] WANG, Q. An Array Architecture for Reconfigurable
Datapaths. Master Thesis of Applied Science. University
of Toronto, 1993.
[6] GUPTA, R. K.; ZORIAN, Y. Introducing Core-Based
System Design. In IEEE Design & Test of Computers,
October-December, n. 4, v.13, 1997, p. 15-25.
[7] ZORIAN, Y. Test Requirements for Embedded Core-based
Systems and IEEE P1500, In International Test
Conference, September, 1997, p. 191-199.
[8] MARINISSEN, E.J, et al. Towards a Standard for
Embedded Core Test: an Example. In International Test
Conference, October, 1999, p. 616-627
[9] CHAKRABARTY, K. Design of System-on-a-Chip Test
Access Architectures Using Integer Linear Programming.
In VLSI Test Symposium, April, 2000, p. 127-134.
[10] RAVI, S.; JHA, N. K.; LAKSHMINARAYANA, G.
TAO-BIST: A Framework for Testability Analysis and
Optimization of RTL Circuits for BIST. In VLSI Test
Symposium, 1999, p. 398-406.
[11] KIEFER, G.; WUNDERLICH, H-J. Deterministic BIST
with Multiple Scan Chains. In International Test
Conference, October, 1998, p. 910-917.
[12] COTA, E.; KRUG, M.; LUBASZEWSKI, M.; CARRO,
L.; SUSIN, A.A. Implementing a Self-Testing 8051
Microprocessor In 12th Symposium on Integrated Circuits
and Systems Design (SBCCI), 1999, Natal, p. 202-205.
[13] CARRO, L.; AGOSTINI, L.; PACHECO, R.;
LUBASZEWSKI, M. Using Reconfigurability Features to
Break Down Test Costs: a Case Study. In: 1st IEEE Latin
American Test Workshop, Rio de Janeiro, 2000. p. 209214.
[14] ALTERA. The altera advantage. San Jose: Altera
Corporation, 1995. 679 p.
[15] RENOVELL, M.; et. al. IS-FPGA: A New Symmetric
FPGA Architecture with Implicit SCAN. In International
Test Conference, November 2001.
[16] PIRSCH, Peter. Architectures for Digital Signal
Processing. Chichester, England: John Wiley. 1998.
[17] TREUER, R.; AGARWAL, V. Built-in Self-Diagnosis for
Repairable Embedded RAMs. In IEEE Design & Test of
Computers, v.10, n.2, p.24-33. June 1993.
[18] ABRAMOCIVI, M.; Digital Systems Testing and
Testable Design. New York: IEEE, c1990. 652 p.
[19] ALTERA. Implementing FIR Filters in FLEX Devices.
Altera Corporation, Application Note 73. Feb. 1998.
Descargar