36
Grupo VLSI Arquitetura Virtex-4 Rodolfo Galvão Aurélio 09/09/2007

Grupo VLSI

  • Upload
    kita

  • View
    41

  • Download
    0

Embed Size (px)

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

Page 1: Grupo VLSI

Grupo VLSI

Arquitetura Virtex-4

Rodolfo Galvão Aurélio

09/09/2007

Page 2: Grupo VLSI

Í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

Page 3: Grupo VLSI

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

Page 4: Grupo VLSI

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

Page 5: Grupo VLSI

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;

Page 6: Grupo VLSI

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;

Page 7: Grupo VLSI

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.

Page 8: Grupo VLSI

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.

Page 9: Grupo VLSI

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;

Page 10: Grupo VLSI

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

Page 11: Grupo VLSI

CLBs(cont.)

SLICE (1 or 3)

Page 12: Grupo VLSI

CLBs(cont.)

SLICE (2 or 4)

Page 13: Grupo VLSI

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.

Page 14: Grupo VLSI

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

Page 15: Grupo VLSI

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.

Page 16: Grupo VLSI

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)

Page 17: Grupo VLSI

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.

Page 18: Grupo VLSI

CLBs(cont.)

• Multiplexadores

– Uma LUT pode implementar um 2:1 multiplexer.

– 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)

Totalmente Combinacionais

Page 19: Grupo VLSI

CLBs(cont.)

• Designing Large Multiplexer

– 4:1 Multiplexer:

Page 20: Grupo VLSI

CLBs(cont.)

• Designing Large Multiplexer

– 8:1 Multiplexer:

Page 21: Grupo VLSI

CLBs(cont.)

• Designing Large Multiplexer

– 16:1 Multiplexer:

Page 22: Grupo VLSI

CLBs(cont.)

• Designing Large Multiplexer

– 32:1 Multiplexer:

Page 23: Grupo VLSI

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

Page 24: Grupo VLSI

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

Page 25: Grupo VLSI

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.

Page 26: Grupo VLSI

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 :

Page 27: Grupo VLSI

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.

Page 28: Grupo VLSI

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.

Page 29: Grupo VLSI

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.

Page 30: Grupo VLSI

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.

Page 31: Grupo VLSI

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)

Page 32: Grupo VLSI

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

Page 33: Grupo VLSI

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

Page 34: Grupo VLSI

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

Page 35: Grupo VLSI

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

Page 36: Grupo VLSI

FIM