cycle d'horloge
Note important: La taille du "cmp" est de:
log2(5207)=12.34 13 bits, il peut aller donc
jusqu'à 2
13
-1=8191. Ce signal peut donc dépasser
5207.
Description Exemple
Déclaration de type Type T_ETAT is (repos, envoi, tempo, fin);
Signal etat, etat_future : T_ETAT := repos;
Remarquer comment les signaux sont initialisés. Ceci
est utile pour la simulation.
Description Exemple
Création de mémoire Une mémoire de 16 cases chacune sur 8 bits:
Type t_memo is array (0 to 15) of
std_logic_vector(7 downto 0);
signal memo : t_memo;
constant memo_rom : t_memo :=("11001100",
"00001111", … , "11111111");
Description Exemple
Un process synchrone
avec CLK Proces(CLK) –- pas d'autre signal dans
--la liste de sensibilité
begin
if CLK'event and CLK = '1' then
-- une suite d'instructions séquentielles
end if;
end process;
ATTENTION - Aucune autre instruction entre "begin" et "if";
- Aucune autre instruction entre "end if" et "end
process".
Description Exemple
Détection d'un front
sur un signal "non
CLK". Ici on effectue
une action sur le
front montant de BTN.
Proces(CLK)
begin
if CLK'event and CLK = '1' then
ex_btn <= BTN;
if ex_btn = 0 and BTN = '1' then
-- une suite d'instructions séquentielles
end if;
end if;
end process;
Attention: Ne pas utiliser
if BTN'event and BTN = '1' then
car on a supposé que BTN n'est pas un signal horloge