200 likes | 466 Views
Sisteme cu FPGA. Sisteme cu FPGA. Date despre materie: Nota: 1 + 0.2*Proj + 0.2*Teor + 0.2*Tm , daca P>5, E>5 Evaluare partiala la proiect: posibila E: proiect + intrebari de teorie (documentatie permis ă ) Teme: Voi trebuie sa exersati! Proiecte :
E N D
Sisteme cu FPGA • Date despre materie: • Nota: 1 + 0.2*Proj + 0.2*Teor + 0.2*Tm , daca P>5, E>5 • Evaluare partiala la proiect: posibila • E: proiect + intrebari de teorie (documentatie permisă) • Teme: Voi trebuie sa exersati! • Proiecte: • Aplicaţii pe placi de dezvoltare Nexys2 + PMODs • Exemple functionale cu dispozitivele de pe placa +PMODs, interfete: FLASH, EPP, UART, VGA, SPI in, out, I2C, 1-Wire • Exemple cu Logicore Ip: FIFO, DSP etc. • Laborator: • Cont la laborator: BEL\sfpga, parola sfpga • %HOMEDRIVE%%HOMEPATH %= G:\ • DIRECTOR DE LUCRU: C:\Temp • Va rog, grija cu placile de dezvoltare si modulele PMOD!
Sisteme cu FPGA Bibliografie: • Pentrudispozitive FPGA: • Website XILINX, www.xilinx.com -> Products -> Silicon Devices: • PentruplacileNexys/Nexys2: Familia Spartan 3E • Varecomandsi V5, S6, V6, Seriile 7 (pot fiintrebari la examen din datasheet!) • Steve Kilts, “Advanced FPGA design”, Architecture, Implementation and Optimization” John Wiley and Sons, 2007 • SorinHintea, “Tehnici de Proiectare cu AriiLogice”, UTPress, 2003 • Website altifurnizori: Altera, Lattice Semiconductor, Cypress Semiconductor • Pentrumediul de dezvoltare • Website XILINX, www.xilinx.com -> Documentation -> Design Tools -> ISE Design Tools (curent: 14.6) • In mod special User Guides -> Synthesis and Simulation Design Guide, UG626 • E un manual complet de HDL pentrusinteza! • Placi de Dezvoltare: Manualele de Referință • Website Digilent, inc., www.digilentinc.com sau www.digilent.ro -> FPGA Boards -> • NEXYS2 – 1200, 500 • simaivechi: BASYS, NEXYS • DOC, adică Manuale de referintasifisiere .ucf: G:\Original\Digilent_Boards,
Sisteme cu FPGA • Software: • Mediul: Xilinx Integrated Software Environment (ISE) • Versiuneacurenta: 14.6 (posibilaparepeparcurssiversiunemainoua) • Mediulcontine: • ISE - mediul principal de proiectare. Licentafolosita: Webpack – FREE • Embedded Development Kit (EDK) – Mediu de dezvoltarepentrucrearea de sistemepemicroprocesoareMicroblaze, PowerPC, ARM • PlanAhead – mediu de proiectare la nivel de arhitectura chip • ChipScope – osciloscopprin JTAG a semnalelor interne ale unuiproiect • System Generator – Matlabpe FPGA • Instalare: • www.xilinx.com -> Download. If not user, vainregistrati • Kit: About 7GB (.tar), Install: About 13GB (Webpack) • Instalati ISE WEBPACK! • NU FOLOSITI VARIANTE CRACKED!!! NU ARE ROST! • Bibliografie: Help si Online Documentation ale programelor respective (BECUL GALBEN!)
Sisteme cu FPGA • Bibliografie pentru Verilog • Google cu “verilog tutorial” (http://www.asic-world.com/verilog/veritut.html) • Nu e singurul tutorial! • Majoritatea acestora depind de mediul de proiectare/dezvoltare/simulare folosit • Medii de proiectare: zeci • Limbaje Verilog: unul singur! • Standardizări: 3+2: Verilog-95, -2001, -2005 + SystemVerilog + Verilog-A • Fiecare limbaj este o extensie a celui precedent
Introducere Ce este FPGA? • Începem de la câteva componente digitale simple, vezi pe tablă
Introducere Arii Logice Programabile Recapitulare scurtă • Implementarea sistemelor digitale se poate face cu: • Circuite logice ”discrete” (74XX, 4XX) • Sisteme de procesare: • Sisteme pe microprocesor • Sisteme cu microcontroller • Sisteme cu DSP • Sisteme cu arii logice reconfigurabile (programabile?) • PLA, PAL • GAL • CPLD (Complex Programmable Logic Device) • FPGA (Field Programmable Gate Array)
Introducere Arii Logice Programabile • Mai exact: circuitele FPGA sunt circuite ale căror “schemă internă” se poate configura / modifica în funcţie de cerinţele proiectului • Principali producători: Xilinx, Altera, Actel, Cypress, Lattice etc • De la fiecare producator: componentele sunt categorizate in FAMILII – similar cu alte produse comerciale
Introducere Arii Logice Programabile • Configuratia poate fi de tip • FLASH (în general, CPLD + S3NV, se păstrează configuraţia nonvolatil) • de tip RAM (în general FPGA, pierde configuraţia la întreruperea alimentării) • Cum putem stoca (sau măcar reproduce) configuratia in FPGA? • Metode de configurare: • JTAG (Joint Test Action Group) – interfață similară cu SPI • Folosind memorie SerialFlash (Interfață Xilinx sau SPI) • Mai nou, de la S6+ : Interfață Dual/Quad SPI (Atlys, Nexys3, Nexys4, Atlys2, Genesys2) • Folosind memorie ParalellFlash (Vezi plăci S3E, V5, V6, Atlys, Nexys3) • Mai nou: Stick USB (Nexys3, interfețe prin microcontrollere PIC/FTDI)
Introducere Arii Logice Programabile • FAMILII Dispozitive Xilinx: • FPGA: • Spartan 3E, 3AN • Spartan 6 • Virtex 4, 5, 6 • Seria 7: ARTIX, KINTEX, VIRTEX • ZYNQ • UltraScale (disponibilitate?) • CPLD: • CoolRunner 2 • Exemple de codificare: Identificator Xilinx, Familie, Dispozitiv, Capsula, Speed Grade • XC 2C 256 TQ144 – 1: Coolrunner 2, 256 Celule, capsula TQFP 144, -1 • XC 3S 500E FG320 -4: Spartan 3E, 500 Kporti echivalente, … • XC 5V LX110T FF1132 -1 – Virtex 5 LXT, 110 Mporti echivalente…
Introducere Arii Logice Programabile • Cat de “mare” – complex este un dispozitiv CPLD sau FPGA? • XILINX CPLD • de la XC2C32 – (Coolrunner II CPLD) 32 celule (32 bistabili, 750 porti logice, 33 User IO) • până la XC2C512 – 512 celule (12000 porti logice echivalente, 270 User I/O) • Xilinx Spartan 3E FPGA (2005, Placile Digilent Nexys2!) • XC3S500E – 500 Kporți echivalente (10,476 bistabili, max. 232 User I/O) • XC3S1200E – 1200 Kporți echivalente (19,512 bistabili, max. 304 User I/O) • În 3S500E “Încape” un sistem pe microprocesor Microblaze pe 32 biți + periferice aferente (3 X GPIO, 1 X UART, 1 X USB-EPP, 1X PS/2, 16 KB BRAM), toate ocupând aprox 54% din FPGA • Xilinx Virtex 7 FPGA(2012..2013) • de la XC7V330T – (408,000 bistabili, max. 700 User I/O) până la XC7V2000T (2,443,200 bistabili, max. 1200 User I/O) • XC7V2000T – ar fi echivalent cu 233 X S3E500!
Introducere Arii Logice Programabile • Însă: Arhitectura FPGA NU poate permite viteze de lucru mari, comparativ cu ASIC • 1. Ce este ASIC? • 2. DE CE? • 3. Ce solutii exista?
Introducere Arii Logice Programabile • 3. Ce solutii exista? • Componente hardware in FPGA (CORE) • 1. Specializate pentru FPGA • BRAM • DistRAM (Distributed, nu Dinamic!) • DSP48 • LUT4, 5, 6 • SLR16 (ocupa un singur LUT!) • … Ar mai trebui sa fie câteva, cautati! • 2. Specialiazate pe aplicatie • Ethernet • MCB (Memory Control Block), mai nou : Memory Interface Generator • Procesoare Încapsulate (PowerPC, mai nou: ARM) • Video Controller/OSD/DMA etc • Caz foarte special: ZNYC, mai exact familia ZNYC7000 – EPP (Extensible Processing Platform): • NU e o idee noua! Atmel a iesit pe piata cu AtMega + Celule Configurabile • Dual ARM Cortex™-A9 MPCore + Memorie Cache + Celule Configurabile
Introducere Arii Logice Programabile Frecvența de lucru? • Este mai puțin relevantă decât în cazul unui procesor • Contează mai mult timpii de propagare în interiorul circuitului • Ex. dacă la XC2C32 timpul minim de propagare = 3.8ns, rezultă FMax= 263 MHz • În realitate, frecvența e aprox. de 5..10 ori mai mică, datorită rutării din interiorul FPGA • Rutele devin mai lungi la creșterea complexității proiectului • Ex. la FPGA S3E500, 1200 (plăcile Nexys2), frecvența cea mai uzuală e 50MHz. Proiectele optimizate pot lucra până la 100..125MHz • Ex. la FPGA XC5VLX50T..LX110T (plăcile ML50X..XUPV5) frecvența cea mai uzuală e 125MHz • Există însă mai multe DOMENII DE TACT (CLOCK DOMAINS): În același proiect, pot lucra componente la frecvențe de tact diferite: • Un procesor soft-core la frecvența de 125MHz • Un controller DDR2 la frecvența de 2X400MHz în front • Un controller video la frecvența de 145 MHz (Pixelclock, HDMI 1080p) • Transciever-e GTP la frecvențe de GHz (3.2Gbps, 6.25Gbps, 12.5Gbps, etc) • Un controller AC’97 (audio) la frecvența de 12.28MHz
Introducere Piaţa circuitelor logice programabile: Avantaj Proiectare FPGA vs ASIC: Time-To Market • Karen Parnell, Roger Bryner: Comparing and ContrastingFPGA and Microprocessor System Design and Development, XILINX Coorporation, July 2004
Introducere • Există dezavantaje: • Consum de putere foarte mare • Multe circuite “în plus”, care consumă suplimentar – switch-uri, multiplexoare • Viteza FPGA nu poate concura cu cea ASIC • Majoritatea traseelor de semnal trec prin puncte de comutare • ÎNSĂ: • În cazul producţiei la scară mică – medie e mai ieftin • ASIC rentabil doar la producţia în masă – Circuite pentru tf. mobile, procesoare, circuite pentru plăci de bază etc. • UN PROIECT PE FPGA POATE FI FOARTE UŞOR MODIFICAT, PE ASIC ÎNSĂ NU • O foarte largă utilizare actuală a FPGA: VERIFICAREA FUNCŢIONALĂ a proiectelor foarte complexe • Există plăci de dezvoltare foarte complexe, cu ARII de FPGA (scumpe) De ce FPGA vs ASIC?
Introducere Comparaţie între proiectepe diverseimplementări: • Karen Parnell, Roger Bryner: Comparing and ContrastingFPGA and Microprocessor System Design and Development, XILINX Coorporation, July 2004
Introducere Comparaţie între microcontrollere şi FPGA
Introducere Comparaţie între implementările sistemelor digitale • Concluzii: • Sisteme cu microprocesoare sunt recomandate aplicațiilor de complexitate medie (sisteme de calcul), viteză medie • Sisteme cu microcontrollere: în aplicaţii industriale de viteză redusă – PLC - uri (Programmable Logic Controller) • Sisteme cu DSP: în aplicații de mare viteză, de complexitate redusă/medie • FPGA: recomandate aplicaţii de mare viteză şi-sau cu multe I/O, complexitate medie/mare ex: prelucrări de semnale, (datorită paralelismului), sisteme de comunicaţii de mare viteză
Introducere • Avantajul FPGA faţă de DSP: • Paralelism • Xilinx System Generator: Toolbox MATLAB, pentru creare de filtre digitale • Karen Parnell, Roger Bryner: Comparing and ContrastingFPGA and Microprocessor System Design and Development, XILINX Coorporation, July 2004