Vous êtes sur la page 1sur 16

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL

INSTITUTO DE INFORMTICA
PROGRAMA DE PS-GRADUAO EM COMPUTAO

A New FPGA for DSP Applications Integrating BIST

NOME DO ALUNO
Gustavo Vieira Pereira

PROFESSOR
Flvio Rech Wagner

Disciplina: CMP114 - Arquitetura e Projeto de Sistemas VLSI I


Matrcula: MC074/2002

PORTO ALEGRE, SETEMBRO DE 2003.


ndice
INTRODUO..................................................................................................................................................3

1. ARQUITETURA DO BLOCO LGICO...............................................................................................5

1.1. CONFIGURAO DO BLOCO LGICO........................................................................................................9

2. DESCRIO VHDL....................................................................................................................................10

3. IMPLEMENTAO DE BLOCOS BSICOS.........................................................................................11

3.1. COMPARADOR..........................................................................................................................................11
3.2. MULTIPLICADOR......................................................................................................................................12
3.2.1.Multiplicador Serial 8 x 8................................................................................................................13

4. SIMULAES FUNCIONAIS...................................................................................................................14

5. VALIDAO DA ARQUITETURA...........................................................................................................16

6. CONCLUSES.............................................................................................................................................17
Introduo

Cada vez mais a utilizao de sistemas eletrnicos digitais nas reas de


telecomunicaes, processamento de voz, instrumentao, biomedicina e multimdia. A
maioria dessas aplicaes requer algum tipo de processamento de sinal. Essa funo
normalmente executada por um bloco digital devido s suas vantagens em relao a um
bloco analgico, tais como maior resoluo, maior imunidade a rudos, uso de tecnologia
mais avanada e maior grau de automao (facilidade de projeto/sntese).
A tarefa de processamento de sinais muito cara computacionalmente. Filtros
FIR (Finite Impulse Response) podem ser responsveis pela maioria das aplicaes de
telecomunicaes. Logo, a presena de circuitos digitais otimizados para esse tipo de tarefa
nos sistemas atuais muito importante. Da mesma forma, esses sistemas necessitam cada
vez mais de blocos de memrias RAM e ROM, blocos operacionais e de controle cada vez
maiores e mais complexos.
Verifica-se, portanto, uma crescente demanda por circuitos cada vez mais
densos e mais complexos, com altssimas velocidades e implementados em reas ativas
cada vez mais reduzidas. Um dos principais passos dados em direo soluo desses
problemas a integrao do maior nmero de componentes de um sistema, incluindo
processador, memria e unidades auxiliares, em um nico chip, os chamados Sistemas em
Silcio (Systems on Chip - SOC).
O aumento da complexidade dos circuitos a serem testados, exige,
conseqentemente, um aumento na complexidade dos circuitos testadores (teste externo),
tornando estes ltimos muito caros.
Uma alternativa vivel o autoteste integrado (Built-in Self Test - BIST), o qual
consiste em integrar algumas ou todas as funes de teste no prprio chip ou na placa a ser
testada.
O foco deste trabalho ser, implementar em Linguagem de Descrio de
Hardware (VHDL) uma arquitetura recongurvel otimizada para a implementao desses
dois tipos de circuitos (processamento digital de sinais e teste). Com esta abordagem
pretende-se ter ganhos de rea em relao tanto a uma implementao dedicada (full-
custom) quanto a uma implementao em dispositivos recongurveis comerciais.
1. Arquitetura do Bloco Lgico

Para a implementao da funo lgica da clula base do BiFi-FPGA, diversas


