Sisteme cu FPGA

20
Slide 1 Sisteme cu FPGA

description

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 : - PowerPoint PPT Presentation

Transcript of Sisteme cu FPGA

Page 1: Sisteme cu FPGA

Slide 1

Sisteme cu FPGA

Page 2: Sisteme cu FPGA

Slide 2

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!

Page 3: Sisteme cu FPGA

Slide 3Sisteme cu FPGABibliografie:• Pentru dispozitive FPGA:

– Website XILINX, www.xilinx.com -> Products -> Silicon Devices:• Pentru placile Nexys/Nexys2: Familia Spartan 3E

• Va recomand si V5, S6, V6, Seriile 7 (pot fi intrebari la examen din datasheet!)

– Steve Kilts, “Advanced FPGA design”, Architecture, Implementation and Optimization” John Wiley and Sons, 2007

– Sorin Hintea, “Tehnici de Proiectare cu Arii Logice”, UTPress, 2003

– Website alti furnizori: Altera, Lattice Semiconductor, Cypress Semiconductor

• Pentru mediul 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 pentru sinteza!

• Placi de Dezvoltare: Manualele de Referință– Website Digilent, inc., www.digilentinc.com sau www.digilent.ro -> FPGA

Boards -> • NEXYS2 – 1200, 500

• si mai vechi: BASYS, NEXYS

– DOC, adică Manuale de referinta si fisiere .ucf: G:\Original\Digilent_Boards,

Page 4: Sisteme cu FPGA

Slide 4Sisteme cu FPGA• Software: – Mediul: Xilinx Integrated Software Environment (ISE)– Versiunea curenta: 14.6 (posibil apare pe parcurs si versiune mai

noua)

• Mediul contine:– ISE - mediul principal de proiectare. Licenta folosita: Webpack – FREE

– Embedded Development Kit (EDK) – Mediu de dezvoltare pentru crearea de sisteme pe microprocesoare Microblaze, PowerPC, ARM

– PlanAhead – mediu de proiectare la nivel de arhitectura chip– ChipScope – osciloscop prin JTAG a semnalelor interne ale unui

proiect– System Generator – Matlab pe FPGA

• Instalare:– www.xilinx.com -> Download. If not user, va inregistrati

• 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!)

Page 5: Sisteme cu FPGA

Slide 5Sisteme 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

Page 6: Sisteme cu FPGA

Slide 6Introducere

Ce este FPGA?

• Începem de la câteva componente digitale simple, vezi pe tablă

Page 7: Sisteme cu FPGA

Slide 7IntroducereArii 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)

Page 8: Sisteme cu FPGA

Slide 8IntroducereArii 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

Page 9: Sisteme cu FPGA

Slide 9IntroducereArii 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)

Page 10: Sisteme cu FPGA

Slide 10IntroducereArii 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…

Page 11: Sisteme cu FPGA

Slide 11IntroducereArii 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!

Page 12: Sisteme cu FPGA

Slide 12IntroducereArii 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?

Page 13: Sisteme cu FPGA

Slide 13IntroducereArii 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 ZNYC 7000 – 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

Page 14: Sisteme cu FPGA

Slide 14IntroducereArii 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

Page 15: Sisteme cu FPGA

Slide 15Introducere

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

Page 16: Sisteme cu FPGA

Slide 16IntroducereDe ce FPGA vs ASIC?

• 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)

Page 17: Sisteme cu FPGA

Slide 17

IntroducereComparaţie între proiecte pe diverse implementări:

• Karen Parnell, Roger Bryner: Comparing and ContrastingFPGA and Microprocessor System Design and Development, XILINX Coorporation, July 2004

Page 18: Sisteme cu FPGA

Slide 18IntroducereComparaţie între microcontrollere şi FPGA

Facilităţi μC Soluţii μC FPGA Soluţii FPGA

Viteză de lucru mică CLK> mare CLK>, paralelism

Periferice predefinite

da Interfeţe I/O standard: SPI, SCI, USB etc

Nu Componente CORE

Reprogramabilitate da FLASH Da FLASH, RAM

Interfeţe Analogice da Convertoare D/A, A/D

Nu Circuite externe

Versatilitate mică Pini partajaţi Mare Reconfigurabil la nivel de pin I/O

Algoritmi complecşi

uşor Programare C, Asm Greu Componente CORE

Preţ de cost mică Familii Low-Cost Medie Preţ de cost/poartă logică <<

Page 19: Sisteme cu FPGA

Slide 19IntroducereComparaţ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ă

Page 20: Sisteme cu FPGA

Slide 20IntroducereAvantajul 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