recapitulare 04 pcid

download recapitulare 04 pcid

of 61

  • date post

    23-Nov-2015
  • Category

    Documents

  • view

    28
  • download

    0

Embed Size (px)

Transcript of recapitulare 04 pcid

  • Modelarea HDL a numrtoarelor si a automatelor cu stri finite

  • I. Modelarea numrtoarelor

  • Aplicaii specifice pentru numrtoarele binareFurnizeaz suport logic pentru funciile de:

    Divizor de frecvenContorizarea strilor automatelor cu stari finite: util n implementarea protocoalelor de comunicaie seriala SPI, I2C, etc.Generarea semnalelor de control pentru transmiterea multiplexata in timp a informatiei, de pe mai multe canale pe unul singurGenerarea adreselor pentru segmente de memorie

  • Funcia de numrare a strilor automatelor Permite controlul buclelor ntre strile automatului

    Utilizat n implementarea protocoalelor de comunicaii serialeiteratie < NSeciune din diagrama de tranziii a automatului cu stri finiteactivare ceas

  • Funcia de generare a semnalelor de control: exemplu: multiplexarea n timp a fluxului de datedatele de pe canalele de intrare sunt transmise secvenial (fiecare pe durata unui TCLK) pe canalul de transmisie

  • Funcia de generare a adreselor segmentelor de memorie pentru accesarea unui segment de memorieadresele locaiilor de memorie din segmentul de memorie asupra cruia se opereaz sunt generate secvenial, fiecare pe durata TCLK

  • Numrtoare binare fr semnale de controlqclkrstcntComportament: La fiecare front activ al semnalului de ceas, numrtorul trece ntr-o nou stare; Starea numrtorului este codificat binar i furnizat la ieirea sa.module cnt (rst, clk, q); // numrtor binar pe N biti, parameter N = 3; // N = dimensiunea cuvntului care codific starea numrtorului // numarul total de stari ale numaratorului = 2**N // dimensiunea se poate modifica la instantierea modulului input rst; // semnal de initializare asincron, activ in 1; input clk; // intrare ceas output reg [N-1:0] q; // iesire date (pe N biti) always @(posedge rst or posedge clk) if (rst) q
  • Sinteza logic i implementarea FPGA a numrtorului binarCircuitul obinut dup sinteza logic: numrtorul binar este interpretat de ctre instrumentul software de sintez ca primitiv logic i din acest motiv nu genereaz schema electronic intern a acestuia.Circuitul dup implementarea FPGA:

  • Semnalizarea unei anumite stri la numrtoareComportament: semnalul rco semnalizeaz trecerea numrtorului printr-o anumit stare a sa.module cntRco (rst, clk, q, rco); // numrtor binar pe N biti, cu semnalizare a strii S parameter N = 3; // N = dimensiunea cuvntului care codific starea numrtorului // numarul total de stari ale numaratorului = 2**N parameter S = 4; // S = starea care este semnalizata la iesirea co // parametrii se pot modifica la instantierea modulului input rst; // semnal de initializare asincron, activ in 1; input clk; // intrare ceas output reg [N-1:0] q; // iesire date (pe N biti) output rco; // semnalizeaza prin 1 starea S; always @(posedge rst or posedge clk) if (rst) q
  • Controlul funcionrii numrtoruluiControlul funciei de numrare

    Controlul ciclului de numrare (cazul numrtoarelor UP):numrtoare modulo N: controleaz valoarea maximnumrtoare cu ncrcare: controleaz valoarea minim

  • Numrtoarelor binare cu control pentru operaiunea de numrare (cu semnal de activare pentru ceas)qclkrstcntCeObservaie: controlul funciei de numrare se realizeaz prin introducerea unui semnal de control pentru ceas: Clock Enable; acest semnal permite dezactivarea ceasului i n consecin inhibarea funciei de numrare.Aplicaie specific: implementarea sistemelor care lucreaz la frecvene generate prin divizarea frecvenei semnalului de ceas master (soluii insensibile la tranziii false).Comportament: dac este activ semnalul CE (Clock Enable) de activare al ceasului, la fiecare front activ al semnalului de ceas, numrtorul numr = trece ntr-o nou stare; starea numrtorului este codificat binar i furnizat la ieirea sa.Forme de undDezactivarea ceasului determin inhibarea procesului de numrareceControleaz activarea semnalului de ceasN

  • Modelarea Verilog a numrtoarelor binare cu control semnalul de ceasmodule cntCe (rst, ce, clk, q); // numarator binar pe N biti, cu semnal activare pt. ceas parameter N = 3; // N = dimensiunea cuvntului care codifica starea numaratorului // numarul total de stari ale numaratorului = 2**N // dimensiunea se poate modifica la instantierea modulului input rst; // semnal de initializare asincron, activ in 1; input clk; // intrare ceas input ce; // intrare de activare a ceasului; semnal sincron, activ in 1 output reg [N-1:0] q; // iesire date (pe N biti) always @(posedge rst or posedge clk) if (rst) q
  • Sinteza logic i implementarea FPGA a numrtorului binarCircuitul obinut dup sinteza logic: numrtorul binar este interpretat de ctre instrumentul software de sintez ca primitiv logic i din acest motiv nu genereaz schema electronic intern a acestuia.Semnalul Clock Enable

  • Controlul ciclului de numrare - numrtoare binare modulo XqclkrstcntXAplicaie specific: implementarea divizoarelor de frecven programabile.Comportament: la fiecare front activ al semnalului de ceas, numrtorul numr = trece ntr-o nou stare; starea numrtorului este codificat binar i furnizat la ieirea sa. numrtorul numr ntodeauna X stri.Forme de undCiclul de numrareN

  • Modelarea Verilog a numrtoarelor modulo Xmodule cntX (rst, clk, q); // numarator modulo X+1: numara de la 0 la X parameter X = 5; // X = starea maxima a numaratorului; parameter N = 3; // N = dimensiunea cuvntului care codifica starea numaratorului // numarul total de stari ale numaratorului = 2**N 2**N >= X; // parametrii se pot modifica la instantierea modulului input rst; // semnal de initializare asincron, activ in 1; input clk; // intrare ceas output [N-1:0] q; // iesire date (pe N biti) reg [N-1:0] q; always @(posedge rst or posedge clk) if (rst) q
  • Sinteza logic i implementarea FPGA a numrtorului modulo XCircuitul obinut dup sinteza logicControlul ciclului de numrare este realizat prin intermediul unei reacii implementate cu pori logice

  • Implementarea unui divizor de frecven pe baza unui numrtor modulo X (nu are factor de umplere 50%)module divX (rst, clkI, clkO); // divizor de frecventa;factor de divizare X+1 // realizat pe baza unui numarator modulo X+1

    parameter X = 4; // X = starea maxima a numaratorului; parameter N = 3; // N = dimensiunea numaratorului; // parametrii se pot modifica la instantierea modulului input rst; // semnal de initializare asincron, activ in 1; input clkI; // intrare ceas output clkO; // iesire ceas divizat reg [N-1:0] q; // semnal intern = starea numaratorului always @(posedge rst or posedge clkI) if (rst) q

  • Numrtoarelor binare cu ncrcare a datelorqclkrstcntLObservaie: prin operaiunea de ncrcare se permite setarea strii curente a numrtorului de ctre utilizator, sub controlul acestuia.Comportament: la activarea semnalului de ncrcare ld (load), data de intrare este ncrcat n numrtor, sincron cu frontul activ al semnalului de ceas; operaiunea de ncrcare a datei este mai prioritar dect cea de numrare; la fiecare front activ al semnalului de ceas, numrtorul numr = trece ntr-o nou stare; starea numrtorului este codificat binar i furnizat la ieirea sa.Forme de undNControleaz operaiunea de ncrcare a datei de intrare n numrtorNlddla activare semnalului ld SI aparitia frontului activ al semnalului de ceas, valoarea 6 (aplicat pe intrarea d) se ncarc n numrtor; noua stare a numrtorului devine 6A 2a comand de ncrcare este ignorat (numrtorul i continu numrarea) fiind insuficient ca durat de timp pentru prinderea frontului activ al ceasului

  • Modelarea Verilog a numrtoarelor cu ncrcare a datelormodule cntL (rst, clk, ld, d, q); // numarator binar pe N biti, parameter N = 3; // N = dimensiunea cuvntului care codifica starea numaratorului // numarul total de stari ale numaratorului = 2**N // dimensiunea se poate modifica la instantierea modulului input rst; // semnal de initializare asincron, activ in 1; input clk; // intrare ceas input ld; // intrare incarcare date de intrare; sincrona activa pe 1 input [N-1:0] d; // intrare de date (pe N-1 biti) output [N-1:0] reg q; // iesire date (pe N biti) always @(posedge rst or posedge clk) if (rst) q
  • Sinteza logic i implementarea FPGA a numrtorului cu ncrcare a datelorCircuitul obinut dup sinteza logicCircuitul obinut dup implementarea FPGA:Semnalul de ncrcare a datelorDatele de intrare

  • Automate cu stri finite Comportament: sunt blocuri secveniale care trec printr-o succesiune de stri distincte, stabilite de ctre proiectant. Starea