Programabilna digitalna kola
FPGAo FPGA = Field Programmable Gate Arrays
(gejtovska polja koja se programiraju ˝na terenu˝, tj. od strane krajnjeg korisnika)
o Po strukturi sličnija ASIC gejtovskim poljima nego PAL-u i dugim SPLD ili CPLD kolima, zasnovanim na programabilnim AND/OR matricama.
Programabilna digitalna kola
SPLD - FPGA - ASIC
FPGAXilinx ‘84
Visok stepen konfigurabilnosti, kratko vreme projektovanja i implementacije, ali samo za
jednostavan dizajn
Veliki i složen dizajn, ali nepromenljiva nakon fabrikacije,
skupo i dugotrajno projektovanje i fabrikacija
Programabilna digitalna kola
Prva FPGA kolao CMOS i SRAM tehnologijao 3-ulazni LUT + FF + MUX
o Savremena FPGA kola su mnogo složenija
Programabilna digitalna kola
FPGA arhitekturao Konfigurabilni
logički blokovi, raspoređeni u dvodimenziono polje
o U/I blokovi, raspoređeni po obodu kola
o Programabilna sprežna mreža smeštena u kanalima između logičkih blokova
Programabilna digitalna kola
Granularnost FPGA arhitektureo Odnosi se na složenost logičkog bloka
n Fina - samo jednostavne funkcije (npr. 3-ulazni NAND)n Srednja - složenija struktura i funkcionalnost (npr. 4-
ulazni LUT, 4 MUX, 4 D FF u jednom bloku)n Gruba - pored logičkih blokova arhitektura sadrži i
namenske specijalizovane module, npr. FFT, mikroprocesor.
o Sredinom 90-tih, ahitekture srednje granularnosti su potisnule arhitekture fine granularnosti
Programabilna digitalna kola
Nizovi tranzistorskih parovaFPGA CP20K firme Crosspoint Solutionso Fina granularnost
Programabilna digitalna kola
Logički blokovi zasnovani na multiple-kserima - srednji nivo granularnosti
Svaki ulaz se može porogramiranjem postaviti na konstantu 0 ili 1, ili se na
ulaz može dovesti prava ili invertovana vrednost promenljive
Programabilna digitalna kola
Logički blok Actel FPGA iz serije ACT 2o 766 različitih logičkih funkcijao Veća funkcionanost po cenu povećanja broja ulaza ->
složenija sprežna mreža
Programabilna digitalna kola
Logički blokovi zasnovani na LUT -srednji nivo granularnostio Većina savremenih FPGA koristi LUT-ove
Programabilna digitalna kola
Logički blokovi zasnovani na LUTo LUT sa 3, 4, 5 i 6 ulaza
n Jedan ulaz više, broj ćelija duplo većin 4-LUT se smatra optimalnim
o LUT može imati više namenan Relizacija logičke funkcije (osnovna
namena)n 16x1 RAM (za 4-LUT)n Pomerački registar
Programabilna digitalna kola
Logički blokovi zasnovani na LUT
Bilo koja od nekoliko funkcija
Programabilna digitalna kola
Logički blok FPGA Xilinx XC4000
Programabilna digitalna kola
Hijerarhijao Osnovni blok:
n Xilinx - Logička ćelija (LC)n Altera - Logički blok (LB)
o Slice - 2 LCn Svaki LC ima svoje ulaze i izlaze,
dok su clock, clock enable, set/reset - zajednički za oba LC.
o CLB (Configurable Logic Block) - Xilinx ili LAB (Logic Block Array) - Alteran 2 ili 4 slices
Programabilna digitalna kola
Dodatne mogućnosti na nivou CLB-ao RAM konfiguracije (za 4 slices po CLB):
n Single-port RAM: 16x8, 32x4, 64x2, 128x1n Dual-port RAM: 16x4, 32x2, 64x1
o Dodatne veze unutar slice-a i CLB-a omogućavaju nadovezivanje LC konfigurisanih kao 16-bitnih pom. registara u 128-bitni pom. registar.
o LC sadrže dodatnu logiku za ubrzani prenos i namenske veze između LC-ova u slice-u, kao i između slice-ova u CLB-u - radi postizanja boljih performansi brojača i sabirača.
Programabilna digitalna kola
Sprežna mreža
Sprežna mreža:
• Žičani segmenti +
• Programabilni prekidači
Programabilna digitalna kola
Sprežna mreža - struktura
o Connection block - sprega logičkog bloka na srežnu mrežuo Switching block - nadovezivanje žičanih segmenata
Programabilna digitalna kola
Sprežna mrežao Žičani segment -
neprekinuta veza završena prekidačima
o Traka - niz od jednog ili više žičanih segmenata
o Kanal za rutiranje -grupa paralelnih traka
o Blok za povezivanje -omogućava vezu jednog ulaza/izlaza logičkog bloka i žičanog segmenta u kanalu
Programabilna digitalna kola
Sprežna mrežao Prekidački blok -
omogućava spajanje horizontalnih i vertikalnih veza
Programabilna digitalna kola
Sprežna mreža
Moguće konfiguracije prekidačkog bloka
Programabilna digitalna kola
Sprežna mreža - žičani segmentio Žičani segmenti:
n Veze opšte nemene - žičani segmenti koji prolaze kroz prekidačke blokove gde se spajaju sa drugim žičanim segmentima
n Direktne veze - žičani segmenti koji povezuju izlaz jednog direktno sa ulazom susednog logičkog bloka
n Dugačke veze - za povezivanje fizički udaljenih logičkih blokova, bez unošenja značajnog propagacionog kašnjenja
n Veze posebne namene - razvođenje taktnog signala
Programabilna digitalna kola
Sprežna mreže - žičani segmenti
Programabilna digitalna kola
Ugrađeni RAM (Embedded RAM, ili e-RAM)o RAM je nephodan u mnogim aplikacijama. o Dve mogućnosti za realizaciju RAM-a:n Distribuirani RAM - koristi se LUT-ovi
konfigurisani kao RAMn Blok RAM - namenski RAM moduli ugrađeni u
FPGA arhitekturu (tzv. embedded RAM)
Programabilna digitalna kola
Ugrađeni RAM
o Blokovi se mogu koristiti nezavisno ili se mogu kombinovati u veće single/dual port RAM blokove, FIFO, FSM i td.
o Kod nekih FPGA raspoređeni po obodu čipa, kod drugih grupisani u blokove, a oni u kolone
o Blok kapaciteta do 10Kb, a ukupna memorije do nekoliko MB
Programabilna digitalna kola
Ugrađeni množačio Neke funkcije, poput množača, su spore ako se realizuju
pomoću LUT-ova.o Pojedine FPGA arhitekture sadrže ugrađene hardverske
množačeo Obično su locirani u blizini e-RAM blokova
Programabilna digitalna kola
Ugrađeni MACo MAC - Multiply-and-Accumulate
n S = S + A x B o Korisno za DSP
Programabilna digitalna kola
Ugrađeni procesori o Elektronski sistemi se mogu realizovati u:
n Hardveru (logička kola/registri)n Softveru (instrukcije koje se izvršavaju na mikroprocesoru)
o Izbor zavisi od zahtevane brzine rada sistema:n ps i ns: isključivo u hardverun us: hardver ili softver, ili njihova kombinacijan ms: uglavnom u softeru
o Činjenica je da se neka forma mikroprocesora koristi u većini savremenih dizajna
o Sve do nedavno, mikroprocesor se ugrađivao u sistem u vidu komponente na štampanoj ploči. Danas se sve više koriste mikroprocesorska jezgra ugrađena u FPGA.
Programabilna digitalna kola
Dve vrste ugrađenih (embedded) procesorao Hard - mikroprocesorsko jezgro (core) je
implementirano kao namenski, predefinisani blok
o Soft - mikroprocesorsko jezgro postoji na nivou VHDL opisa, netliste i sl. a realizuje se, kao i svaka logika, pomoću logičkih blokova
Programabilna digitalna kola
Hard mikroprocesorska jezgrao Dve opcije za implementaciju:
n In a stripe (u traci): sa jedne strane FPGA polja. Obično u vidu MCM (Multi Chip Modul - dva čipa upakovana na istu silicijumsku podlogu)
n Ugrađeni u samo FPGA polje
o In a stripe (prednosti):n Glavno FPGA polje je
identično kao kod čipova bez mikroprocesora
n U strip se mogu ugraditi i drugi moduli (memorija, perferije)
Programabilna digitalna kola
Hard mikroprocesorska jezgrao Ugrađeni direktno u FPGA polje
Programabilna digitalna kola
Soft mikroprocesorska jezgrao Soft jezgra su sporija (niža maksimalna taktna
frekvencija) od hard (30-50%)o Prednost je što se mogu pridodati dizajnu po
potrebi i to u broju koji je potreban (sve dok ima raspoloživih resursa).
Programabilna digitalna kola
Konfigurisanje FPGA kolao Konfiguracioni fajl (ili bit-fajl ili implementacioni
fajl)- krajnji rezultat projektovanja. Koristi se za programiranje FPGAn Za antifuze FPGA - sadrži samo konfiguracione podatken Za SRAM FPGA - sadrži konfiugracione podatke i
konfiguracione komande (instrukcije FPGA-u šta da uradi sa podacima)
o Konfiguracione ćelije (programabilni prekidači) -omogućavaju konfigurabilnost FPGA, sadržane su u LUT-ovima, sprežnoj mreži, U/I blokovima.
Programabilna digitalna kola
Konfigurisanje FPGA kola
o Sve konfiguracione ćelije su povezane u jedan dugački scan chain o Ulaz i izlaz scan chain-a su izvedeni na pinove FPGA
Programabilna digitalna kola
Režimi konfigurisanja (zavisi od tipa FPGA)
Programabilna digitalna kola
Režimi konfigurisanja
Najčešće FLASH sa serijskim izlazom
Serial load with FPGA as masterSerial load with FPGA as master
Programabilna digitalna kola
Režimi konfigurisanjaDaisy chaining (ulanDaisy chaining (ulanččavanje)avanje)
Programabilna digitalna kola
Režimi konfigurisanja
o Skraćeno vreme programiranja
Parallel load with FPGA as masterParallel load with FPGA as master
Programabilna digitalna kola
Režimi konfigurisanja
o Varijanta serijskog punjenja
Programabilna digitalna kola
Režimi konfigurisanjaPParallel load witharallel load with FPGA as slave FPGA as slave (or (or serial load with FPGA as slaveserial load with FPGA as slave))
Programabilna digitalna kola
Režimi konfigurisanja - JTAG porto Prvobitna namena - boundary scan - testiranje štampanih ploča i čipova
na štampanoj ploči.n Podaci se serijski pune u U/I scan ćelije, čip obrađuje podatke i rezultat se
serijski očitava radi verifikacije o Dodatna funkcija kod FPGA - konfigurisanje
Programabilna digitalna kola
Distribucija taktna kod FPGA kolao Takt je potreban svim flip-flopovima i drugim
sinhronim elementima u FPGAo Za taktovanje se koristi se globalni, eksterni
taktni signal, koji se dovodi u FPGA preko specijalizovanog pina.
o Problem košenja takta
Programabilna digitalna kola
Košenje taktao Javlja se kao posledica konačne brzine propagacije
taktnog signalao Može da stvori probleme u funkcionisanju digitalnog
sistema
Programabilna digitalna kola
Taktno stablo
Programabilna digitalna kola
Menadžer taktao Poseban funkcionali blok, koji na osnovu
primarnog, ulaznog taktnog signala generiše više sekundarnih taktnih signala
Programabilna digitalna kola
Menadžer taktao Funkcijen Eliminacija džiteran Sinteza frekvencijen Pomeranje fazen Automatska korekcija košenja takta
Programabilna digitalna kola
Eliminacija džiterao Jitter - Džiter ili treperenje takta - fluktuacije
u trenucima promene nivoa taktnog signala
Programabilna digitalna kola
Eliminacija džitera
Programabilna digitalna kola
Sinteza frekvencijeo Na osnovu primarnog takta, frekvencije f, generiše sekundarni taktni
signal frekvencije k*f.o U slučajevima kada je za rad digitalnog sistema, realizovanog u FPGA,
neophodan takt različite frekvencije u odnosu na onu na ulazuo Mogućnost da se sekundarni signal sprovede izvan FPGA i koristi za
pobudu drugih kola na istoj PCB
Programabilna digitalna kola
Pomeranje fazeo Na osnovu primarnog takta, generiše više sekundarnih signala
iste frekvecije, ali fazno pomerenihn Mogućnost izbora između nekoliko fiksnih vrednosti pomaka: 900,
1200, 1800, 2700, ilin Mogućnost finog podešavanja faznog pomaka
Programabilna digitalna kola
Automatska korekcija košenja taktao Precizno usaglašavanje faze sekudarnog takta
sa fazom primarnog takta
Programabilna digitalna kola
Menadžer taktao Zasnovani na:o PLL - Phase Locked Loop n Kombinacija analognih i digitalnih elemenata
o DLL - Digital Delay Locked Loop - digitalna realizacija.n Bolja preciznost, stabilnost, imunost na šum i
džiter
Programabilna digitalna kola
DDL
Elementi za kašnjenje
Programabilna digitalna kola
Menadžer takta kod Xlinix FPGA
Programabilna digitalna kola
Ulazi/izlazi opšte nameneo Savremena FPGA kola mogu imati i do 1000
ulaza/izlaza (pinova) opšte nameneo Za spregu sa drugim kolima na istoj štampanoj ploči
(PCB).o Problem: Za prenos signala između digitalnih kola
koriste se brojni standardi (koji definišu električne aspekte dig. signala - V(1), V(0) i sl.)
o Rešenje
Programabilna digitalna kola
Ulazi/izlazi opšte nameneo Ulazi/izlazi su grupisani u više ˝banaka˝o Banke se mogu nezavisno konfigurisati za različite
U/I standarde
Programabilna digitalna kola
Konfigurabilna U/I impedansao Signali koji izlaze iz FPGA su obično ˝brzi˝ - velika
frekvencija promene, a ivice signala su oštre:n Dovodi do pojave refleksije (i izobličenja) signala na vezi
koja povezuje izlaz FPGA i ulaz nekog drugog kola
o U prošlosti: n otpornici na vezi - na red ili prema masi
o Kod savremenih FPGA:n Mogućnost internog konfigurisanja izlazne impedanse
(otpornici su u samom FPGA)
Programabilna digitalna kola
Integritet signalaIzlazna impedansa pina previše mala -
napon na liniji pada ispod 0 VIzlazna impedansa pina 50 omh -napon na liniji ne pada ispod 0 V
Programabilna digitalna kola
Napajanje FPGAo 1965 - 1995 (circa) - većina digitalnih kola su se napajala naponom od 5V.o Napredak tehnologije i zahtevi za smanjenom potrošnjom dovodi do
korišćenja manjih napona napajanja:
o Radi se o naponu napajanja ˝jezgra˝ - unutrašnjosti FPGA.o Za napajanje U/I banki, koristi se posebno napajanje, shodno korišćenom
U/I standardu
Programabilna digitalna kola
Prenos podataka između IC-ovaParalelni prenoso Tradicionalni način za prenos podataka između digitalnih
kola:8, 16, 32, 64 bita
o Problemi:o Veliki broj pinova i veliki broj veza za povezivanje kolao Sa povećanjem brzine prenosa:
n Sve veze moraju biti iste dužine i istu impedansun Veća osetljivost na šum i preslušavanje signala
o Zbog svega toga
Programabilna digitalna kola
Prenos podataka između IC-ovaSerijski prenoso Prenos podataka po jednoj liniji - single-ended
Radi pouzdanog prenosa, hepohodan relativno veliki ˝razmak˝ između
naponskih oblasti logičke 0 i logičke 1-ce
Programabilna digitalna kola
Prenos podataka između IC-ovaSerijski prenoso Diferencijalni prenos
n Za serijski prenos se koriste dve linijen Logički nivo određen razlikom napona na linijaman Dovoljan mali ˝razmak˝ između naponskih oblasti 0 i 1
o Prednostin Smanjena elektromagnetska emisijan Mogućnost za veću brzinu prenosan Manja potrošnja energijen Bolja otpornost na šumove
Programabilna digitalna kola
Gigabitski transiverio U savremena FPGA kola ugrađuju se specijalizovani
hardverski blokovi za brzi (gigabitski) serijski prenos podataka.
o Svaki blok sadrži do 4 primopredajnika, a u jedno FPGA kolo može biti ugrađeno do nekoliko transiverskih blokova.