Dispositivi programmabili Dispositivi programmabili – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu’ o meno complessi che possono essere opportunamente interconnessi secondo diverse configurazioni in funzione delle specifiche di progetto – Dispongono di • • • • Componenti logici (porte logiche, Flip-Flop, Buffer) Linee di connessione Sistemi di inetrconnessione (Multiplexer, connessioni) Porte di I/O – Tipologie di Circuiti Programmabili – PLA, PAL, ROM. – CPLD – FPGA Dispositivi Programmabili • I diversi dispositivi possono essere classificati in base a diversi aspetti: – Modalita’ di programmazione • • • • programmabili a maschera (MPGA) programmabili una volta (Fuse o Antifuse) riprogrammabili (EEPROM, SRAM) riconfigurabili (SRAM) – Connessioni • Globali • Locali e distribuite Modalita’ di programmazione – FUSE • Le connessioni tra linee sono inizialmente tutte attive • In fase di programmazione si disattivano permanentemente le connessioni inutili – ANTIFUSE • Le connessioni tra linee sono inizialmente tutte inattive • In fase di programmazione si attivano permanentemente le connessioni utili – EEPROM • le connessioni inizialmente sono tutte inattive • In fase di programmazione si possono attivare o disattivare elettricamente in modo non distruttivo • Lo stato viene mantenuto anche in assenza di alimentazione Modalita’ di programmazione – SRAM le connessioni inizialmente sono tutte inattive • In fase di programmazione si possono attivare o disattivare elettricamente in modo non distruttivo • Lo stato NON viene mantenuto in assenza di alimentazione • Maggiore velocita’ di programmazione rispetto la tecnologia EEPROM • In base alla tecnologia la programmazione puo’ avvenire: – Durante la fase non operativa del dispositivo (riprogrammabile) – Durante la fase operativa del dispositivo (riconfigurabile) • Si interviene separatamente su varie parti del dispositivo Fuse • Le linee del dispositivo sono in origine tutte connesse – La programmazione consiste nel “BRUCIARE” (fuse) alcune connessioni in modo tale da mantenere solo quelle necessarie – La programmazione avviene mediante una tensione piu’ elevata di quella di normale funzionamento Antifuse • Le linee del dispositivo sono in origine tutte disconnesse – La programmazione consiste nel “CREARE” (antifuse) le connessioni necessarie – La programmazione avviene mediante una tensione piu’ elevata di quella di normale funzionamento EEPROM • Le linee del dispositivo sono in origine tutte disconnesse – La programmazione consiste nel “DEPOSITARE” una carica sul gate flottante del transistor in modo da mandarlo in conduzione – La cancellazione puo’ avvenire elettricamente o tramite esposizione a raggi UV SRAM (RAM statica) • Le linee del dispositivo sono in origine tutte disconnesse – La programmazione consiste nel “MEMORIZZARE” un valore logico (‘0’ o ‘1’) inu una cella di RAM Statica Connessioni • Connessione Globale – Linea che attraversa buona parte del dispositivo e condivisa da molti elementi logici • Elevati ritardi • Puo’ essere pilotata da un solo elemento logico (scarsa flessibilita’) • Connessione locale – Linea che attraversa una parte ridotta del dispositivo ed e’ condivisa da pochi elementi • ritardi piu’ contenuti • elevata flessibilita’ Connessioni • Le connessioni globali sono caratteristiche dei – Dispositivi logici a due livelli: • PAL, PLA, ROM – CPLD (Complex Programmable Logic Device) • Le connessioni locali sono caratteristiche degli – FPGA (Field Programmable Gate Array) Logiche programmabili a 2 livelli • Sono usate per realizzare funzioni logiche a due livelli NOTA1: qualunque funzione combinatoria puo’ essere espressa come somma di termini minimi • NOTA2: si possono realizzare funzioni a piu’ livelli sfuttando la retroazione • Dispongono di: • • • • Un numero di ingressi fissato (Buffer di Ingresso) Un piano di AND (per realizzare i termini minimi) Un piano di OR (per realizzare le somme) Un numero di uscite fissato (Buffer di Uscita) Logiche programmabili a due livelli • Vi sono tre tipi principali – PLA (Programmable Logic Array) • Piano AND programmabile – Implementa solo i termini minimi necessari • Piano OR programmabile – PAL (Programmable Array Logic) • Piano AND programmabile • Piano OR fissato – Impone un vincolo sul numero di termini minimi che la funzione contiene – ROM (Read Only Memory) • Piano AND fissato – Implementa tutti i possibili termini minimi (DECODER) • Piano OR programmabile Programmable Logic Array (PLA) • Consente di realizzare qualunque funzione logica • Questa e’ espressa in somme di implicanti Programmable Logic Array (PLA) • Schema logico di una PLA – Esempio con 3 ingressi e due uscite (non programmata) Programmable Logic Array (PLA) • ESEMPIO1: – Realizzazione delle funzioni f1 = ab + ac’ + a’b’c f2 = ab + ac + a’b’c – Prodotti p1 = ab p2 = ac p3 = ac’ p4 = a’b’c – Somme f1 = p1 + p3 + p4 f2 = p1 + p2 + p4 Formato PLA: 1110 1-0 10 001 10 1101 1-1 01 001 01 Programmable Logic Array (PLA) Programmable Logic Array (PLA) Programmable Logic Array (PLA) Programmable Logic Array (PLA) Programmable Array Logic (PAL) • Piano di AND programmabile e piano OR fissato • Consente di implementare somme di prodotti – Vi puo’ essere un limite sul numero massimo di prodotti che possono concorrere nella realizzazione di una funzione Programmable Array Logic (PAL) • Schema logico di una PAL – Esempio di PAL a 3 ingressi e 2 uscite (non programmata) Read Only Memory (ROM) – Puo’ essere realizzata con un piano di AND fisso e completo e con un piano di OR programmabile – In pratica implementa m funzioni a n ingressi – ad una configuarzione d’ingresso (INDIRIZZO) viene associata una configurazione d’uscita (PAROLA) – Il piano AND agisce da DECODIFICATORE degli indirizzi Read Only Memory (ROM) • Piano AND (decodificatore degli indirizzi) – realizza tutti i possibili termini minimi – per ogni configurazione d’ingresso attiva una ed una sola linea d’uscita Read Only Memory (ROM) • Schema logico del piano AND Read Only Memory (ROM) • Schema logico di una ROM – Esempio di una ROM a 3 ingressi e 4 uscite (non programmata) Read Only Memory (ROM) • Esempio: – dalla tabella di verita’ della funzione a piu’ uscite abc 000 001 010 011 100 101 110 111 f1 0 1 0 1 1 1 1 1 f2 0 1 0 0 0 1 0 1 f3 0 1 1 1 1 1 1 0 f4 1 1 0 1 1 1 1 1 f5 0 0 1 0 1 1 1 1 Read Only Memory (ROM) • Realizzazione della funzione PLA e PAL avanzate • PLA e PAL consentono di realizzare solo reti combinatorie a due livelli • Questo limite puo’ essere superato – Introducendo una rete di reazione • permette di implementare reti combinatorie a piu’ di due livelli – Introducendo elementi di memoria (Flip-Flop) • permette di implementare macchine sequenziali (sincrone) PLA e PAL avanzate • Esempio di implementazione di una rete combinatoria a piu’ livelli grazie alla retroazione PLA e PAL avanzate • Esempio: realizzazione PLA e PAL avanzate • L’aggiunta di elementi di memoria in uscita possono ulteriormente ampliare le prestazioni del dispositivo CPLD Complex Programmable Logic Device • Sono la logica evoluzione di PAL e PLA • Sono caratterizzati da: – Connessioni globali – Logica Concentrata • Rispetto PAL e PLA – Sono piu’ complessi e hanno dimensioni maggiori – Consentono di ottenere prestazioni piu’ elevate CPLD - XC9500 Architecture 3 JTAG Controller JTAG Port In-System Programming Controller Function Block 1 I/O I/O I/O I/O Blocks I/O Global Clocks Global Set/Reset Global Tri-States Function Block 2 FastCONNECT Switch Matrix Function Block 3 3 1 Function Block 4 2 or 4 5 volt in-system programmable (ISP) CPLDs 5 ns pin-to-pin 36 to 288 macrocells (6400 gates) Industry’s best pin-locking architecture 10,000 program/erase cycles Complete IEEE 1149.1 JTAG capability XC9500 Function Block Global Clocks AND Array 3 Global Tri-State 2 or 4 Macrocell 1 I/O Macrocell 18 I/O ProductTerm Allocator 36 From FastCONNECT To FastCONNECT Each function block is like a 36V18 ! Struttura XC9500 Struttura della macrocella Struttura XC9500 Struttura del “product term allocator” Struttura XC9500 Possibilita’ di collegamento offerte dal “product term allocator” Struttura XC9500 Possibilita’ di collegamento offerte dal “product term allocator” Struttura XC9500 Linee globali di clok, set, reset Struttura XC9500 Cella di I/O XC9500 Product Family 9536 9572 95108 95144 95216 95288 Macrocells 36 72 108 144 216 288 Usable Gates 800 1600 2400 3200 4800 6400 tPD (ns) 5 7.5 7.5 7.5 10 10 Registers 36 72 108 144 216 288 Max I/O 34 72 108 133 166 192 PC84 TQ100 PQ100 PQ160 PQ100 PQ160 Packages VQ44 PC44 PC44 PC84 TQ100 PQ100 PQ160 HQ208 BG352 HQ208 BG352 XC9500 - Q e A Q: E’ possibile realizzare tramite CPLD XC9500 la seguente architettura? XC9500 - Q e A Q: E’ possibile realizzare tramite CPLD XC9500 la seguente architettura? A: NO con una CPLD si possono realizzare solo circuiti DIGITALI XC9500 - Q e A Q: E’ possibile realizzare tramite CPLD XC9500 la seguente funzione, ossia un predeterminato RITARDO asincrono ? In RIT = 20ns Out XC9500 - Q e A Q: E’ possibile realizzare tramite CPLD XC9500 la seguente funzione, ossia un predeterminato RITARDO asincrono ? In RIT = 20ns Out A: NO: non vi e’ alcun modo o alcun elemento che possa realizzare questa funzione. Nota1: nei circuiti digitali il ritardo e’ una conseguenza (indesiderata) della struttura stessa del circuito e non un parametro da soddisfare Nota2: Un elemento di ritardo e’ tuttavia realizzabile in modo SINCRONO XC9500 - Q e A Q: E’ possibile realizzare tramite CPLD XC9500 la seguente funzione logica (gli ingressi e le uscite siano collegati direttamente ai pin di I/O del dispositivo)? XC9500 - Q e A Q: E’ possibile realizzare tramite CPLD XC9500 la seguente funzione logica (gli ingressi e le uscite siano collegati direttamente ai pin di I/O del dispositivo)? A: NO: Non esiste alcun collegamento diretto tra i pin e la logica interna, ma bisogna passare attraverso ai buffer di I/O (il tool di sviluppo corregge automaticamente questo tipo di errore) XC9500 - Q e A Q: E’ possibile realizzare tramite CPLD XC9500 la seguente funzione (una logica pilota altre logiche struttando un bus tristate) Logic 2 Logic 1 Logic 3 XC9500 - Q e A Q: E’ possibile realizzare tramite CPLD XC9500 la seguente funzione (una logica pilota altre logiche struttando un bus tristate) Logic 2 Logic 3 Logic 1 A: NO ! Gli unici buffer tri-state del dispositivo sono disponibili nei blocchi di I/O e pertanto non possono essere usati per pilotare logiche interne al dispositivo stesso! (un eventuale loop dal pin di uscita dovrebbe passare attraverso un buffer di ingresso che ne annullerebbe l’effetto FPGA: Introduzione – Le FPGA (Field Programmable Gate Array) sono dispositivi programmabili costituiti da una matrice di componenti logici collegabili tra loro Complex Programmable Logic Device (CPLD) Field-Programmable Gate Array (FPGA) Architecture PAL/22V10-like More Combinational Gate array-like More Registers + RAM Density Low-to-medium 0.5-10K logic gates Medium-to-high 1K to 3.2M system gates Performance Predictable timing Up to 250 MHz today Application dependent Up to 200 MHz today Interconnect “Crossbar Switch” Incremental FPGA • Le FPGA mettono a disposizione dell’utente – Componenti logici (CLB - Slice) costituiti da • logica, piccole memorie, flip-flop, buffer, multiplexer. – Linee di connessione • sia locali (corte) che distribuite (lunghe) – Matrici di inter-connessione • per collegare varie line tra loro e da queste ai blocchi logigi – Blocchi di I/O • particolari blocchi logici dedicati all’I/O provvedono Buffer, protezioni, Fan-out, resistenze di pull-up e pull-down, adattatori d’impedenza, … – Blocchi particolari • memorie, moltiplicatori, PLL, decodificatori, … FPGA • Pregi e difetti: – – – – – – – – – Estremamente versatili Elevata complessita’ computazionale Piu’ lente di CPLD e ASIC Costo elevato per singolo componente (ma esistono famiglie particolarmente economiche) Costo del prototipo ridotto “Time to market” molto ridotto Possibilita’ di “upgrade” del circuito (anche a distanza) Ottime per la realizzazione di prototipi, (ma si usano sempre di piu’ anche negli elevati volumi di fabbricazione) Capacita’ di supportare sistemi interni (embedded systems) XC4000 Architecture and Features XC4000 Architecture CLB Slew Rate Control CLB Switch Matrix D CLB Input Buffer Programmable Interconnect C1 C2 C3 C4 H1 DIN S/R EC S/R Control DIN G Func. Gen. SD F' H' EC RD 1 F4 F3 F2 F1 H Func. Gen. F Func. Gen. Y G' H' S/R Control DIN SD F' D G' Q H' 1 H' K Q D G' F' Vcc Output Buffer CLB Q G4 G3 G2 G1 Q Passive Pull-Up, Pull-Down EC RD X Configurable Logic Blocks (CLBs) D Delay I/O Blocks (IOBs) Pad XC4000E/X Configurable Logic Blocks • • 2 Four-input function generators (Look Up Tables) - 16x1 RAM or Logic function 2 Registers - Each can be configured as Flip Flop or Latch - Independent clock polarity - Synchronous and asynchronous Set/Reset C1 C2 C3 C4 H1 DIN S/R EC S/R Control G4 G3 G2 G1 DIN F' G' G Func. Gen. SD H Func .Gen. F Func. Gen. EC RD G' H' Y S/R Control DIN F' G' SD D Q XQ H' 1 H' K YQ H' 1 F4 F3 F2 F1 Q D F' EC RD X Look Up Tables • Combinatorial Logic is stored in 16x1 SRAM Look Up Tables (LUTs) in a CLB Look Up Table • Example: 4-bit address Combinatorial Logic A B C D Z A 4 0 0 0 0 0 (2 ) B 0 0 0 1 0 Z C 0 0 1 0 0 D 0 0 1 1 1 0 1 0 0 1 Capacity is limited by number of 0 1 0 1 1 2 = 64K ! inputs, not complexity Choose to use each function generator as 4 input logic (LUT) or as high speed sync.dual port WE RAM G4 G3 G2 G1 G Func. Gen. . . . 1 1 1 1 1 1 1 1 0 0 1 1 0 1 0 1 0 0 0 1 XC4000X I/O Block Diagram Shaded areas are not included in XC4000E family. Xilinx FPGA Routing 1) Fast Direct Interconnect - CLB to CLB 2) General Purpose Interconnect - Uses switch matrix 3) Double Lines 4) Long Lines Segmented across chip Global clocks, lowest skew 2 Tri-states per CLB for busses CLB Switch Matrix CLB Switch Matrix CLB CLB What’s Really In that Chip? Programmable Interconnect Points, PIPs (White) Switch Matrix Routed Wires (Blue) Direct Interconnect (Green) CLB (Red) Long Lines (Purple) Spartan-II Architecture and Features Xilinx Features Your Programmable Logic Solution Virtex-II Spartan-IIE CPLDs Low Power 10K Presentation Name 63 FPGAs FPGAs SRAM-based Feature Rich Low Cost SRAM-based Feature Rich High Performance 600K Density (System Gates) 10M Features • Plentiful logic and memory resources – 15K to 200K system gates (up to 5,292 logic cells) – Up to 57 Kb block RAM storage • Flexible I/O interfaces – From 86 to 284 I/Os – 16 signal standards • Advanced 0.25/0.22um 6-Layer Metal Process • High performance – System frequency as high as 200 MHz Advanced Clock Control with 4 Dedicated DLLs Unlimited Re-programmability Fully PCI Compliant Spartan-II Top-level Architecture • Configurable logic blocks – Implement logic here! • I/O blocks – Communicate with other chips – Choose from 16 signal standards • Block RAM – On-chip memory for higher performance Spartan-II Top-level Architecture • Clocks and delay locked loops – Synchronize to clock on and off chip • Rich interconnect resources – Three-state internal buses • Power down mode – Lower quiescent power CLB Structure COUT G4 G3 G2 G1 Look-Up Table O Carry & Control Logic COUT YB Y D S Q CK EC CIN CLK CE Look-Up Table O R F5IN BY SR F4 F3 F2 F1 G4 G3 G2 G1 Carry & Control Logic YB Y D S Q CK EC R F5IN BY SR Look-Up Table O Carry & Control Logic XB X S D Q CK EC F4 F3 F2 F1 R SLICE CIN CLK CE Look-Up Table O Carry & Control Logic XB X S D Q CK EC R SLICE • Each slice has 2 LUT-FF pairs with associated carry logic • Two 3-state buffers (BUFT) associated with each CLB, accessible by all CLB outputs CLB Slice (Simplified) • 1 CLB holds 2 slices • Each slice contains two sets of the following: – Four-input LUT • Any 4-input logic function • Or 16-bit x 1 RAM • Or 16-bit shift register CLB Slice (cont’d) • Each slice contains two sets of the following: – Carry & control • Fast arithmetic logic • Multiplier logic • Multiplexer logic – Storage element • • • • Latch or flip-flop Set and reset True or inverted inputs Sync. or async. control Four-Input LUT • Implements combinatorial logic Truth Table – Any 4-input logic function – Cascaded for wide-input functions Inputs(ABCD) Output(Z) 0000 0 0001 0 0010 1 0011 0 …… .. 1110 1 1111 1 4-input logic function A LUT = B Z C D Distributed RAM RAM16X1S O RAM32X1S – A LUT equals 16x1 RAM – Implements Single and Dual-Ports – Cascade LUTs to increase RAM size • Synchronous write • Synchronous/Asynchronous read = LUT • CLB LUT configurable as Distributed RAM D WE WCLK A0 A1 A2 A3 D WE WCLK A0 O A1 A2 A3 A4 or LUT – Accompanying flip-flops used for synchronous read = LUT RAM16X2S D0 D1 WE WCLK O0 A0 O1 A1 A2 A3 or RAM16X1D D WE WCLK A0 SPO A1 A2 A3 DPRA0 DPO DPRA1 DPRA2 DPRA3 Shift Register • Each LUT can be configured as shift register – Serial in, serial out • Dynamically addressable delay up to 16 cycles • For programmable pipeline • Cascade for greater cycle delays • Use CLB flip-flops to add depth • Use for programmable clock delay LUT IN CE CL K D Q CE D Q CE LUT = D Q CE D Q CE DEPTH[3:0] OUT Shift Register 12 Cycles 64 Operation A 4 Cycles Operation B 8 Cycles 64 Operation C 3 Cycles • Register-rich FPGA 3 Cycles 9-Cycle imbalance – Allows for addition of pipeline stages to increase throughput • Data paths must be balanced to keep desired functionality Shift Register 12 Cycles 64 Operation A 4 Cycles Operation B 8 Cycles Operation C 3 Cycles Pipelin e 9 Cycles • LUT as shift register 12 Cycles – Used to add pipeline stages • Increase overall register count – 16 bit shift register per LUT – 64 bit shift register per CLB 64 Paths statically balanced CLB Arithmetic Logic • Dedicated carry logic – Provides high performance for counters & arithmetic functions – Discrete XOR component for single level sum completion – Two separate carry chains in CLB allow for 3 operand functions – Can also be used to cascade LUTs for wide-input logic functions 01 LUT 01 LUT Single-level Sum 01 LUT 01 LUT Dedicated Expansion Multiplexers • MUXF5 combines 2 LUTs to form – 4x1 multiplexer – Or any 5-input function • MUXF6 combines 2 slices to form – 8x1 multiplexer – Or any 6-input function CLB Slice MUXF6 LUT LUT MUXF5 Slice LUT LUT MUXF5 Memory Bandwidth and Flexibility • Spartan-II on-chip SelectRAM+TM memory DSP Coefficients Small FIFOs Shallow/Wide 4Kx1 2Kx2 1Kx4 512x8 256x16 16x1 Distributed RAM bytes Large FIFOs Packet Buffers Video Line Buffers Cache Tag Memory Deep/Wide Block RAM kilobytes SDRAM ZBTRAM SSRAM SGRAM External RAM megabytes 200 MHz Memory Continuum Highest performance FPGA memory system Block RAM Provides 4K Bits Each • Dual read/write ports, each with: – Independent clock, R/W, and enable – Independently configurable data width from 4Kx1 to 256x16 W R Port B Port A W R Spartan-II Dual-R/W Port Block RAM R W W R Data Flow Spartan-II A to B Yes B to A Yes A to A Yes B to B Yes Local Routing Local Routing • Interconnect among LUTs, FFs, GRM • CLB feedback path for connections to LUTs in same CLB • Direct path between horizontally adjacent CLBs INTERNAL BUSSES CARRY CARRY SINGLE HEX LONG General Purpose Routing TRISTATE BUSSES LONG LONG HEX HEX SINGLE LONG DIRECT CONNECTION HEX SWITCH MATRIX SINGLE SINGLE SLICE Internal 3-state Bus Long lines and Global lines Buffered Hex lines Single-length lines SLICE Local Feedback Direct connections • 24 single-length lines • 96 buffered hex lines • 12 buffered Long lines CARRY CARRY CLB – Route GRM signals to adjacent GRMs in 4 directions – Route GRM signals to another GRMs six blocks away in each of the four directions – Routing across top and bottom, left and right Internal Three-state Buses Routing Summary • Vector-based routing – Predictable routing delays independent of device size and routing direction • Core-friendly architecture • Quick Place and Route times – Design to system at 100,000 gates per minute – Easier re-routing • Internal 3-state bussing – Eliminates bus routing contention – Improves density and performance CLB Array Clock distribution Nets • • • • • High speed Low skew 4 distribution nets 4 dedicated input PADS 4 dedicated Global buffers with inputs or – from clock pad – from internal signal System Clock Management System Clocks DLL1 DLL2 Mirror clock for board distribution De-skew clocks 4 low-skew global clocks DLL3 DLL4 Convert clock to different I/O standards using SelectI/O™ Multiply Divide Shift Delay Lock Loops (DLLs) Lower Board Costs DLL Capabilities • Easy clock duplication – System clock distribution – Cleans and reconditions incoming clock • Quick and easy frequency adjustment • Single crystal easily generates multiple clocks • Faster state machine utilizing different clock phases • Excellent for advance memory types Clock De-skew • De-skew incoming clock • Generate fast setup and hold time or fast clock-to-outs Generic DLL Operation • A DLL inserts delay on the clock net until the clock input rising edge is in phase with the clock feedback rising edge • Requires a well-designed clock distribution network: the clock edges arrive simultaneously everywhere in the part CLKIN Delay Delay Delay Delay CLKOUT Phase Delay Control CLKFB Clock Distribution Network Delay-locked Loop Functions Eliminate clock distribution delay System synchronization (e.g., clock mirrors) Phase-shifted clocks Clock multiplication and division Clean up clocks with 50/50 duty cycle correction Clock lock for internal & external synchronization – DLL feedback connected internally or externally – Can synchronize configuration to DLL lock Improved Clock-to-out Using DLL Spartan-II clock-to-out delays reduced over 50% Output standard = LVTTL Fast 16mA (OBUF_F_16) Temp=room, Vdd=2.5V, Vcco=3.3V Waveforms: 1: CLKIN 2: DATA OUT (no DLL) 3: DATA OUT (DLL deskewed) Timing w/o DLL w/ DLL r->r r->f r->r r->f 3.6n 3.5n 1.4n 1.4n DLL Macros Two DLL versions available – Controlled by macro choice CLKDLL (low frequency) – Input frequency: 25 MHz to 100 MHz – All 6 outputs available • CLK0, CLK90, CLK180, CLK270, CLK2X & CLKDV CLKDLLHF (high frequency) – Input frequency 60 MHz to 200 MHz – 3 outputs available • CLK0, CLK180 & CLKDV I/O Block (Simplified) • Registered input, output, 3-state control • Programmable slew rate, pull-up, pull-down, keeper and input delay IOBs Organized As Independent Banks • As many as eight banks on a device – Package dependent • Each bank can be assigned any of the 16 signal standards Programmable Output Driver Simultaneous Switching Output Guidelines • Significant EMI reduction benefit • Programmable driver strength – Pull-up and Pull-down drivers can be individually controlled – 16 different setting for each – 2 slew rate settings System Interfaces -- SelectI/O™ Voltage Standards 3.3V 2.5V 1.8V 19 Different Standards Supported! 1.5V Chip-to-Chip Interfaces LVDS LVPECL Backplane Interfaces AGP GTL GTL+ LVCMOS LVTTL High-speed Memory Interfaces PCI BLVDS CTT HSTL SSTL Supports multiple voltage and signal standards simultaneously Eliminate costly bus transceivers SelectI/OTM Standards Standard VREF VCCO Chip to Chip Interface LVTTL LVCMOS2 LVCMOS18 LVDS LVPECL na na na na na 3.3 2.5 1.8 2.5 3.3 Backplane Interface PCI 33MHz 3.3V PCI 66MHz 3.3V GTL GTL+ AGP-2X Bus LVDS na na 0.80 1.00 1.32 na 3.3 3.3 na na 3.3 2.5 0.75 0.90 1.50 1.25 1.50 1.5 1.5 3.3 2.5 3.3 VCCO • VCCO defines output voltage User I/O Pin Output Input Internal Reference Memory Interface HSTL-I HSTL-III & IV SSTL3-I & II SSTL2-I & II CTT VREF • VREF defines input threshold reference voltage • Available as user I/O when using internal reference Spartan-II As Center for Signal Translation SDRAM Chip to Chip SSTL LVTTL, LVCMOS Chip to Memory HSTL LVCMOS CTT GTL+ SRAM LVTTL SSTL2-I, SSTL2-II, SSTL3-I, SSTL3-II, HSTL-I, HSTL-III, HSTL-IV, CTT Chip to Backplane PCI33-5V, PCI33-3.3V, GTL, GTL+, AGP Allows support for future standards! Partial Reconfiguration Frame by frame reconfiguration supported while device is running - Routing changes affect device operation Re-initializing a block RAM requires stopping all access in that column Can dynamically load the required logic at a given time - Minimizes cost further by time-multiplexing the logic resources Power-down Mode • • • • • • • Controlled by single power down pin All inputs blocked, appear low internally All outputs disabled All register states preserved Power-down status pin Synchronous wake up 100 uA typical Configuration Modes Config. Direction of Data Synchronizing Mode Format Clock Slave Serial FPGA receives Serial CCLK Master Serial Serial FPGA generates CCLK Use Processor or CPLD or another FPGA ( in Master mode) controls configuration of slave FPGA Also for configuring multiple slave FPGAs in a daisy chain (2ND, 3RD FPGA, etc.). FPGA in Master mode configures itself from a serial PROM. Also, 1st FPGA (master) in daisy chain controls configuration of slave FPGA(s) in a daisy chain. Slave Byte Parallel FPGA receives CCLK Processor or CPLD controls the fast configuration of slave FPGA. JTAG FPGA receives TCK Make use of existing boundary scan port Serial There are four ways to program a Spartan-II FPGA Spartan-II Family Overview Device Logic Cells XC2S15 XC2S30 XC2S50 XC2S100 XC2S150 XC2S200 432 972 1728 2700 3888 5292 Block RAM Bits 16,384 24,576 32,768 40,960 49,152 57,344 Block RAM Qty. 4 6 8 10 12 14 Max. User I/Os 86 132 176 196 260 284 VQ100 VQ100 CS144 CS144 TQ144 TQ144 TQ144 TQ144 PQ208 PQ208 PQ208 PQ208 PQ208 FG256 FG256 FG256 FG256 FG456 FG456 FG456 Package Spartan-II Architecture Summary Delivers all the key requirements for ASIC replacement – – – – – – – 200,000 gates 200 MHz Flexible I/O interfaces On-chip distributed and block RAM Clock management Low power Complete development system support