# Autres langages > Autres langages > VHDL >  FIFO circulaire en VHDL

## binome-x

Bonjour,
j'aimerais crer une FIFO circulaire pour rutiliser la mmoire libre. Mon code est le suivant :


```

```

mais a foire, les signaux full et err ne sont  1 que pendant un cycle (quand j'essaie juste de la remplir sans la vider) et err arrive un cycle trop tard. Et si je mets les lignes 67  83 hors du process, j'ai d'autres problmes.
Vous savez ce que je dois faire ?
Merci.

--------------------------------------

J'ai corrig plein de trucs. Je reviens ii si besoin...

----------


## sgievounet

Salut,

J'ai dj cod une fifo, et aussi, j'etais arriv au mme constat du coup de retard sur le full et le empty, il me semble...

Tu pourrais peut tre passer par une IP, ou une primitive, Xilinx ou Altera en font

----------


## simbilou

Tu nas pas lair davoir bien compris que toutes les instructions dun process synchrone sont excut _en mme temps_ (cest  dire pendant la mme priode dhorloge). Donc le passage du flag `full0`  1 nempchera pas lincrmentation `writeptr` dans le mme cycle dhorloge, seulement au suivant (et alors la condition de remplissage ne sera plus vrifi et `full0` repassera  0).

Pour sen sortir, if suffit de prendre un coup dhorloge davance dans tes conditions. Une autre solution est dutiliser des variables, mais on prfre gnralement viter car cela revient  introduire de la combinatoire dans le process et donc baisser les performances.






> Tu pourrais peut tre passer par une IP, ou une primitive, Xilinx ou Altera en font


Cest du bidouillage a, il y a ici une incomprhension du design synchrone et il est important dy remdier.

----------