estratgias podem ser utilizadas: LUTs, multiplexadores, portas lgicas, ULAs, etc. Como
de conhecimento, os FPGAs tradicionais como Altera e Xilinx utilizam LUTs de 4 ou 5
entradas como componentes bsicos do bloco lgico. Apesar de uma k-LUT (LUT de k
entradas) poder implementar qualquer funo de k entradas, esta no seria uma escolha
adequada neste trabalho, pois a clula do BiFi-FPGA dever implementar somente poucas
funes bsicas (como soma e XOR, por exemplo) e, a utilizao de LUTs representaria um
desperdcio de rea. Logo, projetou-se uma clula baseada em portas lgicas (na forma de
uma ULA) e multiplexadores. A Figura. 1.1 mostra a interface do bloco lgico bem como
um esquemtico simplificado, em blocos, contendo seus principais componentes (ULA,
registrador de sada e Registrador-Deslocador-LFSR). H dois tipos de sinais na interface
da clula (Figura. 1.2): os sinais de dados (linhas cheias) e os sinais de controle (linhas
pontilhadas). Os sinais de dados (Tabela 1.1) podem ser de 4 bits (linhas grossas) ou de 1
bit (linhas finas). J os sinais de controle (Tabela 1.2) so todos de 1 bit.

Figura 1.1. - Interface do bloco lgico.


Sinal Funo
InA Entrada (operando A).
InB Entrada (operando B).
Out1 Sada registrada.
Out2 Sada do bloco ShiftRegLFSR.
Out3 Sada no-registrada.
cin Entrada de carry (carry-in).
cout Sada de carry (carry-out).
zin Entrada para cascateamento do sinal zout.
zout Sada indicadora de zero.
inAND Entrada de realimentao do LFSR.
SinL Entrada serial esquerda.
SinR Entrada serial direita.
SoutL Sada serial esquerda.
SoutR Sada serial direita.
SoutR0 Sada serial auxiliar direita.
SinLComb Entrada combinacional esquerda.
SoutRComb Sada combinacional direita.
Tabela 1.1. Sinais de Dados do Bloco Lgico.

Sinal Funo
Seleciona o operando A:
SelA 0 Realimenta a sada Out1
1 - Entrada inA
SelB Seleciona o operando B:
0 - Constante Zero
SelB
1 - Entrada inB
Controla inverso do operando B:
0 - No inverte
InvB 1 - Inverte
Obs: Este sinal tambm controla o cin da ULA se
SRAM6=SRAM7=1.
Seleciona a operao da ULA:
Oper 0 - Soma.
1 - XOR bit a bit.
ClrReg Zera registrador regOut.
EnaReg Habilita carga do registrador regOut.
Clr Zera ShiftRegLFSR e FF0.
0 - No modifica o valor armazenado no ShiftRegLFSR.
Ena
1 - Habilita o ShiftRegLFSR.
0 - Habilita carga do ShiftRegLFSR.
NLdSh
1 - Executa um shift no ShiftRegLFSR.
NLR Sentido de deslocamento do ShiftRegLFSR:
0 - Desloca ShiftRegLFSR 1 bit para a esquerda.
1 - Desloca ShiftRegLFSR 1 bit para a direita.
Obs.: Somente tem sentido se En=1 e nLdSh=1
InvSin Quando ativo (1), inverte os valores das entradas SinL e SinR.
til na gerao de padres para teste de memrias RAM.
ExtSign0
ExtSign1 Sinais de controle de extenso de sinal.
ExtSign2
Tabela 1.2. Sinais de Controle do Bloco Lgico.

A Figura. 1.2 mostra de forma detalhada a arquitetura do bloco lgico (clula),


cujos principais componentes so: uma ULA, um registrador de sada (RegOut), um
registrador-deslocador-LFSR (ShiftRegLFSR), um inversor e 4 multiplexadores 2x1.
Todos esses blocos, bem como as entradas (inA e inB) e sadas (out1, out2 e
out3), so de 4 bits.

Figura 1.2. - Arquitetura do bloco lgico.


A ULA pode executar duas funes, soma e XOR bit a bit, selecionveis atravs
do sinal de controle oper (oper=0 para soma ou oper=1 para XOR). A operao de
subtrao (inA-inB) possvel atravs da inverso do operando inB e configurao do cin
da ULA para receber o valor lgico 1 (um) (Tabela 1.3).

SRAM7 SRAM6 Resultado cin-ULA


