Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi...

93
Dispositivi Dispositivi programmabili programmabili

Transcript of Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi...

Page 1: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

DispositiviDispositiviprogrammabiliprogrammabili

Page 2: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

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

Page 3: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

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

Page 4: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

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

Page 5: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

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

Page 6: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

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

Page 7: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

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

Page 8: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

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

Page 9: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

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

Page 10: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

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)

Page 11: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

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)

Page 12: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

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

Page 13: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

Programmable Logic Array (PLA)

• Consente di realizzare qualunque funzione logica • Questa e’ espressa in somme di implicanti

Page 14: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

Programmable Logic Array (PLA)

• Schema logico di una PLA – Esempio con 3 ingressi e due uscite (non programmata)

Page 15: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

Programmable Logic Array (PLA)

Page 16: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

Programmable Logic Array (PLA)

Page 17: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

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

Page 18: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

Programmable Array Logic (PAL)

• Schema logico di una PAL– Esempio di PAL a 3 ingressi e 2 uscite (non programmata)

Page 19: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

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

Page 20: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

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

Page 21: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

Read Only Memory (ROM)

• Schema logico del piano AND

Page 22: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

Read Only Memory (ROM)

• Schema logico di una ROM– Esempio di una ROM a 3 ingressi e 4 uscite (non

programmata)

Page 23: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

Read Only Memory (ROM)

• Esempio:– dalla tabella di verita’ della funzione a piu’ uscite

abc f1 f2 f3 f4 f5000 0 0 0 1 0

001 1 1 1 1 0

010 0 0 1 0 1

011 1 0 1 1 0

100 1 0 1 1 1

101 1 1 1 1 1

110 1 0 1 1 1

111 1 1 0 1 1

Page 24: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

Read Only Memory (ROM)

• Realizzazione della funzione

Page 25: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

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)

Page 26: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

PLA e PAL avanzate

• Esempio di implementazione di una rete combinatoria a piu’ livelli grazie alla retroazione

Page 27: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

PLA e PAL avanzate

• Esempio: realizzazione

Page 28: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

PLA e PAL avanzate

• L’aggiunta di elementi di memoria in uscita possono ulteriormente ampliare le prestazioni del dispositivo

Page 29: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

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

Page 30: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

CPLD - XC9500 Architecture

5 volt in-system programmable (ISP) CPLDs5 ns pin-to-pin36 to 288 macrocells (6400 gates) Industry’s best pin-locking architecture10,000 program/erase cyclesComplete IEEE 1149.1 JTAG capability

FunctionBlock 1

JTAGController

FunctionBlock 2

I/O

FunctionBlock 4

3

Global Tri-

States 2 or 4

FunctionBlock 3

I/O

In-SystemProgramming Controller

FastCONNECTSwitch Matrix

JTAG Port

3

I/O

I/O

Global Set/Reset

Global Clocks

I/OBlocks

1

Page 31: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

ToFastCONNECT

FromFastCONNECT

2 or 43 GlobalTri-State

GlobalClocks

I/O

I/O

36

Product-Term

Allocator

Macrocell 1

ANDArray

Macrocell 18

Each function block is like a 36V18 !

XC9500 Function Block

Page 32: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

Struttura XC9500

Struttura della macrocella

Page 33: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

Struttura XC9500

Struttura del “product term allocator”

Page 34: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

Struttura XC9500

Possibilita’ di collegamento offerte dal “product term allocator”

Page 35: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

Struttura XC9500

Possibilita’ di collegamento offerte dal “product term allocator”

Page 36: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

Struttura XC9500

Linee globali di clock, set, reset

Page 37: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

Struttura XC9500

Cella di I/O

Page 38: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

XC9500 Product Family

9536

Macrocells

Usable Gates

tPD (ns)

Registers

Max I/O

36 72 108 144 216

800 1600 2400 3200 4800

5 7.5 7.5 7.5 10

36 72 108 144 216

34 72 108 133 166

Packages VQ44PC44 PC44

PC84TQ100PQ100

PC84TQ100PQ100PQ160

PQ100PQ160

288

6400

10

288

192

HQ208BG352

PQ160HQ208BG352

9572 95108 95144 95216 95288

Page 39: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

1k

R1

1k

R2

1nC1 1nC2

0

OUTIN

XC9500 - Q e A

Q: E’ possibile realizzare tramite CPLD XC9500 la seguente architettura?

Page 40: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

1k

R1

1k

R2

1nC1 1nC2

0

OUTIN

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

Page 41: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

XC9500 - Q e A

Q: E’ possibile realizzare tramite CPLD XC9500 la seguente funzione, ossia un predeterminato RITARDO asincrono ?

RIT = 20nsIn Out

Page 42: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

XC9500 - Q e A

Q: E’ possibile realizzare tramite CPLD XC9500 la seguente funzione, ossia un predeterminato RITARDO asincrono ?

RIT = 20nsIn 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 soddisfareNota2: Un elemento di ritardo e’ tuttavia realizzabile in modo SINCRONO

Page 43: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

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

Page 44: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

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)

Page 45: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.
Page 46: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

XC9500 - Q e A

Q: E’ possibile realizzare tramite CPLD XC9500 la seguente funzione (una logica pilota altre logiche struttando un bus tri-state)

Logic 1

Logic 2 Logic 3

Page 47: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

XC9500 - Q e A

Q: E’ possibile realizzare tramite CPLD XC9500 la seguente funzione (una logica pilota altre logiche struttando un bus tri-state)

Logic 1

Logic 2 Logic 3

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

Page 48: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

FPGA: Introduzione

– Le FPGA (Field Programmable Gate Array) sono dispositivi programmabili costituiti da una matrice di componenti logici collegabili tra loro

Architecture PAL/22V10-like Gate array-likeMore Combinational More Registers + RAM

Density Low-to-medium Medium-to-high 0.5-10K logic gates 1K to 3.2M system gates

Performance Predictable timing Application dependent Up to 250 MHz today Up to 200 MHz today

Interconnect “Crossbar Switch” Incremental

Complex Programmable Logic Device (CPLD)

Field-Programmable Gate Array (FPGA)

Page 49: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

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, …

Page 50: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

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)

Page 51: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

XC4000 Architecture XC4000 Architecture and Featuresand Features

Page 52: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

XC4000 Architecture

CLB

CLB

CLB

CLB

SwitchMatrix

ProgrammableInterconnect I/O Blocks (IOBs)

ConfigurableLogic Blocks (CLBs)

D Q

SlewRate

Control

PassivePull-Up,

Pull-Down

Delay

Vcc

OutputBuffer

InputBuffer

Q D

Pad

D QSD

RDEC

S/RControl

D QSD

RDEC

S/RControl

1

1

F'

G'

H'

DIN

F'

G'

H'

DIN

F'

G'

H'

H'

HFunc.Gen.

GFunc.Gen.

FFunc.Gen.

G4G3G2G1

F4F3F2F1

C4C1 C2 C3

K

Y

X

H1 DIN S/R EC

Page 53: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

XC4000E/X Configurable Logic Blocks

D QSD

RDEC

S/RControl

D QSD

RDEC

S/RControl

1

1

F'

G'

H'

DIN

F'

G'

H'

DIN

F'

G'

H'

H'

HFunc.Gen.

GFunc.Gen.

FFunc.Gen.

G4G3G2G1

F4F3F2F1

C4C1 C2 C3

K

YQ

Y

XQ

X

H1 DIN S/R EC

• 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

Page 54: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

Look Up Tables

Capacity is limited by number of inputs, not complexity

Choose to use each function generator as 4 input logic (LUT) or as high speed sync.dual port RAM

• Combinatorial Logic is stored in 16x1 SRAM Look Up Tables (LUTs) in a CLB

• Example:

A B C D Z

0 0 0 0 00 0 0 1 00 0 1 0 00 0 1 1 10 1 0 0 10 1 0 1 1 . . .1 1 0 0 01 1 0 1 01 1 1 0 01 1 1 1 1

Look Up Table

Combinatorial Logic

AB

CD

Z

4-bit address

GFunc.Gen.

G4G3G2G1

WE

2(2 )4

= 64K !

Page 55: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

XC4000X I/O Block Diagram

Shaded areas are not included in XC4000E family.

Page 56: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

Xilinx FPGA Routing

1) Fast Direct Interconnect - CLB to CLB

2) General Purpose Interconnect - Uses switch matrix

CLBCLB

CLBCLB

CLBCLB

CLBCLB

SwitchMatrix

SwitchMatrix

3) Double Lines4) Long Lines

Segmented across chipGlobal clocks, lowest skew2 Tri-states per CLB for busses

Page 57: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

What’s Really In that Chip?

CLB(Red)

Switch Matrix

Long Lines(Purple)

Direct Interconnect (Green)

Routed Wires (Blue)

Programmable Interconnect Points, PIPs (White)

Page 58: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

Spartan-II Architecture Spartan-II Architecture and Featuresand Features

Page 59: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

Presentation Name 63

Virtex-II

CPLDs Low Power

FPGAsSRAM-basedFeature RichHigh Performance

Spartan-IIE

Density (System Gates)

Fea

ture

s

FPGAsSRAM-basedFeature RichLow Cost

