Tehnici de proiectare a circuitelor sincrone - PowerPoint PPT Presentation

1 / 26
About This Presentation
Title:

Tehnici de proiectare a circuitelor sincrone

Description:

Title: Xilinx Guidelines for Presentation Template Subject: Overhead template 06/05/2006 Author: Jeff Weintraub Last modified by: albertf Created Date – PowerPoint PPT presentation

Number of Views:38
Avg rating:3.0/5.0
Slides: 27
Provided by: JeffWei7
Category:

less

Transcript and Presenter's Notes

Title: Tehnici de proiectare a circuitelor sincrone


1
Tehnici de proiectare a circuitelor sincrone
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 practica (pe placa) sunt de obicei
    mai bune

11
Intarzieri de tact
INPUT
Q_C
CLOCK
  • Acest registru de deplasare nu va functiona din
    cauza intarzierilor de tact!

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
Ruta mai scurta
MSB
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!
VHDL FF_AR_CE process(CLK) begin if (CLKevent
and CLK 1) then if (ENABLE 1) then Q
lt D_IN end if end if end process
Verilog always _at_(posedge CLOCK) if (ENABLE) Q
D_IN
  • Daca ENABLE nu este un port top-level, scrieti
    codul pentru ENABLE in alt proces (secven?a
    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

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
Qx
RESET
Q0
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
Qx
Q0
TACT
Impiedica tranzitia 01 ? 10
21
Codarea bistabililor sincroni
  • Reset asincron
  • always _at_(posedge CLOCK or posedge RESET)
  • if (RESET)
  • Q 0
  • else
  • Q D_IN
  • Reset sincron
  • always _at_(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 -gt
    Online Help
Write a Comment
User Comments (0)
About PowerShow.com