FR 2265225 A1 19751017 FR 7409610 A 19740321 1,7 invention ccneerne 1a réalisation de modules logiques universels (Universai Logic Modules, à logique séquentielle. De tels modules permettent d'obtenir sans aucun décodage de sortie 1'en- chainement d'une séQuence logique : ils peuvent par exemple etre utilisés pour la réalisation de m-croprogrammes ou de microprocesseurs avec possibilité d'exécutions simultanées. Ainsi dans le cas d'un microprogramme par exemple, l'enchai- nement d'une microinstruction à la suivante s'effectue généralement dans un décodeur d'adresse qui fournit, en fonction de la partie adresse de la microinstruction qui vient d'être effectuée et de ceraines conditions de branchement à contrôler, l'adresse de la microinstruction suivante. Le module logique universel selon 1 invention permet de supprimer le décodeur d'adresse, l7enchatne;ent des différnltes instructlons étant donné par une matrice de programmation morte (Read-Only). Dans le module logique universel selon l'invention, la matrice de programmation définissant l'enchainement-ne comporte pas de diodes, mais seulement des connexions simples L'invention a pour objet un module logique universel à log-- que séquentielle destiné àdéfinir le déroulement d'une séquence logique définie par n états élémentaires, q conditions de branchement exclusives et p sorties, telles que aes microordres déclenchant une action extérieure. Le module logique universel selon l'invention comporte - N bascules logiques de type DATA correspondant chacune à un coétat déterminé à partir des n états. - Une première matrice dite de commande à q.N lignes et q colonnes, cette matrice comportant des circuits logiques ET à raison a t un circuit logique ET par ligne et par colonne, chaque colonne recevant un signal de condition de branchement. - N circuits logiques OU à q entrées dont la sortie est reliée de manière biunivoque aux bascules précitées et dont les entrées sont reliées aux lignes de la première matrice de telle manière que chaque condition de branchementpuisse agir sur cha cune des bascules, la deuxième entrée de chaque bascule recevant un signal d'horloge. - Une deuxième matrice dite de programmation à q.N lignes et N+2 colonnes, qui reçoit sur chacune de ses colonnes le signal de sortie d'une bascule, les deux dernières colonnes recevant respec tivement un signal logique G et 1, et dont les lignes sont reliées aux lignes de la première matrice, ladite aeuxième matrice comportant des connexions simples sans diode entre lignes et colonnes à raison d'au plus un point de connexion par ligne. Toutes les sorties extérieures peuvent être obtenues sur les sorties des bascules sans décodage , dans ce cas, le tableau d'assignation du codage des coétats correspond à la programmation d'une matrice état-sortie. Les sorties extérieures peuvent également être obtenues sur les entrées non reliées à l'horloge des bascules ; dans ce deuxième cas, le codage des coétats correspond à une "matrice transition-sortie'7. Dans le cas où l'on désire forcer un état initial donné, le module logique universel selon I1invention peut Aetre complété de la manière suivante - la première matrice de commande comporte N lignes supplé mentaires à raison d'une par bascule et une colonne supplémentaire reliée à un signal de condition dit de rythme, la disposition des circuits ET restant la même. - les circuits logiques OU comportent une entrée supplémentaire et la disposition est telle que chaque bascule puisse être commandée par chacune des conditions de branchement ou par le signal de rythme. - la deuxième matrice de transition comporte N lignes supplémentaires reliées chacune à un circuit logique ET de la première matrice de commande, chacun de ces circuits logiques ET recevant par ailleurs le signal de rythme et étant relié a un des circuits logiques OU précités. - on prévoit une troisieme matrice dite de forçage à N lignes et m colonnes, m étant le nombre des forçages d'état initial désirés, dont les lignes sont reliées aux lignes supplémentaires de la matrice de programmation et les colonnes reçoivent les signaux de forçage de l'état initial codés 1 parmi m, ladite matrice de forçage étant programmée au moyen de diodes. Selon une autre caractéristique de l'invention, les bascules sont montés en registre à décalage et elles comportent à cet effet une entrée supplémentaire de mode permettant d'inhiber les autres entrées, ainsi qu'une entrée et une sortie sérielles de données. L'invention sera exposée ci-après en détail en se reférant aux dessins ci-annexés sur lesquels = - la figure 1 représente le graphe d'un microalgorithme. - la figure 2 est la table des états du-microaigorithme de la figure 1. - la figure 3 est la table de coassignatlon de ce microAlgo"ìtnme. - la figure 4 est la table de liaison à effectuer dans la matrice de programmation - la figure 5 représente de manière schématique un module logique universel selon l'invention. - la figure b est le schéma d'un module logique selon l'invention comportant une matrice de forçage. - la figure 7 représente le module logique correspondant au mlero- algorithme de la figure 1. - les figures 8 et 9 représentent des détails de réalisation des circuits logiques. - la figure 10 est la table de coassignation sous forme transition sortie, et - les figures 11, 12 et 13 représentent des variantes du module selon l'invention. La description ci-dessus concerne un exemple d'aplication à un microprogramme, mais il est évident qu'elle s'applique à tout systeme séquentiel logique tel que les microprocesseurs par exen:- pie. Tout microalgorithme K complètement spécifié, c'est-à-dire dans lequel pour chaque état, la transition est défraie pour toute condition d'entrée V, peut-être aéfini par les données suivantes - n états Z - q conditions de branchement Y à codage primitif déterminant le branchement sur codes de conattions, et p p sorties ou microordres à-codage primitif permettant la comman- de ae dispositifs extérieurs. Si les conditions réelles de branchement ne sont pas à codage primitif, c'st-à-dire qu'elles ne sont pas exclusives, on peut obtenir par un décodeur ou au moye. d'une mémoire morte Xrogwam- mable (Programmable Read-Only Memory PROM, des conditions de branchement à codage primitif (une seule parm s . A partir de ces adonnées, on établit une fonction ac transition Z donnée par une table des états Indiquant l'état suivant en fonction d'un état et d'une condition donnés et une fonction de sortie # associant les microcrdres extérieurs aux états et éventuel lement aux conditions de branhement. Si La fonction de sortie ne dépend pas des conditions de branchement V, mais seulement- de l état présent, elle est de la forme état-sortie. Si par contre elle dépend également des conditions de branchement, elle est de la forme transition-sortie. On peut alors déterminer une assignation des états, telle que chaque chiffre binaire w dans une bascule M du codage d'un état dépende de exactement q chiffres binaires du codage de l'état précédent. Chaque code D(z) requiert au plus (n-l) chiffres binaires non nuls dans au moins n bascules, le nombre maximal N des bascules étant égal à 2n-2. Alors le microalgorithme K peut être implémenté en une forme itérative KD à l'aide d'un seul type de logique combinatoire d'entrée des bascules en forme normale disjonctive à entrance fixe q. L'état de repos ou d'arrêt du microalgorithme K est l'état stable z#ayant uniquement des zéros dans son assignation, La coassignation-consiste à affecter une basculé Mj du type DATA à chacun des coétats wj. Soit à titre d'exemple, le microalgorithme défini par le graphe G(K) de la figure 1 et la table des états de la figure 2. Il y a L eu de noter que dans cet exemple, la table de sortie t est de la forme état-sortie, c'est-à-dire que la fonction de sortie# ne dépend que de l'état Z présent. Sur le graphe de la figure 1, fés -cercles simples correspondent à la sortie yO-et les doubles cercles à la sortie y1. - Pour obtenir la coassignation, on peut procéder en représentant toutes les variables en codage-prlmitif : z0 = (1000), z1 = (0100), z2 = (0010), z3 = (0001) y0 = (10), y1 = (01). Ici n = 4, et p = 2. La représentatiqn correspondante aes entrées est alors une matrice carrée n x n monomiale en ligne Ici q = 2. La matrice de sortie représentant est A = puisque la réalisation considérée est du type S (état-sortie). Pour chacune des sorties yi, consedérons les coétats générés par multiplication matricielle à partir de wi = A#yit où yit est le vecteur transposé de yi, et construisons la table des coétats différents à l'aide de tous les wj = v wi pour toutes les séquences possibles v = vi1 ...vi# . Par exemple w5 = v1 v1 v0 A#+y1t. On obtient alors la table de coassignation représentée figure -3, dans laquelle Z et # correspondent à des états logiques fixes I et O. De plus, comme z#= = 0000 , l'initialisation requiert une entrée u0 forçant l'état z0 sous la forme WO = O;w1 = l;w2 = 0; 0;w3 = O;w4-= 1;w5 1,w6 = 0 Appelons la table de liaison # la table indiquant quelles sont les bascules Mi connectées par ET logique (AND) avec quel fil d'entrée Vk pour chaque bascule Mj, cette table de liaison est représentée figure 4. Le module logique universel selon l'invention est représenté de manière générale figure 5. Il comporte N bascules Mol Ml N circuits logiques OU : OU ... OUN-1, une matrice de commande avec des circuits logiques ET et une matrice de programmation Mb comportant des connexions simples sans diode. Cette dernière matrice estobtenue en réalisant les connexions correspondant à la table de liaison de la figure 4. Cette matrice est monomiale en ligne, c'est-à-dire qu'elle ne comporte qu une connexion par ligne, et c'est ce qui permet de ne pas avoir à utiliser de diodes aux points programmés. Les N bascules correspondent chacune à un des coétats de la table de coassignation de la figure 3. Chaque eircuitlogique OU est relié à la sortie de c; circuits logiques ET recevant chacun une des conditions de branchement v. Les sorties des bascules sont envoyées sur les colonnes de la matrice de programmation, dont les deux dernières colonnes reçoivent les signaux logiques 1 et O (Z et #) qui peuvent être obtenus par des monos tables ou encore directement fournis par des broches dtentrée du module. Si l'on désire effectuer des forçages à un état initial donné, on réalise le module de la figure 6 qui comporte une matrice de forçage Mc et dont les matrices de programmation et de commande comportent alors (q+1)N lignes, les circuits OU étant à q+1 entrées ; l'entrée supplémentaire des circuits OU est reliée à la sortie d'un circuit ET recevant d'une part une ligne venant dé la matrice de forçage Mc et, d'autre part, un signal dit de rythme. La figure 7 représente le module logique universel à matrice de forçage correspondant à l'exemple décrit précédemment. Il comporte 8 bascules M0 à M7 correspondant au tableau des états de la figure 3, deux entrées de conditions v0 et v1, un signal d'horloge T, un signal de rythme , quatre entrées de for çage parallèles uO à u. Dans cet exemple, les sorties ou microordres extérieurs sont obtenus à la sortie des bascules ; elles pourraient aussi être prises à la sortie des circuits OU à l'en- trée des bascules pour une réalisation '1transition-sortie". Les sorties M6 et M7 donnent respectivement les ordres extérieurs y1 et y0 On voit que la matrice de transition Mb obtenue à partir de la table de transition est monomiale en ligne, ctest-à-dire qu'elle ne comporte qu'une connexion par ligne, et ne nécessite donc pas de diode aux points programmables. La matrice de commande peut être réalisée pratiquement comme représentée figures 8 et 9, la figure 8 étant une représentation symbolique et la figure 9 le schéma réel en alimentation négative -VE correspondant à l'état 1. Le circuit ET est constitué de deux diodes 91 et 92 recevant respectivement la ligne Mi et la colonne vk de la matrice Mk. Le- circuit OU câblé est réalisé au moyen de diodes 93 reliées chacune à un circuit ET. Les bascules Mo à M7 peuvent être montées en registre à décalage si on leur ajoute une fonction de modes, c'est-à-dire une entrée telle que lorsqu'elle a la valeur logique 1, les autres entrées sont inhibées. On peut alors obtenir les forçages et les sorties du microprogramme en série sur les deux fils Us et ys. Comme indiqué plus haut, la coassignation peut être faite sous forme transition-sortie. La détermination de l'assignation des états dans cette forme est indiquée ci-après pour exemple indiqué. Les matrices carrées représentant mathématiquement les symboles vj de transition doivent être décomposées selon que la sortie est l'un ou l'autre des yi pendant le branchement sur condition vj, de sorte que vj = pi=1 (yi#vj). Il faut alors considérer les coétat ek = ve générés par multiplication matricielle à partir de eij = (yi#vj) e0 où et0 = (11...1). Dans 1'exemple précédent, cela donne v0 = (y0 v0)+(y1 v0) avec (y0v0) et (y1 v0) = et v1 =(y0 v1)+(y1 v1) avec (y1 v1) et (Y1 v1) = Cela donne la table d'assignation de la figure 10. soit nS et nT les nombres d'états du microalgorttbme K en formes état-sortie et transition-sortie respectivement nT n5 nT x p où p est le nombre de microcrdres. Ici n a = 4 et = 3. Soient NS et NT les nombres de coétats correspondants nT NT NS. Ice NS = 8 et NT = La forme KDT transition-sortie offre le double avantage sur la forme KDS état-sortie d'être donc plus compacte mais aussi plus rapide à cause du type de logique de sortie (signaux de type impulsionnel comme les entrées).Elle permet aussi de ne pas -implémenter une bascule sans successeur, c'est-à-dire pour une sortIe y1 dont le coétat ei; est tel qu'il n'existe pas de condition v telle que eij = vek pour un autre coétat ek Le forçage d'un état peut être sériel seulement et noté KDs (par connexion des bascules en registre à décalage) ou aussi paral lèle et noté KDsp (par réemploi des entrées de condition parallèle intersectées par l'entrée de rythme1 ajoutée aux conditions de branchement dans V). 1a1 invention permet d'obtenir une matrice de programmation Mb de structure simple et de réalisation facile. En effet, une réalim tion de cette matrice d'enchaînement au moyen d'une mémoire morte programmable (Programmable Read-Only Memory PROM) nécessiterait 2q+N lignes au lieu de qN lignes grâce à l'invention ; une réalisation au moyen d'un tableau logique programmable (Programmable Logic Array, PIA) nécessiterait qN2 diodes alors que selon l'in- vention on n'utilise aucune diode L'utilisation d'une mémoire morte associative (Associative Read-Only Memory AROM) ne permet pas d'utiliser dans la matrice de commande la simplicité e la logique utilisée conformément à l'invention, logique en forme normale disjonctive avec entrance 2 par porte ET, ni la géométrie du module selon l'invention, savoir le croisement orthogonal des lignes de coétats et des colonnes de conditions.On t dore que le module selon l'4nver- tion présente une structure tres simple, ce qui permet d'améliorer notablement son prix de revient et sa fiabilité. A titre d'exemple; la demanderesse indique la réalisation dlun module logique selon l'invention au type état-sortie avec forçage sériel des états pour un microalgorithme présentiant 14 conditions de branchement à codage primitif et 24 coétats. Le nombre de broches logiques est ds 4 q + O . 44. Il faut aussi ajouter trois broches technologiques GND (ground), CFF (clear flipflops) et VCC (supply voltage j et une broche NC (non eonnectéej, ce qui porte le total du nombre de broches à 44 + 1 + ) = 48. Le boîtier est un parallèlépipède rectangle symétrique plat avec ("Flat Package") les dimensions suivantes hauteur h = 4mm, longueur 1 = - lOmm, largeur w = 20mm. Chaque longueur porte 16 broches et chaque largeur en porte 8, réparties comme suit - une longuçeur et une largeur adjacentes portent les sorties YL des bascules M, - l'autre longueur porte les 14 entrées de conditions V et les deux broches de signaux logiques 1 et O (respectivement Z et 4 - l'autre largeur porte les entrées de contrôle (horloge T, mode ), les connexions sérielles (u# et y#), une broche libre (NC), les broches technolo-giques (GND, CFF et V:C. La logique interne au boîtier est faite d'une superposition de couches semiconductrice CMOS dessinées par masquage et où l'un des masques permet d'effectuer la "programmation" des matrices Mc et Mb. Les modules-logiques universels selon l'invention peuvent avantageusement être réalisés en utilisant la technique des circuits à haut degré d'intégration (LSI), ce qui présente les avantages suivants Le dessin des composants et de leurs interconnexions est itératif (un motif par coétat Mi) ce qui facilite l'emploi des techniques de masquage les plus économiques pour dépôt des couches isolantes, semi-conductrices et conductrices. Ceci est vrai pour tout choix des valeurs des paramètres (m, n, p, q, NJ et des formes (état-sortie, transition-sortie) et pour toute technologie. D'ailleurs le schéma de la figure 11 montre que cette régularité permet d'extraire d'autres motifs permettant de découper de manière différente mais aussi fructueuse en boîtiers à degré d'intégration moyen ou élevé. Dans ce cas la sortie de la bascule Mi est ramenée sur la matrice Mb de manière interne au boîtier ce qui permet de connecter les divers motifs de manière simple et itérative sur une carte à circuits imprimés. Le rapport du nombre de portes logiques au nombre de broches d'entrée et sortie du. boîtier est maximal pour le boîtier KDTs mais demeure intéressant pour tous les autres déoeupages en bol- tiers. En effet, l'impact essentiel de la coassignation est de simplifier les fonctions de transition Z et de sortie par rap- port à toute autre forme canonique. En particulier, il faut remarquer que les coétats représentent des fonctions complexes sur les sorties de Y nécessaires : la connexion des bascules Mi en sortie met donc à la disposition du logicien des micro-ordres complexes à peu de frais. Alors qu'une réalisation microprogrammée par PIA,--PROM ou requiert un boîtier sans défaut en sortie de fabrication, l'absence d'un circuit de sélection d'adresse sur la matrice mu permet de tolérer la présence de lignes (ou bascules) et colonnes (ou entrées et sorties défectueuses. Il suffit en effet d'implan- ter les coétats et les signaux d'interface sur respectivement des lignes et des colonnes non défectueuses. D'ailleurs la simplicité fonctionnelle de la matrice Mb (absence de diodes aux interconnexions) rend plus fiables sa na- brication et sa programmation. Par ailleurs, l'invention permet de simplifier les tests de recette. En effet, d'une part, les bascules Mi sont complètement observables et contrôlables Cpar Fs et u respectivement) et immédiate- ment observables (par Y,i, d'autre part les fonctions en entrée parallèle de chacune étant en forme canonique disjonctive, un programme de test comporterait essentiellement une boucle de test paramétrée par la table le liaison. De plus il est possible de compléter le schéma des modules en permettant le aéc & age des bascules dans les deux sens (par adjonction d'une commande de moue ' et Ge uT5 et ytS; Dans tous les cas le diagnostic obtenu est tres complet puisqu'î permet la localisation d'avarie avec précision. Le rapport du nombre de diodes au nombre dc bascules, très élevé en microprogrammation (on désigne par diode la fonction logique, même si un transistor est employé pour implémenter un point-mémoire ae commande), est considérablement réduit ici puisque l'on utilise m x N diodes dans Mc et 3(q+1) x N diedes en sortie de Mb (à comparer à (p +log2n) x n en microprogrammation, non compris le décodeur de lon à Surtout, tous les microordres possibles de Y sur un espace d'état donné Z sont directement accessibles sans logique de sortie. La figure 12 montre qu'il est possible d t élisiner les diodes des points programmables de la matrice de forçage en aj-outant m colonnes de forçage dans la matrice- de commande M comme cela est indiqué figure 12 dont la partie supérieure représente un motif du schéma de la figure 5 et la partie inférieure ce motif modifié--. La suppression du décodage d'adresse permet de réduire le coût du microprogramme et d'augmenter sa vitesse de fonctionnement. L'invention permet également de diminuer la variance du temps de traversée des couches pendant les transitions d'états. En effet, la structure à entrance fixe en forme canonique dfsjor,c- tive garantit que pour tout état (ou coétat) et toute entrée V ou U, le nombre de couches logiques à traverser pour positionner les bascules de l'état suivant est identique. La variance étant seulement liée aux différences de longueur des interconnexions et aux irrégularités entre composants, il est possible d'ajuster au plus près la période d'horloge T à la valeur du temps de cycle minimal dans le module. Une autre conséquence de l'absence de sélection d'adresse est la possibilité d'exécution simultanée de plusieurs microalgorithmes synchrones sur un seul boîtier. Ces microalgorithmes se partagent alors de manière exclusive le registre des bascules Mi mais peuvent avoir en commun, soit des entrées U, soit des entrées V, soit partie des deux. Ces microalgorithmes peuvent d'ailleurs astre activés et exécutés soit de manière simultanée, soit successivement, et yuans ce cas il se pQ;t que l'un soit appelé par l'autre, ce qui permet la décomposition en sous-algorithmes ou en coroutines. Les tests de recette peuvent être réutilisés en maintenance ce qui favorise la détection d'avarie et sa localisation- au boî- tier près. Mais encore, la disponibilité automatlque d'un état de repos stable (z à coassignation 00...0; garantit l'arrêt absolu du fonctionnement parallèle du boîtier.Cet état peut être atteint par une entrée u#, mais aussi par la broche technologique CFF (clear flipflopsj Selon une variante de- l'invention, il peut être intéressant de réduire le nombre N de broches de sortie d'un module logique universel par un code analytique à un nombre dont la valeur minimale Cmn est donné par log0N # Cmin La figure 15 illustre un tel codage. La matrice d'action Ma est à diodes dont les points connectés correspondent aux 1 de la table de codage adoptée. Ce dispositIf est applicable aussi bien aux entrées V où une matrice Me programmable (PROM) permet 'utiliser un codage adapté à la structure interne (par exemple, compatible avec le découpage des coétats pour le parallélisme de déroulernentj. R-E V E rT D I C A T I O N S 1) Module logique universel à logique séquentielle destiné à définir le déroulement d'une séquence logique définie par n états élémentaires, q conditions de branchement exclusives, p sorties, telles que des microordres déclenchant une action extérieurc, caractérisé par le fait que le module comporte - N bascules logiques de type DATA correspondant chacune à un coétat déterminé à partir aes n états. - Une première matrice dite de commande à q.N lignes et q colonnes, cette matrice comportant des circuits logiques ET à raison d'un circuit logique ET par ligne et par colonne, chaque colonne recevant un signal de condItion de branchement. - N circuits logiques OU à q entrées dont la sortie est reliée de manière biunivoque aux bascules précitées et aont les entrées sont reliées aux lignes de la première matrice de telle manière que chaque condition de branchement puisse agir sur chacune des bascules, la deuxième entrée ae chaque bascule recevant un signal d'horloge. - Une deuxième matrice dite ue programmation à q.N lignes et N+? colonnes, qui reçoit sur chacune de ses colonnes le signal de sortie d'une bascule, les deux dernières colonnes recevant respectivement un signal logique O et I, et dont les lignes sont reliées aux l unes de la première matrice, ladite deuxième matrice comportant des connexions simples sans apode entre lignes et colonnes à raison d'au plus un point bye connexion par ligne. 2J Module logique selon la revendication 1, ceractérisé par le fait que:la première matrice de commande compcrte N lignes supplémentaires à raison d'une par bascule et une colonne supplémentaire reliée à un signal de condition dit de rythme, la uisposi- ion des circuits ET restant la même. les circuits logiques OU comportent une entrée supplémentaire et la disposition est telle que chaque bascule puisse être commandée par cnacune des conditions de brarchement ou par le signal de rythme, La deuxieme matrice de transition comporte N lignes supplé- mentaires reliées chacune à un circuit logIque ET de la première matrice de commande, chacun de ces circuits logiques ET recevant par ailleurs le signal de rythme et étant relié à un des circuits logiques OU précités, - et qu t on prévoit une troisième matrice dite se forçage à N lignes et ni colonnes, m étant le nombre dese forçages d'état ni- tial désirés, dont les lignes scnt reliées aux lignes supplémen- taires de la matrice de programmation et et les colonnes redoivent les signaux de forçage de l'état initial codés 1 parmi m, ladite matrice de forçage étant programmée au moyen de diodes. 3) Module logique selon l'une des revendIcations 1 ou 2 caractérisé par le fait que les bascules sont montées en registre à décalage et quelles comportent à cet effet une entrée supplémentaire de mode permettant a'inhiber les autres entrées, ainsi qu'une entrée et une sortie sérielles de données. 4J Module logique selon l'une des revendications précédents, caractérisé par le fait que les sorties extérieures sont prélevées sur les sorties des bascules. 5j Module logique selon l'une aes revendications 1 à 3, caractérisé par le fait que les sorties extérieures- sont prélevées à la sortie des circuits logiques OU précités. 6u Module logique selon l'une des revendications 2 à 5, caractérisé par le fait que l'on ajoute à la matrice de commande' m colonnes de forçage connectés par des circuits logiques ET aux circuits logiques OU de manière à réaliser les forçages désirés pour chaque condition de forçage d'état initial.