À 2493641 RESEAU LOGIQUE INTEGRE A PROGRAMMATION ELECTRIQUE SIMPLIFIEE La présente invention concerne les réseaux logi- ques programmables, c'est-à-dire des circuits intégrés possédant n entrées de signaux logiques et m sorties, et capables de fournir sur chacune des sorties une com- binaison logique particulière, programmée, des signaux binaires appliqués sur les entrées. Cette combinaison logique s'exprime sous forme d'une somme logique de plusieurs produits logiques des signaux d'entrée. Dans le cas général, un réseau logique program- mable possède deux matrices de portes, à savoir: - d'une part une matrice produit qui consiste en une série de p portes logiques de 2n entrées chacune; ces entrées sont couplées à certaines des n entrées Ai, complémentées ou non du réseau, et les sorties des por- tes fournissent des signaux qui sont des produits des variables d'entrée ai. reçues; on désigne ces produits par le terme "produits intermédiaires"; ils sont au nombre de p s'il y a p portes; cette matrice produit s'appelle généralement matrice ET et les portes sont des portes ET ou réalisent l'équivalent logique d'une fonction ET. - d'autre part une matrice somme ou matrice OU qui consiste en une série de m portes (autant que de sorties du réseau, c'est-à-dire que de combinaisons logiques différentes à réaliser); ces portes sont des portes OU, ou en réalisent l'équivalent logique; elles ont chacune p entrées couplées respectivement à cer- taines des sorties des p portes ET de la matrice ET; les sorties des m portes OU fournissent des sommes lo- giques des signaux appliqués à leurs entrées, c'est-à- dire des sommes des produits des variables d'entrée. - 2- Ces sorties sont les sorties du réseau. Le but de la programmation du réseau est de faire en sorte que chaque sortie définisse une combinaison particulière choisie des variables d'entrée, exprimée sous forme d'une somme de produits de certaines de ces variables. On peut faire ici une parenthèse pour indiquer que le raisonnement serait identique si on inversait les positions des matrices OU et ET pour réaliser en sortie des combinaisons logiques exprimées sous forme de produits de sommes. L'algèbre de Boole montre qu'une telle inversion est possible sans difficultés, et on se contentera de décrire l'invention pour des sommes de produits. La programmation du réseau consiste donc à définir la matrice ET pour obtenir des produits de certaines variables d'entrée, et à définir la matrice OU pour obtenir des sommes de certains des produits réalisés. Par exemple, pour obtenir les combinaisons S1 =-al a2 a3 + a1 a2 et S2 = a1 a3 + a1 a2 dans un réseau à trois entrées et deux sorties, il faut: 1 ) réaliser une porte ET recevant Fjr a2 et a3, une autre recevant a et a2 et une troisième recevant a1 et a3* ) réaliser une porte OU recevant la sortie des première et deuxième porte ET, et une autre recevant la sortie des deuxième et troisième portes ET. Avant programmation, les portes ET de la matrice ET peuvent recevoir toutes les entrées de variables ai -3- et leurs compléments; après programmation elles ne reçoivent que les variables sélectionnées pour faire un produit particulier; les autres doivent être dé- connectées pour qu'il n'y ait pas d'influence, sur un produit particulier, d'une variable a. n'apparaissant i pas dans ce produit. De même, les portes OU de la matrice OU peuvent recevoir avant programmation toutes les sorties des portes ET, c'est-à-dire qu'elles peuvent additionner tous les p produits intermédiaires calculés par la matrice ET; après programmation, une porte OU corres- pondant à une sortie du réseau ne doit recevoir sur ses entrées que les produits intermédiaires apparais- sant dans la combinaison logique à réaliser sur cette sortie; les sorties des autres portes ET, correspon- dant à des produits ne devant pas apparaître dans la somme, doivent être déconnectées. La présente invention s'intéresse aux réseaux qui sont programmables électriquement par l'utilisateur et non à ceux qui sont programmés en fabrication par des techniques de masquage. Le problème à résoudre est le suivant: la programmation électrique du réseau nécessite d'avoir un accès électrique individuel à toutes les entrées des portes ET et des portes OU, au total à 2n x p entrées de portes ET ajoutées à p x m entrées de portes OU. Par exemple, on peut avoir 8 entrées se décomposant en 16 avec leurs compléments, 8 sorties et 64 produits intermédiaires (les nombres n, m et p sont indépendants et déterminent la capacité globale du réseau). Ces chiffres correspondent à 1536 points de programmation à effectuer. Chacun de ces points doit être accessible individuellement pour appliquer un signal de program- mation adéquat (par exemple une tension électrique capable de détruire un fusible en série avec une diode -4 - dans une réalisation particulièrement simple). La programmation vue du côté de l'utilisateur consiste à sélectionner les entrées de portes qui doi- vent recevoir un signal de neutralisation, à leur ap- pliquer ce signal, et à laisser les autres entrées actives. S'il y a un nombre de points de programmation aussi élevé que 1536, on peut prévoir que 11 entrées binaires (2 = 2048) serviront à désigner chacune des portes à travers un décodeur, pour diriger exclusive- ment vers la porte désignée le signal de programmation. Il est impératif, pour des raisons de minimisation du nombre de broches de connexions extérieures du circuit intégré, que ces entrées soient prises parmi les broches existant obligatoirement sur le circuit intégré, par exemple les broches correspondant aux entrées Ao et An-i et aux sorties So à Sm-1, ces broches n'ayant alors pas la même fonction en mode normal de calcul logique et en mode exceptionnel de programmation (une entrée spéciale pouvant définir le mode). Pour l'opérateur, le problème est le suivant, il faut: - - qu'il établisse les formules des diverses com- binaisons logiques à réaliser (les diverses sommes de produits des variables d'entrée ai); et qu'il affecte à chacune une sortie du réseau, c'est-à-dire une porte OU déterminée; - qu'il établisse une liste de tous les produits intermédiaires apparaissant dans les diverses combi- naisons logiques; et qu'il affecte une porte ET à chacun d'eux; - qu'il détermine, pour un produit particulier donc pour une porte ET respective, quelles sont les entrées de cette porte ET à neutraliser, compte tenu de la correspondance entre les entrées ai du réseau et les entrées des portes ET; cette correspondance est di- recte puisque chaque entrée Ai du réseau est connectée à une entrée respective de toutes les portes ET; - qu'il prévoie, avant de passer en programmation, l'adressage de chacune des entrées à neutraliser, comptetenu de la correspondance prévue par le fabricant, entre les entrées d'adressage et les entrées des portes ET à neutraliser; mais cette fois, même si ce sont les en- trées Ai, c'est-à-dire les entrées de variables, qui servent aussi d'entrées d'adressage en mode programma- tion, la correspondance n'est plus du tout directe; elle se fait à travers un codage binaire à cause du grand nombre (2n x p) de points de programmation à adresser dans la matrice ET; - après avoir fait ces opérations et programmé toute la matrice ET, il faut encore que l'opérateur détermine, pour une combinaison logique particulière à réaliser, donc pour une porte OU respective, quelles sont les entrées de cette porte OU qu'il faut neutra- liser, compte-tenu de la correspondance entre la liste des produits intermédiaires qu'il a établie et les positions d'entrées de porte OU connectées aux sorties de produits intermédiaires. - enfin, il faut que l'opérateur prévoie, avant de passer en programmation de la matrice OU, l'adres- - sage de chacune des entrées de porte OU à neutraliser, compte-tenu de la correspondance prévue par le fabri- cant, en mode de programmation, entre les entrées d'adressage et les entrées de porte OU à déconnecter; cette correspondance est évidemment encore tout à fait indirecte et l'utilisateur doit en connaître le codage binaire; si ce sont encore les entrées de variable a. qui servent d'entrées d'adressage de la matrice OU en mode de programmation, cela fait une correspondance de plus à connaître pour le programmeur entre les numéros - 6 - de broches extérieures du réseau et la structure interne de celui-ci. Un exemple de réseau logique programmable utili- sant ce principe est le circuit IM5200 de la société INTERSIL qui est programmable électriquement; dans ce circuit, deux des entrées de variable Ai servent à définir le passage en mode de programmation, quatre sorties du réseau servent, en mode de programmation, à désigner des secteurs de matrice ET et OU à programmer, et neuf entrées de variables servent, en mode de pro- grammation, à désigner les entrées de portes à déconnecter. Le travail très important du programmeur peut se justifier car il s'agit d'un réseau non reprogrammable. Toutefois, il serait souhaitable, même dans ce cas, de réduire ce travail i il est de toutes façons nécessaire d'y parvenir si le réseau est effaçable et reprogram- mable électriquement, faute de quoi l'intérêt de la reprogrammation disparaîtrait devant la difficulté de celle-ci. Tel est le but que cherche à atteindre la pré- sente invention en proposant un réseau logique program- mable - qui présente une grande facilité d'utilisation lors de la programmation, - qui permet en particulier de programmer simul- tanément la matrice ET et la matrice OU contrairement à ce qui se faisait jusqu'à maintenant, - qui permet l'utilisation directe des entrées de variables Ai avec une signification commune en mode de lecture et en mode de programmation de la matrice ET, - qui de préférence ne nécesite pas de broches de connexion supplémentaires pour l'adressage des entrées des portes de la matrice ET et de la matrice OU en mode de programmation. -7- - qui permet un test après programmation pour la vérification individuelle soit de la programmation de chaque porte ET ou OU, soit même de celle de chaque entrée de porte ET ou OU, avec une grande facilité d'adressage des portes ou entrées à tester, - qui permet aussi, dans le cas du test de la programmation de chaque porte, d'effectuer simultané- ment le test de la matrice ET et de la matrice OU. Pour cela, l'invention propose un réseau logique programmable caractérisé par le fait qu'il comporte un décodeur capable de désigner individuellement chacune des colonnes de sortie de la matrice produit ainsi qu'une ligne d'entrée de la matrice somme correspondant au même produit intermédiaire que la colonne désignée, un circuit logique d'interface de liaison entre matrices, apte à engendrer, à partir du signal de sortie du déco- deur et de signaux de commande d'écriture d'un circuit de commande, des signaux de programmation de la colonne désignée et de la ligne correspondante de la matrice somme, le réseau comprenant encore un circuit d'inter- face d'entrée pour engendrer, à partir de signaux d'écriture appliqués sur les entrées de variables et des signaux de commande d'écriture du circuit de commande, des signaux de programmation de lignes de la matrice produit, ces signaux étant tels que le produit intermédiaire obtenu en sortie de la colonne désignée, après programmation par les signaux de programmation de lignes et de colonne, soit un pro- duit des variables correspondant aux entrées de va- riables sur lesquelles on a appliqué un signal d'écri- ture particulier. Autrement dit, le décodeur désigne un produit intermédiaire particulier, et les entrées de variable Ai sont utilisées en programmation, pour établir ce produit intermédiaire, avec la même signification - 8 - qu'en utilisation normale. On lit directement sur le produit intermédiaire à réaliser quelles sont les entrées de variable Ai auxquelles il faut appliquer un signal d'écriture particulier. Selon une autre caractéristique de l'invention, il est prévu aussi un circuit d'interface de sortie apte à engendrer, à partir-de signaux d'écriture appli- qués aux sorties du réseau utilisées comme entrées et de signaux de commande d'écriture du circuit de commande, des signaux de programmation des colonnes de la ma- trice somme, ces signaux étant tels que le produit in- termédiaire désigné par le décodeur apparaisse en mode de lecture sur celles des sorties sur lesquelles on a appliqué un signal d'écriture particulier lors de la programmation. Autrement dit, une fois encore, le travail du programmeur est simplifié car, sachant que le produit intermédiaire désigné par le décodeur doit apparaitre sur telle et telle sortie du réseau, on appliquera un signal d'écriture particulier à ces sorties (utilisées en entrées mais conservant pour le programmeur la même signification). On voit donc que l'invention évite dans une très large mesure la partie fastidieuse du travail de programmation puisque les entrées de variable gardent la même signification qu'on soit en mode de lecture ou en mode de programmation et de plus les sorties du réseau correspondent aussi aux mêmes portes OU en mode de lecture et en mode de programmrîation. C'est ainsi par exemple que pour programmer le produit a.iaak devant apparaître dans plusieurs sommes de produits Sq. Sr et SS, on désignera à l'aide des entrées d'adressage (mode programmation) la porte ET qui doit réaliser ce produit; on appliquera un signal d'écriture particulier aux entrées de variable Ai, Aj et Ak (alors que dans la technique antérieure on 9 9- l'aurait appliqué à des bornes tout à fait différentes); en même temps, on appliquera un signal de programmation de porte OU justement aux sorties Sq. sr et Ss qui doivent engendrer le produit ai a; ak, en laissant les- autres sorties inactives. Ce mode de programmation est donc extrêmement simple pour l'utilisateur qui, dans l'exemple numérique déjà utilisé, se voit épargner la nécessité de connaî- tre une correspondance (binaire) entre onze entrées d'adressage et 1536 entrées de portes à programmer. Il a maintenant à connaître la correspondance faite par le décodeur selon l'invention entre six en- trées d'adressage (26= 64) et les p (64) portes ET, le reste de la détermination des signaux de program- mation à effectuer se faisant par une application d'informations aux entrées de variable Ai et aux sorties de fonction Si avec une correspondance directe et immédiate entre les combinaisons logiques à réali- ser et les signaux de programmation à appliquer. On doit cependant, tout en gardant le principe ainsi expliqué, avec ses avantages, tenir compte de deux facteurs de complication qui sont rendus néces- saires (ici comme d'ailleurs dans la technique anté- rieure) pour ne pas augmenter le nombre de broches de connexions extérieures du circuit intégré. Le premier facteur de complication vient de ce qu'on désire utiliser seulement n broches d'entrée de variables Ai alors que les combinaisons logiques à réaliser par le réseau peuvent comprendre soit ces variables ai soit leurs compléments ai. En lecture, il n'y a pas de difficulté car on introduit une in- formation à deux états: présence de ai ou de son complément, et des signaux binaires O ou 1 appliqués aux n entrées ai suffisent à préciser complètement l'information d'entrée. - 10 - Mais, en mode de programmation, il faut être capable d'introduire pour chaque variable ai une infor- mation à trois états, car un produit à réaliser sur une porte ET peut comprendre la variable ai parmi d'autres - ou comprendre son complément ai - ou ne comprendre ni a. ni a. mais seulement d'autres variables. Cette information à trois états ne peut être obtenue par la seule introduction d'un signal binaire d'écriture sur les entrées Ai comme le décodeur selon l'invention inviterait à le faire. Il faudrait alors dédoubler les entrées Ai pour pouvoir introduire pour chaque variable ai, les trois possibilités ci-dessus (information à deux chiffres binaires). On veut éviter ce dédoublage des broches de connexion qui ferait perdre à l'invention une grande partie de son intérêt (on aurait la simplification de programmation au prix de n broches supplémentaires, ce qui est difficilement acceptable). Le deuxième facteur de complication vient de ce qu'on désire éviter d'avoir des broches d'entrée supplé- mentaires pour effectuer, en mode de programmation, l'a- dressage du décodeur. On ne peut a priori utiliser di- rectement les entrées Ai puisqu'on veut qu'elles ser- vent, en programmation, à diriger les signaux de pro- grammation sur les entrées appropriées des portes ET; on ne peut pas non plus a priori utiliser les sorties Si du réseau logique puisqu'on veut qu'elles servent, en programmation, à diriger les signaux de programma- tion sur les portes OU appropriées. On verra cependant que l'invention permet quand même d'adopter cette dernière solution. Pour résoudre ces deux problèmes simultanément, tout en gardant une grande simplification de la - il - programmation, la présente invention propose d'effectuer chaque étape de programmation en deux temps, ce qui per- met: - d'introduire sur chaque entrée Ai comme signal d'écriture deux informations binaires successives que l'on mémorise pendant l'étape de programmation, ces deux informations indépendantes permettant de choisir, par un codage extrêmement simple et parlant pour le programmeur, entre les trois possibilités de programmation de chaque variable dans un produit (occurence de la variable, oc- curence de son complément, non-occurence); c'est le cir- cuit d'interface d'entrée qui établit trois types de si- gnaux de programmation correspondants. - d'introduire sur les sorties Si, fonctionnant d'abord en entrées d'adressage du décodeur sans qu'il y ait besoin d'entrées d'adressage supplémentaires sur le circuit intégré, une adresse binaire désignant une porte ET; cette adresse est gardée en mémoire par le circuit d'interface de sortie; puis, dans le deuxième temps de l'étape de programmation, on introduit les signaux d'écri- ture particulier sur les sorties Si fonctionnant en entrées de données de programmation correspondant directement aux portes OU à programmer. Cette procédure d'écriture en deux temps pour chaque produit intermédiaire peut être réalisée grâce à la fonc- tion de verrouillage des circuits d'interface d'entrée et sortie. Comme les sorties Si jouent un rôle de sorties et un rôle d'entrées, on interpose entre chaque colonne de sortie de la matrice somme et la sortie Si correspondante un amplificateur à trois états dont le troisième état est commandé par le circuit de commande. De préférence le circuit d'interface d'entrée aiguil- le la première partie du signal d'écriture appliqué à une - 12 - entrée de variable Ai vers une ligne d'entrée de la ma- trice produit correspondant à cette variable Ai, et il aiguille la deuxième partie vers la ligne d'entrée cor- respondant au complément Ai de cette variable. Pour que la grande simplification de program- mation apportée par l'invention garde sa valeur, il faut que le codage des informations introduites en deux temps sur les entrées Ai soit très simple et parlant pour l'opé- rateur. On a donc cherché à se rapprocher le plus possible du code binaire existant sur ces entrées en mode lecture, en effet, en lecture l sur Ai indique la présence de Ai, et un O sur Ai indique la présence de ai; on a donc choisi, en mode de programmation en deux temps, - d'introduire comme signal d'écriture deux fois de suite un l sur Ai si le produit à programmer contient ai - d'introduire deux fois de suite un O sur Ai si le produit à programmer contient a. i - d'introduire une fois un l et une fois un O sur Ai si le produit à programmer ne doit contenir ni ai ni ai. Parmi les avantages de l'invention, on peut encore signaler que les opérations de test des matrices programmées se font avec la même simplification que les opérations de programmation; le test se fait d'ailleurs simultanément pour les deux matrices qui restent indé- pendantes en test comme en programmation. Pour cela, le circuit logique d'interface de liaison entre matrices est apte à engendrer, à partir du signal de sortie du décodeur désignant un produit intermédiaire particulier et de si- gnaux de commande de test venant du circuit de commande, un signal de résultat de test du produit intermédiaire désigné, ce signal étant transmis à une sortie de lec- ture de test. Quant au circuit d'interface d'entrée, il - 13 - est apte à engendrer, à partir de signaux logiques de test appliqués sur les entrées de variable et de signaux de commande de test du circuit de commande, des signaux de test de lignes de la matrice produit, appliqués aux - lignes d'entrées de cette matrice de telle manière qu'il y ait correspondance directe entre l'application d'un si- gnal de test particulier sur chaque entrée de variable et l'application d'un signal de test de ligne sur une ligne de la matrice produit correspondant à cette variable. Là encore, l'invention permet d'effectuer le test de programmation en gardant aux entrées de variable la même signification qu'elles ont en lecture (et en écri- ture). Le test peut se faire entrée de porte par en- trée de porte pour vérifier la neutralisation de chaque connexion, ou plus globalement porte par porte. Les signaux de test appliqués aux entrées de variable Ai peuvent être exactement les mêmes que les si- gnaux d'écriture particulier: signaux à deux informations successives introduites en deux temps, deux l successifs sur Ai produisant un signal de test de ligne sur une li- gne de matrice correspondant à la variable ai, deux 0 suc- cessifs produisent un signal de test de ligne sur une li- gne correspondant à ai, et un 1 et un o produisant si- multanément un signal de test sur les lignes ai et ai. Le circuit d'interface d'entrée fonctionne donc exactement de la même manière en écriture et en test. Par contre, le circuit d'interface de sortie, qui permet d'effectuer le test de la matrice somme, ne fonctionne pas de la même manière en écriture et en test. En mode de test, les sorties Si sont encore utilisées dans un premier temps d'une étape de test pour effectuer l'adressage du décodeur et désigner un produit intermédiaire. Le circuit d'interface de liaison entre - 14 - matrices engendre, à partir du signal du décodeur et de signaux de commande de test venant du circuit de commande, un signal de test de ligne appliqué à la ligne d'entrée de la matrice somme désignée par le décodeur. Pendant que le circuit d'interface de sortie garde en mémoire l'adressage du décodeur, les sorties Si du réseau fonctionnent alors, dans un deuxième temps d'une étape de test, comme sorties des portes de la matrice somme, et fournissent le résultat du test avec une correspondance directe entre le niveau logique obtenu sur chaque sortie et la présence ef- fective du produit intermédiaire désigné dans la combinai- son logique programmée correspondant à cette sortie. On notera que cette utilisation du décodeur et d'un test en deux temps permet de tester simultanément la matrice produit et la matrice somme. On a mentionné jusqu'ici le rôle des circuits d'interface en écriture et en test. En utilisation normale du réseau, c'est à dire en mode de lecture, le circuit d'interface d'entrée transmet les signaux logiques ap- paraissant sur les entrées Ai d'une part directement vers une ligne de la matrice produit et d'autre part après in- version vers une ligne voisine. Le circuit d'interface de sortie transmet directement les sorties des colonnes de la matrice somme vers les sorties Si respectives. Le cir- cuit d'interface de-liaison entre matrices relie la sor- tie de chaque colonne de matrice produit à une ligne d'en- trée respective de la matrice somme. Dans un mode de réalisation préférentiel de l'invention, on utilise des transistors à effet de champ du type MNOS (métal - nitrure - oxyde semiconducteur) pour programmer la connexion de chaque entrée de variable à une entrée de porte ET respective, ou la connexion de chaque sortie de porte ET à une entrée de porte OU res- pective. - 15 - Un transistor MNOS présente la possibilité, remarquable pour réaliser une programmation électrique effaçable, de pouvoir être rendu non conducteur de ma- nière permanente par application sur sa grille de com- mande d'une haute tension qui réalise un piégeage d'élec- trons à l'interface entre la couche de nitrure et la couche d'oxyde. Les électrons piégés restent prisonniers de cet interface lorsque la haute tension disparait et ils maintiennent le transistor MNOS bloqué; l'application ultérieure sur la grille de commande d'une tension qui-nor- malement rendrait le transistor conducteur n'a maintenant plus d'effet sur lui. Ce piégeage peut aussi être effacé électri- quement par application d'une haute tension en sens inver- se. Les transistors n'ayant pas été soumis à la haute tension de piégeage se comportent normalement en transistors c'est à dire qu'ils peuvent être bloqués ou rendus conducteurs selon la tension appliquée à leur gril- *le. Cette propriété des transistors MNOS est uti- lisée particulièrement économiquement (en nombre de transis- tors utilisés pour une morte) si on réalise les portes ET et OU sous la forme de portes NOR (NON-OU). Il est en effet équivalent du point de vue logique d'utiliser à la place d'une porte ET à n entrées une porte NOR à n entrées avec un inverseur en amont de chaque entrée. De même, une porte OU est une porte NOR suivie d'un inverseur. On continuera dans la suite à parler de porte OU et ET pour désigner leur fonction globale, en sachant qu'elles sont réalisées à par- tir de portes NOR L'intérêt d'utiliser des portes NOR est que ces portes peuvent comprendre uniquement des transistors MNOS en parallèle, un par entrée de porte, les grilles - 16 - de commande servant d'entrées, les sources étant à la masse et tous les drains (reliés entre eux et constituant la sortie de la porte NOR) étant reliés à une tension po- sitive à travers une charge commune. Il découle de cette structure que chaque porte NOR comprend plusieurs entrées indépendantes qui sont les grilles des transistors, une connexion de liaison des drains entre eux, une connexion de liaison des sources entre elles et une connexion de tension d'alimentation. On peut y ajouter une connexion de liaison des substrats de transistors entre eux. Par ces cinq connexions on peut, - en mode de lecture, polariser les transistors de manière adéquate pour qu'ils réalisent la fonction NOR - en mode de programmation (effacement d'abord puis écriture), appliquer sur les connexions les tensions adéquates autorisant le "piégeage" ou non des transistors. L'application des polarisations ou tensions de programmation adéquates est effectuée par les circuits d'interface d'entrée, de sortie, et de liaison, sous la commande du circuit de commande. Les signaux de program- mation ou de test engendrés par ces circuits sont cons- titués par des configurations déterminées de tension aux électrodes des transistors MNOS (tension nulle ou normale ou élevée ou liaison haute impédence). D'autres caractéristiques et avantages de l'in- vention apparaîtront à la lecture-de la description détail- lée qui suit et qui est faite en référence aux dessins an- nexés dans lesquels: - la figure 1 montre le schéma global extrême- ment simplifié d'un réseau logique programmable - la figure 2 en montre l'équivalent réalisé avec des portes NOR - la figure 3 montre une porte NOR.réalisée à l'aide de transistors MNOS - 17 - - - la figure 4 montre un schéma bloc de la struc- ture de réseau selon la caractéristique essentielle de l 'invention - la figure 5 représente le bloc du circuit lot- gique de commande du réseau - la figure 6 représente le circuit d'interface de liaison entre matrices - la figure 7 représente le circuit d'interface d'entrée - la figure 8 représente le diagramme temporel des signaux déterminant la décomposition en deux temps de la programmation ou du test - la figure 9 représente le circuit d'interface de sortie - la figure 10 représente un- circuit de produc- tion d'un résultat de test de la matrice ET et de produc- tion d'une tension de protection des drains des transis- tors MNOS. On voit à la figure i le schéma de principe d'un réseau logique programmable: à partir de n entrées de variables Ao à An-i on peut introduire des signaux logi- ques a0 à an-i et leurs compléments a à an-l sur 2 n lignes d'entrées d'une matrice de portes ET (p portes ET à 2 n entrées chacune) qui fournit à sa sortie des pro- duits logiques intermédiaires Mo à Mp-1 des variables d'entrée ai (directes ou complémentées). Chacun des pro- duits intermédiaires est déterminé par celles des variab- les d'entrée ou de leurs compléments qui sont effecti- vement couplées aux entrées de porte ET. Les produits intermédiaires Mi constituent à la fois des colonnes de sortie de la matrice ET et des lignes d'entrée d'une matrice de portes OU (m portes OU à p en- trées chacune) qui fournit, sur ses colonnes de sortie So à Sm-1, des combinaisons logiques des variables d'entrée - 18 - ao à an-1 sous forme de sommes de produits intermédiaires des variables. Chacune des sommes est déterminée par le couplage effectif entre certaines colonnes de produits intermédiaires et les entrées de la porte OU correspon- dant à cette somme. La programmation du réseau pour obtenir sur chacune des sorties la combinaison logique désirée con- siste à sélectionner les connexions à réaliser entre les entrées de variable et les portes ET, ainsi qu'entre les sorties de la matrice ET et les entrées de portes OU. La figure 2 montre un réseau logique équivalent à celui de la figure 1 mais o les matrices produit et somme (matrices ET et OU) sont réalisées avec des portes NOR (NON-OU). Une porte ET peut en effet se remplacer par une porte NOR dont chaque entrée est précédée d'un inver- seur; une porte OU par une porte NOR suivie d'un inver- seur. On pourrait aussi n'utiliser que des OU et inverseurs. La figure 3 montre un exemple de porte NOR à n entrées ao, al..an,1' réalisée à l'aide de transistors à effet de champ. Il s'agit ici de transistors MNOS (métal- nitrure-oxyde-semiconducteur) à canal N. Il pourrait s'agir d'autres types de transistors sans sortir du cadre de l'in- vention, mais ceux-ci sont particulièrement appropriés pour une programmation électrique du réseau. Pour jouer le rôle d'une porte NOR, les sources des transistors sont toutes réunies et reliées à la masse, les drains sont tous réunis et reliés à une charge commune connectée à une tension d'alimentation normale Vcc. Les sub- strats sont tous reliés à une tension commune, en principe de O volt. Chaque grille de commande de transistor sert d'entrée à la porte NOR et la sortie est prise sur les drains réunis. Les signaux logiques a., aof al, al...,an-1 servent à bloquer ou débloquer les transistors. La mise en conduction d'un ou plusieurs transistors par un signal - 19 - logique de niveau 1 (quelques volts positifs sur la gril- le), met à zéro la sortie. Le blocage de tous les transis- tors simultanément met à 1 la sortie. Il s'agit donc bien d'une porte NOR. La programmation de la porte consiste à sup- primer ou mettre en blocage permanent les transistors cor- respondant aux variables qui ne doivent pas influer sur la sortie; par exemple, réaliser en sortie le produit ai a. consiste à supprimer ou bloquer tous les transistors reliés aux autres entrées que ai et aj; de même, réaliser la som- me a. + a. consisterait à ne conserver comme transistors actifs que ceux reliés aux entrées ai et aj. On conçoit qu'on ne sortirait pas du cadre de l'invention en adoptant une autre structure de porte NOR ou OU, par exemple en utilisant la source des transistors comme sortie avec une charge en série avec la source et le drain à une tension fixe. Le choix de transistors MNOS comme éléments des portes est particulièrement avantageux car il offre une possibilité commode de programmation électrique pour neutraliser l'influence d'une entrée de porte NOR sur sa sortie. Cette neutralisation se fait par la mise en état de blocage permanent du transistor MNOS par piégeage d'électrons à l'interface de ses deux couches d'oxyde; les électrons piégés maintiennent la tension de seuil du tran- sistor à-une valeur haute (environ 7 V) et créent un seuil de tension de déblocage que ne peut franchir un signal lo- gique normal (O à 5 V) appliqué à la grille. Les transistors non "piégds" sont conducteurs ou bloqués selon leur tension de grille car leur tension de seuil est basse: 1 à 2 volts. 249364( - 20 - Le piégeage se fait par application d'une forte tension sur la grille (environ 25 volts). Il est non des- tructif et réversible: on peut évacuer les électrons pié- gés vers le substrat par application d'une forte tension sur celui-ci. Il s'agit alors d'un effacement électrique de la programmation, tous les transistors revenant dans leur état normal. On peut déjà indiquer, avant de décrire le schéma-bloc du réseau selon l'invention, le tableau des valeurs de tension à appliquer aux différentes connexions électriques de la porte NOR à transistors MNOS pour l'utilisation du réseau dans sa fonction normale (mode de lecture) - l'effacement d'une programmation (mode d'ef- facement) - la programmation de nouvelles fonctions du réseau (mode d'écriture) 1 ) Lecture Sources à O volt Drains reliés à la charge 20. Charge reliée à Vcc = environ 5 volts Substrat à zéro Grilles recevant les signaux logiques des entrées de variable pour la matrice ET et les sorties de portes de la matrice ET pour la matrice OU 25. Sortie sur les drains réunis ) Effacement Sources déconnectées (état haute impédance) Drains déconnectés (état haute impédance) Grilles reliées à la masse 30. Substrats reliés à une haute tension Vpp e 25 volts ) Ecriture a) transistors à bloquer b) transistors à garder actifs Sources déconnectées. Sources déconnectées Drains à O volt. Drains à O volt - 21 - Substrat à O volt | substrat à O volt grilles à haute tension. grilles à O volt c) Colonnes de transistors à protéger pendant qu'une colonne particulière est programmée 5. sources déconnectées drains à une tension de protection Vp élevée Substrat à O volt grilles quelconques On remarquera que ces modes d'application de tension pour l'écriture permettent de programmer colonne par colonne chaque matrice de portes NOR puisque l'appli- cation d'une tension de protection Vp aux drains protège les colonnes correspondantes sans empêcher l'application de tensions de grille quelconques à tous les transistors de la matrice. Chaque matrice sera constituée de la manière suivante: - toutes les sources des transistors MNOS sont reliées entre elles par colonnes pour qu'une colonne de source puisse être mise à la masse ou en l'air; - tous les drains sont reliés entre eux par colonnes pour que chaque colonne de drains puisse êtrein- dépendamnment des autres, reliée à une charge ou à la masse ou à une tension de protection Vp, ou être mise en l'air; - toutes les grilles sont reliées entre elles par lignes de la matrice pour que chaque ligne puisse être, indépendamment des autres, reliée à une tension nulle ou normale (en lecture et en test), ou à une tension nulle ou élevée (en écriture) - tous les substrats sont reliés entre eux et à un conducteur de commande qui peut les mettre à une ten- sion nulle (cas général) ou élevée (en effacement). Le rôle des circuits d'interface du réseau sera d'appliquer les tensions appropriées sur les lignes - 22 - de grille, les colonnes de source et de drains, et les substrats réunis, en fonction de signaux de mode de fonc- tionnement (lecture, effacement, écriture, test) et en fonction des signaux logiques appliqués aux diverses en- trées du réseau, y compris les sorties utilisées comme entrées. Ayant ainsi expliqué le principe structurel de base du réseau logique programmable électriquement selon l'invention, on va maintenant décrire le schéma- bloc du réseau permettant essentiellement de réaliser la programmation sous la forme simple expliquée dans le pré- ambule de la présente demande de brevet. Ce schéma-bloc est représenté à la figure 4. On y voit encore une matrice produit ET (10) avec ses 2 n entrées de variables a0, a0 à anl, anl, et une matrice OU (20) à base de transistors MNOS. La liaison entre elles n'est pas directe, elle se fait à travers un circuit lo- gique d'interface (30) qui a pour rôles essentiels: - d'une part de rétablir la liaison directe entre matrice ET et matrice OU en mode de lecture - d'autre part d'établir, en mode d'effacement, en mode d'écriture (et aussi en mode de test lorsqu'on veut pouvoir vérifier la programmation du réseau), les connexions adéquates permettant l'application des niveaux de tension souhaités sur les colonnes de drains et sources des transistors de la matrice ET, sur les lignes de grille de la matrice OU, et sur les substrats des transistors des deux matrices. Selon la caractéristique essentielle de l'in- vention, un décodeur (40) est prévu, apte à désigner in- dividuellement chacune des colonnes de sortie de la ma- trice ET ainsi que la ligne d'entrée de la matrice OU cor- respondant au même produit intermédiaire que la colonne de sortie désignée. - 23 - Cette désignation est destinée au circuit lo- gique d'interface qui réalise l'application des tensions convenables à la colonne et à la ligne désignée. Le décodeur est constitué par exemple sim- plement par une série de p portes ET ou-NOR qui reçoivent des adresses binaires servant à la désignation de la co- lonne choisie et qui ont des entrées programmées (de ma- nière définitive) pour que chaque adresse possible ouvre une et une seule porte parmi les p portes du décodeur. Le décodeur sert en mode d'écriture surtout mais également en mode de test. Les adresses binaires qu'il reçoit sont amenées par des broches de connexion extérieures à l'aide desquel- les l'utilisateur choisit la colonne de transistors à pro- grammer dans la matrice ET. Ces broches sont, par souci de réduction du nombre de broches extérieures, de préfé- rence choisies parmi des broches utilisées à d'autres fins en mode de lecture. Elles ne sont cependant pas prises parmi les broches d'entrées de variables Ao à An-i qui ser- vent à un autre usage pendant la programmation. Dans l'exemple préférentiel décrit, les entrées d'adressage du décodeur en mode d'écriture sont prises parmi les sorties So à Sm-i du réseau, qui fonctionnent alors en entrées. Il y a besoin en réalité d'un nombre r d'entrées d'adressage du décodeur tel que 2r-1 constituant le décodeur. Pour que les sorties So à Sm-i puissent fonc- tionner en sorties des portes OU de la matrice OU, et aussi en entrées pour le décodeur, on interpose entre les sorties de porte OU et les bornes Si des amplificateurs tampons (50) 2493641. 24- à trois états, avec une commande de troisième état iso- lant les sorties Si des sorties SOi de la matrice OU. La mise dans le troisième état est effectuée en mode d'écriture et est supprimée en mode de lecture. En mode de test, on verra qu'elle est utilisée partiellement. Les bornes de sortie Si (So à Sm-1) sont donc raccordées aux entrées du décodeur, mais par l'intermé- diaire d'un circuit d'interface de sortie (60) ayant no- tamment un rôle de verrouillage et d'aiguillage car on veut, en mode d'écriture, utiliser les sorties Si non seulement comme entrées d'adressage du décodeur (dans un premier temps de l'écriture), mais aussi dans un deux- ième temps comme entrées d'écriture proprement dite par lesquelles on peut désigner ceux dès transistors MNOS de la matrice OU qui doivent être bloqués (le décodeur in- diquant seulement à quelle ligne d'entrée de la matrice OU on s'intéresse au cours d'une étape de programmation). Le circuit d'interface de sortie (60) est là pour garder-en mémoire l'adressage du décodeur pendant qu'on introduit sur les bornes Si les données d'écriture qui sont dirigées vers les sorties SOi des portes OU (drains réunis des transistors MNOS). De même qu'on choisit d'effectuer en deux temps l'introduction des instructions de programmation de la matrice OU sur les sorties Si, adresses du décodeur puis données d'écriture, on introduit aussi en deux temps les données d'écriture de la matrice ET. Ceci a déjà été expliqué dans le préambule de la demande de brevet: pen- dant que l'on met et garde en mémoire l'adressage du dé- codeur, désignant ainsi la colonne de transistors formant une porte ET à laquelle on s'intéresse, on introduit sur les entrées Ai (Ao à An-1) du réseau une information de désignation de ceux des transistors de la colonne qui doivent être "piégés" (bloqués en permanence). Comme il y a - 25 - pour chaque entrée Ai trois types de cas possibles selon le produit intermédiaire à réaliser (présence de ai dans le produit, présence de ai, absence de ai et de ai), une seule information binaire est insuffisante; on introduit donc deux informations successives simultanément sur toutes les entrées Ai, soit deux vecteurs d'écriture suc- cessifs; ils sont introduits respectivement dans le pre- mier temps et le deuxième temps d'écriture définis pour l'écriture de la matrice OU par les sorties Si. Les vecteurs d'écriture sont introduits et gardés en mémoire dans des circuits d'interface d'entrée (70) qui effectuent, en mode d'écriture et d'ailleurs aussi en mode de test, un décodage des deux bits d'infor- mation introduits sur chaque entrée de variable Ai pour désigner celle des deux lignes de grillesde MNOS corres- pondant à Ai qui est à programmer ou à tester. Pour l'opérateur, le travail de programma- tion est simple et la programmation des matrices ET et OU est simultanée. Elle se fait étape par étape, chaque étape correspondant à un produit intermédiaire à réaliser donc à une colonne de drains de transistors en parallèle pour la matrice ET et à une ligne de grilles en parallèle pour la matrice OU. L'opérateur choisit dans les combinaisons logiques à réaliser un produit intermédiaire. Il lui af- fecte une colonne particulière de la matrice ET; il déter- mine l'adresse de cette colonne à introduire sur les en- trées Si dans le premier temps de l'étape d'écriture; il examine dans quelles combinaisons logiques de sortie doit apparaître ce produit intermédiaire (programmation de la matrice OU); il détermine le vecteur d'écriture de matrice OU à introduire pour cela sur les sorties Si dans le deux- ième temps de l'étape; ce vecteur s'écrit de manière - 26 - extrêmement simple: on introduit un 1 logique sur Si si la combinaison logique de sortie sur Si doit comprendre le produit intermédiaire, sinon on introduit un zéro. Dans le même temps, le programmateur examine quels sont' les variables ou leurs compléments contenus dans le pro- duit intermédiaire (programmation de la matrice ET); la correspondance entre ces variables et les vecteurs à ap- pliquer aux entrées Ai est encore très directe: - si la variable a. apparait dans le produit :1 intermédiaire on inscrit un 1 logique dans le premier temps de l'écriture puis encore un 1 logique dans le deuxième temps; - si c'est le complément ai qui apparaît, on inscrit d'abord un O puis encore un O - si la variable ai n'apparait pas du tout, on inscrit d'abord un 1 puis un 0. En faisant cela pour toutes les variables ai, on obtient deux vecteurs d'écriture successifs qui se résument ainsi 20. élément de . élément de vecteur 1 vecteur 2 occurrence de a. 1 1 occurrence de a. O O non occurrence de a. et a. 1 O Ce code est très simple mnémotechniquement pour l'opérateur. On pourrait en utiliser un autre légè- rement différent sans sortir du cadre de l'invention. Pour terminer la description de la figure 4, on indiquera la présence d'un circuit logique de commande (80) qui reçoit des informations ou des niveaux de tension de fonctionnement de l'extérieur pour définir le mode de travail et les instants de déclenchement de cycles d'écri- ture ainsi que la synchronisation des inscriptions des don- nées en mode de programmation et test. Ce circuit logique, - 27 - mieux symbolisé à la figure 5, établit des signaux de commande fonctionnels transmis aux divers circuits logi- ques d'interface (30, 60, 70),aux commandes de troisième état des amplificateurs tampons etc. Ce circuit logique de commande (80) a en particulier des fonctions de conversion de niveaux de ten- sion lorsque cela est nécessaire-, y compris pour réaliser un interface de compatibilité entre des circuits de tech- nologies différentes. On remarquera sur la figure 4 une sortie TM en aval d'un amplificateur à trois états (90). Il s'agit d'une sortie de test permettant d'examiner, en mode de test, la sortie de chacune des colonnes de transistors de la matrice ET, pour déterminer si l'application d'un vec- teur logique donné sur les entrées Ai provoque sur chaque sortie de porte ET (choisie par le décodeur) le résultat logique escompté. Pour préciser les opérations de test, qui s'accomplissent de manière analogue à celles de l'écriture, et pour les deux matrices à la fois, on peut dire que l'opé- rateur introduit des signaux de test sur les entrées Ai, soit sur une entrée à la fois, soit par vecteurs. Ces vec- teurs sont introduits en deux temps et ils désignent les lignes d'entrée de la matrice ET que l'on examine. Pen- dant ce temps, une adresse de produit intermédiaire donné (donc une colonne de la matrice ET et une ligne d'entrée de la matrice OU) est introduite sur les sorties Si (pre- mier temps de l'étape de test). Puis cette adresse. étant mémorisée, les sorties Si servent à nouveau de sorties et non plus d'entrées et fournissent les résultats du test: un 1 sur Si signifie que le produit intermédiaire désigné apparaîtra sur la sortie Si en lecture; un O indique qu'il n'apparaîtra pas. La signification du résultat du test de la matrice OU est donc immédiate. Pour la matrice ET, la signification est aussi simple: un signal de test parti- - 28 - culier (1,1 ou 0,0) appliqué à une entrée Ai fait appa- raitre sur la sortie de test TM un l ou un zéro selon que la variable a. apparait, complémentée ou non dans le pro- duit intermédiaire désigné. La figure 5 montre symboliquement le cir- cuit logique de commande qui reçoit - une tension d'alimentation normale pour circuits MOS complémentaires, Vcc = 5 volts environ - une tension d'alimentation Vpp qui, si elle est de 5 volts définit le mode de lecture ou de test et si elle est de 25 volts définit le mode d'écriture ou d'effacement - un signal CE d'autorisation de fonction- nement du circuit servant principalement à déclencher chaque étape de fonctionnement (par exemple chaque étape d'écriture d'un produit intermédiaire) - un signal VA servant au déclenchement de l'introduction de données d'écriture ou de test sur Ai et Si; couplé à CE, il divise les étapes d'écriture en deux temps; il agit sur les circuits d'interface d'entrée et sortie. - un signal EF/T qui définit le.début d'un cycle d'effacement ou de test selon le niveau Vpp; A partir de ces informations d'entrée, le circuit de commande (80) établit divers signaux de com- mande appliqués aux circuits d'interfaces pour faire ap- pliquer aux transistors des deux matrices les conditions d'effacement, d'écriture, de test, ou de lecture. Les signaux de sortie du circuit de com- *mande (8o) sont: - les signaux CE et EF/T eux-mêmes, éven- tuellement rendus compatibles, s'ils ne l'étaient pas, avec le reste du circuit. - 29 - - une tension d'alimentation VIDD qui, en dehors de l'instant d'écriture proprement dite est égale à Vcc et qui devient Vpp à l'instant d'écriture. Cette tension VIDD alimente certains circuits qui ne sont pas alimentés directement par Vcc ou Vpp. - un signal VAl et un signal VA2 qui le suit, ces signaux définissant à partir de VA et CE les deux temps d'introduction de données de programmation sur les entrées Ai et les sorties Si en mode d'écriture ou de test. - un signal RW qui détecte sur Vpp si on est en présence d'une tension faible (O à 5 volts) ou élévée (25 volts) pour interdire tout passage en mode lecture ou test si la tension est élevée (risque de destruction de l'état programmé des transistors), et pour n'autoriser que le passage en conditions d'effacement ou écriture. - quatre signaux SL, ST, SEC, SEF définis- sant à partir de EF/T et RW respectivement les modes de lecture, test, écriture, effacement. - huit signaux Fl à F8 définissant des états distincts utiles pour la commande des divers cir- cuits; ils sont respectivement: Fl: fonction indiquant qu'on n'est ni en écriture, ni en test 25. F2 : on n'est ni en mode d'effacement, ni à l'instant d'écriture proprement dite (défini par SEC et CE) F3: on est en mode d'effacement ou en cours de lecture 30. F4 : on est en cours d'écriture propre- ment dite F5: on est en mode d'effacement ou en cours de test 2493641' - 30 - F6: on est en cours de test F7: on n'est pas en cours d'effacement F8: niveau déclenché par RW ou CE La réalisation des diverses fonctions du circuit de commande (80) est une pure affaire de logique combinatoire, et d'utilisation d'amplificateurs tampons (buffers) lorsqu'il s'agit de faire des conversions de niveaux logiques de tension. Il n'est pas nécessaire de donner les détails des schémas de portes logiques établis- sant chaque fonction de commande. On a donné aux figures 6 à 10 les schémas complets d'un exemple de réalisation préférentiel des di- vers autres circuits du réseau programmable, et notamment les circuits d'interface (30, 60 et 70). Ces schémas sont facilement compréhensibles par un homme du métier, compte tenu des explications qui vont suivre et on n'en effec- tuera pas une explicitation dans les moindres détails. Tout d'abord, la figure 6 représente le circuit logique (30) d'interface de liaison entre ma- trices avec le décodeur (40), ceci au niveau d'une seule colonne j de transistors MNOS de la matrice ET; on n'a re- présenté qu'un seul transistor MNOS 101 de la matrice ET, celui dont la grille doit recevoir une haute tension de piégeage si la variable ai doit apparaître dans le produit intermédiaire correspondant à la colonne j considérée. Ce transistor 101 reçoit sur sa grille une tension Vai qui peut être nulle ou de 5 volts ou de volts. (Voir figure 7 pour la production de cette ten- sion par le circuit d'interface d'entrée 70). La source peut être mise à la masse ou en l'air selon l'état de la fonction F8. Le drain correspond à la sortie SCj de colonne ET (en fait NOR), et il peut être relié à une cha- rge alimentée par Vpp (en lecture), ou mis en l'air - 31 - (effacement) ou mis à une tension de protection Vp (écri- ture lorsque la colonne n est pas sélectionnée), ou enfin mis à zéro (écriture lorsque la colonne j est sélectionnée) On rappelle que la sélection de colonne se fait par le décodeur dont la porte NOR correspondant à la colonne j est représentée sous la référence 401. Enfin, le substrat du transistor MNOS peut être mis à O volt ou à Vpp selon l'état de la fonction F7. Les diverses portes de la logique d'inter- face de la figure 6 ont été représentées en détail pour montrer comment elles établissent les divers niveaux de tension ou d'impédance aux bornes du transistor MNOS de la ligne i et de la colonne j à partir de l'état de sor- tie de la porte j du décodeur et des diverses sorties du circuit logique de commande. Le circuit logique d'interface (30) impose aussi une tension de sortie déterminée sur le conducteur LOj qui est la ligne d'entrée j de la matrice OU (entrée sur une grille de transistor MNOS). En lecture, le signal sur LOj est le même que SCj; c'est d'ailleurs le seul cas o on a une transmission directe entre la matrice ET et la matrice OU. En dehors de la lecture on peut être en po- sition d'effacement, et une tension nulle apparait sur LOj; ou en mode d'écriture et la tension apparaissant sur LOj est haute si le décodeur a sélectionné la colonne ou basse si le décodeur ne l'a pas sélectionnée; ouen mode de test et LOj = Vcc ou O volt selon que le décodeur a ou non sélectionné la colonne. La ligne Vp sert à la fois à amener une ten- sion de protection en écriture ou effacement (voir figu- re 10), et aussi à recueillir l'état de SCj (isolé de LOj à ce moment là) en mode de test. - 32 - La figure 7 (schéma d'un circuit d'interface d'entrée 70) montre comment on produit la tension adéquate sur les lignes d'entrée ai, ai aboutissant aux grilles des transistors MNOS de la matrice ET; le schéma est un exemple de réalisation utilisant le signal SL (mode de lecture) pour relier par l'intermédiaire de portes de transfert 701 et 702 l'entrée Ai à la ligne ai et, avec un inverseur, à la ligne a.. En dehors du mode de lecture, le signal EF/T est appliqué à deux portes 703 et 704 ca- pables de transmettre la tension VIDD sur les lignes ai et a.. En effacement, une tension nulle est appliquée aux lignes de grille ai et ai; en test et en écriture, la tension appliquée dépend du signal logique appliqué à l'entrée Ai. Dans les deux cas, test ou écriture, l'intro- duction d'une donnée se fait en deux temps et le circuit d'interface d'entrée reçoit d'abord un premier bit d'in- formation pendant la durée du signal VAl (lui-même con- tenu dans la durée CE); ce bit est transmis par l'ampli- ficateur tampon de verrouillage 705 et la porte 703, à la ligne ai; si on est en test, ce bit est transmis sous forme d'une tension de 5 volts (VIDD = Vcc) ou-zéro; si on est en écriture, il s'agit d'une tension de 25 volts (VIDD = Vpp = 25 volts) ou zéro. Quand le signal VAl s'arrête, l'amplificateur tampon de verrouillage 705 ne change pas d'état et la ten- sion en ai reste inchangée. Le signal VA2 commence alors, en même temps qu'est chargé à l'entrée Ai un deuxième bit d'information de test ou d'écriture, qui est transmis sous forme com- plémentée, par un autre amplificateur tampon de verrouil- lage 706 qui joue aussi le rôle d'inverseur et par la porte 704, à la ligne aà. En test, un 1 sur Ai amène 0-volt i' - 33 - sur ai tandis qu'un zéro amène 5 volts. En écriture, un l sur Ai amène O volt sur a. tandis qu'un zéro amène 25 volts. On comprend donc qu'avec le codage très simu- ple d'écriture ou de test, en deux bits chargés succes- sivement et verrouillés, on peut appliquer indépendam- _ O ment sur ai et ai, par une seule entrée Ai, les condi- tions de piégeage ou non piégeage de l'un ou l'autre ou les deux transistors MNOS couplés à ai et ai. En effet, l'introduction successive des bits 1,1 sur Ai amène une tension sur ai et pas sur a. à la fin de VAl et VA2; l'in- troduction de 0,0 amène une tension sur ai et pas sur ai; l'introduction de 1,0- amène une tension à la fois sur ai et sur a. et les deux transistors correspondant sont piè- gés. On a représenté à la figure 8 comment se si- tuent les signaux VAl etfVA2 par rapport au signal VA de chargement qui les engendre, l'introduction du premier bit d'information sur les entrées Ai se faisant pendant que VAl = O et l'introduction du second pendant que VA2 = O La figure 9 montre un exemple de réalisation d'un circuit d'interface de sortie (60) permettant de re- çevoir une adresse de décodeur ou des données d'écriture de la matrice OU à partir des sorties Si du réseau; le schéma de l'amplificateur trois états (50) permettant d'utiliser les sorties Si aussi bien en sorties reliées aux sorties SOi de la matrice OU qu'en entrées d'adres- sage ou en entrées de données, est aussi figuré sur le dessin de la figure 9. Le circuit 60 est tout à fait analogue à celui de la figure 7, commandé par VAl et VA2 avec deux amplificateurs tampons 605 et 606 dirigeant les bits d'en- trée sur Si respectivement vers les lignes d'adresses de décodeur (AMi et AMi) pendant que VAl = O, et vers les - 34 - colonnes de sortie SOi de la matrice OU pendant que VA2 - O. A la fin des deux temps de l'écriture, on a donc un signal d'adressage conservé en mémoire sur AMi et AMi, désignant un produit intermédiaire donné qui est appliqué (voir figure 6) sur les lignes d'entrée de la matrice OU (LOj), et une tension d'écriture VIDD ou zéro sur les colonnes SOi. Cette tension d'écriture va sur les drains des transistors. Par conséquent elle est égale à O volt si le transistor doit être piégé (absence du produit in- termédiaire désigné par le décodeur dans la combinaison logique à produire sur Si), ou bien elle est égale à VIDD = 25 volts (ou une tension de protection Vp légè- rement antérieure) si le produit intermédiaire doit ap- paraître et que par conséquent le transistor correspon- dant ne doit pas être piégé. On fera dans le deuxième temps VA2 de l'écri- ture Si = 1 donc SOi = O volt si le produit intermédiaire doit apparaître; sinon, Si = O donc SOi = 25 volts. La validation de cette inscription se fait par le signal SEC (de mode d'écriture) qui autorise l'applica- tion de VIDD ou O à SOi. La sortie SOi est par ailleurs reliée, en vue de la lecture ou du test, à Si par l'intermédiaire de l'amplificateur trois états 50, commandé par le signal F8, qui empêche le retour direct, en écriture ou dans le pre- mier temps du test du signal de Si vers les colonnes SOi. La figure 10 montre l'amplificateur à trois états 90 de la figure 4. Il a deux fonctions: - 1 ) transmettre en mode de test, l'état de la sortie de colonne SCj (matrice ET) désigné par le déco- deur (voir figure 6); cette transmission se fait par la ligne VP et l'amplificateur 90 l'amène à une borne ex- térieure de test TM sous l'autorisation de la fonction de - 35 - commande F6 indiquant qu'on est en mode de test. - 20) établir une tension de protection Vp qui peut être égale à Vpp vers les drains des colonnes SCj de la matrice ET non sélectionnées par le décodeur,' en mode d'écriture. Pour terminer cette description, on peut en- core mentionner que l'information en deux vecteurs intro- duite sur les entrées Ai en mode de programmation, dont on a dit qu'elle permettait de définir trois états de pro- grammation, permet en réalité d'introduire un quatrième état (deux bits = quatre états possibles). Ce quatrième état, qui serait déterminé par l'introduction d'un 0 puis d'un 1 sur Ai indiquerait la présence à la fois de ai et a1 dans un produit intermédiaire, ce qui annulerait ce dernier.Cet état peut servir de neutralisation des pro- duits intermédiaires non désirés. Enfin, la description qui précède a été faite à propos de transistors MNOS. D'autres transistors pro- grammables et effaçables électriquement peuvent être uti- lisés (transistors à grille flottante par exemple). - 36 - REVENDICATIONS 1. Réseau logique programmable électriquement, comprenant n entrées de variables (Ai), m sorties de combinaisons logiques (Si) et p colonnes de produits intermédiaires, avec une matrice produit programmable (10) pour effectuer des produits intermédiaires des variables, et une matrice somme programmable (20) pour effectuer des sommes des produits intermédiaires, carac- térisé par le fait qu'il comprend un décodeur (40) capa- ble de désigner individuellement -chacune des colonnes de sortie de la matrice produit ainsi qu'une ligne d'entrée de la matrice somme correspondant au même pro- duit intermédiaire que la colonne désignée, un circuit logique (30) d'interface de liaison entre matrices apte à engendrer, à partir du signal de sortie du décodeur et de signaux de commande d'écriture d'un circuit de com- mande (80), des signaux de programmation de la colonne désignée et de la ligne correspondante de la matrice somme, le réseau comprenant encore un circuit d'inter- face d'entrée (70) pour engendrer, à partir de signaux d'écriture appliqués sur les entrées de variable et des signaux de commande d'écriture du circuit de commande, des signaux de programmation de lignes de la matrice produit, ces signaux étant tels que le produit inter- médiaire obtenu en sortie de la colonne désignée, après programmation par les signaux de programmation de-lignes et de colonne, soit un produit des variables correspon- dant aux entrées de variables sur lesquelles on a appli- qué un signal d'écriture particulier. 2. Réseau logique selon la revendication 1, caractérisé par le fait qu'il comprend en outre un cir- cuit d'interface de sortie (60) apte à engendrer; à partir de signaux d'écriture appliqués aux sorties du réseau utilisées comme entrées et designaux de commande d'écriture du circuit de commande, des signaux de - 37 - programmation des colonnes de la matrice somme, ces si- gnaux étant tels que le produit intermédiaire désigné par le décodeur apparaisse en mode de lecture sur celles des sorties sur lesquelles on a appliqué un signal d'é- criture particulier lors de la programmation. 3. Réseau logique selon l'une des revendications 1 et 2 caractérisé par le fait que plusieurs broches de connexion extérieure du réseau,différentes des broches d'entrées de variable, servent d'entrées d'adressage du décodeur pour déterminer le produit intermédiaire à désigner lors d'une étape de programmation. 4. Réseau logique selon la revendication 3, caractérisé par le fait que les entrées d'adressage sont prises parmi -les sorties du réseau, le circuit d'inter- face de sortie ayant en plus une fonction de verrouil- lage de données pour autoriser l'introduction d'une in- formation d'adressage du décodeur sur ces sorties pen- dant un premier temps d'une étape de programmation et la conservation en mémoire de cette information pendant un deuxième temps au cours duquel ou bien des signaux d'écriture particuliers sont appliqués sur les sorties du réseau utilisées comme entrées de données de pro- grammation, ou bien des signaux de résultat de test sont lus sur ces sorties. 5. Réseau logique selon l'une des revendications 1 à 4, caractérisé par le fait que le signal d'écriture particulier appliqué aux entrées de variable comprend deux parties introduites successivement, respectivement dans un premier temps et un deuxième temps d'une étape de programmation, le circuit d'interface d'entrée étant apte à utiliser les deux informations successives appa- raissant à chaque entrée de variable pour engendrer des signaux de programmation respectifs différents selon que la variable considérée doit apparaître dans le produit - 38 - intermédiaire désigné, que son complément doit apparaitre, ou que ni elle ni son complément ne doivent apparaître. 6. Réseau logique selon la revendication 5, caractérisé par le fait que le circuit d'interface d'ent- trée est apte à aiguiller la première partie du signal d'écriture appliqué à une entrée de variable vers une ligne d'entrée de la matrice produit correspondant à cette variable, et à aiguiller la seconde partie vers la ligne d'entrée correspondant au complément de cette variable. 7. Réseau logique selon la revendication 6, caractérisé par le fait que le signal d'écriture à appli- quer à une entrée de variable est un signal à deux bits logiques qui sont deux 1 successifs si la variable doit apparaître dans le produit intermédiaire désigné, deux 0 successifs si la variable doit apparaître complémentée, et une fois 1 et une fois un 0 si la variable ne doit pas apparaître du tout. 8. Réseau logique selon l'une des revendications 1 à 6 caractérisé par le fait que des amplificateurs à trois états, dont le troisième état est commandé par le circuit de commande, sont interposés entre chaque colonne de sortie de la matrice somme et la sortie correspondante du réseau, pour permettre l'utilisation de ces sorties également en entrées d'adressage ou de signaux d'écriture. 9. Réseau logique selon l'une des revendications 1 à 8 caractérisé par le fait que le circuit logique d'interface de liaison entre matrices est apte à engen- drer, à partir du signal de sortie du décodeur désignant un produit intermédiaire particulier et de signaux de commande de test venant du circuit de commande, un si- gnal de résultat de test du produit intermédiaire dési- gné, ce signal étant transmis à une sortie de lecture de test. - 39 - 10. Réseau logique selon la revendication 9, caractérisé par le fait que le circuit d'interface d'entrée est apte à engendrer, à partir de signaux de test appliqués sur les entrées de variable et de signaux de commande de test du circuit de commande, des signaux de test de lignes de la matrice produit, appliqués aux lignes d'entrée de la matrice produit de telle manière qu'il y ait correspondance directe entre l'application d'un signal de test particulier sur chaque entrée de variable et l'application d'un signal de test de ligne sur une ligne de la matrice produit correspondant à cette variable. 11. Réseau logique selon la revendication 10, caractérisé par le fait que le circuit d'interface d'entrée est-agencé pour produire un signal de test de ligne sur une ligne correspondant à une variable lorsque l'entrée relative à cette variable reçoit suc- cessivement deux niveaux logiques I,pour produire un signal de test de ligne sur une ligne correspondant au complément de la variable lorsque l'entrée relative à cette variable reçoit successivement deux niveaux lo- giques zéro, et pour produire un signal de test de ligne simultanément sur les lignes correspondant à la variable et-à son complément lorsque l'entrée relative à cette variable reçoit successivement un 1 et un zéro. 12. Réseau logique selon l'une des revendications 9 à 11 prises dépendantes de la revendication 3, carac- térisé par le fait que le circuit d'interface de liaison est apte à engendrer, à partir du signal de sortie du décodeur désignant une ligne d'entrée de la matrice somme et de signaux de commande de test venant du circuit de commande, un signal de test de ligne appliqué à la ligne d'entrée de matrice somme désignée par le décodeur, les sorties du réseau fournissant le résultat du test avec une correspondance directe entre le résultat obtenu sur - 40 - chaque sortie et la présence effective du produit inter- médiaire désigné dans la combinaison logique programmée sur la colonne de matrice somme correspondant à cette sortie. 13. Réseau logique programmable selon la reven- dication 12 caractérisé par le fait que le circuit d'in- terface de sortie est apte à recevoir une information d'adressage du décodeur dans un premier temps d'une étape de-test, à garder cette information en mémoire, et, à partir de cette information et de signaux de commande de test du circuit de commande, à engendrer sur chaque sortie du réseau un niveau logique 1 si le produit in- termédiaire désigné par le décodeur figure bien dans la combinaison logique programmée sur cette sortie, et un niveau logique 0 dans le cas contraire. 14. Réseau logique selon l'une des revendications 1 à 13, caractérisé par le fait que le circuit d'inter- face de liaison entre matrices est apte, en réponse à des signaux de commande de lecture du circuit de commande, à transmettre aux lignes d'entrée de la matrice somme les signaux de sortie de la matrice produit, et que le circuit d'interface d'entrée est apte, en réponse aux mêmes signaux de commande à transmettre aux lignes d'entrée de la matrice produit les signaux logiques appliqués aux entrées de variables ainsi que les complé- ments de ces signaux logiques. 15. Réseau logique selon l'une des revendications 1 à 14, caractérisé par le fait que le décodeur est cons-. titué de p portes à 2r entrées logiques et r inverseurs, r-i avec 2 nière que le décodeur fournisse un niveau logique parmip. 16. Réseau logique selon l'une des revendications 1 à 15 caractérisé par le fait que la matrice produit et/ ou la matrice somme sont réalisées à partir d'une série de p (respectivement m) portesNOR à 2n (respectivementp)entrées. - 41 - 17. Réseau logique selon la revendication 16, caractérisé par le fait que chaque porte NOR comprend une série de 2n (respectivement p) transistors MNOS en parallèle, les entrées de portes étant prises sur les grilles, ces transistors pouvant être rendus bloqués de manière permanente par application d'une tension supérieure à la normale sur la grille et la program- mation des matrices ayant lieu par application de cette haute tension sur des transistors choisis. 18. Réseau logique selon la revendication 17, caractérisé par le fait que les circuits d'interface sont aptes à appliquer aux diverses électrodes des tran- sistors (grilles, sources, drains, substrats), sous la commande du circuit de commande et des entrées du réseau, une tension nulle, ou normaleou élevée, ou un état haute impédance. 19. Réseau logique selon l'une des revendications 17 et 18, caractérisé par le fait que les transistors sont à canal N, que leurs sources sont reliées entre elles par colonnes de matrice, que leurs drains sont reliés entre eux par colonnes, que leurs grilles sont reliées entre elles par lignes, et que tous les substrats sont reliés entre eux et à un conducteur de commande de la tension de substrat. 20. Réseau logique programmable selon la reven- dication 19, caractérisé par le fait que les circuits d'interface sont aptes à appliquer, selon les signaux de commande du circuit de commande, les configurations de tensions suivantes: a) sources à 0 volt drains reliés par une charge à une tension normale, substrat à 0 volt grille à tension normale ou nulle selon le signal reçu, - 42 - b) sources déconnectées drains déconnectés grilles à O volt substrat à haute tension c) sources déconnectées drains à O volt substrat à O volt grilles à haute tension ou à O volt selon le signal reçu, d) sources déconnectées drains à haute tension substrat à O volt grilles à haute tension ou O volt.