Conception et implémentation de s systèmes numériques Cours #6 Conception d’uni

Conception et implémentation de s systèmes numériques Cours #6 Conception d’unités de contrôle Conception et implémentation des systèmes numériques Plan • Rappel – circuits séquentiels: • Analyse d’un circuit séquentiel synchrone: • Machines à états en VHDL: • Conception de machines à états: • Conception de processeurs: • Exemples ● Modèle de producteur/consommateur ● Multiplicateur série: Conception et implémentation des systèmes numériques Rappel: exemple de la machine distributrice 33 Source: Wikipédia Conception et implémentation des systèmes numériques Parties d’un processeur • Un processeur est composé de deux parties: – Le chemin des données (datapath) traite les données. Il inclut: • des registres; • des unités fonctionnelles (comme une unité arithmétique et logique) • un mécanisme de commutation pour transférer et manipuler les données. – L’unité de contrôle (control unit) est responsable du séquençage des opérations à exécuter par le chemin de données selon des entrées externes et le résultat des opérations. Chemin des données Unité de contrôle Contrôle État Sortie des données Sorties de contrôle Entrée des données Entrées de contrôle Conception et implémentation des systèmes numériques Machine distributrice Processeur Clavier senseur de pièces M M M M Moteurs des plateaux actuateurs pour rendre la monnaie affichages État Gérer l’argent Gérer l’inventaire L’unité de contrôle détermine dans quel ordre les différentes actions doivent se produire, et génère les signaux de contrôle correspondants pour les chemin des données et pour les sorties. Conception et implémentation des systèmes numériques Circuits séquentiels synchrones • Un circuit séquentiel comporte: – une partie combinatoire; et – des éléments à mémoire. • Les éléments à mémoire entreposent l’état présent du circuit. • La partie combinatoire calcule le prochain état du système ainsi que ses sorties. • Un circuit séquentiel a normalement des entrées et des sorties. • Un circuit séquentiel est mené par un signal d’horloge et devrait avoir un signal de réinitialisation. Ces signaux sont des entrées ‘spéciales’. circuit combinatoire prochain état état présent horloge entrées sorties éléments à mémoire Conception et implémentation des systèmes numériques Circuits séquentiels synchrones • Il y a deux types de circuits séquentiels : les circuits de Moore et de Mealy. – Dans une machine de Moore, les sorties ne sont fonctions que de l’état présent. – Dans une machine de Mealy, les sorties sont fonctions de l’état présent ainsi que des entrées. circuit combinatoire prochain état état présent horloge entrées sorties de Moore sorties de Mealy fonction de sortie (Moore) fonction de sortie (Mealy) calcul du prochain état éléments à mémoire Conception et implémentation des systèmes numériques Plan • Rappel – circuits séquentiels: • Analyse d’un circuit séquentiel synchrone: • Machines à états en VHDL: • Conception de machines à états: • Conception de processeurs: • Exemples ● Modèle de producteur/consommateur ● Multiplicateur série: Conception et implémentation des systèmes numériques Analyse d’un circuit séquentiel synchrone • On analyse un circuit pour en comprendre le fonctionnement. • Analyser un circuit séquentiel synchrone en quatre étapes: 1. identifier les variables d’états; 2. écrire les équations d’états et les équations de sortie; 3. dresser le tableau d’états; et, 4. dessiner le diagramme d’états. D CLK Q' Q Z X D CLK Q' Q CLK A B 2. A+ = A xor B; B+ = B’ or X; Z = A nor B; 1. A et B Conception et implémentation des systèmes numériques Analyse d’un circuit séquentiel synchrone (suite) D CLK Q' Q Z X D CLK Q' Q CLK A B 3. Tableau d’états: 4. Diagramme d’états: état 0: AB = « 00 » état 1: AB = « 01 » état 2: AB = « 10 » état 3: AB = « 11 » État 3 Sortie: 0 État 2 Sortie: 0 État 1 Sortie: 0 État 0 Sortie: 1 - 0 0 1 - reset (état initial) 1 état présent entrée état prochain sortie A B X A+ B+ Z 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 1 0 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 1 0 0 0 0 1 1 1 0 1 0 état présent entrée état prochain sortie A B X A+ B+ Z 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 1 0 0 0 1 1 1 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 1 0 0 0 0 1 1 1 0 1 0 Conception et implémentation des systèmes numériques Plan • Rappel – circuits séquentiels: • Analyse d’un circuit séquentiel synchrone: • Machines à états en VHDL: • Conception de machines à états: • Conception de processeurs: • Exemples ● Modèle de producteur/consommateur ● Multiplicateur série: Conception et implémentation des systèmes numériques Description d’une machine à états en VHDL 1. à partir d’un schéma • Approche adéquate: – quand on désire modéliser un circuit pour lequel on a le schéma – quand on a les équations d’états et de sortie library IEEE; use IEEE.std_logic_1164.all; entity cctsequentielex1 is port ( reset : in STD_LOGIC; CLK : in STD_LOGIC; X : in STD_LOGIC; Z : out STD_LOGIC ); end cctsequentielex1; architecture arch1 of cctsequentielex1 is signal A : STD_LOGIC; -- bascule A (en haut) signal B : STD_LOGIC; -- bascule B (en bas) begin process(CLK, reset) is begin if (reset = '0') then A <= '0'; B <= '0'; elsif (rising_edge(CLK)) then A <= A xor B; B <= x or not(B); end if; end process; -- signal de sortie z <= not(A or B); end arch1; D CLK Q' Q Z X D CLK Q' Q CLK A B Deux bascules dans un seul processus Sortie décrite par un énoncé concurrent à l’extérieur du processus (pas de registre). Réinitialisation asynchrone. Conception et implémentation des systèmes numériques Description d’une machine à états en VHDL 2. à partir d’un diagramme d’états • Approche beaucoup plus puissante: – identifier les états, les conditions de transition et les sorties pour chaque état – pas besoin d’équations d’états – plus lisible, robuste, facile à maintenir architecture arch2 of cctsequentielex1 is type type_etat is range 0 to 3; signal etat : type_etat := 0; begin process(CLK, reset) is begin if (reset = '0') then etat <= 0; elsif (rising_edge(CLK)) then case etat is when 0 => etat <= 1; when 1 => if x = '0' then etat <= 2; else etat <= 3; end if; when 2 => etat <= 3; when 3 => if x = '0' then etat <= 0; else etat <= 1; end if; end case; end if; end process; z <= '1' when etat = 0 else '0'; end arch2; Type spécial pour l’état. Ici: encodage numérique. Processus avec énoncé case pour les transitions entre états. Signal de sortie à l’extérieur du processus. État 3 Sortie: 0 État 2 Sortie: 0 État 1 Sortie: 0 État 0 Sortie: 1 - 0 0 1 - reset (état initial) 1 Conception et implémentation des systèmes numériques Description d’une machine à états en VHDL Encodage symbolique des états • Lors de la conception, on préfère souvent un encodage symbolique à l’encodage numérique des états. Type spécial pour l’état. Ici: encodage symbolique avec un type énuméré. Autres observations: machine de Moore (sortie définie seulement par l’état) sortie spécifiée dans la condition de réinitialisation sortie avec registre S2 Sortie = 1 S4 Sortie = 0 S3 Sortie = 0 S1 Sortie = 1 X’ X reset architecture unprocessus of cctsequentielex2 is type type_etat is (S1, S2, S3, S4); signal etat : type_etat := S1; begin process(CLK, reset) is begin if (reset = '0') then etat <= S1; sortie <= '1'; elsif (rising_edge(CLK)) then case etat is when S1 => if x = '0' then etat <= S3; sortie <= '0'; else etat <= S2; sortie <= '1'; end if; when S2 | S3 => etat <= S4; sortie <= '0'; when S4 => etat <= S1; sortie <= '1'; end case; end if; end process; end unprocessus; Description d’une machine à états en VHDL états Conception et implémentation des systèmes numériques Parenthèse: types énumérés en VHDL • Un type peut être défini avec une énumération d’éléments dans une liste. • L’ordre d’énumération définit un indice pour chaque élément à partir de 0. Les opérateurs relationnels s’appliquent entre les éléments selon cet ordre. • Exemples: définitions dans le package standard, disponible dans le manuel de référence du langage VHDL, norme 1076-2002 http://www.ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1003477 package STANDARD is type BOOLEAN is (FALSE, TRUE); type BIT is ('0', '1'); type CHARACTER is ( NUL, SOH, STX, ETX, EOT, ENQ, ACK, BEL, BS, HT, LF, VT, FF, CR, SO, SI, DLE, DC1, DC2, DC3, DC4, NAK, SYN, ETB, CAN, EM, SUB, ESC, FSP, GSP, RSP, USP, ' ', '!', '"', '#', '$', '%', '&', ''', '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', --- etc. Conception et implémentation des systèmes numériques uploads/Ingenierie_Lourd/ cours-6-unite-de-controle-vhdl.pdf

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