sinal atravessar vários relógio domínio problema??

X

xiongdh

Guest
o RCL e clk4x é duas relógio domínio.apenas a freqüência de clk4x é de cerca de 4 vezes da freqüência da RCL.
acionam sinal se0 por eop_detec gosta siga pelo aperto de mão.
Existe algum problema com esse aperto de mão.
sempre @ (posedge clk4x ou posedge rst)

if (rst)
eop_detec <= 1'b0;

diferente

começo

if (condição)

eop_detec <= 1'b1;

else if (se0)
eop_detec <= 1'b0;

fimsempre @ (posedge RCL)

if (eop_detec) se0 <= 1'b1;

else se0 <= 1'b0;

 
sobre como mudar a seguir?

sempre @ (posedge clk4x ou posedge rst)
if (rst)
eop_detec <= 1'b0;
diferente
começo
if (condição)
eop_detec <= 1'b1;
else if (se0_d1)
eop_detec <= 1'b0;
fimsempre @ (posedge RCL)
if (eop_detec) se0 <= 1'b1;
else se0 <= 1'b0;

sempre @ (posedge RCL)
se0_d1 <= se0;

 
a xiongdh, porque a utilização RCL domínio se0_d1?

Acho que deve usar clk4 domínio se0_d2.
sempre @ (posedge clk4)
se0_d1 <= se0;

sempre @ (posedge clk4)
se0_d2 <= se0_d1;

 
Acho que mudar para o seguimento é melhor:

sempre @ (posedge clk4x ou posedge rst)
if (rst)
eop_detec <= 1'b0;
diferente
começo
if (condição)
eop_detec <= 1'b1;

else
if (se0_d2 & & ~ se0_d3)

eop_detec <= 1'b0;
fim

sempre @ (posedge RCL)

se0 <= eop_detec_d1;

sempre @ (posedge clk4x)se0_d1 <= se0;sempre @ (posedge clk4x)se0_d2 <= se0_d1;sempre @ (posedge clk4x)se0_d3 <= se0_d2;
sempre @ (posedge RCL)eop_detec_d1 <= eop_detec;

 
por isso preciso triplicar DFF?Eu não acho se0_de3 necessário.

 
o se0 deve ser visto em tempo.por isso não pode não ser adiada.

portanto não pode usar o seguinte:
sempre @ (posedge RCL)
começo
eop_detect_d1 <= eop_detec
se0 <= eop_detect_d1;
fim

Utilize RCL clk4x não é motivo para a RCL é lento, e eu quero fazer eop_detec passado mais tempo do que um período RCL.

 

Welcome to EDABoard.com

Sponsor

Back
Top