tu as raison, en fait quartus effectue une implantation sur une cible, il modélise les temps de traversé de toute les porte et détermine le temps critique. Je pense que tu devrait cadencé ton contrôleur par une horloge (10 ns), un reset et utilisé une machine d'état pour faire ce que tu veux faire. description rapide de la machine
Excuse moi j'ai pas trop le temps alors j'ecris vite, il ya beaucoup d'ereur dans le code qui suis mais la philosophie est la.
Bon courage
if reset etatnext <= init:
else
switch etatcurrent
case init:
LED <= '0';
RD <= '0';
IF (RXF ='0')THEN
etatnext <= etat1;
else
etatnext <= Init;
case attente30:
RD <= '0';
if(compteur >= 3) then -- incrémenté le compteur si etat = attente30 ou attente 20 ou attente 50 sinon reset le compteur
etatnext <= etat1;
else
etatnext <= attente30;
end if:
case etat1:
LED <= data
etatnext <= attente20;
case attente20:
if(compteur >= 2then -- incrémenté le compteur si etat = attente30 ou attente 20 ou attente 50 sinon reset le compteur
etatnext <= etat2
else
etatnext <= attente2;
end if:
case etat2:
RD <= '0';
...
when others:
end case;