Bonjour tout le monde :
Je suis en train de me remettre au VHDL sur une carte spartan 3E.
Je suis ce tutoriel la :
http://www.cours.polymtl.ca/ele3311/...le3311_v13.pdf
alors j'ai quelque question
Sur ce symbole <= qui pour moi veux dire inférieur ou égal;
mais je note aussi qu'il peux servir a mettre un signal dans un autre comment faire la différence entre deux ??
http://www.cours.polymtl.ca/ele3311/...le3311_v13.pdf
Je travail sur ce programme qui est dans le tuto et j'aurai besoin d'aide pour le comprendre certaine syntax .
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity diviseur_clk is
Port ( clkin : in STD_LOGIC;
clk2hz : out STD_LOGIC;
clk16hz : out STD_LOGIC;
clk2khz : out STD_LOGIC);
end diviseur_clk;
architecture Behavioral of diviseur_clk is
signal cnt2hz : interger range 0 to 4e6 := 0; -- interger veux dire q'on va renvoyer un entier de 0 a 4e6 si jai bien compris le ":=" ??
signal cnt16hz : interger range 0 to 5e5 := 0;
signal cnt2khz : interger range 0 to 4e3 := 0;
signal div2hz_temp : std_logic := '0'; -- ici ce son des signaux tampon
signal div16hz_temp : std_logic := '0';
signal div2khz_temp : std_logic := '0';
begin
process(clkin)
begin
if (clkin'event and clkin = '1')then
-- diviseur par 4e6
if cnt2hz >= 4e6 then
div2hz_temp <= not(div2hz_temp);
cnt2hz <= 0;
else
div2hz_temp <= div2hz_temp;
cnt2hz <= cnt2hz + 1;
end if;
clk2hz <= div2hz_temp; -- horloge à 2hz
-- diviseur par 5e5
if cnt16hz >= 5e5 then
div16hz_temp <= not(div16hz_temp);
cnt16hz <= 0;
else
div16hz_temp <= div16hz_temp;
cnt16hz <= cnt16hz + 1;
end if;
clk16hz <= div16hz_temp; -- horloge à 16hz
-- diviseur par 4e3
if cnt2khz >= 5e5 then
div2khz_temp <= not(div2khz_temp);
cnt16hz <= 0;
else
div2khz_temp <= div2khz_temp;
cnt2khz <= cnt2khz + 1;
end if;
clk2khz <= div2khz_temp; -- horloge à 2khz
end if;
end process;
end Behavioral;
-----