Tom's Guide > Forum > Programmation > Programme VHDL
Mot :    Pseudo :           
 

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;

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

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.

Répondre à bobstar

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

Répondre à Paul38400
Tom's Guide > Forum > Programmation > Programme VHDL
Aller à :

Il y a 272 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens