Programmerbar logikk - UiO

Preview:

Citation preview

Fys3270(4270)

Programmerbar logikk

CPLD og FPGA

Fys3270(4270)

Agenda

• CPLD (Complex PLD)– Arkitektur– CPLD familier– Timingmodeller– Programmering

• FPGA (Field Programable Gate Array)– Arkitekturer– Eksempel på FPGA teknologier– Antifuse og SRAM basert programmering– Timingmodeller

Fys3270(4270)

CPLD Arkitektur

• En CPLD er bygget opp av en rekke PLD’er tilsvarende 22V10

Fys3270(4270)

CPLD Arkitektur

• De logiske blokkene kobles sammen av et nettverk som kalles Programable Interconnect Matrix (PIM)

Fys3270(4270)

CPLD Arkitektur-PIM

Fys3270(4270)

CPLDArkitektur-Muxplexer basert interconnect

Fys3270(4270)

CPLDArkitektur-Produkttermdistrubusjon

• Max340 (Cypress)/Max5000 (Altera)

Produkttermstyring

Fire produktermertil makrocelle

Fys3270(4270)

CPLD – ArkitekturProdukttermdistrubusjon

• Mach serien fra AMD– Kan benytte produkttermer i andre makroceller

uten ekstra forsinkelse– Ingen delte produkttermer

Fys3270(4270)

CPLD – ArkitekturProdukttermdistrubusjon

• MAX7000 serien fra Altera– Forbedret utgave av Max340/5000– Parallel expanders (5 produkttermer til nabo

macrocelle)

Fys3270(4270)

CPLD – ArkitekturProdukttermdistrubusjon

• CY370 serien fra Cypress– 16 produktermer pr. OR funksjon– Delte produkttermer mellom nabomacroceller– Ingen ekstra forsinkelser– Forsiktig ved pinnelåsing

Fys3270(4270)

CPLDArkitektur-Produktterm

• Xilinx Cool PLD (Tidl. Philips Cool PLD)– Programmerbar Logisk Array (PLA) for

