26
This material exempt per Department of Commerce license exception TSU Tehnici de proiectare a circuitelor sincrone

Tehnici de proiectare a circuitelor sincrone

  • Upload
    xannon

  • View
    52

  • Download
    0

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Tehnici de proiectare a circuitelor sincrone

This material exempt per Department of Commerce license exception TSU

Tehnici de proiectare a circuitelor sincrone

Page 2: Tehnici de proiectare a circuitelor sincrone

Synchronous Design Techniques 2

Obiective

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

circuitelor sincrone

Page 3: Tehnici de proiectare a circuitelor sincrone

Synchronous Design Techniques 3

Cuprins

• Ierarhizarea proiectelor

• Circuite sincrone in FPGA Xilinx

• Concluzii

Page 4: Tehnici de proiectare a circuitelor sincrone

Synchronous Design Techniques 4

State MachinesOne-hotBinary

Enumerated

CountersAdders/Subtractors

Bit ShiftersAccumulators

Building BlocksStandard WidthsPipeline RAMs

DatapathsPipelining

Muxing/De-MuxingArithmetic

CoreGenParametizable functions

FIFOsFIR Filters

RAMTechnology-Specific Functions

Specific Functions

RAMOther IP/Cores

Top Level of DesignInfer or instantiate I/O here

Ierarhizarea proiectelorUtilizarea ierarhizarii sporeste claritatea codului, stabilitatea si posibilitatile de refolosire

si depanare ale proiectului

O metoda de a imparti proiectul in blocuriierarhizate este pringruparea logicii similare

Page 5: Tehnici de proiectare a circuitelor sincrone

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

Page 6: Tehnici de proiectare a circuitelor sincrone

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

Page 7: Tehnici de proiectare a circuitelor sincrone

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

Page 8: Tehnici de proiectare a circuitelor sincrone

Synchronous Design Techniques 8

Cuprins

• Ierarhizarea proiectelor• Circuite sincrone in

FPGA Xilinx

• Concluzii

Page 9: Tehnici de proiectare a circuitelor sincrone

Synchronous Design Techniques 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

Page 10: Tehnici de proiectare a circuitelor sincrone

Synchronous Design Techniques 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

Page 11: Tehnici de proiectare a circuitelor sincrone

Synchronous Design Techniques 11

Intarzieri de tact

• Acest registru de deplasare nu va functiona din cauza intarzierilor de tact!

Expected operation

Clock

Q_A

Q_B

Q_C

3 cycles

Clock skewed version

A & C Clock

Q_A

Q_B

Q_C

B Clock

2 cycles

D Q_B Q_CINPUT

CLOCK

DD Q_A3.1

3.0

3.1 3.3

12.5 3.0

A B C

Page 12: Tehnici de proiectare a circuitelor sincrone

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

Page 13: Tehnici de proiectare a circuitelor sincrone

Synchronous Design Techniques 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);

Page 14: Tehnici de proiectare a circuitelor sincrone

Synchronous Design Techniques 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 QCLK2

CLK1BUFG

D Q

BUFG

Page 15: Tehnici de proiectare a circuitelor sincrone

Synchronous Design Techniques 15

Divizor de tact recomandat

• Nu exista intarzieri de tact intre bistabili

D QCLK2_CE

CLK1

D

CE

Q

BUFG

Page 16: Tehnici de proiectare a circuitelor sincrone

Synchronous Design Techniques 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”

Ruta mai scurta

Glitch poate aparea aici

MSB

Numarator binar

0111 1000 tranzitia poate deveni

0111 1111 1000 datorita unui MSB mai rapid

MSB

BistabilLSB

Page 17: Tehnici de proiectare a circuitelor sincrone

Synchronous Design Techniques 17

Evitarea glitch-urilor pe semnalul de tact

• Acest circuit realizeaza aceeasi functie, dar fara a introduce glitch-uri pe semnalul de clock

D Q3INTRARE

TACT

Numarator

Q2

Q1

Q0

CE Q

D

Bistabil

Page 18: Tehnici de proiectare a circuitelor sincrone

Synchronous Design Techniques 18

Codarea Clock Enable-urilor

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

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;

Verilog

always @(posedge CLOCK) if (ENABLE) Q = D_IN;

• 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

Pot infera logica in plus daca nu este respectata ordinea de precedenta corecta!

Page 19: Tehnici de proiectare a circuitelor sincrone

Synchronous Design Techniques 19

TACT

Q[x]

Numarator binar

Q[0]

INTRARE

RESET

Q

Bistabil

D

CLR

RESETasincron

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

Un glitch poate aparea la tranzitia 01 10

Page 20: Tehnici de proiectare a circuitelor sincrone

Synchronous Design Techniques 20

TACT

Q[x]

Numarator

Q[0]

RESET

INTRARE Q

BIistabil

D

R

RESETsincron

Evitarea glitch-urilor Set/Reset

• Cand este posibil, e de preferat ca SET sa fie sincron, iar RESET sa fie asincron

Impiedica tranzitia 01 10

Page 21: Tehnici de proiectare a circuitelor sincrone

Synchronous Design Techniques 21

Codarea bistabililor sincroni

• Reset asincron

always @(posedge CLOCK or posedge RESET)if (RESET)

Q = 0;else

Q = D_IN;

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

• Reset sincron

always @(posedge CLOCK)if (RESET)

Q = 0;else

Q = D_IN;

Page 22: Tehnici de proiectare a circuitelor sincrone

Synchronous Design Techniques 22

Cuprins

• Ierarhizarea proiectelor• Circuite sincrone in

FPGA Xilinx• Concluzii

Page 23: Tehnici de proiectare a circuitelor sincrone

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”?

Page 24: Tehnici de proiectare a circuitelor sincrone

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

Page 25: Tehnici de proiectare a circuitelor sincrone

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

Page 26: Tehnici de proiectare a circuitelor sincrone

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