0 0 0
0 1 1
1 0 cin
1 1 invB
Tabela 1.3. Controle do cin da ULA.

O bloco RegOut na sada Out1 da Figura1.2 simplesmente um registrador,


podendo ser utilizado para implementao de contadores e somadores/acumuladores, por
exemplo.
O registrador-deslocador ShiftRegLFSR pode ser configurado como um
registrador, um registrador-deslocador (direita ou esquerda) ou como um LFSR
configurvel. A Tabela 1.4 mostra as possveis configuraes para esse bloco. A
configurao do LFSR d-se atravs dos latches de configurao SRAM0 a SRAM3.
O bloco ShiftRegLFSR utilizado tambm para a gerao dos padres de teste
durante o teste de memrias RAM. Durante a implementao de multiplicadores seriais,
este registrador armazena o operando multiplicador, como ser visto a seguir.

Funes En nLdSh nLR SRAM0-3


Desabilitar registrador 0 x x xxxx
Carregar registrador 1 0 X 0000 (ou inAND=0)
Shift para esquerda 1 1 0 0000 (ou inAND=0)
Shift para direita 1 1 1 0000 (ou inAND=0)
LFSR 1 1 1 configurao do LFSR
Tabela 1.4. Possveis configuraces para o bloco ShiftRegLFSR.
1.1. Configurao do Bloco Lgico

Para armazenamento da configurao da clula, utilizaram-se 8 latches


(SRAM), tendo estes as seguintes funes:
_ SRAM0_3: Bits de configuraes do LFSR;
_ SRAM4: Seleciona a entrada do flip-flop FF0. SRAM4=1 permite que se tenha
a sada zout registrada. SRAM4=0 seleciona SoutR, permitindo implementar, juntamente
com o bloco ShiftRegLFSR, um registrador de deslocamento de 5 bits.
_ SRAM5: Permite selecionar o valor a ser colocado na entrada do registrador
de sada (RegOut) ou sada Out3. Pode ser a sada da ULA ou ento a sada da ULA
deslocada 1 bit para a direita. Esta ltima opo utilizada na implementao dos
multiplicadores.
_ SRAM6;7 (Lgica de carry). Permite colocar em '1' ou '0' o carry-in da ULA,
habilitar o cascateamento com outra clula ou conectar o cin com o sinal invB (Tabela
1.3).

2. Descrio VHDL

Para a modelagem da arquitetura utilizou-se a linguagem VHDL (Very-High


Speed Integrated Circuit Hardware Description Language). O projeto foi organizado de
forma estrutural, com mdulos parametrizveis sempre que possvel.
A Figura 2.1 mostra a hierarquia dos arquivos, os quais so identificados a
seguir:
po_cell- Bloco Lgico ou clula bsica, o arquivo de topo de projeto.
alu nbit - ULA de 4 bits
ula 1bit - Bit-slice da ULA
shift_reg_lfsr - Shift Register de 4 bits (Left or Right) e LFSR configurvel
reg - Registrador de 4 bits, ativo na borda de subida, reset assncrono.
ff_up_clr - Flip-flop de 1 bit, ativo na borda de subida, reset assncrono.

Depois de feita a descrio do bloco lgico (po_cell) do BiFi-FPGA, iniciou-


se a primeira fase de validao do mesmo, a qual apresentada a seguir.

Figura 2.1. Hierarquia dos Arquivos.

3. Implementao de Blocos Bsicos

Como primeira etapa de validao, foram implementados os dois blocos bsicos


(comparador de 8 bits e multiplicador serial 8 x 8) necessrios nas aplicaes DSP e BIST,
utilizando-se o bloco lgico aqui proposto.
Visto que cada clula manipula um conjunto de 4 bits, quando se desejar
implementar uma parte operativa maior, ser necessrio fazer o cascateamento de vrias
clulas.
3.1. Comparador

Um comparador implementado utilizando-se a funo XOR bit a bit da ULA.


