FIFO

L

leongch

Guest
Hi guys,

A) In normali design FIFO syn, i dati di cui non è registrato.
assegnare data_out = MEM [RD_PTR];

B) Se si desidera registrare il data_out come
sempre @ (clk posedge)
data_out <= MEM [RD_PTR];

Rispetto al metodo, il B (data_out registrati) leggerà il data_out 1 ciclo clk più lento di A. metodo

Nel mio disegno ho per progettare il FIFO con il data_out registrati, ma senza il ritardo del ciclo 1clk come indicato al metodo B.
Ho sentito che ci sono alcune tecniche di progettazione "pre-pop, qualcuno ha qualche idea di questo?Si prega di consigli!

 
Non sono un esperto, ma questa è la mia idea.Professionisti non esitate a correggermi.

Nel codice.Il READ_PTR in Ex.A è molto probabilmente di essere incrementato in modo sincrono con l'orologio e! WR / segnali RD.Quindi c'è ancora ritardo di 1 ciclo clk in tutto il processo di lettura.

ora prendere in considerazione questo per Ex.B

Codice:

sempre @ (clk posedge)

if (! wr)

iniziare

data_out <= MEM [READ_PTR];

READ_PTR <= READ_PTR 1;

fine
 
U solo bisogno di una pre-lettura logica, e Registrati per contenere i dati letti u ultima volta

pre-lettura logica: quando rd è affermare, rAddr = nxt_rtpr / / lettura dei dati successivo

non c'è problema, cioè quando FIFO è vuoto, e WR accadere, quindi la profondità FIFO = 1
ma non ci sono leggi accada, è necessario quindi u per leggere i dati della prima in REG che si potrà utilizzare il valore in REG quando viene letto accadere.Dopo di che, ogni operazione di lettura leggere i dati successivo nella FIFO e riporla in REG

 

Welcome to EDABoard.com

Sponsor

Back
Top