10K 600K 10M

XilinxYour Programmable Logic Solution

Page 60: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

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 MHzAdvanced Clock Control with 4 Dedicated DLLsUnlimited Re-programmabilityFully PCI Compliant

Page 61: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

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

Page 62: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

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

Page 63: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

F5IN

CINCLKCE

COUT

D Q

CK

S

REC

D Q

CK

REC

O

G4G3G2G1

Look-UpTable

Carry&

ControlLogic

O

YB

Y

F4F3F2F1

XBX

Look-UpTable

BYSR

S

Carry&

ControlLogic

SLICE

COUT

D Q

CK

S

REC

D Q

CK

REC

O

G4G3G2G1

Look-UpTable

Carry&

ControlLogic

O

YB

Y

F4F3F2F1

XBX

Look-UpTable

F5INBYSR

S

Carry&

ControlLogic

CINCLKCE SLICE

CLB Structure

• 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

Page 64: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

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

Page 65: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

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

Page 66: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

Inputs(ABCD) Output(Z)0000 00001 00010 10011 0…… ..1110 11111 1

Truth Table

LUT =

4-input logic function

C

D

Z

A

B

Four-Input LUT

• Implements combinatorial logic– Any 4-input logic function– Cascaded for wide-input functions

Page 67: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

RAM16X1S

O

DWEWCLKA0A1A2A3

RAM32X1S

O

DWEWCLKA0A1A2A3A4

RAM16X2S

O1

D0

WEWCLKA0A1A2A3

D1

O0

=

=LUT

LUT or

LUT

RAM16X1D

SPO

D

WE

WCLK

A0

A1

A2

A3

DPRA0 DPO

DPRA1

DPRA2

DPRA3

or

Distributed RAM

• CLB LUT configurable as Distributed RAM

– A LUT equals 16x1 RAM– Implements Single and Dual-Ports– Cascade LUTs to increase RAM size

• Synchronous write• Synchronous/Asynchronous read

– Accompanying flip-flops used for synchronous read

Page 68: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

D QCE

D QCE

D QCE

D QCE

LUT

INCECL

K

DEPTH[3:0]

OUTLUT =

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

Page 69: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

Shift Register

• Register-rich FPGA– Allows for addition of pipeline stages to increase throughput

• Data paths must be balanced to keep desired functionality

64Operation

A4 Cycles 8 Cycles

Operation B

3 Cycles

Operation C

64

12 Cycles

3 Cycles9-Cycle imbalance

Page 70: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

12 Cycles

64Operation

A4 Cycles 8 Cycles

Operation B

3 Cycles

Operation C

12 Cycles Paths staticallybalanced

9 Cycles

Pipeline

64

Shift Register

• LUT as shift register– Used to add pipeline stages

• Increase overall register count– 16 bit shift register per LUT– 64 bit shift register per CLB

Page 71: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

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

Single-level Sum

LUT

0 1

LUT

0 1

LUT

0 1

LUT

0 1

Page 72: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

COUT

Look-UpTable

SLICE0CIN

COUT

O

Look-UpTable

Carry&

ControlLogic

Look-UpTable

SLICE1CIN

CLB

Look-UpTable

B1B0

A1A0

C1C0

SUM1

SUM0

PARTIAL0

PARTIAL1Carry

&ControlLogic

Carry&

ControlLogic

Carry&

ControlLogic

3 Operand Adder Function

• 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

Page 73: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

Sommatore a 4 bits

Overflow

Carry Out

Carry In

Page 74: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

CLB

MUXF6

Slice

LUT

LUTMUXF5

Slice

LUT

LUTMUXF5

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

Page 75: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

200 MHz Memory Continuum

Highest performance FPGA memory system

bytes

16x1

DSP CoefficientsSmall FIFOsShallow/Wide

Distributed RAMkilobytes

4Kx12Kx21Kx4512x8

256x16

Large FIFOs Packet BuffersVideo Line BuffersCache Tag MemoryDeep/Wide

Block RAMmegabytes

SDRAMZBTRAMSSRAMSGRAM

External RAM

Memory Bandwidth and Flexibility

• Spartan-II on-chip SelectRAM+TM memory

Page 76: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

Spartan-IIDual-R/W

PortBlock RAM

Port A

Port B

W

R

WR

WR

RW

Data Flow Spartan-IIA to B YesB to A YesA to A YesB to B Yes

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

Page 77: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

Local Routing

• Interconnect among LUTs, FFs, GRM• CLB feedback path for connections to LUTs in same CLB• Direct path between horizontally adjacent CLBs

Local Routing

Page 78: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

General Purpose Routing

• 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

SINGLE

