EP0051525B1 - Réseau logique intégré à programmation électrique simplifiée - Google Patents

Réseau logique intégré à programmation électrique simplifiée Download PDF

Info

Publication number
EP0051525B1
EP0051525B1 EP81401683A EP81401683A EP0051525B1 EP 0051525 B1 EP0051525 B1 EP 0051525B1 EP 81401683 A EP81401683 A EP 81401683A EP 81401683 A EP81401683 A EP 81401683A EP 0051525 B1 EP0051525 B1 EP 0051525B1
Authority
EP
European Patent Office
Prior art keywords
inputs
variable
logic
signals
matrix
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
EP81401683A
Other languages
German (de)
English (en)
Other versions
EP0051525A1 (fr
Inventor
Jean-Michel Brice
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Pour L'etude Et La Fabrication De Circuits Integres Speciaux - Efcis Ste
Original Assignee
Pour L'etude Et La Fabrication De Circuits Integres Speciaux - Efcis Ste
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Pour L'etude Et La Fabrication De Circuits Integres Speciaux - Efcis Ste filed Critical Pour L'etude Et La Fabrication De Circuits Integres Speciaux - Efcis Ste
Publication of EP0051525A1 publication Critical patent/EP0051525A1/fr
Application granted granted Critical
Publication of EP0051525B1 publication Critical patent/EP0051525B1/fr
Expired legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17704Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form the logic functions being realised by the interconnection of rows and columns
    • H03K19/17708Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form the logic functions being realised by the interconnection of rows and columns using an AND matrix followed by an OR matrix, i.e. programmable logic arrays
    • H03K19/17712Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form the logic functions being realised by the interconnection of rows and columns using an AND matrix followed by an OR matrix, i.e. programmable logic arrays one of the matrices at least being reprogrammable

Definitions

  • the present invention relates to programmable logic networks, that is to say integrated circuits having n logic signal inputs and m outputs, and capable of providing on each of the outputs a particular logical combination, programmed, of the binary signals applied to the starters.
  • This logical combination is expressed as a logical sum of several logical products of the input signals.
  • These outputs are network outputs.
  • the goal of network programming is to have each output define a particular chosen combination of input variables, expressed as a sum of the products of some of these variables.
  • Network programming therefore consists in defining the AND matrix to obtain products of certain input variables, and in defining the OR matrix to obtain sums of some of the products produced.
  • the AND gates of the AND matrix can receive all the inputs of variables a and their complements; after programming they only receive the variables selected to make a particular product; the others must be disconnected so that there is no influence, on a particular product, of a variable a which does not appear in this product.
  • the OR gates of the OR matrix can receive before programming all the outputs of the AND gates, that is to say that they can add all the p intermediate products calculated by the AND matrix; after programming, an OR gate corresponding to an output of the network must receive on its inputs only the intermediate products appearing in the logical combination to be produced on this output; the outputs of the other AND gates, corresponding to products which should not appear in the sum, must be disconnected.
  • the present invention is concerned with networks which are electrically programmable by the user and not those which are programmed in manufacturing by masking techniques.
  • the electrical programming of the network requires having individual electrical access to all the inputs of the AND gates and the OR gates, in total at 2n x p AND gate inputs added to p x m OR gate inputs.
  • These figures correspond to 1536 programming points to be carried out. Each of these points must be individually accessible to apply an adequate programming signal (for example an electric voltage capable of destroying a fuse in series with a diode in a particularly simple embodiment).
  • the programming seen from the user side consists in selecting the door inputs which must receive a neutralization signal, in applying this signal to them, and in leaving the other inputs active.
  • a programmable logic network using this principle is the IM5200 circuit from the company INTERSIL which is electrically programmable; in this circuit, two of the variable inputs A are used to define the transition to programming mode, four network outputs are used, in programming mode, to designate matrix sectors AND and OR to be programmed, and nine variable inputs are used, in programming mode, designate the door inputs to be disconnected.
  • the invention provides a programmable logic network characterized by the fact that it includes a decoder capable of individually designating each of the output columns of the product matrix as well as an input line of the sum matrix corresponding to the same product. intermediary than the designated column, a logic interface circuit connecting said matrices, capable of generating, from the output signal of the decoder and write command signals from a control circuit, programming signals of the designated column and the corresponding line of the sum matrix, the network further comprising an input interface circuit for generating, from write signals applied to the variable inputs and write command signals from the control circuit, programming signals for lines of the matrix produced, these signals being such that the intermediate product obtained at the output of the column designated in mode of reading, after programming by the row and column programming signals, that is to say a product of the variables corresponding to the inputs of variables to which a particular writing signal has been applied.
  • the decoder designates a particular intermediate product, and the variable inputs Ai are used in programming, to establish this intermediate product, with the same meaning as in normal use.
  • an output interface circuit capable of generating, from write signals applied to the network outputs used as inputs and from write control signals of the command, programming signals from the columns of the sum matrix, these signals being such that the intermediate product designated by the decoder appears in read mode on those of the outputs to which a particular write signal has been applied during programming.
  • This programming mode is therefore extremely simple for the user who, in the digital example already used, is spared the need to know a (binary) correspondence between eleven address inputs and 1536 door inputs to be programmed.
  • the first complicating factor comes from the fact that we want to use only n input pins of variables Ai while the logical combinations to be made by the network can include either these variables a or their complements at i . In reading, there is no difficulty because information is introduced in two states: presence of a or its complement, and binary signals 0 or 1 applied to n inputs a are sufficient to completely specify the input information .
  • connection pins which would make the invention lose a large part of its interest (we would have the programming simplification at the price of n additional pins, which is hardly acceptable).
  • This two-step writing procedure for each intermediate product can be carried out thanks to the locking function of the input and output interface circuits.
  • the input interface circuit switches the first part of the write signal applied to an input of variable Ai to an input line of the matrix produced corresponding to this variable Ai, and it switches the second part to the input line corresponding to the complement Ai of this variable.
  • the test operations of the programmed matrices are done with the same simplification as the programming operations; the test is also done simultaneously for the two matrices which remain independent in test as in programming.
  • the logic circuit for interfacing the interface between matrices is capable of generating, from the output signal of the decoder designating a particular intermediate product and from test control signals coming from the control circuit, a signal of result-- test state of the designated intermediate product, this signal being transmitted to a test reading output.
  • the input interface circuit it is able to generate, from logic test signals applied to the variable inputs and test command signals from the control circuit, matrix line test signals product, applied to the input lines of this matrix in such a way that there is a direct correspondence between the application of a particular test signal on each variable input and the application of a line test signal on a row of the product matrix corresponding to this variable.
  • the invention makes it possible to carry out the programming test while keeping the variable inputs the same meaning as they have in reading (and in writing).
  • the test can be done door by door entry to check the neutralization of each connection, or more generally door by door.
  • the test signals applied to the variable inputs Ai can be exactly the same as the particular write signals: signals with two successive pieces of information introduced in two stages, two successive 1s on Ai producing a line test signal on a matrix line corresponding to the variable a ;, two successive 0's produce a line test signal on a line corresponding to at i , and a 1 and a 0 simultaneously producing a test signal on lines a and i .
  • the input interface circuit therefore operates in exactly the same way in writing and in testing.
  • the output interface circuit which makes it possible to carry out the test of the sum matrix, does not function in the same way in writing and in test.
  • the outputs Si are still used initially in a test step to address the decoder and designate an intermediate product.
  • the link interface circuit between matrices generates, from the decoder signal and test command signals coming from the control circuit, a line test signal applied to the input line of the sum matrix designated by the decoder. While the output interface circuit keeps in memory the addressing of the decoder, the outputs Si of the network then operate, in a second stage of a test step, as outputs of the gates of the sum matrix, and supply the result of the test with a direct correspondence between the logic level obtained on each output and the actual presence of the designated intermediate product in the programmed logic combination corresponding to this output.
  • the input interface circuit transmits the logic signals appearing on the inputs Ai on the one hand directly to a line of the product matrix and of elsewhere after inversion to a neighboring line.
  • the output interface circuit directly transmits the outputs of the columns of the sum matrix to the respective outputs Si.
  • the link interface interface between matrices connects the output of each column of matrix produced to a respective input line of the sum matrix.
  • field effect transistors of the MNOS metal - nitride - oxide - semiconductor type are used to program the connection of each variable input to a respective AND gate input, or the connection of each AND gate output to a respective OR gate input.
  • An MNOS transistor has the remarkable possibility of performing an erasable electrical programming, of being able to be permanently made non-conductive by applying a high voltage to its control gate which traps electrons at the interface between the layer nitride and the oxide layer. The trapped electrons remain trapped in this interface when the high voltage disappears and they keep the MNOS transistor blocked; the subsequent application to the control gate of a voltage which would normally make the transistor conductive now has no effect on it.
  • This trapping can also be erased electrically by applying a high voltage in the opposite direction.
  • Transistors which have not been subjected to the high trapping voltage normally behave as transistors, that is to say that they can be blocked or made conductive depending on the voltage applied to their gate.
  • NOR gates can only comprise MNOS transistors in parallel, one per gate input, the control gates serving as inputs, the sources being grounded and all the drains (connected between them and constituting the output of the NOR gate) being connected to a positive voltage through a common charge.
  • each NOR gate comprises several independent inputs which are the gates of the transistors, a connection connection of the drains between them, a connection connection of the sources between them and a connection of supply voltage.
  • the transistors can be adequately polarized so that they perform the NOR function, - in programming mode (erase first then write), apply the appropriate voltages on the connections allowing the “trapping” or not of the transistors.
  • the application of the appropriate programming polarizations or voltages is carried out by the input, output, and link interface circuits, under the control of the control circuit.
  • the programming or test signals generated by these circuits consist of determined voltage configurations at the electrodes of the MNOS transistors (zero or normal or high voltage or high impedence link).
  • FIG. 1 the block diagram of a programmable logic network: from n inputs of variables Ao to An-1 we can introduce logic signals a o - a n-1 and their complements 8 0 to a n-1 of 2 n input lines of an AND gate matrix (p AND gates with 2 n inputs each) which provides at its output intermediate logic products Mo to Mp-1 input variables a (direct or complemented). Each of the intermediate products is determined by those of the input variables or their complements which are effectively coupled to the AND gate inputs.
  • the intermediate products Mi constitute both output columns of the AND matrix and input lines of an OR gate matrix (m OR gates with p inputs each) which supplies, on its output columns So to Sm- 1, logical combinations of the input variables ao to a n-1 in the form of sums of intermediate products of the variables.
  • Each of the sums is determined by the effective coupling between certain columns of intermediate products and the inputs of the OR gate corresponding to this sum.
  • Network programming to obtain the desired logical combination on each of the outputs consists in selecting the connections to be made between the variable inputs and the AND gates, as well as between the outputs of the AND matrix and the OR gate inputs.
  • Fig. 2 shows a logic network equivalent to that of FIG. 1 but where the product and sum matrices (AND and OR matrices) are produced with NOR gates (NON-OR).
  • An AND gate can indeed be replaced by a NOR gate, each input of which is preceded by an inverter; an OR gate by a NOR gate followed by an inverter.
  • Fig. 3 shows an example of NOR gate with n inputs a o , a 1 ... a n-1 , produced using field effect transistors.
  • N-channel MNOS metal-nitride-oxide-semiconductor transistors. They could be other types of transistors without departing from the scope of the invention, but these are particularly suitable for electrical network programming.
  • the sources of the transistors are all assembled and connected to ground, the drains are all joined together and connected to a common load connected to a normal supply voltage Vcc.
  • the substrates are all connected to a common voltage, in principle of 0 volts.
  • Each transistor control gate serves as an input to the NOR gate and the output is taken from the combined drains.
  • Logic signals a o , at o , a i , at 1 ..., at n-1 are used to block or unblock the transistors.
  • the conduction of one or more transistors by a level 1 logic signal sets the output to zero. Blocking all transistors simultaneously sets the output to 1. It is therefore a NOR door.
  • the programming of the door consists in suppressing or putting in permanent blocking the transistors corresponding to the variables which must not influence the output; for example, producing the product a i to j at output consists in removing or blocking all the transistors connected to the other inputs that at i and a ⁇ ; similarly, realize the sum a + at j would consist in keeping as active transistors only those connected to inputs a and at j .
  • MNOS transistors as door elements is particularly advantageous since it offers a convenient possibility of electrical programming to neutralize the influence of a NOR door input on its output.
  • This neutralization is done by putting the MNOS transistor in a permanent blocking state by trapping electrons at the interface of its two oxide layers; trapped electrons maintain the threshold voltage of the transistor at a high value (around 7 V) and create an unlocking voltage threshold that cannot be crossed by a normal logic signal (0 to 5 V) applied to the gate.
  • the non “trapped” transistors are conductive or blocked according to their gate voltage because their threshold voltage is low: 1 to 2 volts.
  • Trapping is done by applying a high voltage to the grid (about 25 volts). It is non-destructive and reversible: we can evacuate trapped electrons towards the substrate by applying a high voltage on it. It is then an electrical erasure of the programming, all the transistors returning to their normal state.
  • the role of the network interface circuits will be to apply the appropriate voltages to the grid lines, the source and drain columns, and the combined substrates, according to operating mode signals (read, erase, write, test) and according to the logic signals applied to the various inputs of the network, including the outputs used as inputs.
  • a decoder (40) capable of individually designating each of the output columns of the AND matrix as well as the input line of the OR matrix corresponding to the same intermediate product as the column of designated outlet.
  • This designation is intended for the interface logic circuit which applies the voltages suitable to the column and to the designated line.
  • the decoder is constituted for example simply by a series of p AND or NOR gates which receive binary addresses used for the designation of the chosen column and which have programmed inputs (definitively) so that each possible address opens one and only one door among the p decoder doors.
  • the decoder is used mainly in write mode but also in test mode.
  • the binary addresses it receives are brought by external connection pins with the help of which the user chooses the column of transistors to be programmed in the AND matrix. These pins are, for the sake of reducing the number of external pins, preferably chosen from pins used for other purposes in read mode. However, they are not taken from the input pins of variables Ao to An-1 which are used for another use during programming.
  • the addressing inputs of the decoder in write mode are taken from the outputs So to Sm-1 of the network, which then operate as inputs.
  • There is actually a need r for the decoder addressing inputs such that 2 r-1 ⁇ p ⁇ 2 r ; for example, if the network includes 64 intermediate products, 6 addressing inputs chosen from the outputs So to Sm-1 can be used.
  • These r inputs, split into 2 X r with their logical complements, are applied to the p doors constituting the decoder.
  • the outputs So to Sm-1 can operate as outputs of the OR gates of the OR matrix, and also as inputs for the decoder, there is interposed between the OR gate outputs and the Si terminals of buffer amplifiers (50) with three states , with a third state command isolating the outputs Si from the outputs SOi of the OR matrix.
  • the setting in the third state is carried out in write mode and is deleted in read mode. In test mode, we will see that it is used partially.
  • the output terminals Si (So to Sm-1) are therefore connected to the inputs of the decoder, but by means of an output interface circuit (60) having in particular a role of locking and routing as we want , in writing mode, use the outputs Si not only as addressing inputs for the decoder (firstly writing), but also secondly as writing inputs proper by which we can designate those MNOS transistors of the OR matrix which must be blocked (the decoder only indicating which input line of the OR matrix we are interested in during a programming step).
  • the output interface circuit (60) is there to keep in memory the addressing of the decoder while the writing data which are directed to the outputs SOi of the OR gates (drains together of the transistors) are introduced on the terminals. MNOS).
  • the write vectors are introduced and stored in memory in input interface circuits (70) which, in write mode and moreover also in test mode, decode the two information bits introduced on each variable entry Ai to designate that of the two grid lines of MNOS corresponding to Ai which is to be programmed or tested.
  • the programming work is simple and the programming of the AND and OR matrices is simultaneous. It is carried out step by step, each step corresponding to an intermediate product to be produced, therefore to a column of transistor drains in parallel for the AND matrix and to a line of gates in parallel for the OR matrix.
  • a logic control circuit (80) which receives information or operating voltage levels from the outside to define the working mode and the instants of triggering of write cycles as well as the synchronization of data entries in programming and test mode.
  • This logic circuit better symbolized in fig. 5, establishes functional control signals transmitted to the various interface logic circuits (30, 60, 70), to the third state controls of the buffer amplifiers etc.
  • This control logic circuit (80) in particular has functions for converting voltage levels when necessary, including for providing a compatibility interface between circuits of different technologies.
  • a TM output downstream of a three-state amplifier (90). It is a test output allowing to examine, in test mode, the output of each of the columns of transistors of the AND matrix, to determine if the application of a given logical vector on the inputs Ai causes on each door exit AND (chosen by the decoder) the expected logical result.
  • test operations which are carried out in a similar way to those of writing, and for the two matrices at the same time, one can say that the operator introduces test signals on the inputs Ai, that is to say on a entry at a time, either by vectors. These vectors are introduced in two stages and they designate the input lines of the AND matrix that we are examining. During this time, a given intermediate product address (therefore a column of the AND matrix and an input line of the OR matrix) is introduced on the outputs Si (first step of the test step).
  • control circuit (80) establishes various control signals applied to the interface circuits to make the transistors of the two arrays apply the conditions of erasing, writing, testing, or reading.
  • control circuit (80) The realization of the various functions of the control circuit (80) is a pure affair of combinatorial logic, and the use of buffer amplifiers (buffers) when it comes to making conversions of logic voltage levels. It is not necessary to give the details of the logic gate diagrams establishing each control function.
  • fig. 6 shows the logic circuit (30) for interfacing links between matrices with the decoder (40), this at the level of a single column j of MNOS transistors of the AND matrix; only one MNOS transistor 101 of the ET matrix has been shown, the one whose gate must receive a high trapping voltage if the variable a must appear in the intermediate product corresponding to the column j considered.
  • This transistor 101 receives on its gate a voltage Vai which can be zero or 5 volts or 25 volts. (See fig. 7 for the production of this voltage by the input interface circuit 70.)
  • the source can be grounded or airborne depending on the state of the F8 function.
  • the drain corresponds to the output SCj of column ET (in fact NOR), and it can be connected to a load supplied by Vpp (in reading), or put in the air (erasure) or put at a protection voltage Vp ( write when the column is not selected), or finally set to zero (write when column j is selected).
  • the substrate of the MNOS transistor can be set to 0 volts or to Vpp depending on the state of the function F7.
  • the various doors of the interface logic of FIG. 6 have been shown in detail to show how they establish the various voltage or impedance levels at the terminals of the MNOS transistor of the line i and of the column j from the output state of the gate j of the decoder and of the various outputs of the control logic circuit.
  • the interface logic circuit (30) also imposes a determined output voltage on the conductor LOj which is the input line j of the OR matrix (input on a gate of transistor MNOS).
  • the signal on LOj is the same as SCj; it is besides the only case where one has a direct transmission between the matrix AND and the matrix OR.
  • the line Vp is used both to bring a write or erase protection voltage (see fig. 10), and also to collect the state of SCj (isolated from LOj at this time) in test mode.
  • Fig. 7 shows how the appropriate voltage is produced on the input lines a; at i leading to the gates of the MNOS transistors of the AND matrix; the diagram is an exemplary embodiment using the signal SL (reading mode) to connect via transfer gates 701 and 702 the input Ai to line a and, with an inverter, to the line at i . Outside the reading mode, the EF / T signal is applied to two gates 703 and 704 capable of transmitting the voltage VIDD on the lines a i and at i .
  • a zero voltage is applied to the grid lines a and at i ; in test and write, the applied voltage depends on the logic signal applied to the input Ai.
  • the locking buffer amplifier 705 does not change state and the voltage a remains unchanged.
  • the signal VA2 then begins, at the same time as a second bit of test or write information is loaded at the input Ai, which is transmitted in complemented form, by another locking buffer amplifier 706 which also plays the role of reverser and through gate 704, at the line at i .
  • a 1 on Ai brings 0 volts on at i while a zero brings 5 volts.
  • a 1 on Ai brings 0 volts on to; while a zero brings 25 volts.
  • Fig. 9 shows an exemplary embodiment of an output interface circuit (60) making it possible to receive a decoder address or write data from the OR matrix from the outputs Si of the network; the diagram of the three-state amplifier (50) making it possible to use the outputs Si as well in outputs connected to the outputs SOi of the matrix OR as in addressing inputs or in data inputs, is also shown in the drawing of fig. 9.
  • AMi and AMi the decoder address lines
  • addressing signal stored in memory on AMi and AMi designating a given intermediate product which is applied (see fig. 6) on the input lines of the OR matrix (LOj), and a write voltage VIDD or zero on the columns SOi.
  • the output SOi is also connected, for reading or testing, to Si via the three-state amplifier 50, controlled by the signal F8, which prevents direct return, in writing or at first. of the test of the signal of Si to the columns SOi.
  • MNOS transistors Other programmable and electrically erasable transistors can be used (floating gate transistors for example).

Description

  • La présente invention concerne les réseaux logiques 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 combinaison 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 programmable 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 portes fournissent des signaux qui sont des produits des variables d'entrée a, 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 à certaines des sorties de p portes ET de la matrice ET; les sorties des m portes OU fournissent des sommes logiques des signaux appliqués à leurs entrées, c'est-à-dire des sommes des produits des variables d'entrée.
  • 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
    • S, = a 1 a2 a3 + a1 a 2
    • et S2 = a1 a3 + a1 à2

    dans un réseau à trois entrées et deux sorties, il faut:
    • 1. réaliser une porte ET recevant a 1, a2 et a3, une autre recevant a1 et â2 et une troisième recevant a1 et a3.
    • 2. réaliser une porte OU recevant la sortie des première et deuxième portes 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 a 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 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 correspoondant à une sortie du réseau ne doit recevoir sur ses entrées que les produits intermédiaires apparaissant dans la combinaison logique à réaliser sur cette sortie; les sorties des autres portes ET, correspondant à 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 programmation adéquat (par exemple une tension électrique capable de détruire un fusible en série avec une diode 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 doivent recevoir un signal de neutralisation, à leur appliquer 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 (211 = 2048) serviront à désigner chacune des portes à travers un décodeur, pour diriger exclusivement 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-1 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 combinaisons 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 combinaisons 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 a; du réseau et les entrées des portes ET; cette correspondance est directe puisque chaque entrée A 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, compte tenu 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 entrées A;, c'est-à-dire les entrées de variables, qui servent aussi d'entrées d'adressage en mode programmation, 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 neutraliser, 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'adressage de chacune des entrées de porte OU à neutraliser, compte-tenu de la correspondance prévue par le fabricant, 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 de broches extérieures du réseau et la structure interne de celui-ci.
  • Un exemple de réseau logique programmable utilisant ce principe est le circuit IM5200 de la société INTERSIL qui est programmable électriquement; dans ce circuit, deux des entrées de variable A 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 programmation, à 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; il est de toutes façons nécessaire d'y parvenir si le réseau est effaçable et reprogrammable é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 programmable - qui présente une grande facilité d'utilisation lors de la programmation, - qui permet en particulier de programmer simultané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 A avec une signification commune en mode de lecture et en mode de programmation de la matrice ET, - qui de préférence ne nécessite 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, - 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 cellé 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 lesdites matrices, apte à engendrer, à partir du signal de sortie du décodeur 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'interface 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 en mode de lecture, après programmation par les signaux de programmation de lignes et de colonne, soit un produit des variables correspondant aux entrées de variables sur lesquelles on a appliqué un signal d'écriture 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 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 appliqué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 matrice somme, ces signaux é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.
  • 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 apparaître 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 programmation.
  • C'est ainsi par exemple que pour programmer le produit aiajak devant apparaître dans plusieurs sommes de produits Sq, Sr et S,, 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 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, S, et Ss qui doivent engendrer le produit a aj 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 entrées d'adressage (26 = 64) et les p (64) portes ET, le reste de la détermination des signaux de programmation à effectuer se faisant par une application d'informations aux entrées de variable Ai et aux sorties de fonction Si avec une corres- pondance directe et immédiate entre les combinaisons logiques à réaliser 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écessaires (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 a soit leurs compléments a i. En lecture, il n'y a pas de difficulté car on introduit une information à deux états: présence de a ou de son complément, et des signaux binaires 0 ou 1 appliqués aux n entrées a suffisent à préciser complètement l'information d'entrée.
  • Mais, en mode de programmation, il faut être capable d'introduire pour chaque variable a une information à trois états, car un produit à réaliser sur une porte ET peut
    • - comprendre la variable ai parmi d'autres
    • - ou comprendre son complément a i
    • - ou ne comprendre ni a ni a i 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 a;, 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 aux 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'adressage du décodeur. On ne peut a priori utiliser directement les entrées Ai puisqu'on veut qu'elles servent, en programmation, à diriger les signaux de programmation 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 programmation 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 programmation, la présente invention propose d'effectuer chaque étape de programmation en deux temps, ce qui permet:
    • - 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, occurence de son complément, non-occurence); c'est le circuit d'interface d'entrée qui établit trois types de signaux de programmation correspondants;
    • - d'introduire sur les sorties Si, fonctionnant d'abord en 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'écriture 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 fonction 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 aiguille la première partie du signal d'écriture appliqué à une entrée de variable Ai vers une ligne d'entrée de la matrice produit correspondant à cette variable Ai, et il aiguille la deuxième partie vers la ligne d'entrée correspondant au complément Ai de cette variable.
  • Pour que la grande simplification de programmation 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 1 sur Ai indique la présence de Ai, et un 0 sur Ai indique la présence de 8i; on a donc choisi, en mode de programmation en deux temps, - d'introduire comme signal d'écriture deux fois de suite un 1 sur Ai si le produit à programmer contient a;, - d'introduire deux fois de suite un 0 sur Ai si le produit à programmer contient ai, - d'introduire une fois un 1 et une fois un 0 sur Ai si le produit à programmer ne doit contenir ni a ni a i.
  • 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 signaux de commande de test venant du circuit de commande, un signal de résul-- tat de test du produit intermédiaire désigné, ce signal étant transmis à une sortie de lecture de test. Quant au circuit d'interface d'entrée, il 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 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.
  • 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 écriture).
  • Le test peut se faire entrée de porte par entré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 signaux d'écriture particulier: signaux à deux informations successives introduites en deux temps, deux 1 successifs sur Ai produisant un signal de test de ligne sur une ligne de matrice correspondant à la variable a;, deux 0 successifs produisent un signal de test de ligne sur une ligne correspondant à a i, et un 1 et un 0 produisant simultanément un signal de test sur les lignes a et ài. 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 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 effective du produit intermédiaire désigné dans la combinaison 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 apparaissant sur les entrées Ai d'une part directement vers une ligne de la matrice produit et d'autre part après inversion 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 circuit d'interface de liaison entre matrices relie la sortie de chaque colonne de matrice produit à une ligne d'entré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 respective.
  • Un transistor MNOS présente la possibilité, remarquable pour réaliser une programmation électrique effaçable, de pouvoir être rendu non conducteur de manière permanente par application sur sa grille de commande d'une haute tension qui réalise un piégeage d'électrons à 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 disparaît et ils maintiennent le transistor MNOS bloqué; l'application ultérieure sur la grille de commande d'une tension qui normalement rendrait le transistor conducteur n'a maintenant plus d'effet sur lui.
  • Ce piégeage peut aussi être effacé électriquement par application d'une haute tension en sens inverse.
  • 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 grille.
  • Cette propriété des transistors MNOS est utilisée particulièrement économiquement (en nombre de transistors utilisés pour une porte) 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 à partir 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 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 positive à 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 programmation ou de test engendrés par ces circuits sont constitué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'invention apparaîtront à la lecture de la description détaillée qui suit et qui est faite en référence aux dessins annexés dans lesquels:
    • - la fig. 1 montre le schéma global extrêmement simplifié d'un réseau logique programmable
    • - la fig. 2 en montre l'équivalent réalisé avec des portes NOR
    • - la fig. 3 montre une porte NOR réalisée à l'aide de transistors MNOS
    • - la fig. 4 montre un schéma bloc de la structure de réseau selon la caractéristique essentielle de l'invention
    • - la fig. 5 représente le bloc du circuit logique de commande du réseau
    • - la fig. 6 représente le circuit d'interface de liaison entre matrices
    • - la fig. 7 représente le circuit d'interface d'entrée
    • - la fig. 8 représente le diagramme temporel des signaux déterminant la décomposition en deux temps de la programmation ou du test
    • - la fig. 9 représente le circuit d'interface de sortie
    • - la fig. 10 représente un circuit de production d'un résultat de test de la matrice ET et de production d'une tension de protection des drains des transistors MNOS.
  • On voit à la fig. 1 le schéma de principe d'un réseau logique programmable: à partir de n entrées de variables Ao à An-1 on peut introduire des signaux logiques ao - an-1 et leurs compléments 80 à an-1 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 produits logiques intermédiaires Mo à Mp-1 des variables d'entrée a (directes ou complémentées). Chacun des produits intermédiaires est déterminé par celles des variables d'entrée ou de leurs compléments qui sont effectivement 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 entrées chacune) qui fournit, sur ses colonnes de sortie So à Sm-1, des combinaisons logiques des variables d'entrée 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 correspondant à cette somme.
  • La programmation du réseau pour obtenir sur chacune des sorties la combinaison logique désirée consiste à 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 fig. 2 montre un réseau logique équivalent à celui de la fig. 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 inverseur; une porte OU par une porte NOR suivie d'un inverseur. On pourrait aussi n'utiliser que des OU et inverseurs.
  • La fig. 3 montre un exemple de porte NOR à n entrées ao, a1 ... 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'invention, 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 substrats sont tous reliés à une tension commune, en principe de 0 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 ao, a o, ai, a 1 ..., a n-1 servent à bloquer ou débloquer les transistors. La mise en conduction d'un ou plusieurs transistors par un signal logique de niveau 1 (quelques volts positifs sur la grille), met à zéro la sortie. Le blocage de tous les transistors simultanément met à 1 la sortie. Il s'agit donc bien d'une porte NOR.
  • La programmation de la porte consiste à supprimer ou mettre en blocage permanent les transistors correspondant aux variables qui ne doivent pas influer sur la sortie; par exemple, réaliser en sortie le produit ai âj consiste à supprimer ou bloquer tous les transistors reliés aux autres entrées que a i et a↓; de même, réaliser la somme a + a j consisterait à ne conserver comme transistors actifs que ceux reliés aux entrées a et a j.
  • 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 transistor à une valeur haute (environ 7 V) et créent un seuil de tension de déblocage que ne peut franchir un signal logique normal (0 à 5 V) appliqué à la grille. Les transistors non «piégés» sont conducteurs ou bloqués selon leur tension de grille car leur tension de seuil est basse: 1 à 2 volts.
  • Le piégeage se fait par application d'une forte tension sur la grille (environ 25 volts). Il est non destructif 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'effacement)
    • - la programmation de nouvelles fonctions du réseau (mode d'écriture)
      • 1. Lecture
        • - Sources à 0 volt
        • - Dains reliés à la charge
        • - 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
        • - Sortie sur les drains réunis
      • 2. Effacement
        • - Sources déconnectées (état haute impédance)
        • - Drains déconnectés (état haute impédance)
        • - Grilles reliées à la masse
        • - Substrats reliés à une haute tension Vpp - 25 volts
      • 3. Ecriture
        • a) Transistors à bloquer
          • - Sources déconnectées
          • - Drains à 0 volt
          • - Substrat-0 volt
          • - Grilles à haute tension
        • b) Transistors à garder actifs
          • - Sources déconnectées
          • - Drains à 0 volt
          • - Substrat à 0 volt
          • - Grilles à 0 volt
        • c) Colonnes de transistors à protéger pendant qu'une colonne particulière est programmée
          • - Sources déconnectées
          • - Drains à une tension de protection Vp élevée
          • - Substrat à 0 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'application 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 être, indépendamment des autres, reliés à 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 tension 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 de grille, les colonnes de source et de drains, et les substrats réunis, en fonction de signaux de mode de fonctionnement (lecture, effacement, écriture, test) et en fonction des signaux logiques appliqués aux diverses entré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 fig. 4. On y voit encore une matrice produit ET (10) avec ses 2 n entrées de variables a,,, 80 à an-1, ân-1, et une matrice OU (20) à base de transistors MNOS. La liaison entre elles n'est pas directe, elle se fait à travers un circuit logique 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'invention, un décodeur (40) est prévu, apte à désigner individuellement chacune des colonnes de sortie de la matrice ET ainsi que la ligne d'entrée de la matrice OU correspondant au même produit intermédiaire que la colonne de sortie désignée.
  • Cette désignation est destinée au circuit logique 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 simplement par une série de p portes ET ou NOR qui reçoivent des adresses binaires servant à la désignation de la colonne choisie et qui ont des entrées programmées (de maniè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 desquelles l'utilisateur choisit la colonne de transistors à programmer 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-1 qui servent à 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-1 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 < p≤2r; par exemple, si le réseau comprend 64 produits intermédiaires, on pourra utiliser 6 entrées d'adressage choisies parmi les sorties So à Sm-1. Ce sont ces r entrées, dédoublées en 2 X r avec leurs compléments logiques qui sont appliquées aux p portes constituant le décodeur.
  • Pour que les sorties So à Sm-1 puissent fonctionner 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) à trois états, avec une commande de troisième état isolant 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 notamment 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 deuxième temps comme entrées d'écriture proprement dite par lesquelles on peut désigner ceux des transistors MNOS de la matrice OU qui doivent être bloqués (le décodeur indiquant 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: pendant 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ées en permanence). Comme il y a pour chaque entrée Ai trois types de cas possibles selon le produit intermédiaire à réaliser (présence de a dans le produit, présence de 8i' absence de a et de 8i), 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 successifs; ils sont introduits respectivement dans le premier 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'information introduits sur chaque entrée de variable Ai pour désigner celle des deux lignes de grilles de MNOS correspondant à Ai qui est à programmer ou à tester.
  • Pour l'opérateur, le travail de programmation 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 affecte une colonne particulière de la matrice ET; il détermine l'adresse de cette colonne à introduire sur les entré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 deuxième temps de l'étape; ce vecteur s'écrit de manière 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 produit intermédiaire (programmation de la matrice ET); la correspondance entre ces variables et les vecteurs à appliquer aux entrées Ai est encore très directe:
    • - si la variable a apparaît dans le produit 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 â; qui apparaît, on inscrit d'abord un 0 puis encore un 0
    • - si la variable a n'apparaît pas du tout, on inscrit d'abord un 1 puis un 0.
  • En faisant cela pour toutes les variables a;, on obtient deux vecteurs d'écriture successifs qui se résument ainsi:
    Figure imgb0001
  • 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 fig. 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'écriture ainsi que la synchronisation des inscriptions des données en mode de programmation et test. Ce circuit logique, mieux symbolisé à la fig. 5, établit des signaux de commande fonctionnels transmis aux divers circuits logiques 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 tension lorsque cela est nécessaire, y compris pour réaliser un interface de compatibilité entre des circuits de technologies différentes.
  • On remarquera sur la fig. 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 vecteur 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 vecteurs sont introduits en deux temps et ils désignent les lignes d'entrée de la matrice ET que l'on examine. Pendant 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 (premier 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 0 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 particulier (1,1 ou 0,0) appliqué à une entrée Ai fait apparaître sur la sortie de test TM un 1 ou un zéro selon que la variable a apparaît, complémentée ou non dans le produit intermédiaire désigné.
  • La fig. 5 montre symboliquement le circuit logique de commande qui recoit
    • - 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 fonctionnement 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 commande appliqués aux circuits d'interfaces pour faire appliquer aux transistors des deux matrices les conditions d'effacement, d'écriture, de test, ou de lecture.
  • Les signaux de sortie du circuit de commande (80) sont:
    • - les signaux CE et EF/T eux-mêmes, éventuellement rendus compatibles, s'ils ne l'étaient pas, avec le reste du circuit;
    • - 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 VA1 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 (0 à 5 volts) ou élevé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éfinissant à partir de EF/T et RW respectivement les modes de lecture, test, écriture, effacement;
    • - huit signaux F1 à F8 définissant des états distincts utiles pour la commande des divers circuits; ils sont respectivement:
    • - F1: fonction indiquant qu'on n'est ni en écriture, ni en test
    • - 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
    • - F4: on est en cours d'écriture proprement dite
    • - F5: on est en mode d'effacement ou en cours de test
    • - 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 établissant chaque fonction de commande.
  • On a donné aux fig. 6 à 10 les schémas complets d'un exemple de réalisation préférentiel des divers 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 effectuera pas une explicitation dans les moindres détails.
  • Tout d'abord, la fig. 6 représente le circuit logique (30) d'interface de liaison entre matrices avec le décodeur (40), ceci au niveau d'une seule colonne j de transistors MNOS de la matrice ET; on n'a repré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 a 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 25 volts. (Voir fig. 7 pour la production de cette tension 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 charge alimentée par Vpp (en lecture), ou mis en l'air (effacement) ou mis à une tension de protection Vp (écriture 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 à 0 volt ou à Vpp selon l'état de la fonction F7.
  • Les diverses portes de la logique d'interface de la fig. 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 sortie 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 position d'effacement, et une tension nulle apparaît 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; ou en mode de test et LOj = Vcc ou 0 volt selon que le décodeur a ou non sélectionné la colonne.
  • La ligne Vp sert à la fois à amener une tension de protection en écriture ou effacement (voir fig. 10), et aussi à recueillir l'état de SCj (isolé de LOj à ce moment là) en mode de test.
  • La fig. 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 a;, a i 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 a et, avec un inverseur, à la ligne a i. En dehors du mode de lecture, le signal EF/T est appliqué à deux portes 703 et 704 capables de transmettre la tension VIDD sur les lignes ai et a i.
  • En effacement, une tension nulle est appliquée aux lignes de grille a et a i; 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'introduction 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'information pendant la durée du signal VA1 (lui-même contenu dans la durée CE); ce bit est transmis par l'amplificateur 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 VA1 s'arrête, l'amplificateur tampon de verrouillage 705 ne change pas d'état et la tension en a 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 complémentée, par un autre amplificateur tampon de verrouillage 706 qui joue aussi le rôle d'inverseur et par la porte 704, à la ligne a i. En test, un 1 sur Ai amène 0 volt sur a i tandis qu'un zéro amène 5 volts. En écriture, un 1 sur Ai amène 0 volt sur à; tandis qu'un zéro amène 25 volts.
  • On comprend donc qu'avec le codage très simple d'écriture ou de test, en deux bits chargés successivement et verrouillés, on peut appliquer indépendamment sur a et a i, par une seule entrée Ai, les conditions de piégeage ou non piégeage de l'un ou l'autre ou les deux transistors MNOS couplés à a et a i. En effet, l'introduction successive des bits 1,1 sur Ai amène une tension sur a et pas sur â; à la fin de VA1 et VA2; l'introduction de 0,0 amène une tension sur a i et pas sur ai; l'introduction de 1,0 amène une tension à la fois sur a et sur a i et les deux transistors correspondant sont piégés.
  • On a représenté à la fig. 8 comment se situent les signaux VA1 et VA2 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 VA1 = 0 et l'introduction du second pendant que VA2 = 0.
  • La fig. 9 montre un exemple de réalisation d'un circuit d'interface de sortie (60) permettant de recevoir 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'adressage ou en entrées de données, est aussi figuré sur le dessin de la fig. 9.
  • Le circuit 60 est tout à fait analogue à celui de la fig. 7, commandé par VA1 et VA2 avec deux amplificateurs tampons 605 et 606 dirigeant les bits d'entrée sur Si respectivement vers les lignes d'adresses de décodeur (AMi et AMi) pendant que VA1 = 0, et vers les colonnes de sortie SOi de la matrice OU pendant que VA2 = 0. 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 fig. 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 à 0 volt si le transistor doit être piégé (absence du produit intermé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 inférieure) si le produit .intermédiaire doit apparaître et que par conséquent le transistor correspondant ne doit pas être piégé.
  • On fera dans le deuxième temps VA2 de l'écriture Si = 1 donc SOi = 0 volt si le produit intermédiaire doit apparaître; sinon, Si = 0 donc SOi = 25 volts.
  • La validation de cette inscription se fait par le signal SEC (de mode d'écriture) qui autorise l'application de VIDD ou 0 à SOi.
  • La sorite 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 premier temps du test du signal de Si vers les colonnes SOi.
  • La fig. 10 montre l'amplificateur à trois états 90 de la fig. 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écodeur (voir fig. 6); cette transmission se fait par la ligne VP et l'amplificateur 90 l'amène à une borne extérieure de test TM sous l'autorisation de la fonction de commande F6 indiquant qu'on est en mode de test.
    • 2. é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 encore mentionner que l'information en deux vecteurs introduite sur les entrées Ai en mode de programmation, dont on a dit qu'elle permettait de définir trois états de programmation, 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 8i dans un produit intermédiaire, ce qui annulerait ce dernier. Cet état peut servir de neutralisation des produits intermédiaires non désirés.
  • Enfin, la description qui précède a été faite à propos de transistors MNOS. D'autres transistors programmables et effaçables électriquement peuvent être utilisés (transistors à grille flottante par exemple).

Claims (20)

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 produtis intermédiaires, caractérisé par le fait qu'il comprend un décodeur (40) 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 (30) d'interface de liaison entre lesdites matrices apte à engendrer, à partir du signal de sortie du décodeur et de signaux de commande d'écriture d'un circuit de commande (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'interface 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 intermédiaire obtenu en sortie de la colonne désignée en mode de lecture, après programmation par les signaux de programmation de lignes et de colonne, soit un produit des variables correspondant aux entrées de variables sur lesquelles on a appliqué un signal d'écriture particulier.
2. Réseau logique selon la revendication 1, caractérisé par le fait qu'il comprend en outre un circuit 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 de signaux de commande d'écriture du circuit de commande, des signaux de programmation des colonnes de la matrice somme, ces signaux é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'interface de sortie ayant en plus une fonction de verrouillage de données pour autoriser l'introduction d'une information d'adressage du décodeur sur ces sorties pendant 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 programmation, 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 apparaissant à 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 intermédiaire désigné, que son complément doit apparaître, 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'entré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 à appliquer à 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 à engendrer, à 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 signal de résultat de test du produit intermédiaire désigné, ce signal étant transmis à une sortie de lecture de test.
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 successivement deux niveaux logiques 1, 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 logiques 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, caracté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 chaque sortie et la présence effective du produit intermé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 revendication 12, caractérisé par le fait que le circuit d'interface 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 intermé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'interface 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 linges 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 constitué de p portes à 2r entrées logiques et r inverseurs, avec 2r-1 < pG2`, les portes étant programmées de manière que le décodeur fournisse un niveau logique parmi p.
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) portes NOR à 2n (respectivement p) entrées.
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 programmation 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 transistors (grilles, sources, drains, substrats), sous la commande du circuit de commande et des entrées du réseau, une tension nulle, ou normale, ou é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és 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 revendication 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,
b) sources déconnectées, drains déconnectés, grilles à 0 volt, substrat à haute tension,
c) sources déconnectées, drains à 0 volt, substrat à 0 volt, grilles à haute tension ou à 0 volt selon le signal reçu,
d) sources déconnectées, drains à haute tension, substrat à 0 volt, grilles à haute tension ou 0 volt.
EP81401683A 1980-11-03 1981-10-23 Réseau logique intégré à programmation électrique simplifiée Expired EP0051525B1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR8023463A FR2493641A1 (fr) 1980-11-03 1980-11-03 Reseau logique integre a programmation electrique simplifiee
FR8023463 1980-11-03

Publications (2)

Publication Number Publication Date
EP0051525A1 EP0051525A1 (fr) 1982-05-12
EP0051525B1 true EP0051525B1 (fr) 1984-02-15

Family

ID=9247620

Family Applications (1)

Application Number Title Priority Date Filing Date
EP81401683A Expired EP0051525B1 (fr) 1980-11-03 1981-10-23 Réseau logique intégré à programmation électrique simplifiée

Country Status (5)

Country Link
US (1) US4488246A (fr)
EP (1) EP0051525B1 (fr)
JP (1) JPS57106237A (fr)
DE (1) DE3162321D1 (fr)
FR (1) FR2493641A1 (fr)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4660171A (en) * 1981-12-21 1987-04-21 International Business Machines Corp. Apparatus and method using a programmable logic array for decoding an operation code and providing a plurality of sequential output states
DE3215671C2 (de) * 1982-04-27 1984-05-03 Siemens AG, 1000 Berlin und 8000 München Programmierbare Logikanordnung
US4554640A (en) * 1984-01-30 1985-11-19 Monolithic Memories, Inc. Programmable array logic circuit with shared product terms
US4713792A (en) * 1985-06-06 1987-12-15 Altera Corporation Programmable macrocell using eprom or eeprom transistors for architecture control in programmable logic circuits
US4617479B1 (en) * 1984-05-03 1993-09-21 Altera Semiconductor Corp. Programmable logic array device using eprom technology
US5023775A (en) * 1985-02-14 1991-06-11 Intel Corporation Software programmable logic array utilizing "and" and "or" gates
US4758746A (en) * 1985-08-12 1988-07-19 Monolithic Memories, Inc. Programmable logic array with added array of gates and added output routing flexibility
US4730130A (en) * 1987-01-05 1988-03-08 Motorola, Inc. Writable array logic
US5471155A (en) * 1993-03-31 1995-11-28 Intel Corporation User programmable product term width expander
JPH06349281A (ja) * 1993-06-04 1994-12-22 Fujitsu Ltd 半導体装置
US5635855A (en) * 1995-07-21 1997-06-03 Lattice Semiconductor Corporation Method for simultaneous programming of in-system programmable integrated circuits
US6691267B1 (en) * 1997-06-10 2004-02-10 Altera Corporation Technique to test an integrated circuit using fewer pins
US6134703A (en) * 1997-12-23 2000-10-17 Lattice Semiconductor Corporation Process for programming PLDs and embedded non-volatile memories
US8661394B1 (en) 2008-09-24 2014-02-25 Iowa State University Research Foundation, Inc. Depth-optimal mapping of logic chains in reconfigurable fabrics
US8438522B1 (en) 2008-09-24 2013-05-07 Iowa State University Research Foundation, Inc. Logic element architecture for generic logic chains in programmable devices

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3987286A (en) * 1974-12-20 1976-10-19 International Business Machines Corporation Time split array logic element and method of operation
IT1063025B (it) * 1975-04-29 1985-02-11 Siemens Ag Disposizione circuitale logica integrata e programmabile
US4034356A (en) * 1975-12-03 1977-07-05 Ibm Corporation Reconfigurable logic array
JPS52130536A (en) * 1976-04-26 1977-11-01 Toshiba Corp Semiconductor memory unit
US4094012A (en) * 1976-10-01 1978-06-06 Intel Corporation Electrically programmable MOS read-only memory with isolated decoders
US4313106A (en) * 1980-06-30 1982-01-26 Rca Corporation Electrically programmable logic array

Also Published As

Publication number Publication date
FR2493641A1 (fr) 1982-05-07
FR2493641B1 (fr) 1984-05-04
DE3162321D1 (en) 1984-03-22
US4488246A (en) 1984-12-11
EP0051525A1 (fr) 1982-05-12
JPS57106237A (en) 1982-07-02

Similar Documents

Publication Publication Date Title
EP0051525B1 (fr) Réseau logique intégré à programmation électrique simplifiée
EP0666572B1 (fr) Bascule bistable non volatile programmable, à état initial prédéfini, notamment pour circuit de redondance de mémoire
EP0666573B1 (fr) Bascule bistable non volatile programmable par la source, notamment pour circuit de redondance de mémoire
EP0669576B1 (fr) Circuit de redondance de mémoire
EP0674264B1 (fr) Circuit de sélection d&#39;éléments de mémoire redondants et mémoire &#34;FLASH EEPROM&#34; comportant ledit circuit
FR2667169A1 (fr) Circuit de production de haute tension pour un circuit de memoire a semiconducteur.
EP0645714B1 (fr) Circuit de redondance dynamique pour mémoire en circuit intégré
FR2476851A1 (fr) Procedes et appareils de controle automatique de circuits electriques
EP0544568B1 (fr) Circuit de lecture de fusible de redondance pour mémoire intégrée
EP0694846A1 (fr) Procédé de brouillage numérique et application à un circuit programmable
FR2629248A1 (fr) Procede de test de memoire a programmation unique et memoire correspondante
FR2641391A1 (fr) Composant logique programmable effacable rapide
EP0665559B1 (fr) Bascule bistable non volatile programmable, à reduction de parasites en mode de lecture, notamment pour circuit de redondance de mémoire
FR2771839A1 (fr) Memoire non volatile programmable et effacable electriquement
BE898544R (fr) Calculateur associatif permettant une multiplication rapide.
EP0678875B1 (fr) Procédé d&#39;effacement d&#39;une mémoire et circuits de mise en oeuvre
EP0875899B1 (fr) Ensemble de deux mémoires sur un même circuit intégré monolithique
EP0269468B1 (fr) Dispositif de sécurité pour la programmation d&#39;une mémoire non volatile programmable électriquement
EP0954865B1 (fr) Procede de programmation d&#39;une memoire de type eprom-flash
EP0130129B1 (fr) Mémoire permanente organisée en deux demi-plans pour améliorer la vitesse de lecture
FR2778253A1 (fr) Dispositif de configuration d&#39;options dans un circuit integre et procede de mise en oeuvre
FR2768256A1 (fr) Procede d&#39;enregistrement d&#39;un mot binaire au moyen de cellules memoire du type programmable et effacable electriquement
EP0588700B1 (fr) Mémoire de programme à semi-conducteur protégée en lecture
FR2588136A1 (fr) Dispositif de sequencement notamment pour circuits logiques.

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

AK Designated contracting states

Designated state(s): DE FR GB IT NL

17P Request for examination filed

Effective date: 19820611

ITF It: translation for a ep patent filed

Owner name: JACOBACCI & PERANI S.P.A.

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

AK Designated contracting states

Designated state(s): DE FR GB IT NL

REF Corresponds to:

Ref document number: 3162321

Country of ref document: DE

Date of ref document: 19840322

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

26N No opposition filed
PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: NL

Payment date: 19901031

Year of fee payment: 10

ITTA It: last paid annual fee
PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: NL

Effective date: 19920501

NLV4 Nl: lapsed or anulled due to non-payment of the annual fee
REG Reference to a national code

Ref country code: FR

Ref legal event code: D6

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: FR

Payment date: 20001010

Year of fee payment: 20

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: DE

Payment date: 20001016

Year of fee payment: 20

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: GB

Payment date: 20001018

Year of fee payment: 20

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: GB

Free format text: LAPSE BECAUSE OF EXPIRATION OF PROTECTION

Effective date: 20011022

REG Reference to a national code

Ref country code: GB

Ref legal event code: PE20

Effective date: 20011022