Vhdl introduire un retard sur une clock

Fermé
The pooh - 22 déc. 2008 à 19:49
 The pooh - 22 déc. 2008 à 20:12
Bonjour,
Je poste ce message car j'ai un problème dans la réalisation d'un projet dans le cadre d'un cours en électronique numérique. Nous devons réaliser un circuit dont le composant principal est une cpld codé donc en vhdl.

Voici la partie du code VHDL qui me pose problème :
Code :

architecture arch_REGULTIR of REGULTIR is

type StateMachine is (a,b,c,d);
signal state : StateMachine := a;
signal Occup : std_logic := '0';

begin

process( Clk )
begin
if( rising_edge(Clk) and (TirIn='1' or not(state=a) ) ) then
case state is
when a => TirOut <= '1'; Latch <= '0'; state <= b;
when b => TirOut <= '0'; Latch <= '0'; state <= c;
when c => TirOut <= '0'; Latch <= '0'; state <= d;
when d => TirOut <= '0'; Latch <= '1'; state <= a;
end case;
end if;
end process;
end arch_REGULTIR;

Le problème ici est qu'il y a, à chaque fois, un retard d'un cycle d'horloge pour entrer dans le process... En fait, je connais la source du problème, c'est TirIn qui est lui aussi déclenché par un risin_edge de CLK, dans une autres "boite noir" (je travail de façon structurelle). Ce qui fait que lorsque le rising edge de clk à lieu, le TirIn est seulement en train de changer d'état et nous ne rentrons dans le process ci-dessus qu'au clock suivant.

J'ai tenter plusieurs solution dont celle qui vient tout de suite à l'esprit : mettre le tirIn dans la liste de sensibilité et agir lors d'un rising edge de celui-ci mais le problème deviens alors autre ; lorsque l'on arrive au dernier état et que le clock à un front montant, le tirIn peut alors avoir quasi instantanément lui aussi un front montant et donc deux état sont passé en même temps, ce qui fausse la fonction du composant ici qui est en fait un régulateur de tir...

Une autre solution me vient à l'idée, introduire un léger retard sur la clock pour que le tirIn ai changé d'état lorsque on entre dans le process ci dessus mais je ne sait malheureusement pas comment cela se fait et si seulement c'est possible...

Si vous avez une autre idée de la résolution de ce problème ou bien de comment je pourrait introduire ce retard, je vous serait très reconnaissant de me faire partager votre savoir

Merci pour vos sollicitation.
A voir également:

1 réponse

up svp svp svp :s:s
0