Dispositivi programmabili Dispositivi programmabili Sono dispositivi hardware chip
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’) in una cella di RAM Statica
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 NOTA 1: qualunque funzione combinatoria puo’ essere espressa come somma di terminimi • NOTA 2: 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 terminimi) 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 terminimi necessari • Piano OR programmabile – PAL (Programmable Array Logic) • Piano AND programmabile • Piano OR fissato – Impone un vincolo sul numero di terminimi che la funzione contiene – ROM (Read Only Memory) • Piano AND fissato – Implementa tutti i possibili terminimi (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)
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 terminimi – 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
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 - XC 9500 Architecture 3 JTAG Controller JTAG Port In-System Programming Controller Function Block 1 I/O I/O Blocks I/O Global Clocks Global Set/Reset Global Tri-States Function Block 2 Fast. CONNECT Switch Matrix Function Block 3 3 1 2 or 4 Function Block 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
XC 9500 Function Block Global Clocks AND Array 3 Global Tri-State 2 or 4 Macrocell 1 I/O Macrocell 18 I/O Product. Term Allocator 36 From Fast. CONNECT To Fast. CONNECT Each function block is like a 36 V 18 !
Struttura XC 9500 Struttura della macrocella
Struttura XC 9500 Struttura del “product term allocator”
Struttura XC 9500 Possibilita’ di collegamento offerte dal “product term allocator”
Struttura XC 9500 Possibilita’ di collegamento offerte dal “product term allocator”
Struttura XC 9500 Linee globali di clock, set, reset
Struttura XC 9500 Cella di I/O
XC 9500 Product Family 9536 9572 95108 95144 95216 95288 Macrocells 36 72 108 144 216 288 Usable Gates 800 1600 2400 3200 4800 6400 t. PD (ns) 5 7. 5 10 10 Registers 36 72 108 144 216 288 Max I/O 34 72 108 133 166 192 PC 84 TQ 100 PQ 160 PQ 100 PQ 160 Packages VQ 44 PC 84 TQ 100 PQ 160 HQ 208 BG 352
XC 9500 - Q e A Q: E’ possibile realizzare tramite CPLD XC 9500 la seguente architettura?
XC 9500 - Q e A Q: E’ possibile realizzare tramite CPLD XC 9500 la seguente architettura? A: NO con una CPLD si possono realizzare solo circuiti DIGITALI
XC 9500 - Q e A Q: E’ possibile realizzare tramite CPLD XC 9500 la seguente funzione, ossia un predeterminato RITARDO asincrono ? In RIT = 20 ns Out
XC 9500 - Q e A Q: E’ possibile realizzare tramite CPLD XC 9500 la seguente funzione, ossia un predeterminato RITARDO asincrono ? In RIT = 20 ns Out A: NO: non vi e’ alcun modo o alcun elemento che possa realizzare questa funzione. Nota 1: nei circuiti digitali il ritardo e’ una conseguenza (indesiderata) della struttura stessa del circuito e non un parametro da soddisfare Nota 2: Un elemento di ritardo e’ tuttavia realizzabile in modo SINCRONO
XC 9500 - Q e A Q: E’ possibile realizzare tramite CPLD XC 9500 la seguente funzione logica (gli ingressi e le uscite siano collegati direttamente ai pin di I/O del dispositivo)?
XC 9500 - Q e A Q: E’ possibile realizzare tramite CPLD XC 9500 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)
XC 9500 - Q e A Q: E’ possibile realizzare tramite CPLD XC 9500 la seguente funzione (una logica pilota altre logiche struttando un bus tristate) Logic 2 Logic 1 Logic 3
XC 9500 - Q e A Q: E’ possibile realizzare tramite CPLD XC 9500 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/22 V 10 -like More Combinational Gate array-like More Registers + RAM Density Low-to-medium 0. 5 -10 K logic gates Medium-to-high 1 K to 3. 2 M 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)
XC 4000 Architecture and Features
XC 4000 Architecture Programmable Interconnect Configurable Logic Blocks (CLBs) I/O Blocks (IOBs)
XC 4000 E/X Configurable Logic Blocks • • 2 Four-input function generators (Look Up Tables) - 16 x 1 RAM or Logic function 2 Registers - Each can be configured as Flip Flop or Latch - Independent clock polarity - Synchronous and asynchronous Set/Reset C 1 C 2 C 3 C 4 H 1 DIN S/R EC S/R Control G 4 G 3 G 2 G 1 F 4 F 3 F 2 F 1 DIN G Func. Gen. YQ 1 EC RD G' H' Y S/R Control DIN SD F' G' D Q XQ H' H' K Q D H' H Func. Gen. F Func. Gen. SD F' G' F' 1 EC RD X
Look Up Tables • Combinatorial Logic is stored in 16 x 1 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 (2 ) B 0 0 0 1 0 Z C 0 0 1 0 0 D 0 0 1 1 1 0 0 1 w Capacity is limited by number of 0 1 1 2 = 64 K ! inputs, not complexity w Choose to use each function generator as 4 input logic (LUT) or as high speed sync. dual port RAM WE G 4 G 3 G 2 G 1 G Func. Gen. . 1 1 1 1 0 0 1 1 0 1 0 0 0 1
XC 4000 X I/O Block Diagram Shaded areas are not included in XC 4000 E 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
What’s Really In that Chip? Programmable Interconnect Points, PIPs (White) Switch Matrix Direct Interconnect (Green) CLB (Red) Long Lines (Purple) Routed Wires (Blue)
Spartan-II Architecture and Features
Xilinx Features Your Programmable Logic Solution Virtex-II Spartan-IIE CPLDs Low Power 10 K 63 FPGAs SRAM-based Feature Rich Low Cost SRAM-based Feature Rich High Performance 600 K Density (System Gates) 10 M
Features • Plentiful logic and memory resources – 15 K to 200 K 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. 22 um 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 G 4 G 3 G 2 G 1 Look-Up Table O Carry & Control Logic COUT YB Y D S Q CK EC Look-Up Table O R F 5 IN BY SR F 4 F 3 F 2 F 1 G 4 G 3 G 2 G 1 Carry & Control Logic YB Y D S Q CK EC R F 5 IN BY SR Look-Up Table O Carry & Control Logic XB X CIN CLK CE D S Q CK EC F 4 F 3 F 2 F 1 R SLICE CIN CLK CE Look-Up Table O Carry & Control Logic XB X D S 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 4 -input logic function A LUT = B Z C D
Distributed RAM 16 X 1 S Distributed RAM – A LUT equals 16 x 1 RAM – Implements Single and Dual. Ports – Cascade LUTs to increase RAM size synchronous read O RAM 32 X 1 S D WE WCLK A 0 A 1 A 2 A 3 A 4 or LUT • Synchronous write • Synchronous/Asynchronous read – Accompanying flip-flops used for = LUT • CLB LUT configurable as D WE WCLK A 0 A 1 A 2 A 3 = LUT O RAM 16 X 2 S D 0 D 1 WE WCLK O 0 A 0 O 1 A 2 A 3 or RAM 16 X 1 D D WE WCLK A 0 SPO A 1 A 2 A 3 DPRA 0 DPO DPRA 1 DPRA 2 DPRA 3
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 CLK D Q CE LUT = 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- Single-level Sum
3 Operand Adder Function COUT B 1 B 0 A 1 A 0 Look-Up Table Carry & Control Logic CIN C 1 C 0 COUT PARTIAL 1 PARTIAL 0 SLICE 0 Look-Up Table O Carry & Control Logic Look-Up Table Carry & Control Logic CIN CLB SUM 1 SUM 0 SLICE 1 • A, B, C are two-bits wide – SUM = A + B + C or PARTIAL + C, where PARTIAL = A + B – Implementation • First 2 -operand sum ‘A+B’ is performed in Slice 0 • Second 2 -operand sum ‘PARTIAL + C’ is performed in Slice 1 – Fast local feedback connection within the CLB • Very small delay for on PARTIAL
Sommatore a 4 bits Carry Out Overflow Carry In
Dedicated Expansion Multiplexers • MUXF 5 combines 2 LUTs to form – 4 x 1 multiplexer – Or any 5 -input function CLB Slice MUXF 6 LUT • MUXF 6 combines 2 slices to form – 8 x 1 multiplexer – Or any 6 -input function LUT MUXF 5 Slice LUT MUXF 5
Memory Bandwidth and Flexibility • Spartan-II on-chip Select. RAM+TM memory DSP Coefficients Small FIFOs Shallow/Wide 4 Kx 1 2 Kx 2 1 Kx 4 512 x 8 256 x 16 16 x 1 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 4 K Bits Each • Dual read/write ports, each with: – Independent clock, R/W, and enable – Independently configurable data width from 4 Kx 1 to 256 x 16 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 • Interconnect among LUTs, FFs, GRM • CLB feedback path for connections to LUTs in same CLB • Direct path between horizontally adjacent CLBs
General Purpose Routing INTERNAL BUSSES DIRECT CONNECTION • • • Internal 3 -state Bus Long lines and Global lines Buffered Hex lines Single-length lines Direct connections 24 single-length lines – Route GRM signals to adjacent GRMs in 4 directions 96 buffered hex lines – Route GRM signals to another GRMs six blocks away in each of the four directions 12 buffered Long lines – Routing across top and bottom, left and right
Internal Three-state Buses
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 DLL 1 DLL 2 Mirror clock for board distribution De-skew clocks 4 low-skew global clocks DLL 3 DLL 4 Convert clock to different I/O standards using Select. I/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
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 -- Select. I/O™ Voltage Standards 3. 3 V 2. 5 V 1. 8 V 19 Different Standards Supported! 1. 5 V Chip-to-Chip Interfaces LVDS LVPECL Backplane Interfaces AGP GTL+ LVCMOS LVTTL High-speed Memory Interfaces PCI BLVDS CTT HSTL SSTL w Supports multiple voltage and signal standards simultaneously w Eliminate costly bus transceivers
Select. I/OTM Standards VCCO • VCCO defines output voltage User I/O Pin Output Internal Reference 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 LVTTL, LVCMOS SSTL Chip to Memory HSTL LVCMOS CTT GTL+ SRAM LVTTL SSTL 2 -I, SSTL 2 -II, SSTL 3 -II, HSTL-III, HSTL-IV, CTT Chip to Backplane PCI 33 -5 V, PCI 33 -3. 3 V, GTL+, AGP Allows support for future standards!
Partial Reconfiguration u Frame by frame reconfiguration supported while device is running - u 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 u. A typical
Configuration Modes There are four ways to program a Spartan-II FPGA
Spartan-II Family Overview
Spartan-II Architecture Summary u 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
- Slides: 93