Os operandos a serem comparados devem ser fornecidos pelas entradas inA e inB. A sada
Zout fornecer o valor 1 (um lgico) quando os operandos forem iguais ou 0 (zero lgico)
se eles forem diferentes. Para comparadores maiores que 4 bits deve-se colocar um 1 lgico
na entrada zin da primeira clula e fazer o cascateamento do sinal zout com as clulas
seguintes. O sinal indicador de igualdade obtido no zout pode ser visto na Figura 3.1.

Figura 3.1. Configurao Comparador.

3.2. Multiplicador

Embora seja necessrio um operador de multiplicao, decidiu-se no


implementar esse operador diretamente na clula, visto que esse tipo de estrutura consome
muita rea, e haveria um desperdcio quando no se estivesse utilizando a clula para a
implementao de filtros. Para este trabalho, decidiu-se implementar um multiplicador
serial que comparador a um multiplicador paralelo de mesmo tamanho possui menor rea
de projeto. Outra deciso tomada foi quanto ao formato dos operandos, decidindo-se que o
multiplicador deveria ser capaz de trabalhar com nmeros com sinal (complemento de
dois).
Tendo sido escolhido que a arquitetura do BiFi-FPGA fosse regular, ou seja,
todas as suas clulas seriam iguais, e que a granularidade da clula seria de 4 bits, tornou-se
impossvel a implementao eficiente dos multiplicadores tipo Booth, por exemplo. Isto se
deve ao fato desse multiplicador possuir algumas no-regularidades, tais como, tamanho de
dados diferentes, o que implicaria em modificaes drsticas no bloco lgico do BiFi-
FPGA.
Logo, com o objetivo de no se fazer modificaes drsticas na arquitetura do
BiFi-FPGA, decidiu-se que a multiplicao seria feita atravs da soma de produtos parciais
de um dos operandos e seria utilizada uma lgica adicional para se fazer o devido ajuste de
sinal quando necessrio. Logo, a estratgia seria implementar um multiplicador utilizando-
se diversas clulas do BiFi-FPGA.

3.2.1.Multiplicador Serial 8 x 8

Para a implementao de um multiplicador serial 8x8, utiliza-se duas clulas


mais uma mquina de estados para gerar os sinais de controle apropriados. A Figura 3.2
mostra as principais conexes entre as duas clulas (linhas tracejadas). O resultado da
multiplicao obtido aps n+1 pulsos de relgio, onde n o nmero de bits do operando
multiplicador. No primeiro pulso, o operando multiplicador colocado na entrada inB das
clulas e o ShiftRegLFSR carregado com esse operando. Nos pulsos seguintes, o
multiplicando colocado na entrada inB e, aps n pulsos de relgio, obtm-se o resultado.
A parte alta do resultado estar armazenada nos registradores (RegOut) e a parte baixa nos
registradores ShiftRegLFSR.
Figura 3.2. Configurao do Multiplicador Serial 8 x 8.

4. Simulaes Funcionais

Como citado na seo anterior, na primeira etapa de validao da arquitetura


proposta, foi implementado um bloco bsico (comparador 8bits) necessrio nas aplicaes
DSP e BIST, utilizando-se o bloco lgico aqui proposto. Alm disto, implementou-se um
circuito de aplicao alvo (multiplicador serial 8 x 8) necessrio em aplicaes como FIR
cannico serial. Nesta seo, sero mostradas as simulaes funcionais do comparador 8
bits e do multiplicador serial 8 x 8 desenvolvidas no software MAXPLUS ALTERA.
Abaixo sero mostradas as simulaes feitas cada um destes circuitos:
Comparador 8 bits

Figura 4.1. Formas de onda da simulao do comparador.

Pode-se observar atravs da Figura 4.1 que quando as duas entradas so iguais,
o 1 lgico propagado atravs do zout. Considerando que as entradas so de oito bits,
colocou-se o 1 lgico na entrada zin da primeira clula .

Multiplicador Serial 8 x 8

