En ce qui concerne les FSM dans le VHDL

E

eda_guy

Guest
Salut,

J'ai un FSM dans mon design avec 2 processus, soit un pour séquentielle et combinatoire suivante dans cette façon de initilize tous les signaux locaux dans l'état reset??Je suis citant la façon dont je le fais.Corrigez-moi si c'est mal / me suggère, si une meilleure façon de le faire.

--------------------------------------------------
beh architeture du FSM est
<sig1> signal: <sig_type>;
<sig2> signal: <sig_type>;
<sig3> signal: <sig_type>;
.
.
.
<sig10> signal: <sig_type>;proc1: Le processus (CLK, RST)
commencer
Si la TVD = '1 'alors
<= P_state state0;
clk'event elsif et CLK = '1 'alors
<= P_state n_state;
fin si;
processus de bout;

proc2: Le processus (p_state, la TVD, port <input signals>)
Variable signals1> local>;
Variable signals2> local>;
.
.
.
.
Variable signals10> local>;
commencer
Si la TVD = '1 'alors
initilize tous les signaux locaux 1 à 10, val par défaut;
initilize toutes les variables 1 à 10, val par défaut;
<= N_state state0;
d'autre
p_state cas est
quand state0 =>
--- Certaines affectations;
--- Certains assignmets au signal de sortie;
quand state1 =>
--- Certaines affectations;
.
.
.
quand les autres =>
<= N_state state0;
endcase;
fin si;
processus de bout;
--------------------------------------------------
thankx et rgds,
eda_guy

 
Dans le premier procédé de l'initialisation de la p_state à state0.Dans le second processus, vous n'avez pas besoin de la TVD signal.
Les signaux et les variables seront initialisées dans le state0 qui est l'état que le FSM va en cas de réinitialisation a lieu.Ainsi, le code pour le deuxième processus est le suivant:

proc2: Le processus (p_state, port <input signals>)
Variable signals1> local>;
Variable signals2> local>;
.
.
.
.
Variable signals10> local>;
commencer

p_state cas est

quand state0 =>

initilize tous les signaux locaux 1 à 10, val par défaut;
initilize toutes les variables 1 à 10, val par défaut;

quand state1 =>
--- Certaines affectations;
.
.
.
quand les autres =>
<= N_state state0;

endcase;
fin si;
processus de bout;

J'espère que cela a aidé.

 
eda_guy a écrit:

Salut,J'ai un FSM dans mon design avec 2 processus, soit un pour séquentielle et combinatoire suivante dans cette façon de initilize tous les signaux locaux dans l'état reset??

eda_guy
 
Le second processus peut ne contenir que de réinitialisation, u pouvez ajouter ur logique directement lors de Ur en utilisant le state0 statments cas, et tous les signaux locaux de désir u initilaize, regardez-les dans l'état actuel.

Il existe trois différents styles de codage en statemachines en VHDL.
évidemment celle indiquée ci-dessus est celui effiecient.

en ce qui concerne

 

Welcome to EDABoard.com

Sponsor

Back
Top