Bonjour à tout le monde!
Je suis actuellement en train de faire un petit exercice de VHDL assez simple. Mais je bug sur certain points depuis un moment :/
si quelqu'un aurait la gentillesse de m'aider sa serais super
Voici les données
L'affichage 7 segments de votre carte doit afficher le nombre (en décimal) entré en binaire sur les switches S5 (MSB) à S8(LSB).
=>Si s1 est actif, l'affichage affiche un tiret.
=>Si s2 est actif, l'affichage est éteint. s2 est prioritaire sur s1.
Mon idée était la suivante :
J'ai voulais mettre le tout dans un process. Après est'il possible de mettre mon switch select dans mon process ?
je vous remercie d'avance =)
--Déclaration des librairies--
Library IEEE;
use IEEE.Std_Logic_1164.all;
--Déclaration des entrées et sorties--
entity EX is
port(s1,s2,s5,s6,s7,s8: in std_logic;
a,b,c,d,e,f,g : out std_logic);
end EX;
--------------------------------------
--Déclaration des signaux--
architecture EX_arch of EX is
signal segments : Std_logic_vector (7 downto 1);
signal switch : std_logic_vector (4 downto 1);
---------------------------
begin
process(s1,s2, segments)
begin
if(s2 = '1' and (s1 = '1' or s1 = '0')) then--s2 prend la priorité sur s1
segments <= "1111111";
elsif(s1 = '1' and s2 = '0') then--s1 actif si s2 = 0
segments <= "1111110";
else
end if;
end process;
--gestions de segments en fonction de switch--
with switch select
segments <= "0000001" when "0000",
"1001111" when "0001",
"0010010" when "0010",
"0000110" when "0011",
"1001100" when "0100",
"0100100" when "0101",
"0100000" when "0110",
"0001111" when "0111",
"0000000" when "1000",
"0000100" when "1001",
"0001000" when "1010",
"1100000" when "1011",
"0110001" when "1100",
"1000010" when "1101",
"0110000" when "1110",
"0111000" when "1111";
--gestion des sorties--
(a,b,c,d,e,f,g) <= segments;
switch <= (s5,s6,s7,s8);
end EX_Arch;
-----