

Navigation rapide : Sommaire

PORT(
E : IN STD_LOGIC;
S : IN STD_LOGIC;
);| Valeur | Signification |
|---|---|
| 0 ou L | niveau bas |
| 1 ou H | niveau haut |
| Z | tri-state = haute impédance |
| U | non initialisé |
| X | initialisé à l'état indéterminé |
| - | sans importance |
PORT(
E : IN STD_LOGIC_VECTOR (3 DOWNTO 0);
S : IN STD_LOGIC;
);PORT(
E : IN INTEGER RANGE 0 TO 3;
S : IN STD_LOGIC;
);| Opérateur | Opération |
|---|---|
| + | Addition |
| - | Soustraction |
| * | Multiplication |
| / | Division |
| MOD | Modulo |
| REM | Reste |
| = | Égalité |
| /= | Différence |
| < | Strictement inférieur |
| <= | Inférieur |
| > | Strictement supérieur |
| >= | Supérieur |
| & | Concaténation |
| NOT | Complément logique |
| AND | ET logique |
| NAND | NON ET logique |
| OR | OU inclusif logique |
| NOR | NON OU inclusif logique |
| XOR | OU exclusif logique |
| XNOR | NON OU exclusif logique |
| SLL | Décalage logique gauche |
| SRL | Décalage logique droite |
| SLA | Décalage arithmétique gauche |
| SRA | Décalage arithmétique droite |
| ROL | Rotation par la gauche |
| ROR | Rotation par la droite |
-- Ceci est un commentaire dans le code
Ceci est du code
-- Ceci est un autre commentaireLIBRARY ieee; -- Bibliothèque contenant la définition des types STD_LOGIC et STD_LOGIC_VECTOR.
USE ieee.std_logic_1164.ALL;
ENTITY nom_fichier IS -- Interface du design
PORT(
<Définition des entrées et des sorties>
);
END nom_fichier;
ARCHITECTURE archi OF nom_fichier IS -- Description du design
<Appel d'un composant déjà créé avec COMPONENT, ou définition de variables intermédiaires avec SIGNAL>
BEGIN
<Instructions avec éventuellement des PROCESS, et des conditions>
END archi;LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY nom_fichier IS -- Fichier nom_fichier.vhdl
PORT(
E1, E2, E3, E4 : IN STD_LOGIC; -- Flux entrant
E5 : IN STD_LOGIC_VECTOR (3 DOWNTO 0);
E6, E7 : IN INTEGER RANGE 0 TO 3;
S1, S2, S3, S4, S5, S6 : OUT STD_LOGIC; -- Flux sortant.
S7 : OUT INTEGER RANGE 0 TO 6 -- /!\ La dernière ligne du PORT ne finit pas par ; /!\
);
END nom_fichier;
ARCHITECTURE archi OF nom_fichier IS
COMPONENT nom_fichier_composant -- Fichier nom_fichier_composant.vhdl préalablement créé
PORT(
A, B : IN STD_LOGIC;
RM, SM : OUT STD_LOGIC
);
END COMPONENT;
SIGNAL N0, NS0, N1, NS1 : STD_LOGIC; -- Objets intermédiaires
SIGNAL N3, N4 : INTEGER RANGE 0 TO 5;
SIGNAL N5, N6 : STD_LOGIC_VECTOR (4 DOWNTO 0);
SIGNAL sig : STD_LOGIC; -- Déclaration obligatoire pour travailler sur la sortie
BEGIN
-- Assignation classique à la sortie
S0 <= '1'; -- On assigne 1 à la sortie S0
-- Utilisation d'un COMPONENT
M0:nom_fichier_composant -- Première instance du module nom_fichier_composant.vhdl
PORT MAP (A => E1, B => E2, RM => N0, SM => NS0);
M1:nom_fichier_composant -- Deuxième instance du module...
PORT MAP (A => E3, B => E4, RM => N1, SM => NS1);
S1 <= N0 OR N1;
-- Descriptions comportementales
S2 <= '1' WHEN (E1='1' OR E2='1') ELSE '0';
PROCESS (E6) -- Tout ce qui est testé par des IF, ELSE, CASE se trouve dans un PROCESS
BEGIN
IF (E6=0) THEN S3 <= E5(0);
ELSIF (E6=1) THEN S3 <= E5(1);
ELSIF (E6=2) THEN S3 <= E5(2);
ELSE S3 <= E5(3);
END IF;
END PROCESS;
PROCESS (E6) -- Même structure que précédement, mais avec if, then, else et non if, then, elsif, else.
BEGIN
IF (E6=0) THEN S3 <= E5(0);
ELSE
IF (E6=1) THEN S3 <= E5(1);
ELSE
IF (E6=2) THEN S3 <= E5(2);
ELSE S3 <= E5(3);
END IF;
END IF;
END IF;
END PROCESS;
PROCESS (E6)
BEGIN
CASE E6 IS
WHEN 0 => S4 <= E5(0);
WHEN 1 => S4 <= E5(1);
WHEN 2 => S4 <= E5(2);
WHEN 3 => S4 <= E5(3);
WHEN OTHERS => S4 <= "1"; -- Tous les autres cas (facultatif).
END CASE;
END PROCESS;
PROCESS (E5)
VARIABLE compteur : INTEGER; -- Objet gérant le comptage de bits à 1
BEGIN
compteur:=0;
FOR I IN 0 TO 3 LOOP -- I ne doit pas être déclaré
IF (E5(I)='1') THEN compteur:=compteur + 1;
END IF;
END LOOP;
END PROCESS;
PROCESS (E6, E7)
BEGIN
S5 <= E6 + E7;
END PROCESS;
PROCESS(E3, E4)
BEGIN
IF E4='1' THEN sig <= E3; -- La sortie prend l'état de E3
ELSE sig <= sig -- La sortie reste inchangée
END IF;
END PROCESS;
S6 <= sig;
PROCESS -- Ce PROCESS réagira à tous les signaux
BEGIN
WAIT UNTIL E4='1';
sig <= E5;
END PROCESS;
S6 <= sig;
PROCESS (E4)
BEGIN
IF E4 'EVENT AND E4='1' THEN sig <= E5; -- Voir "A ne pas oublier"
ELSE sig <= sig;
END IF;
END PROCESS;
S6 <= sig;
END archi;IF THEN ELSEIF THEN ELSE END IF ou CASE WHEN, ou qu'il y a un calcul arithmétique (ex : A+B).IF THEN ELSEIF THEN ELSE END IF ou un CASE WHEN, tous les cas possibles doivent être envisagés. Sinon il y aura création d'une fonction registre perturbatrice.cmd 'EVENT AND cmd='1' pour détecter un front montant. cmd 'EVENT AND cmd='0' pour détecter un front descendant.
Navigation rapide : Sommaire
Bnmaster Quelqu'un vient-il de devenir fou en testant le nouveau mode "recherche instantanée" de Google ? C'est des fous... Le 08 septembre, 21h06 via Accueil
Bnmaster
Tiens tiens, c'est la fête de l'Avare en ce moment ou bien ?
Scout > En Suède ??? Pk pas
Moi je suis encore en stage et je reprend les cours bientôt, sauf que je fais un master 2 "Systèmes embarqués" en plus de ma dernière année d'école d'ingé. ça devrait être fun
Le 07 septembre, 19h13 via Accueil
lily Hello Le 07 septembre, 16h08 via Résumé : L'Avare
sminou Salut Le 06 septembre, 15h53 via Résumé : L'Avare
hghghg
QQN peut'il m-aider ??!!
Le 28 août, 12h35 via Starcraft - Patch 1.16.1 no...
hghghg
Putin j'arrive pas à faire marcher starcraft
Le 28 août, 12h35 via Starcraft - Patch 1.16.1 no...
theo
Bonjour
Le 26 août, 15h51 via La sémantique du XHTML
hahaha 2nd2 de jean-michel en force !!!!!!!!!!!!!!! Le 25 août, 14h43 via Accueil
ViamLiiCiiouS ... Le 25 août, 0h19
Viamlicious Pk c'est de la merde ce livre ? --' Le 24 août, 23h26 via Elle ronge le fer, mord l'a...
bella
Hiu
Le 24 août, 23h25 via Elle ronge le fer, mord l'a...
Scoutone
Moi ça va.
Je suis en Suède pour faire un semestre d'étude là-bas. Les cours ne commencent pas tout de suite donc j'ai pas mal de temps libre 
Et toi, tjs en vacances ?
Le 21 août, 9h17 via Accueil
nupur Salut a tous Le 18 août, 16h56 via Résumé : Le Tartuffe de Mol...
mugwortt Salut ! Le 17 août, 15h04
bnpro Slt nini Le 10 août, 11h01 via Accueil
nini J aimai les diddl. Le 08 août, 18h40 via Accueil
bnpro Slt a tous Le 08 août, 13h46 via Accueil
florian
Il y a quel qun
Le 07 août, 19h13 via Apprendre le Morse
florian Bonjour a tous Le 07 août, 19h11 via Apprendre le Morse
bnpro Enfin kelkun ki répon Le 06 août, 22h09 via Accueil
bnpro Slt yéléna Le 04 août, 19h23 via Accueil
yéléna Ia pas de délire ici?? Le 04 août, 5h33 via Résumé : Andromaque
yéléna
Salut sa va?
Le 04 août, 5h32 via Résumé : Andromaque
yann69
...
Le 04 août, 0h15 via Diablo 2 - Patch 1.12a no-c...
bnpro Slt cynthia Le 29 juillet, 22h01 via Accueil
bnpro Ta kel age cynthia Le 29 juillet, 16h31 via Accueil
bnpro Slt cintia ,moi et bnmaster Le 29 juillet, 11h15 via Accueil
Cynthia ... Le 29 juillet, 5h23 via Français
Bnmaster
A cette heure là y avait personne, mais maintenant, y a du monde
Le 28 juillet, 19h05 via Accueil
Moi Ya kelkun ? Le 27 juillet, 5h18 via Résumé : L'Avare
Moi Ya kelkun ? Le 27 juillet, 5h18 via Résumé : L'Avare
Moi Coucou Le 27 juillet, 5h17 via Résumé : L'Avare
bnpro
Slt les gars
Le 26 juillet, 20h56 via Accueil
kikoo Bonjour Le 26 juillet, 15h41
joey
Bonjour
Le 26 juillet, 14h20 via Ecrire sans crayon
bnpro Es ke kelkun koné un site ou on peut tchaté.mieu ke ce lui la Le 21 juillet, 21h11 via Accueil
bnpro Cc melilu Le 20 juillet, 7h51 via Accueil
melilu Il y a quelle qu'un ? Le 16 juillet, 22h39 via Accueil
melilu Coucou Le 16 juillet, 22h38 via Apprendre le Morse
AgO Quelqu'un ? Le 15 juillet, 21h09 via Accueil
bnpro
Cc yatil dé fille ici
Le 12 juillet, 8h59 via Accueil
crocro Qqn connait des chansons sympa hors celle du site et des traditionnelles tante du maroc? Le 02 juillet, 22h19 via Petits jeux
Yanis B0NNE CHANCE A TOUS ! Le 30 juin, 6h34 via Dates historiques important...
mopomo 5+2 Le 29 juin, 22h39 via Dates historiques important...
HistoryGirl Demain Histoire, Qui se pend? Le 29 juin, 22h11 via Dates historiques important...