INF3500 : Conception et implémentation de systèmes numériques http://creativeco

INF3500 : Conception et implémentation de systèmes numériques http://creativecommons.org/licenses/by-nc-sa/2.5/ca/ Pierre Langlois Décrire un circuit numérique avec VHDL Références: notes de cours, chap. 2, 4 et 10 INF3500 : Conception et implémentation de systèmes numériques Variables booléennes • À la base des systèmes numériques on retrouve la logique booléenne. • Dans un système numérique, tous les signaux sont effectivement des variables booléennes. • Une variable booléenne peut prendre une seule de deux valeurs: vrai ou faux. • On peut interpréter ces deux valeurs de différentes façons selon le contexte. 2 valeur logique équivalent numérique ex. : lampe ex : tension ex : alarme vrai 1 allumée élevée activée faux 0 éteinte basse désactivée (notes, section 10.1) INF3500 : Conception et implémentation de systèmes numériques Fonctions booléennes, symboles et tables de vérité • Il y a trois fonctions booléennes de base – l’inversion – le ET logique; et, – le OU logique. • Plusieurs fonctions peuvent être dérivées de ces trois fonctions de base, comme le NON-OU, le NON-ET, le OU-exclusif et l’équivalence. 3 X + Y (OU, OR) X Y XY (ET, AND) X Y X + Y (OU-exclusif, différence, OUX, XOR) X Y X Y X Y X Y X X (identité) X (X + Y)’ (NON-OU, NOR) (XY)’ (NON-ET, NAND) (X + Y)’ (coïncidence, équivalence) X’ (inversion, NON, NOT) (notes, section 10.2) INF3500 : Conception et implémentation de systèmes numériques Différentes portes logiques 4 X’ + Y X Y X’ + Y’ X Y X Y X Y (X’Y)’ (X’Y’)’ A B ABCD C D A B A+B+C C A B (A+B+C)' C A B (ABC)' C (notes, section 10.6) INF3500 : Conception et implémentation de systèmes numériques Un exemple de design • Un comité composé de quatre personnes a besoin d’un mécanisme de vote secret pour les amendements sur la constitution du comité. Un amendement est approuvé si au moins 3 personnes votent pour. • Concevoir un circuit logique qui accepte 4 entrées représentant les votes. La sortie du circuit doit indiquer si l’amendement est accepté. 5 INF3500 : Conception et implémentation de systèmes numériques Donner la table de vérité, l’équation et le circuit logique 6 # vote1 (A) vote2 (B) vote3 (C) vote4 (D) amendement approuvé (F) 0 0 0 0 0 0 1 0 0 0 1 0 2 0 0 1 0 0 3 0 0 1 1 0 4 0 1 0 0 0 5 0 1 0 1 0 6 0 1 1 0 0 7 0 1 1 1 1 8 1 0 0 0 0 9 1 0 0 1 0 10 1 0 1 0 0 11 1 0 1 1 1 12 1 1 0 0 0 13 1 1 0 1 1 14 1 1 1 0 1 15 1 1 1 1 1 ABC ABD ACD BCD ABC ABD ACD BCD D D ABC C C ABD B B ACD A A BCD ABCD ABCD ABCD D ABC ABCD CD AB ABCD BCD A ABCD ABCD D ABC CD AB BCD A F                              ) 1 ( ) 1 ( ) 1 ( ) 1 ( ) ' ( ) ' ( ) ' ( ) ' ( ' ' ' ' ' ' ' ' Équivalence entre les trois représentations INF3500 : Conception et implémentation de systèmes numériques Langages de description matérielle • Pour décrire un circuit logique, les schémas sont peu adéquats. – Limitée aux circuits les plus simples. – Il est difficile de dessiner un circuit complexe avec un schéma de portes logiques. Il est encore plus difficile de le modifier. – Un simple changement dans une équation booléenne du circuit se répercute par une grande quantité de connexions à corriger. – Il est difficile, voire impossible, d’utiliser des variables en guise de paramètres d’un circuit représenté par un schéma. • Les langages de description matérielle (Hardware Description Language – HDL) ont vu le jour au début des années 1980 lorsque la complexité des circuits à concevoir a rendu impossible l’utilisation exclusive de schémas. • Les avantages des HDL par rapport aux schémas sont : – les HDL permettent de décrire des systèmes complexes complets; – les HDL favorisent la décomposition en modules paramétrables; – les HDL facilitent l’établissement de spécifications et d’interfaces clairement définies; – les HDL normalisent l’échange d’informations. 7 (notes, section 2.1) INF3500 : Conception et implémentation de systèmes numériques Langages de description matérielle • Les HDL peuvent servir à trois choses : – la modélisation de circuits (surtout numériques); – la description de circuits en vue de leur synthèse (i.e. leur réalisation matérielle); et, – la documentation de circuits. • Les deux HDL de loin les plus populaires sont Verilog et VHDL. • Verilog ressemble un peu à C, et VHDL ressemble à ADA. • Les deux langages sont relativement faciles à apprendre, mais difficiles à maîtriser. • VHDL est plus vaste, bien que plusieurs des particularités pour lesquelles Verilog n’a pas d’équivalent soient rarement utilisées. • Quand on connaît l’un des deux langages, il est relativement aisé de passer à l’autre. • Un troisième langage, SystemC, est populaire pour la modélisation à plus haut niveau. 8 (notes, section 2.1) INF3500 : Conception et implémentation de systèmes numériques VHDL • L’acronyme VHDL signifie Very High Speed Integrated Circuit (VHSIC) Hardware Description Language (HDL). • VHDL est un langage de programmation complet. Le langage a été développé pour le compte du gouvernement américain pour documenter la conception d’ASIC. Il est fortement inspiré du langage ADA. • Rapidement, des simulateurs de VHDL sont apparus, puis des synthétiseurs capables de traduire un programme VHDL en une liste d’interconnexions entre des portes logiques (netlist) pouvant être réalisée sur un ASIC. • Le langage VHDL est normalisé par l’IEEE. La première norme remonte à 1987. Des mises à jour ont eu lieu en 1993, 2000, 2002 et 2008. La norme plus récente est présentement mal supportée par les outils de conception. 9 (notes, section 2.1) INF3500 : Conception et implémentation de systèmes numériques Circuit combinatoire en VHDL • Entité: interface avec le monde extérieur • Architecture: partie déclarative et corps • Principe de la concurrence 10 library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity add3bits is port ( Cin : in std_logic; X : in std_logic; Y : in std_logic; Cout : out std_logic; S : out std_logic ); end add3bits; architecture flotDeDonnees of add3bits is signal T1 : std_logic; signal T2 : std_logic; signal T3 : std_logic; begin S <= T1 xor Cin; Cout <= T3 or T2; T1 <= X xor Y; T2 <= X and Y; T3 <= Cin and T1; end flotDeDonnees; X Y Cin S Cout T1 T2 T3 (notes, section 2.2) INF3500 : Conception et implémentation de systèmes numériques Trois styles de description d’un circuit 11 Énoncés concurrents Style de description du circuit Assignations de signaux concurrentes, choisies et conditionnelles Par flot de données Instanciations de composantes Structurale Processus Comportementale (notes, section 2.3) INF3500 : Conception et implémentation de systèmes numériques Description par flot de données 12 • Le modèle d’un circuit numérique par flot de données décrit sa fonction sans nécessairement définir sa structure. En général, cela signifie que les valeurs des signaux et ports du circuit sont établies par des assignation concurrentes de valeurs (concurrent signal assignment). • Pour les circuits combinatoires, les assignations concurrentes à des signaux utilisent souvent des opérateurs logiques qui sont des mots clés du langage: and, or, nand, nor, xor, xnor, not. On peut utiliser des parenthèses pour faire respecter la préséance requise dans les expressions. (notes, section 2.3) INF3500 : Conception et implémentation de systèmes numériques Description par flot de données 13 architecture flotDeDonnees2 of combinatoire1 is signal entree : std_logic_vector(2 downto 0); begin entree <= (A, B, C); with entree select F <= '1' when "000", '1' when "001", '1' when "010", '1' when "011", '0' when "100", '1' when "101", '1' when "110", '0' when "111", '0' when others; end flotDeDonnees2; A B C F library ieee; use ieee.std_logic_1164.all; entity combinatoire1 is port ( A : in std_logic; B : in std_logic; C : in std_logic; F : out std_logic ); end combinatoire1; architecture flotDeDonnees1 of combinatoire1 is begin F <= not(A and (B xor not(C))); end flotDeDonnees1; architecture flotDeDonnees3 of combinatoire1 is begin F <= '1' when (A = '0' or B /= C) else '0'; end flotDeDonnees3; (notes, section 2.3) INF3500 : Conception et implémentation de systèmes numériques Description structurale 14 • Un circuit numérique peut être défini par sa structure, c'est-à-dire par un assemblage de blocs. • Une description structurale correspond à une description par schéma, où les instanciations de composantes et leurs interconnexions sont énumérées avec du texte. • Une description structurale est appropriée pour relier entre eux différents sous- systèmes d’un système numérique. • En général, il est préférable d’utiliser un éditeur de schéma pour décrire un tel circuit, uploads/Philosophie/ 01-bvhdlde-basev-04.pdf

  • 13
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager