Cours étudiant en détail la programmation en VHDL en donnant des cas de conception de circuits intégrés très concrets. C'est le cours de base pour appréhender la conception de puces électroniques ou pour la programmation sur FPGA.
Niveau : Ingénieur en microélectronique Bac +5.
[...] s date a b éval. affec. s MODELES DES RETARDS Vdd électrique 0V 1 logique 0 trd trm 17 MODELE DE RETARD: transport t1 t2 trd t trm t2 Décalage dans le temps sans filtrage MODELE DE RETARD: inertiel électrique T t1 t2 T > trd Pas de filtrage trd t1 trm logique t MODELE DE RETARD inertiel (suite) Vdd électrique T 0V t1 t T t setup t2 > t hold t1 t2 H t hold t setup 21 MODELES DE RETARD Prise en compte de l'environnement: entrée + sortie (voir en fin de cours) SIMULATION LOGIQUE et COMPORTEMENTALE Introduction au langage VHDL * Very high speed integrated circuit Hardware Description Language MODELISATION SYNTHESE SPECIFICATION MODELISATION VHDL VHDL SYNTHESE SIMULATION 23 VHDL: exemple de modèle comportemental library ieee; use ieee.std_logic_1164.all; entity fsm1 is port(entre,h: in std_logic; sortie: out std_logic:='1'); end fsm1; architecture machine1 of fsm1 is . [...]
[...] . ) - synthèses différentes suivant description: combinatoire, séquentiel . (voir exemples) - APPEL PROCEDURE OUI - AFFECTATION SIGNAL OUI mais . [...]
[...] U U X Modélisation des niveaux logiques Haute-Impédance bus haute impédance «état faible» Ecriture 0 sur bus «force 0 sur bus» 9 Modélisation des niveaux logiques Haute-Impédance Z bus: niveau 0 état Z (mémoire) Z Modélisation des niveaux logiques Haute-Impédance bus: force 1 sur Z U fort X Z 11 faible Modélisation des niveaux logiques: introduction des forces Mémoire statique écriture Etat mémoire Ecriture Modélisation des niveaux logiques: introduction des forces état précédent 0 : état présent «écrase» l'état précédent 0 M M1 impose 1 M impose 0 M doit être «plus fort» que M1 Introduction d'une force intermédiaire: M1 H = 1 faible L = 0 faible 13 ETATS LOGIQUES Norme VHDL IEEE_1164 Type std_logic is ( non-initialisé conflit fort 0 fort 1 fort haute impédance conflit faible 0 faible 1 faible don't care MODELES LOGICO-TEMPORELS (voir détails en fin de cours) dépendance environnement sortie entrées table de vérité évaluation retards programmation échéancier affectation résultat 15 Evaluation - Echéancier a b s tm=2 td=4 date a b éval. affec. [...]
[...] juste après synthèse! . avant? [...]
[...] when s4 if(entre='1') then etatpres s2; etat 5 ns) port map( entree1, entree2, s=>sortie); stimulis: process begin entree1b2,s=>som); c2: and2 generic map (tm 5 ns, td 3 ns) port map end archi; som entity demi_add1 ret b1 som C1 b2 ret C2 architecture 45 VHDL Modèle structurel d'un additionneur 1 bit a b modele structurel d'un additionneur 1 bit library ieee; use ieee.std_logic_1164.all; entity add1 is port (a,b,rin: in std_logic; rout: out std_logic); end add1; architecture a_add1 of add1 is rout entity add1 s rin a b n2 b1 som demi_add1 n1 b2 ret s b1 som demi_add1 rout rin b2 ret n3 component or2 generic (td:time; tm: time); port (a,b:in std_logic; s:out std_logic); end component; component demi_add1 port (b1,b2: in std_logic; som,ret: out std_logic); end component; signal n1, n2, n3: std_logic; begin c1: demi_add1 port map( b1=>a,b2=>b,som=>n2,ret=>n1); c2: demi_add1 port map (b1=>n2,b2=>rin,som=>s,ret=>n3); c3 : or2 generic map 5 ns,td ns) port map b=>n3,s=>rout); 46 end a_add1; 23 VHDL Simulation d'un additionneur 1 bit simul_add1 process bit1 bit2 ret_e ret_s add1 som simulation de l'additionneur 1 bit library ieee; use ieee.std_logic_1164.all; entity simul_add1 is end simul_add1; architecture a_sim of simul_add1 is signal bit1, bit2, ret_e, ret_s, som: std_logic; component add1 port(a,b,rin: in std_logic; rout: out std_logic); end component; begin add: add1 port map ( a=>bit1,b=>bit2,rin=>ret_e, s=>som,rout=>ret_s); genere: process begin a2: add1 port map a3: add1 port map end a_add4; 49 r0 VHDL Simulation du modèle structurel d'un additionneur 4 bits simul du modele structurel de l'additionneur 4 bits library ieee; use ieee.std_logic_1164.all; entity simul_add4 is end; architecture a_sim of simul_add4 is component add4 port (r0:in std_logic; in std_logic_vector ( 3 downto out std_logic_vector downto end component; signal retenue: std_logic; signal op2,op1: std_logic_vector downto signal resultat: std_logic_vector(4 downto begin addition: add4 port map( r0=>retenue, a=>op1, b=>op2, s=>resultat); entrees: process begin retenue synthèse de différentes architectures) - CASE OUI - LOOP OUI (bornes fixées: statiques) - boucle WHILE : wait obligatoire - NEXT - EXIT - RETURN OUI OUI OUI 145 INSTRUCTIONS CONCURRENTES - BLOCK OUI mais . GUARDED : PORTS - PROCESS NON : NON GENERIC : NON OUI - sensible à tous les signaux du process - liste de sensibilité : ignorée ( différences de simulation avant et après synthèse!! . [...]
Source aux normes APA
Pour votre bibliographieLecture en ligne
avec notre liseuse dédiée !Contenu vérifié
par notre comité de lecture