Grupo VLSI
Arquitetura Virtex-4
Rodolfo Galvão Aurélio
09/09/2007
Índice
• Visão Geral
• Blocos de I/O (IOBs)
• Blocos Lógicos Configuráveis (CLBs)
• Blocos de RAM
• XtremeDSP
• Clock
• RocketIO
• PowerPC 405
• Core Ethernet MAC
• Referências Bibliográficas
Visão Geral
•
A Virtex-4 compreende um conjunto de famílias de FPGAs:
– Virtex-4 LX: aplicações de alto desempenho
– Virtex-4 SX: aplicações DSP de alto desempenho
– Virtex-4 LX: solução completa e de alto desempenho para aplicações de plataformas
embutidas
•
Os componentes do Virtex-4 são uma melhoria dos já existentes em outras
famílias (Virtex, Virtex-E, Virtex-2, Virtex-2 Pro e Virtex-2 Pro X).
•
Compatibilidade upward
Visão Geral (cont.)
• Todos os dispositivos Virtex-4 implementam as
funcionalidades:
– Blocos de I/O (IOBs)
– Blocos Lógicos Configuráveis (CLBs)
– Blocos de RAM
– XtremeDSP slices
– Blocos DCM (Digital Clock Manager)
• Virtex-4 FX :
– RocketIO MGT (Muit-Gigabit Transceiver)
– CPU RISC embutida IBM PowerPC 450 (450MHz)
– Cores EMAC (Ethernet Media Access Control) de 10/100/1000 Mb/s
Visão Geral (cont.)
• Matriz geral de rotas (GRM) fornece um vetor de chaves de
roteamento entre os componentes.
• Cada elemento programável é acoplado a uma matriz de chaves,
que permite múltiplas conexões com a GRM.
• Os valores são carregados nas células de memória durante a
configuração.
• Tecnologia de fabricação:
– Gate 90-nm;
– Menor consumo, maior densidade, melhor performance;
– 11-Layer: mais possibilidades de roteamento;
Blocos de I/O
• I/O blocos provê uma interface entre os pinos e a lógica
configurável.
• IOBs otimizados para aplicações com fontes sincronizadas.
• Otimizações de fontes síncronas incluem:
– Per-bit deskew;
– Data serializer/deserializer;
– Divisores de clock;
– Recurso de gerenciamentos de
clock local dedicados;
Blocos de I/O(cont.)
•
•
•
•
•
Um conversor serial para paralelo (com o divisor de clock associado) é
adicionado no caminho de entrada;
Um conversor paralelo para serial é adicionado no caminho de saída;
Tecnologia SelectIO™ :
– 1.5V to 3.3V I/O operation;
– Built-in ChipSync™ source-synchronous technology;
– Digitally controlled impedance (DCI) active termination;
– True differential termination;
– Low-capacitance I/Os para uma melhor integridade de sinais;
– Suporte à memórias: DDR and DDR-2, SDRAM, QDR-II, and RLDRAM-II;
Tecnologia ChipSync:
– Integrado com SelectIO para simplificar interfaces de fontes síncronas;
– Memory/Networking/Telecommunication interfaces up to 1 Gb/s+ DDR.
Digitally Controlled Impedance (DCI):
– Terminações opcionais serial ou paralela;
– Compensação de temperatura.
Blocos Lógicos Configuráveis
• Recurso pra implementar circuitos seqüências e combinacionais.
• Cada par em uma coluna tem um carry chain independente.
• Somente SLICEM possui um shift chain comum.
CLBs(cont.)
• SLICEM e SLICEL:
– 2 LUTs de 4 entradas cada (geradores de função);
• Cada gerador de função implementa funções lógicas e aritméticas além de ROM.
– 2 elementos de armazenamento;
• Podem ser FF D ou level sensitive latch, com sinais de CLK, CLK ENABLE,
SET/RESET
– Mutiplexadores (MUXF5, MUXF6, MUXF7, MUXF8);
• Podem combinar LUTs dentro de um mesmo CLB ou entre CLBs.
– Carry Logic;
• Provê adição e subtração aritmética rápida
– Portas lógicas;
CLBs(cont.)
• SLICEM :
– Armazena dados usando RAM distribuída;
• LUTs combinados para armazenar dados.
– Shift dos dados com registradores de 16 bits;
• Implementados por uma Look-Up Table.
4 LUTs no SLICEM
• Cad LUT pode atrasar o dado serial de 1 até 64 ciclos em uma CLB.
• Qualquer um dos 16 bits pode ser lido assincronamente pela variação do
endereço da LUT
• Conexão dedicada entre o último bit de um shift register e o primeiro bit do
próximo
CLBs(cont.)
SLICE (1 or 3)
CLBs(cont.)
SLICE (2 or 4)
CLBs(cont.)
• Look-up Tables
– Geradores de função implementados com 4 entradas.
– Atrasos de propagação são independentes da função lógica gerada.
– Sinais da LUT podem:
• Sair do slice diretamente (através de X e Y).
• Entrar em uma porta XOR dedicada.
• Selecionar a entrada do multiplexador de carry lógico.
• Alimentar a entrada do Flip-flop D.
– Multiplexadores (MUXF5 e MUXFX) podem combinar várias LUTs para
implementar funções lógicas com mais de 4 entradas.
• Storage Elements
– Além das entradas de CLK e CLK ENABLE temos SR (set) e REV (reset).
– SR também define o estado inicial do FF.
CLBs(cont.)
• Distributed RAM
– Cada LUT do SLICEM pode implementar um elemento de RAM síncrono
16x1 bit.
– Em 1 CLB (4 LUTs disponíveis no SLICEM) podemos ter:
• Single-Port 16x4-bit RAM
• Single-Port 32x2-bit RAM
• Single-Port 64x1-bit RAM
• Dual-Port 16x2-bit RAM
CLBs(cont.)
– Para configurações single-port, distributed RAM tem a mesma porta de
endereço para escrita síncrona e leitura assíncrona.
– Para o modo single-port, leitura e escrita dividem o mesmo barramento de
endereço.
– Para configurações dual-port, temos uma porta para escrita síncrona e
leitura assíncrona além de outra porta para leitura assíncrona.
– O gerador de função (LUT) tem pinos de endereço para leitura separado dos
pinos de endereço para escrita.
CLBs(cont.)
• Read Only Memory (ROM)
– Cada LUT ( SLICEM e SLICEL) pode implementar um 16x1-bit ROM.
– Esses elementos de ROM podem ser cascateados para aumentar a
capacidade de armazenamento.
– Quatro configurações estão disponíveis: ROM 16x1, ROM 32x1, ROM 64x1,
ROM 128x1.
Qual a diferença entre a RAM e ROM implementada pela CLB?
(16x2)
(16x4)
(16x8)
CLBs(cont.)
• Shift Register
– As LUTs do SLICEM podem implmentar shift
register de 16-bits sem usar FF D disponível no
slice.
– Aplicações de requerem delay ou período de
latência usam esses shift register para
desenvolver desings eficientes.
– As linha de SHIFTIN e SHIFTOUT podem ser
cascateadas para formar registradores mais
longos.
– Para criar rapidamente um shift register de uma
Virtex-4 sem usar flip-flops usamos o CORE
Generator™RAM-based shift-register module.
– Como isso podemos fazer uma escrita síncrona e
uma leitura síncrona/assíncrona simplemente
varrendo os endereços da LUT.
CLBs(cont.)
• Multiplexadores
– Uma LUT pode implementar um 2:1 multiplexer.
Totalmente Combinacionais
– A associação de LUTs e multiplexadores (MUXFX e MUXF5) podem formar:
• 4:1 multiplexer em 1 slice (2 lut)
• 8:1 multiplexer em 2 slices (3 lut)
• 16:1 multiplexer em 4 slices (1 CLB)(5 lut)
• 32:1 multiplexer em 8 slices (2 CLB)(10 lut)
CLBs(cont.)
• Designing Large Multiplexer
– 4:1 Multiplexer:
CLBs(cont.)
• Designing Large Multiplexer
– 8:1 Multiplexer:
CLBs(cont.)
• Designing Large Multiplexer
– 16:1 Multiplexer:
CLBs(cont.)
• Designing Large Multiplexer
– 32:1 Multiplexer:
Blocos de RAM
• Cada bloco armazena 18KBit de dados;
• Leitura e escrita síncronas
• Pode ser configurado para 16Kx1, 8Kx2 até 512x36
• Conteúdo de memória pode ser definido/limpado pelo bitstream de
configuração
• Durante a escrita, a saída pode ser o dado sendo escrito ou o dado
anterior a escrita. (read-during-write)
• True dual-port RAM
Blocos de RAM
• Melhoramentos do Virtex-4:
– Registradores pipeline na saída de leitura dos dados
• Taxa de clock mais alta ao custo de 1 período de clock de latência.
– Dois blocos de RAM adjacentes podem ser combinados (32Kx1) sem lógica
adicional ou perda de velocidade.
– Portas de 18 ou 36 bits com write enable individual por byte (usado para
interfacear com PPC450)
– Portas de leitura e escrita tem a mesma largura
– Os 2 clocks podem ter freqüências diferentes (assíncronos entre si)
– Não requer CLB adicional para controle da FIFO.
– Operação é controlada pelas entradas read e write enable
XtremeDSP Slice
• Cada bloco XtremeDSP contém 2 DSP48 slice para formar a
arquitetura do DSP.
• Muitos DSPs seguem multiplicação e adição. Os dispositivos
Virtex-4, possui circuitos multiplicadores e somadores dedicados.
Mas não possui todas as funcionalidades de um DSP comum.
• Suporta conexão de múltiplos DSP48 slices para formar funções
matemáticas, filtros DSP e aritmética complexa sem o uso de
outros recursos da FPGA.
• Segue a arquitetura ASMBL™
(Application Specific Modular Blocks). O
propósito desse modelo é tornar os
dispositivos programáveis bem
“recheados”. Com uma mistura de lógica,
memória, I/O, processador, gerenciador de
clock e processamento digital de sinais.
XtremeDSP Slice
• Multiplicador de 18 bits x 18 bits seguido por multiplexadores e
adder/subtracter de 3 entradas.
– Multiplicador aceita 2 operandos 18 bits e complemento de 2 e produz um
resultado de 36 bits e complemento de 2
– O adder/subtracter aceita 3 operandos de 48 bits com complementos de 2 e
produz um resultado de 48 bits.
– O resultado de adder/subtracter pode ser registrado num acumulador.
• Número de DSP48 slices :
Clock
• 8 a 24 regiões de clock dependendo do tamanho do dispositivo
• Clock Global:
– 32 linhas matched-skew que servem todo os dispositivo (CLB, Blocos de
RAM, DCM, I/O) e direcionam os sinais lógicos.
– As linhas de globais de clock são dirigidas somente por um buffer de clock
global.
– Pode selecionar entre duas fontes de clock.
– Virtex-4 pode chavear de uma fonte falha de clock.
– Buffer de clock global é dirigido pelo DCM para eliminar o atraso na
distribuição do clock ou para ajustar o atraso relativo a um outro clock.
Clock(cont.)
• Clock regional e clock de I/O:
– O buffer de clock regional pode ser programado para dividir a taxa de clock
de entrada por 1 até 8.
– Clocks de I/O são muito mais rápidos e servem circuitos locais de
serialização/desserialização (que circuitos são esses ?)
• Digital Clock Manager, recursos para gerenciamento do clock:
– Clock deskew:
• DCM contém um DLL (Delay-Locked Loop) para eliminar o atraso na distribuição
do clock.
• DLL contém elementos de delay (pequenos buffers) e lógica de controle.
• A lógica de controle possui um detector de fase e um seletor delay-line.
– Síntese de freqüência:
• Saídas separadas fornecem uma freqüência dobrada (CLK2X e CLK2X180)
• Outra saída (CLKDV) fornece uma freqüência que é uma fração da freqüência de
entrada.
Clock(cont.)
– Phase shifting (2 tipos):
• Baixa Resolução:
– Usa as fases de 90°, 180°, e 270° de CLK0 para fazer as saídas de clock CLK90,
CLK180, CLK 270.
• Alta Resolução:
– Permite que toda saída de clock do DCM seja phase-shifting relativo a CLKIN enquanto
mantém a relação entre as saíds de baixa resolução.
– Reconfiguração Dinâmica:
• Há uma conexão do bus com o DCM para se mudar os atributos do DCM sem
reconfigurar o resto do dispositivo.
• 4 modos: fixed, variable_positive, variable, center e direct.
Clock(cont.)
• PMCD (Phase-Matched Clock Dividers):
Dois tipos de de gerenciamento de clock:
– Phase-matched divided clocks:
• PMCDs criam até 4 versões frequency-divided e phase-matched de uma entrada
de clock (CLKA)
– Phase-matched delay clocks:
• PMCDs preservam os alinhamentos de borda, relações de fase ou atraso entre o
clock de entrada CLKA e os outros clocks PMCD de entrada.
RocketIO MGT
• Taxa de dados de 622 Mb/s até 10.3125 Gb/s
• 8 a 24 transceiver por FPGA
• 3-tap transmitter pre-emphasis (pre-equalization)
• Receiver continuous time equalization
• Equalizador DFE (Decision Feedback Equalizer) para aplicações legado
backplane
• Optional on-chip AC coupled receiver
• Digital oversampled receiver para taxa de dados de até 1.25 Gb/s
• Geração e verificação de CRC (Cyclic Redundancy Check) flexível
• Reconfiguração pelo usuário através da porta de reconfiguração
dinâmica (DRP)
IBM PowerPC 450
• PowerPC é uma arquitetura e uma família de microprocessadores RISC
(Reduced Instruction Set Computer) de 64 bits que possui um
subconjunto de características de 32 bits.
• PowerPC 450 (PPC450) é um processador de 32 bits que é uma
implementação do PowerPC embedded environment architecture que é
derivada da arquitetura PowerPC.
• Aplicações embarcadas para o PPC450 são compatíveis com outras
implementações de PowerPC.
• Bloco do processador é uma combinação:
– Core PPC405D5 (Virtex-2 Pro) ou PPC405F6 (Virtex-4)
– On-chip memory logic (OCM)
– Controlador APU (Auxiliary Processor Unit) (Virtex-4)
– Mais lógica e interface
IBM PowerPC 450(cont.)
• Cache de instruções integrado
• Cache de dados integrado
• Dois modos de privilégios:
– Modo privilegiado: Sistema operacional, drivers de baixo nível
– Modo usuário: aplicações
• Dois modos de tradução de endereços:
– Modo real: acesso direto à memória física
– Modo virtual: endereço virtual é traduzido em físico
• MMU (Memory Management Unit) virtual que suporta múltiplos
tamanhos de páginas e uma variedade de atributos de proteção de
armazenamento e opções de controle de acesso.
• Process 1.2V Core Voltage
Virtex-4 FX – Ethernet MAC
• Virtex-4 Ethernet MAC (Media Access Control) tem 2 Ethernet MAC
compartilhando uma única host interface
• Suporta taxa de dados de 10/100/1000 Mb/s
• Em conjunção com o RocketIO MGT fornece uma implementação
completa do 1000BASE-X on-chip
• O bloco contem 2 Ethernet MACs compartilhando uma host interface
• Lado físico e Lado Cliente
Referências Bibliográficas
•
Virtex-4 Family Overview http://direct.xilinx.com/bvdocs/publications/ds112.pdf
– Acessado em 05/09/2007
•
Virtex-4 User Guide http://direct.xilinx.xom/bvdocs/userguides/ug070.pdf
– Acessado em 05/09/2007
•
PowerPC 405 Processor Block Reference Guide
http://direct.xilinx.com/bvdocs/userguides/ug018.pdf
– Acessado em 05/09/2007
•
XtremeDSP for Virtex-4 FPGAs User Guide
http://direct.xilinx.com/bvdocs/userguides/ug073.pdf
– Acessado em 05/09/2007
•
Virtex-4 Embedded Tri-Mode Ethernet MAC User Guide
http://direct.xilinx.com/bvdocs/userguides/ug074.pdf
– Acessado em 05/09/2007
FIM
Download

Virtex 4