2015-11-06 3 views
0

je regardais ce poste Flip-Flop triggered on the edge of two signalsVHDL Signal change sur le bord de deux signaux séparés

J'ai un problème similaire, mon circuit aura un acte de signal en « Démarrer » et un autre comme « Fin » pour contrôler un émetteur. La logique est quelque chose comme ceci:

if (start) then 
    running <= true 
else if (end) then 
    running <= false 

La solution fournie par "Marty" répond à ce problème. Dans l'une de ses réponses, « giroy » dit: « Je sais que ce n'est pas la meilleure façon de le faire, mais qui est en dehors de mon contrôle et je suis coincé travailler avec elle »

Je suis nouveau à VHDL et se demander ce qui est une meilleure façon de mettre en oeuvre le problème ci-dessus

+0

double possible de [Flip-Flop déclenché sur le bord de deux signaux] (http://stackoverflow.com/questions/1301673/flip-flop-triggered -on-the-edge-of-two-signals) –

+0

Vous devrez peut-être définir 'mieux' et 'meilleur' ​​selon vos attentes. SO a tendance à décourager les questions avec ces mots à l'aspect subjectif. –

Répondre

1

Vous avez simplement besoin d'un (cadencé) RS-FF:

  • set = start
  • reset = fin

Exemple de code pour une RS-FF:

process(Clock) 
begin 
    if rising_edge(Clock) then 
    if (set = '1') then 
     reg <= '1'; 
    elsif (reset = '1') then 
     reg <= '0'; 
    end if; 
    end if; 
end process;