HEX

LONG

SINGLE

HEX

LONG

SIN

GL

E

HE

X

LO

NG

SIN

GL

E

HE

X

LO

NG

TRISTATE BUSSES

SWITCHMATRIX

SLICE SLICE

LocalFeedback

CA

RR

Y

CA

RR

Y

CLB

CA

RR

Y

CA

RR

Y

DIRECTCONNECTION

INTERNAL BUSSES

Single-length linesBuffered Hex lines

Direct connections

Long lines and Global linesInternal 3-state Bus

Page 79: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

Internal Three-state Buses

Page 80: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

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

Page 81: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

Delay Lock Loops (DLLs) Lower Board Costs

System Clock Management

De-skew clocks

4 low-skew global clocks

Mirror clock for board distribution

Multiply Divide Shift

Convert clock to different

I/O standards using SelectI/O™

DLL1 DLL2

DLL3 DLL4Syst

em C

lock

s

Page 82: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

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

• De-skew incoming clock• Generate fast setup and hold time or fast clock-to-outs

ClockDe-skew

Page 83: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

I/O Block (Simplified)

• Registered input, output, 3-state control• Programmable slew rate, pull-up, pull-down, keeper and

input delay

Page 84: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

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

Page 85: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

Programmable Output Driver

• 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

Simultaneous Switching Output Guidelines

Page 86: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

Supports multiple voltage and signal standards simultaneously

Eliminate costly bus transceivers

System Interfaces -- SelectI/O™

Voltage Standards2.5V 1.8V3.3V 1.5V

SSTLHSTLCTT

High-speed Memory Interfaces

Chip-to-Chip Interfaces

LVTTLLVCMOSLVPECLLVDS

Backplane Interfaces

GTL GTL+AGP PCI BLVDS

19 DifferentStandardsSupported!

Page 87: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

SelectI/OTM Standards

• VCCO defines output voltage

Standard VREF VCCO

Chip to Chip InterfaceLVTTL na 3.3LVCMOS2 na 2.5LVCMOS18 na 1.8LVDS na 2.5LVPECL na 3.3

Backplane InterfacePCI 33MHz 3.3V na 3.3PCI 66MHz 3.3V na 3.3GTL 0.80 naGTL+ 1.00 naAGP-2X 1.32 3.3Bus LVDS na 2.5

Memory InterfaceHSTL-I 0.75 1.5HSTL-III & IV 0.90 1.5SSTL3-I & II 1.50 3.3SSTL2-I & II 1.25 2.5CTT 1.50 3.3

User I/O Pin

VCCO

VREF

InternalReferenc

e

Output

Input

• VREF defines input threshold reference voltage

• Available as user I/O when using internal reference

Page 88: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

Chip to ChipLVTTL, LVCMOS

Chip to MemorySSTL2-I, SSTL2-II, SSTL3-I,SSTL3-II, HSTL-I, HSTL-III,HSTL-IV, CTT

Chip to BackplanePCI33-5V, PCI33-3.3V, GTL, GTL+, AGP

Allows support for future standards!

SD

RA

M

SSTL

GT

L+

LVTTL

LVCMOSCTT

SR

AM

HSTL

Spartan-II As Center for Signal Translation

Page 89: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

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

Page 90: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

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

Page 91: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

Mode

Config.Data

Format

Direction ofSynchronizing

Clock UseSlaveSerial

Serial FPGA receivesCCLK

Processor or CPLD or another FPGA ( in Mastermode) controls configuration of slave FPGA

Also for configuring multiple slave FPGAs in adaisy chain (2ND, 3RD FPGA, etc.).

MasterSerial

Serial FPGA generatesCCLK

FPGA in Master mode configures itself from aserial PROM.

Also, 1st FPGA (master) in daisy chain controlsconfiguration of slave FPGA(s) in a daisy chain.

SlaveParallel

Byte FPGA receivesCCLK

Processor or CPLD controls the fast configuration ofslave FPGA.

JTAG Serial FPGA receivesTCK

Make use of existing boundary scan port

There are four ways to program a Spartan-II FPGA

Configuration Modes

Page 92: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

Device XC2S15 XC2S30 XC2S50 XC2S100 XC2S150 XC2S200

Logic Cells 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

Package VQ100 VQ100

CS144 CS144

TQ144 TQ144 TQ144 TQ144

PQ208 PQ208 PQ208 PQ208 PQ208

FG256 FG256 FG256 FG256

FG456 FG456 FG456

Spartan-II Family Overview

Page 93: Dispositivi programmabili. – Sono dispositivi hardware (chip) che mettono a disposizione elementi logici piu o meno complessi che possono essere opportunamente.

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