View
2
Download
1
Category
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”
Recommended