Bonjour tout le monde
je fais appel aujourd’hui à vos connaissance en VHDL .
je viens de recevoir une carte de1 soc cyclone 5 .j'ai téléchargé la dernière version de Quartus 15.0 compatible avec cyclone V.
J'ai démarré doucement pour implémenter une simple application .j'ai utilisé l'afficheur 7 segments pour écrire un petit message pour mes encadreurs.
j'ai réussit cette étape et j'ai affiché 6 mots
''salut'' ''Mr..'' ''Mme..'' ''pour'' ''tout''.
mon proleme reste est que j'arrive pas à défiler le message mots par mots automatiquement donc j'ai utilisé des switch pour basculer d'un mots à un autre:
exemple switch 1 affiche salut
when "000001"=>
afich1<="0010010"; --"S"
afich2<="0001000"; --"A"
afich3<="1000111"; --"L"
afich4<="1000001"; --"U"
afich5<="0000111"; --"T"
afich6<="0111111";
alors mon programme est le suivant :
library IEEE;
use IEEE.std_logic_1164.all;
USE ieee.std_logic_unsigned.all;
use IEEE.numeric_std.all;
entity afficheur is
port (
sw: in STD_LOGIC_VECTOR (5 downto 0);
afich1,afich2,afich3,afich4,af ich5,afich6: out STD_LOGIC_VECTOR (6 downto 0)
);
end afficheur;
architecture afficheur_arch of afficheur is
begin
process(sw
begin
case sw:is
---lorsque switch 1 est activé alors afficheur ecrit "SALUT"
when 000001=>
afich6<="0010010"; --lettre "S"
afich5<="0001000"; --lettre "A"
afich4<="1000111"; --lettre "L"
afich3<="1000001"; --lettre "U"
afich2<="0000111"; --lettre "T"
afich1<="0111111"; --Eteind
---lorsque switch 1 est activé alors afficheur ecrit "nom de l'encadrant''
when 000010=>
afich6<="1001000"; --""
afich5<="0000110"; --""
afich4<="0010010"; --""
afich3<="0001000"; --""
afich2<="1001000"; --""
afich1<="0111111"; --"-"
---lorsque switch 1 est activé alors afficheur ecrit "2 eme encadrant"
when 000100=>
afich6<="1001000"; --""
afich5<="1000000"; --""
afich4<="0001000"; --""
afich3<="1001111"; --""
afich2<="1001000"; --""
afich1<="0111111"; --"-"
---lorsque switch 1 est activé alors afficheur ecrit "MERCI"
when 001000=>
afich6<="1001000"; --"m"
afich5<="0000110"; --"e"
afich4<="0001000"; --"r"
afich3<="1000110"; --"c"
afich2<="1001111"; --"i"
afich1<="0111111"; --"-"
---lorsque switch 1 est activé alors afficheur ecrit "POUR"
when 010000=>
afich6<="0001100"; --"p"
afich5<="1000000"; --"o"
afich4<="1000001"; --"u"
afich3<="0001000"; --"r"
afich2<="0111111"; --"-"
afich1<="0111111"; --"-"
---lorsque switch 1 est activé alors afficheur ecrit "ACCEUI"
when 100000 =>
afich6<="0000111"; --"T"
afich5<="1000000"; --"O"
afich4<="1000001"; --"U"
afich3<="0000111"; --"T"
afich2<="0111111"; --"-"
afich1<="0111111"; --"-"
when others =>
afich6<="0000110"; --"E"
afich5<="0001000"; --"R"
afich4<="0001000"; --"R"
afich3<="1000000"; --"O"
afich2<="0001000"; --"R"
afich1<="0111111"; --"-"
end case;
end process;
end afficheur_arch;
(j'ai essayé wait until (20ns et 50ns et 70ns )mais ca pas marché )
svp pourriez vous m'aider
merci d'avance
-----