Objectifs • Connaître Circuits Logiques ELE1300 La représentation d’une machine à états algorithmique • Être capable de Construire un circuit équivalent à une petite machine à états algorithmique. Introduction aux ASM (Algorithmic State Machine) JP David Circuits logiques - JP David 2 avril 2014 ASM 2 Algorithme du PGCD ASM : Acronyme anglais pour Algorithmic State Machine Exemple d’algorithme : Trouver le plus grand commun diviseur - PGCD 1. Il s’agit de machines à états finis (MÉF/FSM) avancées 2. Les premiers travaux sur les ASM datent des années 1970 et sont dus à HP PGCD(A, B) 3. Les ASM traduisent un comportement algorithmique représenté par un diagramme Tant que (B != 0) { 4. Il fréquent de les considérer comme des FSM contrôlant un système numérique Temp = B; Manger Faim ? B = A%B; Oui A = Temp Non } Boire Oui 2 avril 2014 Circuits logiques - JP David Soif ? Retourner A Non 3 2 avril 2014 Circuits logiques - JP David 4 Algorithme du PGCD Algorithme du PGCD Une affectation N0 B != 0 ? Un état 0 PGCD(A, B) Temp = B; B = A%B; A = Temp A 72 B 30 Temp 30 12 30 12 6 6 12 0 6 N1 0 PGCD(72, 30) = 6 Circuits logiques - JP David 2 avril 2014 B!=0 (Result=A) Rdy=1 } Retourner A A:=INA B:=INB Rdy=0 Un test PGCD(72, 30) Tant que (B != 0) { Start 1 Result INA INB start 1 B:=A%B A:=B Rdy = 0 Rdy clk Une opération 5 2 avril 2014 ASM Circuits logiques - JP David 6 Le circuit • Chaque rectangle représente un état Les (éventuelles) opérations se font durant la période d’horloge pour que les résultats soient disponibles avant le flanc montant de l’horloge. À ce moment, un certain nombre d’affectations “:=“ auront lieu, de manière PARALLÈLE. La machine entre alors dans un nouvel état. start INA Machine à états INB • Chaque losange représente un test Éléments de mémorisation et traitement Rdy Result clk C’est lui qui permet de déterminer l’état suivant. Le cas échéant, la machine peut revenir dans le même état. 2 avril 2014 Circuits logiques - JP David 7 2 avril 2014 Circuits logiques - JP David 8 La machine à états start Quelles Sorties ? Machine à états Les éléments de mémorisation • Un registre A Din_A[31..0] N0 32 Ena_A N0 0 start t1 1 32 Dout_A[31..0] • Un registre B Start Din_B[31..0] N1 N1 32 Ena_B 1 0 t1 B!=0 Signal t1 B 32 t1 Circuits logiques - JP David 2 avril 2014 Dout_B[31..0] 9 2 avril 2014 Les éléments de traitement 32 10 Les éléments de “routage” • Din_A peut prendre ses données depuis : • Un circuit de calcul du reste Rin_A[31..0] Circuits logiques - JP David Le port d’entrée INA La sortie du registre B (Dout_B) Rin_B[31..0] 1 MUX 2 vers 1 32 bits Sel_A • Din_B peut prendre ses données depuis : 32 Le port d’entrée INB La sortie du modulo (Rout) Modulo 32 • Rin_A peut prendre ses données depuis : Rout [31..0] 1 MUX 2 vers 1 32 bits Sel_B La sortie du registre A (Dout_A) • Rin_B peut prendre ses données depuis : La sortie du registre B (Dout_B) 2 avril 2014 Circuits logiques - JP David 11 2 avril 2014 Circuits logiques - JP David 12 Chemin de données INA Sel_A Sel_B 1 0 Tableau de transition et sorties 1 0 Etat P start t1 Next Ena_A Ena_B Sel_A Sel_B Rdy N0 0 X N0 0 0 X X 0 N0 1 X N1 1 1 0 0 0 N1 X 0 N0 0 0 X X 1 N1 X 1 N1 1 1 1 1 0 INB Din_A[31..0] Din_B[31..0] 32 Sel_A 32 Ena_A Ena_B Sel_B 32 32 Dout_A[31..0] Rin_A[31..0] Ena_A Dout_B[31..0] Rin_B[31..0] 32 32 Modulo Ena_B Result 32 Rout [31..0] Circuits logiques - JP David 2 avril 2014 13 Circuit final Rdy INA 32 32 32 SelB 1 0 32 D État Q SelA 1 DinA[31..0] 32 DinB[31..0] D État 32 t1 DinA[31..0] 32 DinB[31..0] ena Registre A Registre B 32 32 RinA[31..0] RinB[31..0] DoutB[31..0] 32 32 RinB[31..0] Modulo Modulo 32 32 32 32 Rout [31..0] Circuits logiques - JP David 15 Rout [31..0] Result Result 2 avril 2014 1 DoutA[31..0] DoutB[31..0] 32 Q 32 0 32 ena 32 RinA[31..0] SelB 1 0 32 start Registre B 32 32 32 32 ena Registre A DoutA[31..0] t1 32 32 ena INB INA 32 0 32 Rdy INB INA INB INA start 14 Contrôle – Chemin de données INB SelA Circuits logiques - JP David 2 avril 2014 2 avril 2014 Circuits logiques - JP David 16 Une forme « standard » Partie de contrôle • Attendre que l ’on pousse sur le bouton • Chauffer l ’eau • Attendre qu ’elle soit chaude • Mettre une dose de café • Ouvrir la vanne d ’eau • Attendre que la tasse soit remplie • Fermer la vanne • Arrêter le chauffage de l ’eau 2 avril 2014 Un circuit « standard » Partie opérative Partie de contrôle Chemin de données Bouton poussoir Chauffage de l ’eau Thermomètre Ajout de café Vanne Circuits logiques - JP David Niveau d ’eau CLK 17 2 avril 2014 Circuits logiques - JP David 18
© Copyright 2025 ExpyDoc