1 / 32

Tehnici de Proiectare cu Circuite Digitale (FPGA)

Tehnici de Proiectare cu Circuite Digitale (FPGA). Obiective. Cresteti performantele unui proiect prin duplicarea bistabilelor Cresteti performantele unui proiect prin folosirea pipeline Cresteti performantele unei placi de dezvoltare prin folosirea de bistabile I/O

aurek
Télécharger la présentation

Tehnici de Proiectare cu Circuite Digitale (FPGA)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tehnici de Proiectare cu Circuite Digitale (FPGA) This material exempt per Department of Commerce license exception TSU

  2. Obiective • Cresteti performantele unui proiect prin duplicarea bistabilelor • Cresteti performantele unui proiect prin folosirea pipeline • Cresteti performantele unei placi de dezvoltare prin folosirea de bistabile I/O • Construiti circuite de sincronizare stabile Dupa completarea acestui modul, veti fi in stare sa:

  3. Cuprins • Duplicarea bistabilelor • Pipelining • Bistabile I/O • Circuite de Sincronizare • Recapitulare

  4. Duplicarea Bistabilelor • Conexiunile cu fan-out ridicat pot avea intarzieri mari si sunt greu de rutat • Duplicarea bistabilelor poate solutiona ambele probleme • Un fanout limitat reduce intarzierile de retea • Fiecare bistabil poate avea fanout catre diferite regiuni fizice pe cip, reducand astfel congestia de rutare • Compromisuri de design • Performanta si capacitate de rutare crescute • Largirea ariei de dezvoltare • Fanout crescut catre alte retele fn1 D Q fn1 D Q fn1 D Q

  5. Exemplu de duplicare a bistabilelor Bistabilul conectat la 2 bancuri de registri constransi la regiuni diferite ale cipului • Bistabilul sursa si pinul nu sunt constransi • Constrangere de timp: Period = 5 ns • Implementat cu optiunile implicite • Cea mai lunga cale de propagare = 6.806 ns • Nu respecta constrangerea de timp

  6. Exemplu de duplicare a bistabilelor Bistabilul sursa este duplicat • Fiecare bistabil reprezinta sursa pentru o regiune de pe cip • Fiecare bistabil foate fi amplasat mai aproape de registrul al carui sursa este • Timpi de propagare prin rute redusi • Cea mai lunga cale de propagare = 4.666 ns • Indeplineste constrangerea de timp

  7. Sugestii pentru duplicarea bistabilelor • Bistabilii duplicati se vor denumi _a, _b; NOT _1, _2 • Bistabilii numerotati sunt implicit mapati in acelasi slice • Bistabilii duplicati trebuie sa fie separati • Mai ales daca incarcarile sunt raspandite pe cip • Bistabilii duplicati trebuie creati in mod explicit in codul HDL (mai bine instantiati decat descrisi) • Cele mai multe sintetizatoare ofera control automat de fanout • Totusi, nu intotdeauna este aleasa cea mai buna distribuire a incarcarilor • De asemenea, bistabilii duplicati vor fi denumiti _1, _2 • Numeroase sintetizatoare optimizeaza prin reducere bistabilii duplicati • Folositi optiunea de sinteza ce pastreaza logica redundanta • Nu duplicati bistabilii care lucreaza cu semnale asincrone • Intai sincronizati semnalul • Trimiteti apoi semnalul sincronizat mai multor bistabile

  8. Cuprins • Duplicarea bistabilelor • Pipelining • Bistabile I/O • Circuite de Sincronizare • Recapitulare

  9. Doua niveluri logice un nivel un nivel Conceptul de Pipelining Prin introducerea de bistabili intr-o cale de procesare de date, se pot creste performantele fMAX = n MHz D Q D Q fMAX 2n MHz D Q D Q D Q Reduce numarul de nivele logice (LUT) dintre bistabili

  10. Aspecte legate de Pipelining • Exista suficienti bistabili disponibili? • Consultati MAP Report • In general, nu se epuizeaza resursa de bistabili • Exista mai multe nivele logice intre bistabili? • Daca ar exista un singur nivel logic intre bistabili, pipelining nu va imbunatati performantele • Consultati Post-Map Static Timing Report sau Post-Place & Route Static Timing Report • Poate sistemul tolera latenta?

  11. Latenta in sisteme cu Pipeline • Fiecare etaj de pipeline intarzie disponibilitatea datelor la iesire cu cate o perioada de tact • Asa numitul fenomen de “umplere a pipeline-ului” • Dupa ce un pipeline este umplut, un rezultat nou este disponibil la fiecare tact

  12. LUT D Q Q D LUT LUT SOURCE_FFS DEST_FF LUT Exemplu de Pipelining Circuit fara pipelining • Circuitul original • Doua nivele logice intre SOURCE_FFS si DEST_FF • fMAX = ~233 MHz

  13. D Q LUT D Q D Q LUT D Q LUT SOURCE_FFS DEST_FF D Q LUT PIPE_FFS Exemplu de Pipelining Circuit cu pipelining • Circuit cu pipelining • Un nivel logic intre fiecare set de bistabili • fMAX = ~385 MHz

  14. Intrebari recapitulative • Dat fiind circuitul original, ce e greșit la circuitul cu pipelining? • Cum poate fi solutionata problema? Circuit cu Pipelining Circuit Original

  15. Raspunsuri • Ce e greșit la circuitul cu pipelining? • Nepotrivire de latenta • Datele vechi sunt amestecate cu cele noi • Raspunsul circuitului este incorect • Cum poate fi solutionata problema? • Prin adaugarea unui bistabil pe semnalul SELECT • Toate intrarile de date prezinta aceeasi latenta

  16. Cuprins • Duplicarea bistabilelor • Pipelining • Bistabile I/O • Circuite de Sincronizare • Recapitulare

  17. Privire de ansamblu a bistabilelor I/O • Fiecare bloc I/O dintr-un Virtex™-II Pro contine 6 bistabili • IN FF pe intrare, OUT FF pe iesire, EN FF pe 3-state enable (fiecare cu OCK1, OCK2) • Suporta single data rate sau double data rate • Bistabilii I/O asigura timpi de setup, hold si clock-to-out atunci cand semnalul de tact vine de la un BUFG

  18. Accesarea bistabililor I/O • In timpul sintezei • Sinteza controlata de constrangeri de timp poate face ca bistabilii sa fie amplasati in Input/Output Blocks (IOB) • Anumite sintetizatoare suporta atribute sau directive de sinteza pentru a marca bistabili spre a fi amplasati in IOB • Xilinx Constraint Editor • Se poate selecta tab-ul Misc si specifica registri care trebuie plasati in IOB • Trebuie cunoscute denumirile de instanta pentru fiecare registru • In timpul fazei de implementare MAP • In fereastra de dialog Map Properties, optiunea “Pack I/O Registers/Latches into IOBs” este selectata implicit • Si operatiunea MAP controlata de constrangeri va muta registrii in IOB pentru cai de propagare critice • MAP Report trebuie verificat pentru a confirma faptul ca bistabilii IOB au fost folositi • A se cauta sectiunea de “IOB Properties”

  19. Cuprins • Duplicarea bistabilelor • Pipelining • Bistabile I/O • Circuite de Sincronizare • Recapitulare

  20. Circuite de Sincronizare • Ce este un circuit de sincronizare? • Preia un semnal de intrare asincron si il trimite pe un front de tact • De ce sunt necesare circuitele de sincronizare? • Pentru a preveni incalcari ai timpilor de setup si hold • Pentru a asigura un design cat mai stabil • Cand avem nevoie de circuite de sincronizare? • Atunci cand semnalele se conecteaza intre domenii de tact fara legatura intre ele • Intre domenii de tact asociate, constrangerile relative de tip PERIOD fiind suficiente • Intrari de cip care sunt asincrone

  21. Incalcari de timp Setup si Hold • Incalcarile se petrec atunci cand intrarea unui bistabil se schimba prea aproape de un front de tact • Exista 3 rezultate posibile: • Bistabilul citeste valoarea veche • Bistabilul citeste valoarea noua • Iesirea bistabilului devine metastabila

  22. Metastabilitatea • Iesirea bistabilului intra intr-o stare tranzitorie • Nu este nici 0 nici 1 valid • Unele intrari pot interpreta ca 0, iar altele ca 1 • Ramane in aceasta stare pentru o perioada de timp nedefinita inainte de a se stabiliza la o valoare de 0 sau 1 • Datorita naturii ei statistice, aparitia evenimentelor metastabile poate fi doar redusa, insa niciodata eliminata • Media statistica a nereusitelor – Mean Time Between Failure (MTBF) este invers exponentiala fata de intervalul de timp alocat bistabilului sa isi revina • Cateva ns in plus alocate revenirii bistabilului pot reduce substantial sansele ca bistabilul sa intre in starea metastabila • Circuitele prezentate in acest subcapitol permit bistabilelor o intreaga perioada de tact pentru revenirea din starea metastabila

  23. Circuitul de sincronizare 1 A se utiliza atunci cand impulsurile de intrare au latimea minima de o perioada de tact • Bistabilul in plus protejeaza impotriva metastabilitatii Guards against metastability Synchronized signal Asynchronous input D Q D Q FF1 FF2 CLK

  24. Circuitul de sincronizare 2 A se folosi atunci cand impulsurile de intrare pot avea latimea mai mica decat o perioada de tact • FF1 capteaza impulsuri scurte • FF2 si FF3 au acelasi rol ca si circuitul de sincronizare 1 VCC Guards against metastability Synchronized signal D Q D Q Q D FF1 FF2 FF3 Asynchronous input CLR CLK Previne resetarea lui FF1 daca intrarea circuitului are inca valoarea HIGH

  25. D Q CE One-shot enable D Q D Q FF1 FF2 D Q Synchronized bus inputs D Q CLK n bit bus Sync_Reg D Q Captarea unei magistrale A se utiliza atunci cand impulsurile de intrare trebuie sa aiba latimea minima de o perioada de tact • Intai magistrala de date este inregistrata de tactul asincron • Apoi circuitul “one-shot enable” – debouncer – sincron cu tactul semnalizea prin CE faptul ca datele au fost captate Asynchronous input CLK Leading edge detector Circuitul 1

  26. VCC One-shot enable Q D Q D Q Asynchronous Input CLK FF2 FF3 CLK D D Q FF1 Synchronized bus inputs CE CLR n bit bus Sync_Reg D Q Captarea unei magistrale A se folosi atunci cand impulsurile de intrare pot avea latimea mai mica decat o perioada de tact • Intai magistrala de date este inregistrata de tactul asincron. • Apoi circuitul “one-shot enable” – debouncer – sincron cu tactul semnalizea prin CE faptul ca datele au fost captate Leading edge detector Circuitul 2

  27. FIFO16 DI DO RAMB16 CORE RDCOUNT waddr raddr WRCOUNT Write Pointer Read Pointer mem_ren mem_wen oe Status Flag Logic WRCLK RDCLK WREN RDEN RESET FULL AFULL EMPTY RDERR WRERR AEMPTY Circuitul de sincronizare 3 • A se folosi un FIFO pentru a trece intre domenii

  28. Cuprins • Duplicarea bistabilelor • Pipelining • Bistabile I/O • Circuite de Sincronizare • Recapitulare

  29. Intrebari recapitulative • Un fanout ridicat este unul din motivele pentru a duplica un bistabil. Care este un alt motiv? • Dati un exemplu in care nu este nevoie de resincronizarea unui semnal care trece dintr-un domeniu de tact in altul. • De ce se foloseste bistabilul in plus in circuitele de sincronizare prezentate?

  30. Raspunsuri • Un fanout ridicat este unul din motivele pentru a duplica un bistabil. Care este un alt motiv? • Incarcarile sunt distribuite in mai multe locatii pe cip. • Dati un exemplu in care nu este nevoie de resincronizarea unui semnal care trece dintr-un domeniu de tact in altul. • Raport bine stabilit intre fazele semnalelor de tact • Exemplu: semnalele de tact au aceeasi frecventa, fiind insa defazate cu 180o. • Se pot folosi constrangeri de tip PERIOD pentru a asigura indeplinirea cerintelor de timp. • De ce se foloseste bistabilul in plus in circuitele de sincronizare prezentate? • Pentru a permite primului bistabil sa isi revina din starea de metastabilitate.

  31. Concluzii • Performantele unui circuit pot fi crescute prin: • Duplicarea bistabililor • Adaugarea etajelor de pipelining • Folosirea bistabililor I/O • Compromisuri • Duplicarea bistabililor creste aria circuitului • Pipelining-ul introduce latenta si de asemenea creste aria circuitului • Circuitele de sincronizare cresc stabilitatea proiectului.

  32. Informatii aditionale • User Guides: www.xilinx.com  Documentation  User Guides • Switching Characteristics • Detailed Functional Description  Input/Output Blocks (IOBs) • Application Notes: www.xilinx.com  Documentation  Application Notes • XAPP094: Metastability Recovery • XAPP225: Data-to-Clock Phase Alignment

More Related