UNE période d'horloge en fonction de l'impulsion sur le signal de déclenchement

je suis prise d'une interface midi. UART fonctionne très bien, il envoie les 8 bits du message avec un drapeau à une unité de contrôle. Lorsque le drapeau passe au niveau haut, l'unité de stocker le message dans un registre et de faire un clr_flag élevé afin de définir l'indicateur de l'UART encore bas. Le problème est que je ne peux pas faire ce clr_flag une période longue. J'ai besoin d'elle pour être UNE période de temps, parce que ce signal de contrôle également une machine d'état qui indique quel type de message est stocké (note_on -> key_note -> vitesse, par exemple).

Ma question est de savoir comment un signal (drapeau dans ce cas) déclenche une impulsion juste pour un clk période? ce que j'ai fait maintenant presque une impulsion au cours d'une période d'horloge, mais je l'ai fait deux fois, parce que le drapeau n'est pas devenu 0 encore. j'ai essayé de nombreuses façons, et maintenant j'ai ceci:

get_data:process(clk, flag)
  begin
  if reset = '1' then
    midi <= (others => '0');
    clr_flag <= '0';
    control_flag <= '0';

  elsif ((clk'event and clk='1') and flag = '1') then
      midi <= data_in;
      clr_flag <= '1'; 
      control_flag <= '1';     
  elsif((clk'event and clk='0') and control_flag = '1') then
    control_flag <= '0';
  elsif((clk'event and clk='1') and control_flag = '0') then
    clr_flag <= '0';
  end if;
end process;

le problème avec cette double impulsion ou plus d'une période d'impulsion(avant cela, j'ai eu quelque chose qui a fait clr_flag une période de deux clk impulsion), c'est que le système va passer si deux membres au lieu d'un drapeau.

donc en bref: quand un signal passe au niveau haut (indépendantes du moment où il passe au niveau bas), un pouls pendant une période d'horloge doit être généré.

merci pour votre aide.

  • J'ai seulement commencé à étudier le vhdl, et il y a quelque chose de magique pour moi, c'est pourquoi je réponds dans les commentaires. Essayez de supprimer clk événement de elsif. Parfois, il m'a aidé.
InformationsquelleAutor David Kester | 2013-11-24