C-MOS arithmetic-logic unit

Abstract: The arithmetic-logic unit comprises elementary cells performing logic addition, one per each pair of operand bits, which are particularly optimized as far as carry propagation speed is concerned and are controlled by an auxiliary fast logic allowing their performances to be extended to the other operations; the unit further comprises a control signal generating circuit, subdivided into a first part (DEC1), near the elementary cell of least significant position, which generates an operation selecting signal for all the cells, and into a second part (DEC2), near the elementary cell of most significant position, which generates control signals for the auxiliary logic of each elementary cell.

Description: The present invention concerns integrated circuits and more particularly a C-MOS arithmetic-logic unit for executing operations of addition, subtraction, minimum and comparison with a threshold. In a lot of applications the necessity of increasing computation speed and optimizing the number of transistors and the occupied area makes the use of traditional schemes of integrated arithmetic logics more and more problematic. One of such applications is the implementation of an operative unit usable in calculating known dynamic programming algorithms. Said algorithms, intensively used in the methods of speech and image recognition, consist of a very limited set of elementary logic and arithmetic operations which are to be repeated often and quickly in real time. The most widely used technique in arithmetic logic design is that of implementing minimized Boolean equations, obtained by applying Karnaugh maps to the truth tables of the functions to be carried out, by suitable combinations of known elementary logic gates, such as NAND, NOR, NOT, EX-OR. Each elementary logic gate is then transformed into the equivalent transistor circuit in the desired technology, for example in the integrated MOS technology. Finally, geometric dimensioning of the individual transistors of the structure to be integrated is performed. The arithmetic-logic unit, provided by the invention can be implemented starting from a circuit performing the logic addition, integrating it by a suitable additional circuitry. The adders known in the technique have a structure composed of equal addition cells, whose number is equal to the dimension of the operands and whose carry propagates from the cell of lower weight to that of higher weight, crossing the various logic levels of each cell. The result will be stable at the output only at the end of the path of the carry signal. Hence the carry signal propagation time limits computational speed, particularly when the operands have considerable dimensions and, as a consequence, the number of logic levels to be crossed is high. This is due to the fact that in the known circuits the carry signal at a cell output generally feeds a considerable number of transistor gates of the subsequent cell. Thus switching time results high due to the equivalent parasitic capacity that said output of the carry signal sees at the input of the subsequent cell. Said capacity is proportional to the number of transistor gates at said input. In published European Patent Application 0 181 516 a data processing apparatus having efficient minimum and maximum functions is decribed. The proposed apparatus comprises latches temporalily storing the data being supplied to the two input ports of an arithmetic-logic unit, the outputs of which latches and that of the arithmetic-logic unit being switched by a multiplexer for selected final output. The problem deriving from the propagation time of the carry signal has been solved according to an earlier proposal described in published European patent application 0 291 963, published 23-11-88 entitled: "Fast C-MOS adder" filed in the name of the same Applicant. Said European patent application proposed an elementary cell performing logic addition between two operand bits with carry propagation in C-MOS technology, characterized in that it basically comprises: a first EX-OR logic gate which receives said operand bits A, B; a first inverter which receives an input carry Cin; a second inverter which receives the output of said first EX-OR logic gate; a first transfer gate which receives at the transfer input the output of said first inverter, and which is controlled by the logic input and output levels of said second inverter; a second EX-OR logic gate which receives the input carry Cin and the output of said second inverter, and supplies the result S of the addition; and a first pair of P-MOS transistors in series and a second pair of N-MOS transistors in series, said first and second pair being connected in series between two reference voltages, the bit of the first operand A being sent to the gate of a transistor of both pairs, the bit of the second operand B being sent to the gate of the other transistor of both pairs, the common node of said two pairs being connected to the output of said first transfer gate and supplying the output carry CoutN complemented. Yet the problems relevant to computational speed remain unresolved for the portion of circuit which is to perform all the other operations in the unit, and chiefly for the circuit which generates internal control signals of selection of the operation and of the result at the output. Said circuit in fact uses the carry signal at the adder output to generate control signals. Moreover, collateral problems of load balancing on parallel circuit branches, which are connected with the two operands, arise as well as problems of physical displacement of the control circuit in the integrated structure, still with the aim of increasing computational speed. Said problems are solved by the present invention of a C-MOS arithmetic-logic unit for carrying out operations of addition, subtraction, minimum and comparison with a threshold, which is directly derived from the truth table of the relevant logic operations by exploiting to the maximum the electric properties of the complementary logic of the C-MOS technology, without using the Karnaugh maps, and in which the number of MOS transistors of the N or P type is considerably reduced, thus also reducing the number of gates to be driven at the input of each logic circuit. Thus a limited-complexity high-speed circuit is obtained, which is particularly suited to integration in a LSI microprogrammed processing stucture. The unit provided by the invention completes the adder structure, described in the cited patent application, with a control signal generating circuit, subdivided into two portions physically placed at the two ends of the adding circuit wherein input and output carry signals are present, and with input/output selecting circuits, particularly fast to shorten internal propagation times. An arithmetic-logic unit as described in claim 1 is provided by the present invention. The properties of the present invention will be made more evident by the description of a preferred embodiment thereof, given by way of non-limiting example, and by the annexed drawings in which: Fig. 1 is a block diagram of the unit provided by the invention; Fig. 2 is an embodiment of one of the computing cells ALU(n) of the unit; Fig. 3 is a detailed circuit diagram of a first embodiment of the elementary cell CEL of Fig. 2, denoted by CEL1; Fig. 4 is a detailed circuit diagram of an alternate embodiment of the elementary cell CEL of Fig. 2, denoted by CEL2; Fig. 5 is a detailed circuit diagram of block LSEL represented in dashed lines in Fig. 2; Figs 6 and 7 represent detailed circuit diagrams of blocks DEC1 and DEC2 of Fig. 1. Fig. 1 shows the unit subdivided into N computing cells ALU(n), one per each pair of operand bits A(n), B(n) at the input, which provide a result U(n), n (0 ≦ n ≦ N-1) being the operand and result size. DEC1 denotes a first part of the control signal generating circuit, and DEC2 a second part. DEC1 is plated near the computing cell ALU(0), while DEC2 near the computing tell ALU(N-1). DEC1 receives a 2-bit operation code CP and basically generates both an addition-or-subtraction selecting signal SMST it propagates to all the computing cells ALU, and CP values complemented it propagates together with the true ones to DEC2. Signal SMST is also supplied to the first cell ALU(0) as an input carry signal. DEC2 receives true and complemented values of the operation code CP and the output carry signal C(N-1) of the tell ALU(N-1), and generates control signals SEL, SELN, BEST, INFN it propagates to all the computing cells ALU. The arithmetic-logic unit carries out the following operations: Operation Result addition A+B output U = S (with saturation) subtraction A-B U = S minimum between A and B if A > B U = B if A < B U = A comparison between datum and threshold if datum > threshold U = infinity if datum < threshold U = datum where S denotes the adder output. In Fig. 2 CEL denotes an elementary cell performing logic addition, as described in the above-cited European patent application; as will be better disclosed hereinafter, CEL requires at the inputs the true and complemented levels of one of the two operands, e.g. A and AN, a second operand, denoted by BBN, and an input carry Cin (denoted by C(n-1) in Fig. 1) coming from the computing cell ALU(n-1), and generates an addition result SN and an output carry CoutN (denoted by C(n) in Fig.1) of logic level complemented. As will be described with reference to Figs 3 and 4, two embodiments of elementary cell CEL are provided. They are to be connected alternately with respect to the carry signal path to recover the carry logic-level inversion occurring in each cell. By adding an EX-OR logic gate, denoted by EX3, the addition cell can execute also the subtraction. In fact by sending operand B and signal SMST to EX3 inputs, SMST logic-level determines the operation to be carried out, sending onto the output BBN B true level for the addition, and B complemented level for the subtraction; besides the signal SMST is also supplied to the carry input of cell ALU(0). The adder-subtractor obtained in this way can be advantageously used as a core of the arithmetic unit, since minimum and comparison operations can be reduced to particular subtraction cases wherein the result is controlled by the carry of the last cell C(N-1). In fact by choosing the subtraction, the level of C(N-1) indicates whether A > B or vice versa. Hence carry C(N-1) and control signals SEL, SELN, BEST, INFN control the auxiliary logic of Fig. 2, present in each cell ALU, providing at the output U the addition or subtraction result performed by CEL, or the operand A or B present on wire ANBN, or a saturation level indicating the condition of infinity or of a datum exceeding threshold (all logic 1s). In function of the operation to be carried out, control signals SMST, SELN, BEST, INFN assume the following values: Operation SMST INFN BEST SELN Operation code CP A + B 0 CN(N-1) 0 - 00 A - B 1 1 0 - 01 min(A, B) 1 0 1 CN(N-1) 11 threshold comparison 1 0 CN(N-1) 1 10 As shown by the table, control signals INFN, BEST, SELN sometimes assume the complemented value CN(N-1) of the carry signal of the last cell: hence the necessity of disposing of a very fast adder, since only at computing end the carry signal and hence correct control of output U is attained. Blocks DEC1 and DEC2 have been suitably positioned to reduce to the minimum the incidence of propagation time of generating signals upon generated signals: in fact DEC1 position renders immediately available, without waiting for the propagation of code CP through the unit and before carrying out the operation, i.e. when actually useful, signal SMST which does not depend on C(N-1); DEC2 position however allows immediate availiability of signal C(N-1), without necessity of backpropagating it towards DEC1, to generate result control signals INFN, BEST, SEL, SELN, which actually are useful at the computation end. Besides, in case N is even, i.e. for a number of odd cells, owing to repeated level inversions of the carry signal, a further logic inversion is to be performed to recover the correct polarity of C(N-1) complemented in the circuit generating said control signals. TG1 and TG2 denote pairs of N-MOS and P-MOS transistors, implementing transfer gates, letting the input datum be transferred or not in function of the logic level at transistor gates, whereby they are implemented. TG1 and TG2 are enabled by signals SEL and SELN. TG1 inhibits or enables the passage of the operand BN, which is complementary to B through logic inverter I3; TG2, however, inhibits or does not the passage of operand AN, which is complementary to A through inverter I4. The outputs of two transfer gates are interconnected and denoted by ANBN. T34, T35, T36, T37 denote transistors connected in series between supply voltage Vcc and ground; T34 and T35 are of the P-MOS type while T36 and T37 are of the N-MOS type; the gates of T34 and T36 receive the result SN from cell CEL, T35 gate receives signal BEST, T37 gate receives signal INFN. T38, T39, T40, T41 denote transistors connected in series between supply voltage Vcc and ground; T38 and T39 are of P-MOS type while T40 and T41 are of N-MOS type; T39 and T41 gates receive signal ANBN, while T38 gate receives signal INFN and T40 gate receives signal BEST. Intermediate points between T34, T35 and T38, T39 channels are interconnected, as well as those between T35, T36 and T39, T40 channels to generate output U. Gates I3, I4, EX3, TG1, TG2 form a block LSEL surrounded by dashed lines in Fig. 2. Fig. 3 shows a first example of detailed circuit embodiment of the elementary cell CEL, denoted by CEL1, used in computing cells ALU in even position. T1, T3, T4 denote P-MOS transistors, while T2, T5, T6 denote N-MOS transistors. The channels of transistors T3, T4, T5, T6 are connected in series between supply voltage Vcc and ground. T3 and T6 gates are fed with operand A, while T4 and T5 are fed with operand BBN. It is to be noted that operand A could be already available at the relevant input of CEL1, but it is better obtained by a further complementing operation of input AN, performed by the inverter formed by transistors T13, T14, which are P-MOS and N-MOS respectively, for reasons of symmetry with the other type of elementary cell (shown in Fig. 4 where inverter T11, T12 is present) and of load balance between the two inputs A, AN. The channels of transistors T1 and T2 are connected in parallel to form a transfer gate to whose input a carry signal Cin is applied through an inverter (necessary to carry out the decoupling function) consisting of transistors T9 and T10 which are P-MOS and N-MOS respectively. The output of said transfer gate is connected to the connection point between T4 and T5 channels to generate carry signal CoutN complemented. T15, T17 denote P-MOS Transistors and T16, T18 N-MOS transistors, implementing an EX-OR gate to whose inputs operands A and BBN are sent and which produces at the output a signal passing to active logic level if A ≠ BBN, and which is applied then to T2 gate directly and to T1 gate through an inverter consisting of T7 and T8, which are P-MOS and N-MOS transistors, respectively. T15 and T16 channels are connected in parallel; the input of said channels is connected to T17, T18 gates and receives the operand BBN, while the output is connected to connection point of T17, T18 channels, which are connected in series, and is the output of the EX-OR gate; T15 gate is connected to T17 channel and receives operand A; T16 gate is connected to T18 channel and receives complement AN of operand A. T19, T21 denote P-MOS transistors, T20, T22 N-MOS transistors implementing an EX-OR gate to whose inputs are sent carry signal Cin and the output of inverter T7, T8 to generate result S which is hence level-inverted in the inverter-buffer consisting of transistors T23, T24, which are respectively P-MOS and N-MOS, to obtain signal SN. T19 and T20 channels are connected in parallel; the input of said channels is connected to T21, T22 gates and receives the output of inverter T7, T8, while the output is connected to the connection point of T21, T22 channels which are connected in series, and is the output of the EX-OR gate; T20 gate is connected to T22 channel and receives input carry Cin; T19 gate is connected to T21 channel and receives the output of inverter T9, T10. The pairs of transistors T7, T8; T9, T10; T13, T14; T23, T24 are connected likewise, i.e. each pair has the gates in common which form the input of the respective switching element, the channels in series between supply voltage and ground, and the output extracted between the two channels. When A = B, the transfer gate is inhibited while the output of the circuit branch formed by transistors T3,...T6 carries the complemented value of the inputs, denoted by CoutN. When, however, A ≠ B, the circuit branch T3,...T6 is inhibited, while transfer gate is enabled, supplying at the output the complemented value of input Cin, i.e. still CoutN. Fig. 4 shows a second example of detailed circuit of the elementary cell CEL, denoted by CEL2, used in computing cells ALU of odd position. The first variation with respect to the diagram of Fig. 3, to whose description one can refer for parts common to the diagrams, is that input carry Cin is brought at T19 gate (connected to T21 channel), while the common point to T9 and T10 channels is brought to the gate of transistor T20 (which is connected to T22 channel). Hence the variation with respect to the diagram of Fig. 3 consists of the exchange between the two inputs of the EX-OR gate supplying the result. The second variation consists in supplying T3 and T6 gates with the value AN complemented, and in supplying T4 and T5 gates the BBN value complemented, extracted from the output of the inverter consisting of transistors T11 and T12, respectively P-MOS and N-MOS, to whose input is sent BBN. In Fig. 5, T43, T44 denote P-MOS and N-MOS transistors forming inverter I3 (Fig. 2) inverting operand B and generating BN. T51, T52 denote P-MOS and N-MOS transistors implementing inverter I4 (Fig.2), which inverts operand A and generates AN. T45, T47 denote P-MOS transistors, T46, T48 N-MOS transistors implementing EX3 gate (Fig. 2) to whose inputs there are sent signal SMST and the input and output of the inverter I3 (signals B, BN), and whose output is level inverted in the inverter-buffer formed by transistors T49, T50, which are respectively of P-MOS and N-MOS type, to obtain signal BBN. T45 and T46 channels are connected in parallel; the input of said channels is connected to the gates of T47, T48 and receives the signal SMST, while the output is connected to the connection points of T47, T48 channels which are connected in series, and is the output of the EX-OR gate; T46 gate is connected to T48 channel and receives operand B; T45 gate is connected to T47 channel and receives output BN of inverter I3. P-MOS transistor T53 and N-MOS transistor T54 implement transfer gate TG1: they have channels in parallel and receive signal BN. Signal SEL is brought to T54 gate, signal SELN is brought to T53 gate: condition SEL=1 and SELN=0 enables TG1 and BN is transferred to the output. P-MOS transistor T55 and N-MOS transistor T56 implement transfer gate TG2: they have parallel channels and receive signal AN. Signal SEL is brought to T55 gate, signal SELN is brought to T56 gate: condition SEL=0 and SELN=1 enables TG2 and AN is transferred to the output. TG1 and TG2 outputs consists of the combined channel outputs of T53, T54, T55, T56. The pairs of transistors T43, T44; T49, T50; T51, T52 are connected likewise, i.e. they each have a common gate which is the input, the channels in series between supply voltage and ground, and the output extracted from the two channels. In Fig. 6 references T57, T58 denote P-MOS and N-MOS transistors which implement an inverter inverting the most significant bit CP1 of the operation code CP and generates signal CP1N. References T59, T60 denote P-MOS and N-MOD transistors implementing an inverter which inverts the least significant bit CPO of the operation code CP and generates signal CPON. The pairs of transistors T57, T58; T59, T60 are connected likewise, i.e. they each have the gate in common which is the input, the channels in series between supply voltage and ground, and the output extracted between the two channels. T61 denotes a P-MOS transistor, T62, T63 two N-MOS transistors, connected in series between supply voltage Vcc and ground. T61 and T62 gates receive signal CP1N, while T63 gate receives signal CPON. T64 denotes a P-MOS transistor, whose channel is connected between supply voltage Vcc and the common point to T61, T62 channels, wherefrom signal SMST is extracted; T64 gate receives signal CPON. T61,...T64 implement a NAND gate. In Fig. 7 references T65, T66 denote P-MOS and N-MOS transistors implementing an inverter inverting sign bit C(N-1) deriving from the last cell ALU(N-1) (Fig. 1), and obtains signal CN(N-1). This inverter is unnecessary for odd N since the sign bit outgoes already complemented by the last cell. References T67, T68 denote two P-MOS transistors and T69 a N-MOS transistor, all connected in series between supply voltage Vcc and ground. T68 and T69 gates receive signal CN(N-1), while T67 gate receives signal CPON. T70 denotes an N-MOS transistor, whose channel is connected between the point common to T68, T69 channels and ground; T70 gate receives signal CP0N. T67,...T70 implement a NOR gate whose output is extracted from the point common to T68, T69 channels. References T71, T72 and T73, T74 denote pairs of P-MOS and N-MOS transistors implementing two cascade-connected inverters. The pairs of transistors T65, T66; T71, T72; T73, T74 are likewise connected, i.e. they each have the gate in common, which is the input, channels connected in series between supply voltage and ground, and the output extracted between the two channels. Nor gate output feeds the input of inverter T71, T72, from the output of which signal SELN is extracted; signal SEL is extracted from inverter T73, T74. References T75, T76 denote two P-MOS transistors connected in series between supply voltage Vcc and input BESTN of an inverter formed by P-MOS and N-MOS transistors T80, T81, from whose output signal BEST is extracted. Signal CN(N-1) is brought to T75 gate, while signal CPO is brought to T76 gate. References T87, T88 denote two P-MOS transistors connected in series between supply voltage Vcc and input INF of an inverter consisting of P-MOS and N-MOS transistors T85, T86, from whose output signal INFN is extracted. Signal CN(N-1) is brought to T87 gate, while signal CPO is brought to T88 gate. Reference T77 denotes a P-MOS transistor and T78, T79 two N-MOS transistors, all connected in series between supply voltage Vcc and ground. T77 and T78 gates receive signal CP1, while T79 gate receives signal CPO. The intermediate point between T77, T78 channels is connected with the input of inverter T80, T81. Reference T82 denotes a P-MOS transistor and T83, T84 two N-MOS transistors, all connected in series between supply voltage Vcc and ground. T82 and T83 gates receive signal CP1N, while T84 gate receives signal CN(N-1). The intermediate point between T82, T83 channels is connected with the input of inverter T85, T86. Intermediate points between T78, T79 and T83, T84 are interconnected. The pairs of transistors T80, T81; T85, T86 are likewise connected, i.e. they each have the gate in common, which is the input, the channels connected in series between supply voltage and ground, and the output extracted between the two channels. The circuit consisting of transistors T75,..T79, T82,..T84, T87 and T88 implements the following logic functions: INF = [ CN(N-1) OR CPO ] NAND CP1N BESTN = [ CN(N-1) OR CPO ] NAND CP1 corresponding to the following truth table: The operation of the circuit provided by the invention will be now briefly described with particular reference to Fig. 2. In case of addition, if there is no saturation [C(N -1) = 0, INFN=1, BEST=0 ], the circuit branch of transistors T34,...T37 is enabled, while T38, T40 are inhibited, hence the output U supplies result SN of CEL complemented: in fact T35 and T37 are enabled and the inverter consisting of transistors T34 and T36 implements U=S. If however there is saturation [C(N-1)=1], transistors T38 and T35 are conducting, setting output U to 1 (saturation condition), while T37 and T40 are inhibited. In case of subtraction (INFN=1, BEST=0), circuit branch of transistors T34,...T37 is enabled, while T38, T40 are inhibited, hence output U supplies the subtraction result SN complemented: in fact T35 and T37 are enabled and the inverter consisting of transistors T34 and T36 implements U = S. In case of minimum operation (INFN=0, BEST=1) T35 and T37 are inhibited; C(N-1) value, through signals SEL, SELN, enables transfer gate TG1, or TG2. If C(N-1)=1, then A>B; TG1 is conducting and ANBN=BN. If, however C(N-1)=0, then A<B; TG2 is conducting, and ANBN=AN. The circuit branch of transistors T38,...T41 is enabled, then output U supplies ANBN value complemented: in fact since T38 and T40 are enabled, the inverter consisting of transistors T39, T41 implements U= ANBN , so U=A or B. In case of the operation of comparison with a threshold [INFN=0, BEST=CN(N-1)] the datum is assumed to be applied to input A and the threshold to input B. Transfer gate TG2 is always enabled, while TG1 is always inhibited, putting ANBN = AN. If C(N-1)=0 [BEST=1], then the datum is less than threshold; the circuit branch of transistors T38,...T41 is enabled, hence the output U supplies ANBN value complemented: in fact since T38 and T40 are enabled, the inverter consisting of transistors T39, T41 implements U = ANBN = A, while T35 and T37 are cutoff. If C(N-1)=1 [BEST=0], then the datum is higher than threshold; transistors T37 and T40 are cutoff, while T38 and T35 conduct setting the output U to 1 (saturation condition).