A Figura 4.2 mostra a simulao da seguinte operao: -1 x 64 = -64 (onde


-1=255 e -64=65472 em complemento de dois).

Figura 4.2. Formas de onda da simulao do Multiplicador Serial 8 x 8.


5. Validao da Arquitetura

Conforme foi mostrado na seo anterior, a primeira etapa para a validao da


idia proposta foi realizar o mapeamento de um bloco bsico (comparador) e a simulao
de um circuito com aplicao alvo (multiplicador serial 8 x 8) utilizando as clulas do BiFi-
FPGA. Tendo-se mapeado e tendo-se feita a simulao funcional desses blocos, devido ao
tempo disponvel para trmino deste trabalho, no foi possvel realizar implementar
diversos circuitos de aplicao alvo utilizando as clulas do BiFi-FPGA. Dentre estes
circuitos podem ser citados:
BIST_ROM_AxD: BIST de memria ROM. A e D representam a largura de
endereo e dados, respectivamente.
BIST_ RAM_AxD: BIST de memria RAM. A e D representam a largura
de endereo e dados, respectivamente;
LFSR_N: Linear Feedback Shift Register de N bits;
Mult_ Par_N: Multiplicador paralelo NxN bits;
FIR_Can_ Ser_TxN: Filtro FIR cannico (T taps) utilizando multiplicador
serial NxN bits que foi descrito e simulado anteriormente(Figura 3.2);

Alguns destes circuitos so citados em GONSALES, Alex D.;


LUBASZEWSKI, Marcelo; CARRO, Luigi; RENOVELL, Michel. A New FPGA for DSP
Applications Integrating BIST Capabilities. In: IEEE LATIN AMERICAN TEST
WORKSHOP, 3, 2002, Montevideo, Uruguay. Proceedings. . . 2002.(10-13 Feb).
Vale ainda salientar que para implementar as aplicaes citadas anteriormente,
preciso um estudo detalhado sobre tcnicas de autoteste integrado em memrias RAM e
ROM, bem como, um estudo de Filtro de Resposta Infinita necessrio em aplicaes DSP.
6. Concluses

Este trabalho apresentou a proposta de uma nova arquitetura de FPGA (BIST


and Filter Field Programmable Gate Array - BiFi-FPGA) destinada implementao de
circuitos de processamento digital de sinais (Digital Signal Processing - DSP) e autoteste
embutido (Built-in Self Test - BIST).
Devido complexidade desse projeto, este trabalho preocupou-se em focar
somente o bloco parte operativa devido parte de controle ser bem implementada pelos
FPGAs atuais de propsito geral. Alm disto, importante salientar que este trabalho
possibilitou a investigao superficial de vrias reas: processamento digital de sinais, teste
de hardware e projeto de arquiteturas reconfigurveis. Portanto, para obteno de resultados
mais especficos sobre s funes a serem implementadas, por exemplo, LFSRs, BIST em
memria RAM e ROM, necessrio um estudo aprofundado sobre cada um das reas
citadas anteriormente.
Quanto estimativa de reduo de rea utilizando-se a nova arquitetura FPGA
para aplicaes BIST e DSP, tambm no se fez um estudo aprofundado, deixando esta
pesquisa para trabalhos futuros.
A granularidade do bloco lgico escolhida foi de 4 bits, visto que as aplicaes
alvo trabalham sobre mltiplos desse valor (8,16, 32 ou mais bits). A partir, tendo-se j
definida a arquitetura do bloco lgico do BiFi-FPGA, passou-se a fazer sua descrio em
VHDL. O projeto foi feito de forma estrutural e parametrizvel.
Em fim, como primeira etapa para a validao da idia proposta foi realizado o
mapeamento de blocos bsicos utilizando as clulas do BiFi-FPGA. Aps o mapeamento e
simulao funcional desses blocos, iniciou-se a implementao de dois circuitos de
aplicao alvo utilizando as clulas do BiFi-FPGA onde se observou resultados
comportamentais que vo ao encontro ao esperado.

Vous aimerez peut-être aussi