45
Fys3270(4270) Programmerbar logikk CPLD og FPGA

Programmerbar logikk - UiO

  • Upload
    others

  • View
    2

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Programmerbar logikk - UiO

Fys3270(4270)

Programmerbar logikk

CPLD og FPGA

Page 2: Programmerbar logikk - UiO

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

Page 3: Programmerbar logikk - UiO

Fys3270(4270)

CPLD Arkitektur

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

Page 4: Programmerbar logikk - UiO

Fys3270(4270)

CPLD Arkitektur

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

Page 5: Programmerbar logikk - UiO

Fys3270(4270)

CPLD Arkitektur-PIM

Page 6: Programmerbar logikk - UiO

Fys3270(4270)

CPLDArkitektur-Muxplexer basert interconnect

Page 7: Programmerbar logikk - UiO

Fys3270(4270)

CPLDArkitektur-Produkttermdistrubusjon

• Max340 (Cypress)/Max5000 (Altera)

Produkttermstyring

Fire produktermertil makrocelle

Page 8: Programmerbar logikk - UiO

Fys3270(4270)

CPLD – ArkitekturProdukttermdistrubusjon

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

uten ekstra forsinkelse– Ingen delte produkttermer

Page 9: Programmerbar logikk - UiO

Fys3270(4270)

CPLD – ArkitekturProdukttermdistrubusjon

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

macrocelle)

Page 10: Programmerbar logikk - UiO

Fys3270(4270)

CPLD – ArkitekturProdukttermdistrubusjon

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

Page 11: Programmerbar logikk - UiO

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

Page 12: Programmerbar logikk - UiO

Fys3270(4270)

CPLDCoolRunner-PIM (ZIA)

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

Page 13: Programmerbar logikk - UiO

Fys3270(4270)

CPLD – ArkitekturMakroceller

• XC9500XL serien fra Xilinx

Page 14: Programmerbar logikk - UiO

Fys3270(4270)

CPLD – ArkitekturMakroceller

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

Page 15: Programmerbar logikk - UiO

Fys3270(4270)

CPLD – ArkitekturMakroceller

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

Page 16: Programmerbar logikk - UiO

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

Page 17: Programmerbar logikk - UiO

Fys3270(4270)

CPLD – ArkitekturInput celle

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

kraftig

Synkroniseringsflip-flop’er

Page 18: Programmerbar logikk - UiO

Fys3270(4270)

CPLDI/O celler

• XC9500XL serien fra Xilinx

Page 19: Programmerbar logikk - UiO

Fys3270(4270)

CPLDI/O celler

• CoolRunner– Fleksibel styring av output buffer

Page 20: Programmerbar logikk - UiO

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 =

Page 21: Programmerbar logikk - UiO

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

Page 22: Programmerbar logikk - UiO

Fys3270(4270)

CPLDTimingmodell

• Max340/5000 timing modell

Page 23: Programmerbar logikk - UiO

Fys3270(4270)

CPLDTimingmodell

• CY370 timing modell– Tilsvarende 22V10

Page 24: Programmerbar logikk - UiO

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

Page 25: Programmerbar logikk - UiO

Fys3270(4270)

CPLDbruk av JTAG port

Page 26: Programmerbar logikk - UiO

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

Page 27: Programmerbar logikk - UiO

Fys3270(4270)

FPGARouting og logiske celler

Page 28: Programmerbar logikk - UiO

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)

Page 29: Programmerbar logikk - UiO

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)

Page 30: Programmerbar logikk - UiO

Fys3270(4270)

FPGAProgrammeringsteknologier

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

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

Programmert Ikke Programmert

Page 31: Programmerbar logikk - UiO

Fys3270(4270)

FPGAProgrammeringsteknologier

• Cypress pASIC380 struktur– Basert på amorf silisium

Page 32: Programmerbar logikk - UiO

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

Page 33: Programmerbar logikk - UiO

Fys3270(4270)

FPGAProgrammeringsteknologier

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

Page 34: Programmerbar logikk - UiO

Fys3270(4270)

FPGAProgrammeringsteknologier

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

transistorer

Page 35: Programmerbar logikk - UiO

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

Page 36: Programmerbar logikk - UiO

Fys3270(4270)

FPGARouting arkitekturer

• Globale nettverk– Klokker

• For å unngå klokke ”skew”– Reset

Page 37: Programmerbar logikk - UiO

Fys3270(4270)

FPGALogiske celler

• Antifuse FPGA’er har oftest små logiske celler

Actels ACT3 logisk celle

Page 38: Programmerbar logikk - UiO

Fys3270(4270)

FPGALogiske celler

pASIC380 logisk celle

Page 39: Programmerbar logikk - UiO

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)

Page 40: Programmerbar logikk - UiO

Fys3270(4270)

FPGALogiske celler

Altera Flex 8000 Logiske Element (LE)

Page 41: Programmerbar logikk - UiO

Fys3270(4270)

FPGAI/O celler

Xilinx Spartan II I/O blokk

Page 42: Programmerbar logikk - UiO

Fys3270(4270)

FPGANyere familier

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

Xilinx Virtex E

Page 43: Programmerbar logikk - UiO

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

Page 44: Programmerbar logikk - UiO

Fys3270(4270)

FPGATiming

Eksempel på resultat av en statisk timing analyse

Page 45: Programmerbar logikk - UiO

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”