Documente Academic
Documente Profesional
Documente Cultură
- spike-ul semnalului reg_in[0] din al 5 lea ciclu de ceas se datoreaza comportarii iesirii modului init
( semnalul inc_out[0] ) care la 3 unitati de timp de la modificarea semnalului count va avea valoarea lui
out[0] egala cu 1, valoare pe care o ia si semnalul reg_in[0] cu o intarziere de o unitate de timp, din cauza
modului mux2_8 ( deci la 5 unitati de timp de la frontal pozitiv al clock-ului );
- la 5 unitati de timp semnalul inc_out[0] este actualizat cu valoarea out[0] = 0, astfel reg_in[0] (cu intarziere
de 1 unitate de timp ) devine si el 0;
- spike-ul nu afecteaza comportarea circuitului deoarece el exista inainte de un nou fron pozitiv al ceasului,
moment in care se reactualizeaza valoarea semnalui out[0] de iesire.
Problema 2: Semnalul s este un impuls sincronizat cu ceasul. El este activ pe 1 timp de n perioade ale ceasului. Sa
se conceapa circuitele care:
1. genereaza, pe iesirea out, un impuls, cu durata de un ciclu al ceasului, imediat ce semnalul s a trecut din 1
in 0
2. genereaza, pe iesirea out, un impuls, cu durata de un ciclu al ceasului, imediat ce semnalul s a trecut din 0
in 1
3. genereaza, pe iesirea out, un impuls, cu durata de un ciclu al ceasului, imediat ce semnalul s a trecut din 1
in 0 si un impuls, cu durata de un ciclu al ceasului, imediat ce semnalul s a trecut din 1 in 0
Circuitul 1: genereaza, pe iesirea out, un impuls, cu durata de un ciclu al ceasului, imediat ce semnalul s a trecut din
1 in 0
- din enuntul problemei am inteles ca impulsul s sincronizat cu ceasul va fi transmis ca semnal de intrate
pentru circuitul ce se doreste a fi implementat. El fiind un impus sincronizat cu ceasul sistemului vom avea
urmatoarele semnale:
clock
time
s
out time
- conditia de realizare a circuitului cerut este sa avem atat frontul active al clock-ului ( posedge clock) cat si
frontul negativ al semnalului s (negedge s), deci voi folosi o bucla always care sa realizeze instructiuni atat
timp cat dubla conditie de mai sus este indeplinita
- modulul verilog pentru acest circuit este cel de mai jos: * Am pornit de la un registru “clasic” *
- pentru a valida daca semnalul care intra in modul ( semnalul s ) exista sau este cel cautat intrarea enable in
modul va trebui sa fie 1.
- Obs: nu va mai exista intrarea “reset”, pentru ca nu am considerat ca mai e nevoie
- instantierea modulului:
register modul_C1(.in(s),
.out(my_out),
.clock(clock),
.enable(enable));
- desen :
2
s
clock in
enable
out
my_out
Figura1
Circuitul 2: genereaza, pe iesirea out, un impuls, cu durata de un ciclu al ceasului, imediat ce semnalul s a trecut din
0 in 1
- sunt aceleasi considerente ca la circuitul1 numai ca se va schimba conditia : ((posedge clock)&&(negedge
in)) in @((posedge clock)&&(posedge in)
- desenul va fi identic cu cel din Figura1
- noul modul va fi:
module Circ_2(in, enable, clock, out);
input enable,
in,
clock;
output out;
always@((posedge clock)&&(posedge in)) if(enable) out=1;
else out=0;
endmodule
- instantierea moduluilui:
register modul_C2(.in(s),
.out(my_out),
.clock(clock),
.enable(enable));
clock
time
s
out time
Circuitul 3: genereaza, pe iesirea out, un impuls, cu durata de un ciclu al ceasului, imediat ce semnalul s a trecut din
1 in 0 si un impuls, cu durata de un ciclu al ceasului, imediat ce semnalul s a trecut din 1 in 0
- se vor genera ambele impulsuri cu durata de un timp de clock, deci in bucla always se vor regasi ambele
conditii de la circuitele 1 si 2 intre ele trebuind sa se verifice relatia de sau logic
- desenul va fi acelasi deoarece nu se modifica decat conditia din bucla always
- modulul verilog va fi:
- instantierea moduluilui:
register modul_C3(.in(s),
.out(my_out),
.clock(clock),
.enable(enable));
clock
time
s
out time