Sisteme cu FPGA

Post on 13-Jan-2016

61 views 0 download

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

Slide 1

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!

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,

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

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

Slide 6Introducere

Ce este FPGA?

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

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)

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

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)

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…

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!

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?

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

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

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

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)

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

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ă <<

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ă

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