360 likes | 484 Views
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.
E N D
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 shiftregister 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. • 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
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) • Truedual-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