kontrollogikk (– Programmerbar Array Logikk (PAL) for

kombinatorikk– Økende fleksibilitet

Fys3270(4270)

CPLDCoolRunner-PIM (ZIA)

• Zero power Interconnect Matrix (ZIA)– Gir ekstremt lavt strømforbruk

Fys3270(4270)

CPLD – ArkitekturMakroceller

• XC9500XL serien fra Xilinx

Fys3270(4270)

CPLD – ArkitekturMakroceller

• Max340/5000– Produktterm/Global klokke– Produktterm Reset/Preset

Fys3270(4270)

CPLD – ArkitekturMakroceller

• CY370-serien– Kun globale klokker– Global Reset/Preset (innenfor en LB)– Burid makrocelle med feedback

Fys3270(4270)

Metastabilitet

• Dersom setup/holde-tiden ikke overholdes kan utgang fra flip-flop gå inn i en metastabil tilstand.

– Særlig problematisk ved overgang mellom to klokkedomener (asynkront) fordi man ikke har noen fast relasjon mellom signalene

Synkronisering ved bruk avto flip-flop’er

Fys3270(4270)

CPLD – ArkitekturInput celle

• Dedikerte flip-flop’er for synkronisering av signaler– Reduserer sannsynlighet for metastabilitet

kraftig

Synkroniseringsflip-flop’er

Fys3270(4270)

CPLDI/O celler

• XC9500XL serien fra Xilinx

Fys3270(4270)

CPLDI/O celler

• CoolRunner– Fleksibel styring av output buffer

Fys3270(4270)

CLPDTimingparametre

• Maksimalfrekvens–

• Mange timingparametre er felles med 22V10

• Noen er mer kompliserte– F.eks Max340/5000

• Brudd på setup/holdetid kan medføre metastabilitet

SCSt1f =

Fys3270(4270)

CPLDViktige timing parametre

• tS - setup time– Krav til input signal

• tH - hold time– Krav til input signal

• tCO - clock to output delay– Må sees i relasjon til setup/holde tider på

inngang som skal kobles til• tPD - propagation delay (pin to pin)

– Viktig for å lage rask kombinatorikk

Fys3270(4270)

CPLDTimingmodell

• Max340/5000 timing modell

Fys3270(4270)

CPLDTimingmodell

• CY370 timing modell– Tilsvarende 22V10

Fys3270(4270)

CPLDISP/ISR

• In System Programing/Reprograming• 5V tolerant I/O• Test Access Port

– IEEE1149.1 (JTAG eller Joint Test Action Group)

– Benyttes både til programmering og til testing

• PCI Compliant– Krever spesielt tilpassede svake I/O drivere

Fys3270(4270)

CPLDbruk av JTAG port

Fys3270(4270)

FPGAField Programable Gate Array

• Hva er en FPGA?– Små logiske celler spredd utover hele kretsen– Horisontale og vertikale routing kanaler

• Ledninger der forbindelser kan skapes ved programmering

Generisk FPGA arkitektur

Fys3270(4270)

FPGARouting og logiske celler

Fys3270(4270)

FPGAArkitekturer

• Mange forskjellige FPGA tilpasset markedsbehovet

• Kriterier– Ytelse– Tetthet og kapasitet– Enkelhet å bruke– ISP og ISR– Programmeringsteknologi (SRAM eller Antifuse)

• SRAM (Altera, Lucent(Lattice), Atmel, Xilinx)• Antifuse (Actel, Cypress)

Fys3270(4270)

FPGAProgrammeringsteknologier

• Antifuse = motsatt av fuse, dvs. lage forbindelse

• Antifuse (Amorf silisium)– To metall lag er separert med en via

ukrystallisert (amorf) silisium– Spenning på 10-12V påtrykkes mellom lagene– Metall trenger igjennom det amorfe silisiumet og

lager en forbindelse mellom metallagene – Via’er tar svært liten plass (50ohm)

Fys3270(4270)

FPGAProgrammeringsteknologier

• Oxide-nitride-oxide (ONO) antifuse• Benyttet i Actel FPGA’er

– Vanskelig å kopiere– Ca 300 ohm– Høy tetthet

Programmert Ikke Programmert

Fys3270(4270)

FPGAProgrammeringsteknologier

• Cypress pASIC380 struktur– Basert på amorf silisium

Fys3270(4270)

FPGAProgrammeringsteknologier

• SRAM celle– Krever at programmeringsbit lagres utenfor

kretsen f.eks. i ekstern EPROM, EEPROM, Flash osv.

– SRAM slettes når strøm slås av• Må reprogrammeres ved oppstart

– Ca. 1000ohm motstand

Fys3270(4270)

FPGAProgrammeringsteknologier

• SRAM basert routing i Xilinx XC 4000– Pass transistorer i hvert (se neste side)

Fys3270(4270)

FPGAProgrammeringsteknologier

• Statisk RAM (SRAM) basert routing– Figur viser SRAM celler som styrer pass-

transistorer

Fys3270(4270)

FPGARouting arkitekturer

• Ofte en kombinasjon av– Raske korte linjer– Vertikale og horisontale lange linje

• F.eks til å lage busser• Interne tri-state strukturer

Fys3270(4270)

FPGARouting arkitekturer

• Globale nettverk– Klokker

• For å unngå klokke ”skew”– Reset

Fys3270(4270)

FPGALogiske celler

• Antifuse FPGA’er har oftest små logiske celler

Actels ACT3 logisk celle

Fys3270(4270)

FPGALogiske celler

pASIC380 logisk celle

Fys3270(4270)

FPGALogiske celler

• SRAM baserte FPGA har gjerne større og mere sammensatte logiske blokker

• Kan benyttes som RAM/ROM

Xilinx XC4000 CLB (Configurable Logic Block)

Fys3270(4270)

FPGALogiske celler

Altera Flex 8000 Logiske Element (LE)

Fys3270(4270)

FPGAI/O celler

Xilinx Spartan II I/O blokk

Fys3270(4270)

FPGANyere familier

• Banker med dual port RAM• Innebygd DLL (Delay Locked Loop)

Xilinx Virtex E

Fys3270(4270)

FPGATiming

• FPGA’er har en komplisert timing modell på grunn av:– Varierende ledningslengder– Signaler går igjennom en varierende mengde

pass transistorer– Varierende forsinkelser innenfor en logisk blokk

• Trenger gode routing verktøy for kontrollere timing – Timing basert place and route

• Statisk timing analyse viser worst case forsinkelser i hele kretsen– Path delay (punkt til punkt forsinkelser)

• De forskjellige FPGA leverandørene har egne verktøy for dette

Fys3270(4270)

FPGATiming

Eksempel på resultat av en statisk timing analyse

Fys3270(4270)

CPLD eller FPGA?

• CPLD– Rask og bred logikk– Komplekse tilstandsmaskiner– Høy gjennomstrømning (throughput)– Liten forsinkelse (latency)– Register fattige– Enkel timing modell

• FPGA– Small logikk

• Komplisert logikk gir ”stor” tidsforsinkelse– Mange registre og logiske celler

• Komplekse design– Intern dual port RAM– Viktig med pipelining for å oppnå

• Høy ”throughput”– Men på bekostning av

• Økende ”latency”