Votre question

Programme VHDL

Tags :
  • Logic
  • Programmation
Dernière réponse : dans Programmation
26 Avril 2006 12:09:38

Bonjour, je voudrais faire un programme pour un robot, je vous écris car j'ai un probleme avec mon compteur : j'ai mis une Horloge CLK et un Qintern(signal 8 bits), le Qinterne doit compter à chaque front d'impulsion de CLK, la sortie mg et md sont au niveau logique "1", lorque que Qinterne arrive à l'état "01100110", les sortie mg et md passe à "0", donc le problème est que le compteur ne compte pas et les sorties ne change pas d'état.
si quelqu'un pourrais m'aider, merci d'avance!
voila le programme :

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use ieee.std_logic_unsigned.all;

entity robot is port
( cd : in std_logic;
cm : in std_logic;
cg : in std_logic;
CLK : in std_logic;
md : out std_logic;
mg : out std_logic);
end robot;
architecture robot_ARCH of robot is
signal QINTRN : std_logic_vector(7 downto 0);
begin
robot_PRO : process(CLK)
begin
if (CLK' event and CLK='1') then
QINTRN<=QINTRN+1;
if (cd='0' and cm='1' and cg='0') then
if (QINTRN<"01100110") then
mg<='1';
md<='1';
else
mg<='0';
md<='0';
end if;
-- end if;
end if;
end process robot_PRO;
md<=QINTRN(0);
end robot_ARCH;

Autres pages sur : programme vhdl

26 Avril 2006 20:06:37

deja tu dois avoir un conflit sur la sortie md (afectée dans ton process synchrone et md<=QINTRN(0); en dehors de tout process)

supprimons cette dernière ligne : md<=QINTRN(0);

ensuite :

l'état initial de ton compteur n'est pas fixé. Ceci peut poser pb si ton simulateur l'initialise à "XXXXXXXX" alors :
XXXXXXXX + 1 = XXXXXXXX

Tu peux ajouter un reset ou faire :
signal QINTRN: std_logic_vector(7 downto 0) := "00000000";

Vérifie que les ports cg, cm et cd ont les bonnes valeurs.

27 Avril 2006 14:29:13

merci pour ta réponse, je vais tester ca en cour car je n'ais pas de programme pour le vhdl. ;-)
je te tiendrai au courant
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS