1 / 26

Tehnici de proiectare a circuitelor sincrone

Tehnici de proiectare a circuitelor sincrone. Obiective. La finalul acestui modul, veti putea: Folosi in mod eficient ierarhizarea Creste stabilitatea si performantele circuitului prin folosirea circuitelor sincrone. Cuprins. Ierarhizarea proiectelor Circuite sincrone in FPGA Xilinx

xannon
Download Presentation

Tehnici de proiectare a circuitelor sincrone

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 a circuitelor sincrone This material exempt per Department of Commerce license exception TSU

  2. Obiective La finalul acestui modul, veti putea: • Folosi in mod eficient ierarhizarea • Creste stabilitatea si performantele circuitului prin folosirea circuitelor sincrone

  3. Cuprins • Ierarhizarea proiectelor • Circuite sincrone in FPGA Xilinx • Concluzii

  4. Ierarhizarea proiectelor Utilizarea ierarhizarii sporeste claritatea codului, stabilitatea si posibilitatile de refolosire si depanare ale proiectului Top Level of Design Infer or instantiate I/O here O metoda de a imparti proiectul in blocuri ierarhizate este prin gruparea logicii similare State Machines Datapaths One-hot Pipelining Binary Muxing/De-Muxing Enumerated Arithmetic Counters Building Blocks Adders/Subtractors Standard Widths Bit Shifters Pipeline RAMs Accumulators Specific Functions RAM Other IP/Cores CoreGen FIFOs Parametizable functions FIR Filters RAM Technology-Specific Functions

  5. Avantajele utilizarii ierarhizarii • Claritatea proiectului • Mai usor de inteles functionalitatea proiectului si traseul urmat de date • Mai usor de debug • Usor de refolosit parti ale proiectului

  6. Sfaturi pentru claritatea proiectului • Alegeti blocuri de ierarhie care au: • Legaturi logice de date intre blocuri • Legaturi fizice (de rutare) minime intre blocuri • Alegeti denumiri descriptive pentru blocuri si semnale • Pastrati domeniile de tact separate • Face interactiunea dintre tacturi foarte clara • Faceti dimensiunea fiecarui fisier sursa astfel incat sa permita utilizarea optima • Mai usor de citit, de sintetizat si de debug

  7. Sfaturi pentru refolosirea proiectului • Realizati o serie de blocuri ce sunt accesibile oricarui proiectant • Bancuri de registri • FIFO • Alte functii standard • Functii dedicate folosite in mod frecvent in aplicatii • Denumiti blocurile luand in calcul functia realizata si familia Xilinx ce va fi utilizata • Usor de localizat blocul necesar • Exemplu: REG_4X8_S3 (banc de 4 registri de cate 8 biti ce va fi folosit pe o placa Spartan-3) • Pastrati intr-un director separat de cel din Xilinx • Previne stergerea accidentala in cazul update-urilor

  8. Cuprins • Ierarhizarea proiectelor • Circuite sincrone in FPGA Xilinx • Concluzii

  9. De ce proiectare sincrona? • Circuitele sincrone sunt mai sigure • Evenimentele sunt generate pe fronturi de tact care apar la intervale bine definite • Iesirile unui circuit logic au un intreg ciclu de tact in care sa se propage spre urmatorul circuit • Diferentele dintre timpii de propagare a datelor sunt tolerate in limita unei perioade de tact • Circuitele asincrone sunt mai putin sigure • Uneori, intarzierile trebuie sa aiba o valoare anume (de exemplu 12 ns) • Poate exista o relatie impusa intre diverse intarzieri

  10. Proiectare asincronaStudiu de caz • Un proiect realizat cu 2 ani in urma nu mai functioneaza. Ce a modificat Xilinx in FPGA? • Imbunatatirile in procesul SRAM si contractarea geometriei cresc viteza • Variatii normale intre placutele pe care se afla cipurile • Un proiect trece de simulare, dar nu functioneaza in circuit. Este atunci simularea corecta? Da • Simularile ruleaza luand in considerare intarzierile in cel mai rau caz • Conditiile în practică (pe placa) sunt de obicei mai bune

  11. D D Q_A 12.5 A B C Q_B D 3 cycles Clock Q_A Q_B Q_C 2 cycles A & C Clock B Clock 3.0 3.1 3.0 3.3 3.1 Q_A Clock skewed version Expected operation Q_B Q_C Intarzieri de tact • Acest registru de deplasare nu va functiona din cauza intarzierilor de tact! INPUT Q_C CLOCK

  12. Folosirea buffer-elor globale pentru a reduce intarzierile de tact • Buffer-ele globale sunt conectate la rute dedicate • Aceasta retea de rutare este astfel realizata incat sa minimizeze intarzierile • Toate placile Xilinx FPGA au buffer global • Placile Virtex™-II si Virtex-II Pro au 16 BUFGMUX • Placile Spartan™-3 au 8 BUFGMUX • Placile Virtex-4 au 32 BUFGCTRL • Se poate folosi un simbol BUFG, iar tipul de buffer va fi ales de catre software • Toate sintetizatoarele importante pot infera buffer-e globale pe semnale de tact venite din afara cipului

  13. Folosirea liniilor globale • Majoritatea sintetizatoarelor pot infera in mod automat un BUFG pe tacturi • Semnalele de tact trebuie sa vina de la un port top-level • Semnalele de tact generate intern nu sunt puse intr-un BUFG in mod automat • Exemplu de instantiere a unui BUFGMUX (Verilog) • BUFGMUX U_BUFGMUX • (.I0( ), // insert clock input used when select(S) is Low • .I1( ), // insert clock input used when select(S) is High • .S( ), // insert Mux-Select input • .O( ) // insert clock output);

  14. Divizor de tact obisnuit • Introduce intarziere de tact intre CLK1 si CLK2 • Foloseste un BUFG in plus pentru a reduce intarzierea pentru CLK2 D Q CLK2 D Q BUFG CLK1 BUFG

  15. Divizor de tact recomandat • Nu exista intarzieri de tact intre bistabili D Q CLK2_CE CE D Q CLK1 BUFG

  16. Evitarea glitch-urilor semnalelor de tact • Deoarece bistabilii din placile FPGA de azi sunt foarte rapizi, acestia pot raspunde unor impulsuri de tact foarte inguste • Niciodata nu luati intrari pentru semnalele de tact dintr-un circuit logic • Cunoscut si sub denumirea de “gating the clock” MSB 0111 1000 tranzitia poate deveni 0111 1111 1000 datorita unui MSB mai rapid MSB Ruta mai scurta Bistabil LSB Glitch poate aparea aici Numarator binar

  17. Evitarea glitch-urilor pe semnalul de tact • Acest circuit realizeaza aceeasi functie, dar fara a introduce glitch-uri pe semnalul de clock D INTRARE Q3 D Q2 Q CE Q1 Q0 Bistabil TACT Numarator

  18. Codarea Clock Enable-urilor Pot infera logica in plus daca nu este respectata ordinea de precedenta corecta! • Daca ENABLE nu este un port top-level, scrieti codul pentru ENABLE in alt proces (secvență always) • Face codul mai clar • Ajuta sintetizatorul sa creeze un netlist mai bun • Ordinea de precedenta a semnalelor de control: Reset, Set, Enable • Aceasta ordine trebuie respectata in cod VHDL FF_AR_CE: process(CLK) begin if (CLK’event and CLK = ‘1’) then if (ENABLE = ‘1’) then Q <= D_IN; end if; end if; end process Verilog always @(posedge CLOCK) if (ENABLE) Q = D_IN;

  19. Evitarea glitch-urilor Set/Reset • Glitch-urile pe intrarile de set asincron si reset asincron pot duce la un regim incorect de functionare a circuitului INTRARE Q D RESET asincron Numarator binar CLR Bistabil Q[x] RESET Q[0] TACT Un glitch poate aparea la tranzitia 01  10

  20. Evitarea glitch-urilor Set/Reset • Cand este posibil, e de preferat ca SET sa fie sincron, iar RESET sa fie asincron INTRARE Q D RESET sincron Numarator R BIistabil RESET Q[x] Q[0] TACT Impiedica tranzitia 01  10

  21. Codarea bistabililor sincroni • Reset asincron always @(posedge CLOCK or posedge RESET) if (RESET) Q = 0; else Q = D_IN; • Reset sincron always @(posedge CLOCK) if (RESET) Q = 0; else Q = D_IN;

  22. Cuprins • Ierarhizarea proiectelor • Circuite sincrone in FPGA Xilinx • Concluzii

  23. Intrebari recapitulative • Numiti doua avantaje ale ierarhizarii proiectelor. • De ce este indicat sa se foloseasca buffer-e globale pentru semnalele de tact? • Ce alternativa exista la “gating of a signal”?

  24. Raspunsuri • Numiti doua avantaje ale ierarhizarii proiectelor. • Claritatea proiectului • Refolosirea proiectului • De ce este indicat sa se foloseasca buffer-e globale pentru semnalele de tact? • Pentru a reduce intarzierile semnalului de tact • Ce alternativa exista la “gating of a signal”? • Folosirea unui clock enable

  25. Concluzii • Utilizarea corecta a ierarhizarii ajuta la cresterea claritatii si capacitatilor de debug • Proiectele sincrone sunt mai sigure decat cele asincrone • Sfaturi pentru proiectare FPGA • Buffer-ele de tact global si DLL elimina intarzierile • A se evita glitch-urile, set-urile si reset-urile asincrone

  26. Informatii aditionale • Application notes on www.xilinx.com  Documentation Application Notes • Software documentation on www.xilinx.com  Documentation  Software Manuals • Development System Reference Guide, Chapter 2: Design Flow, FPGA Design Techniques section • Libraries Guide • Documentation for your synthesis tool ISE -> Online Help

More Related