Claims: A C-MOS arithmetic-logic unit for performing addition, subtraction, minimum between two operands A and B, and comparison between a datum and a threshold, wherein addition and subtraction operations are carried out by a carry-propagating adder consisting of elementary cells, one cell per operand bit position, said cells being cascade-connected for carry propagation, and wherein said elementary cells perform subtraction for carrying out minimum and comparison operations, said C-MOS arithmetic-logic unit comprising control signal generating means (DEC1, DEC2) for generating a plurality of control signals (SMST, SEL, SELN, INFN, BEST) in response to the output carry signal from the most significant elementary cell and to an operation code (CP), characterized in that each elementary cell basically comprises: a first EX-OR logic gate (T15, T16, T17, T18) receiving said operand bits (A, B); a first inverter (T9, T10) which receives an input carry; a second inverter (T7, T8) which receives the output of said first EX-OR logic gate; a first transfer gate (T1, T2) which receives at the transfer input the output of said first inverter, and which is controlled by input and output logic levels of said second inverter; a second EX-OR logic gate (T19, T20, T21, T22) which receives the input carry and the output of said second inverter, and supplies the addition or subtraction result (S); a first pair of series-connected P-MOS transistors (T3, T4) and a second pair of series-connected N-MOS transistors (T5, T6), said first and second pair being connected in series between two reference voltages, the bit of the first operand (A) being brought to the gate of a transistor of both pairs, the bit of the second operand (B) being brought to the gate of the other transistor of both pairs, the common node of said two pairs being connected to the output of said first transfer gate (T1, T2) and supplying an output carry; second and third transfer gates (TG1, TG2) which receive at the transfer input the first and second operand respectively, and have a common transfer output (ANBN); from said control signal generating means (DEC1, DEC2), a first and a second control signal (SEL, SELN) out of said plurality of control signals being based on the output carry signal level from the most significant elementary cell, and controlling said transfer gates (TG1, TG2) to transfer to said common transfer output (ANBN) the inferior operand of said two operands when carrying out a minimum operation, and controlling said transfer gates (TG1, TG2) to transfer to said common transfer output (ANBN) said datum when carrying out a comparison operation; third (T34) and fourth (T35) P-MOS transistors and fifth (T36) and sixth (T37) N-MOS transistors, all connected in series between the two reference voltages, said third (T34) and fifth (T36) transistors receiving at their gates said addition result (S) from the relevant elementary cell, said fourth (T35) and sixth (T37) transistors receiving at their gates a third (BEST) and a fourth (INFN) control signal from said control signal generating means, respectively; seventh (T38) and eighth (T39) P-MOS transistors and ninth (T40) and tenth (T41) N-MOS transistors, all connected in series between the two reference voltages, the connection connecting said third (T34) and fourth (T35) transistors being interconnected with the connection connecting said seventh (T38) and eighth (T39) transistors, and the connection connecting said fourth (T35) and said fifth (T36) transistors being interconnected with the connection connecting said eighth (T39) and ninth (T40) transistors to supply the output (U) of said C-MOS arithmetic-logic unit; said eight (T39) and tenth (T41) transistors receiving at their gates said common transfer output (ANBN), said seventh (T38) and ninth (T40) transistors receiving at their gates said second (INFN) and first (BEST) control signals respectively, said control signals taking up such logic levels that when said C-MOS arithmetic unit carries out an addition or a subtraction operation, said output (U) is said addition or subtraction result (S) if there is no saturation, the saturation being indicated by a predetermined level of said output carry signal from the most significant elementary cell, otherwise said output (U) takes a state indicative of saturation, and that when said C-MOS arithmetic unit carries out a minimum operation, said output (U) takes the state of said common transfer output (ANBN), and that when said C-MOS arithmetic unit carries out a comparison operation, said output (U) takes the state of said common transfer output (ANBN) if there is no saturation otherwise said output (U) takes said state indicative of saturation. An arithmetic-logic unit as in claim 1, characterized in that said control signal generating means are subdivided into a first part (DEC1), near the least significant elementary cell for generating a subtraction or addition selecting signal (SMST), and into a second part (DEC2) near the most significant elementary cell, for generating said first, second, third and fourth contol signals (SEL, SELN, BEST, INFN). An arithmetic-logic unit as in claim 2, wherein an operation code (CP) has the following values: for the addition "00", for the subtraction "01", for the minimum "11", for the comparison "10", characterized in that said first control signal (SEL) has "0" value for the comparison operation and output carry from the last cell for the minimum operation, said second control signal (SELN) being the complement of the first; said third control signal (BEST) is "0" for addition and subtraction operation, "1" for minimum operation and the complemented carry outgoing from the last cell for comparison operation; said fourth control signal (INFN) is "0" for minimum and comparison operations, "1" for subtraction, and the carry complemented outgoing from the last cell for the addition. An arithmetic-logic unit as in claim 3, characterized in that said first part (DEC1) of control signal generating means comprises third and fourth logic inverters (T57, T58, T59, T60) which generate complemented values of the most and least significant bits of the operation code (CP) and which feed a NOR logic gate generating said addition or subtraction selecting signal (SMST). An arithmetic-logic unit as in claim 4, characterized in that said second part (DEC2) of the control signal generating means comprises: eleventh and twelfth P-MOS transistors (T75, T76) in series between the supply voltage (Vcc) and the input of a fifth inverter (T80, T81) generating said third control signal (BEST), the gates of said eleventh and twelfth transistors (T75, T76) receiving respectively the carry complemented of the last cell and the least significant bit of the operation code; thirteenth and fourteenth P-MOS transistors (T87, T88) in series between the supply voltage (Vcc) and the input of a sixth inverter (T85, T86) generating said fourth control signal (INFN), the gates of said thirteenth and fourteenth transistors (T87, T88) receiving respectively the last cell carry complemented and the least significant bit of the operation code; a fifteenth P-MOS transistor (T77) and sixteenth and seventeenth N-MOS transistors (T78, T79), all connected in series between the supply voltage (Vcc) and the ground, the common point between the fifteenth and the sixteenth transistor (T77, T78) being connected to the input of the fifth inverter (T80, T81), the gates of the fifteenth and sixteenth transistors (T77, T78) receiving the most significant bit and the gate of the seventeenth transistor (T79) the least significant bit of the operation code; an eighteenth P-MOS transistor (T82) and ninteenth and twentieth N-MOS transistors (T83, T84), all connected in series between the supply voltage (Vcc) and ground, the point common between the eighteenth and ninteenth transistors (T82, T83) being connected to the input of the sixth inverter (T85, T86), the gates of the eighteenth and ninteenth transistors (T82, T83) receiving the most significant bit complemented and the gate of the twentieth transistor (T84) the least significant bit of the operation code (CP), the common points of said sixteenth and seventeenth and of said ninteenth and twentieth transistors (T78, T79, T83, T84) being interconnected. An arithmetic-logic unit as in any one of the preceding claims, characterized in that said state indicative of saturation is logic level "1".

Inventors: LICCIARDI LUIGI, TORIELLI ALESSANDRO, LICCIARDI, LUIGI, TORIELLI, ALESSANDRO
Applicants: CSELT CENTRO STUDI LAB TELECOM, CSELT CENTRO STUDI E LABORATORI TELECOMUNICAZIONI S.P.A.
Application year: 1988
Main classification: G06F7
IPC codes: G06F7