Schaltungsanordnung zur Addition oder Subtraktion von im BCD-Code oder Dual-Code codierten Operanden Circuit arrangement for addition or subtraction of operands coded in the BCD code or dual code
Die Erfindung bezieht sich auf eine Schaltungsanordnung zur Addition oder Subtraktion von im BCD-Code oder Dual-Code codierten Operanden unter Verwendung eines Dual-Addierers. The invention relates to a circuit arrangement for adding or subtracting operands encoded in the BCD code or dual code using a dual adder.
Bisher sind zur Addition oder Subtraktion von im Dual-Code oder BCD-Code codierten Operanden verschiedene Schaltungsanordnungen vorgeschlagen worden. Bei Additionen oder Subtraktionen von So far, various circuit arrangements have been proposed for the addition or subtraction of operands coded in the dual code or BCD code. With additions or subtractions from
Operanden im Dual-Code war dabei eine Schaltung zur Erzeugung eines Einer- oder eines Zweierkomplements notwendig. Bei BCD- Operanden war dagegen eine Schaltung zur Erzeugung des Neuner- Komplementes erforderlich. Operands in the dual code required a circuit for generating a one's or a two's complement. In the case of BCD operands, on the other hand, a circuit was required to generate the nine's complement.
Dual-Addierer sind bekannt (Vergleiche zum Beispiel U. Tietze, Ch. Schenk, Halbleiterschaltungstechnik, vierte Auflage, Springer Verlag, Berlin Heidelberg New York, 1978, Seite 475, 476). Es ist auch bekannt, BCD-Zahlen unter Verwendung von Dual-Addierern zu addieren oder subtrahieren. Dazu sind jedoch zwei Dual-Addierer notwendig. (Vergleiche a.a.O. Seite 477). Der zweite Dual- Addierer ist erforderlich, um das Ergebnis des ersten Dual-Addierers zu korrigieren. Dies ist erforderlich, wenn in einer Dekade ein Übertrag auftritt. Dann muß eine 6 zum Ergebnis des ersten Dual-Addierers hinzu addiert werden. Diese BCD-Zahl kann jedoch eine Pseudotetrade enthalten. In diesem Fall muß noch zur Beseitigung der Pseudotetrade die Zahl 6 hinzu addiert werden. Die Korrektur des Ergebnisses des ersten Dual-Addierers erfolgt mit Hilfe des zweiten Dual-Addierers. Damit ist der Gesamtaufwand für die Schaltungsanordnung zur Addition von BCD-Zahlen verhältnismäßig groß und die Schaltung arbeitet verhältnismäßig langsam. Dual adders are known (compare, for example, U. Tietze, Ch. Schenk, semiconductor circuit technology, fourth edition, Springer Verlag, Berlin Heidelberg New York, 1978, pages 475, 476). It is also known to add or subtract BCD numbers using dual adders. However, two dual adders are required for this. (See page 477 above). The second dual adder is required to correct the result of the first dual adder. This is necessary if a carry occurs in a decade. Then a 6 must be added to the result of the first dual adder. However, this BCD number can contain a pseudotetrad. In this case, the number 6 must be added to remove the pseudotetrade. The result of the first dual adder is corrected with the aid of the second dual adder. The total outlay for the circuit arrangement for adding BCD numbers is thus comparatively great and the circuit operates relatively slowly.
Die der Erfindung zugrunde liegende Aufgabe besteht darin, eine Schaltungsanordnung der eingangs geschilderten Art anzugeben,
die ein 4-Bit breites Datum eines Operanden so aufbereitet, daß mit einem einzigen Dual-Addierer sowohl Dual- als auch BCD-Addi- tionen und Subtraktionen durchgeführt werden können. The object on which the invention is based is to specify a circuit arrangement of the type described at the outset, which prepares a 4-bit wide datum of an operand in such a way that both dual and BCD additions and subtractions can be carried out with a single dual adder.
Diese Aufgabe wird gemäß den Merkmalen des Patentanspruches 1 gelöst. This object is achieved according to the features of patent claim 1.
Mit Hilfe von Eingangsstufen, die vor den Dual-Addierer geschaltet sind, werden bei Dual-Additionen beziehungsweise Subtraktionen erforderlichenfalls bei einem der Operanden die Zahl 6 hinzu addiert. Dies gilt wenn eine BCD-Addition vorliegt und beide Operanden positiv oder negativ sind. Ist nur einer der Operanden negativ, dann wird dieser Operand negiert. Die Eingangsstufen behandeln dagegen Dual-Zahlen derart, daß sie nur dann geändert werden, wenn die Operanden negativ sind. Für diesen Fall werden sie negiert. With the aid of input stages, which are connected before the dual adder, the number 6 is added to one of the operands, if necessary, in the case of dual additions or subtractions. This applies if there is a BCD addition and both operands are positive or negative. If only one of the operands is negative, this operand is negated. The input stages, on the other hand, treat dual numbers in such a way that they are only changed if the operands are negative. In this case, they are negated.
Mit Hilfe der Ausgangsstufe wird die vom Dual-Addierer abgegebene Summe gegebenenfalls korrigiert. Dies ist dann erforderlich, wenn bei der BCD-Addition kein Übertrag aufgetreten ist. In diesem Fall muß von dem Ergebnis des Dual-Addierers die Zahl 6 abgezogen werden. With the help of the output stage, the sum output by the dual adder is corrected if necessary. This is necessary if no carry out occurred during the BCD addition. In this case, the number 6 must be subtracted from the result of the dual adder.
Eine derartig aufgebaute Schaltungsanordnung mit entsprechend aufgebauten Eingangsstufen und einer entsprechend aufgebauten Ausgangsstufe erfordert keinen zweiten Dual-Addierer. Die Aufbereitung der Operanden und die Korrektur des Ergebnisses des DualAddierers kann lediglich mit Schaltungen erfolgen, die Multiplexer und logische Glieder verwenden. Dies ermöglicht ein übersichtliches Lay-Out der Schaltungen und hat den Vorteil, daß eine derartige Schaltungsanordnung als Zelle in einem CAD-System verwendet werden kann. A circuit arrangement constructed in this way with a correspondingly constructed input stage and a correspondingly constructed output stage does not require a second dual adder. The preparation of the operands and the correction of the result of the dual adder can only be carried out using circuits which use multiplexers and logic elements. This enables a clear layout of the circuits and has the advantage that such a circuit arrangement can be used as a cell in a CAD system.
Anhand eines Ausführungsbeispieles, das in den Figuren dargestellt ist, wird die Erfindung weiter erläutert. Es zeigt The invention is further explained on the basis of an exemplary embodiment which is shown in the figures. It shows
Figur 1 ein Blockschaltbild der Schaltungsanordnung,
Figur 2 das Schaltbild einer der Eingangsstufen, FIG. 1 shows a block diagram of the circuit arrangement, FIG. 2 shows the circuit diagram of one of the input stages,
Figur 3 das Schaltbild der Ausgangsstufe, FIG. 3 shows the circuit diagram of the output stage,
Figur 4 die Realisierung der verwendeten Multiplexer-Schaltung, FIG. 4 shows the implementation of the multiplexer circuit used,
Figur 5 die Realisierung einer verwendeten EXOR-Schaltung. Figure 5 shows the implementation of an EXOR circuit used.
Figur 1 zeigt das Blockschaltbild der Schaltungsanordnung. Bei der Schaltungsanordnung wird ein Dual-Addierer DA verwendet, der die Verknüpfung der Operanden durchführt. Dual-Addierer sind bekannt und müssen nicht weiter beschrieben werden. Figure 1 shows the block diagram of the circuit arrangement. In the circuit arrangement, a dual adder DA is used, which carries out the linking of the operands. Dual adders are known and need not be described further.
Wenn mit einem solchen Dual-Addierer Additionen von positiven Dualzahlen A und B durchgeführt werden, dann müssen die Operanden A und B vor der Addition nicht aufbereitet werden. Ist dagegen einer der Operanden A und B negativ, dann wird dieser Operand negiert dem Dual-Addierer zugeführt. If additions of positive dual numbers A and B are carried out with such a dual adder, then the operands A and B do not have to be prepared before the addition. If, however, one of the operands A and B is negative, then this operand is fed to the dual adder negated.
Die Verhältnisse sind anders, wenn die Operanden A und B im BCD- Code codiert sind. Hier müssen die Operanden vor der Addition mit dem Dual-Addierer aufbereitet werden. Dies erfolgt mit Hilfe von Eingangsstufen EG1 und EG2. Die Eingangsstufe EG1 wandelt den Operanden A in den aufbereiteten Operanden X um, die Einggangsstufe EG2 den Operanden B in den aufbereiteten Operanden Y. Bei BCD-Additionen und Subtraktionen muß das Ergebnis S, das Summenergebnis, des Dual-Addierers DA in manchen Fällen korrigiert werden. Dies erfolgt mit Hilfe der Ausgangsstufe AGS, die in Abhängigkeit des Übertrags C bei BCD-Verknüpfungen die Korrektur durchführt. Diese Korrektur ist nicht erforderlich bei Verknüpfungen von Operanden im Dual-Code, in diesem Fall wird das Ergebnis S des Dual-Addierers DA unbeeinflußt, durch die Ausgangsstufe AGS zum Ausgang durchgeschaltet. The situation is different if operands A and B are encoded in the BCD code. Here the operands must be prepared with the dual adder before the addition. This is done using input stages EG1 and EG2. The input stage EG1 converts the operand A into the edited operand X, the input stage EG2 converts the operand B into the edited operand Y. In the case of BCD additions and subtractions, the result S, the sum result, of the dual adder DA must be corrected in some cases . This is done with the aid of the output stage AGS, which carries out the correction in the case of BCD links depending on the carry C. This correction is not necessary when operands are linked in the dual code, in which case the result S of the dual adder DA is unaffected by the output stage AGS being switched through to the output.
Zunächst wird die Funktion der Eingangsstufen EG erläutert und anschließend die der Ausgangsstufe AGS.
First, the function of the input stages EG is explained and then that of the output stage AGS.
Aus Tabelle 1 kann entnommen werden, wie die Operanden A und B aufzubreiten sind, um mit einem einzigen Dual-Addierer die gewünschte Verknüpfung durchführen zu können. Die erste Spalte zeigt die gewünschte Verknüpfung der Operanden A und B, die zweite Spalte zeigt, wie der Operand B aufbreitet werden muß bei der BCD-Verknüpfung, die dritte Spalte wie der Operand A bei BCD-Verknüpfung aufzubereiten ist, die vierte Spalte die Beeinflussung des Operanden B bei Dual-Verknüpfung, und die fünfte Spalte die Beeinflussung des Operanden A bei Dual-Verknüpfung. Table 1 shows how operands A and B are to be expanded in order to be able to carry out the desired combination using a single dual adder. The first column shows the desired combination of operands A and B, the second column shows how operand B must be processed in the BCD combination, the third column how operand A is prepared in the BCD combination, the fourth column the influence of operand B in the case of a dual link, and the fifth column influencing the operand A in the case of a dual link.
Es ist zu sehen, daß bei Dual-Verknüpfungen bei positiven Operanden A und B diese nicht beeinflußt werden; wenn dagegen einer der Operanden negativ ist, wird dieser Operand negiert. It can be seen that in the case of dual combinations with positive operands A and B, these are not influenced; if, on the other hand, one of the operands is negative, this operand is negated.
Bei BCD-Verknüpfungen wird bei einer BCD-Addition zu einem der beiden Operanden die Zahl 6 addiert. Dies ist im Fall der Tabelle 1 der Operand B. Der andere Operand A wird dagegen nicht beeinflußt. In the case of BCD links, the number 6 is added to one of the two operands in a BCD addition. In the case of Table 1, this is operand B. The other operand A is not affected.
Bei BCD-Subtraktionen müssen zwei Fälle unterschieden werden. Im ernsten Fall sind beide Operanden A, B negativ. Dann wird einer der Operanden negiert, zum Beispiel der Operand A, zum anderen Operanden, zum Beispiel zum Operanden B, wird die Zahl 6 addiert und diese Summe dann negiert. Für den Fall, daß nur einer der Operanden mit einem Minuszeichen versehen ist, wird dieser Operand negiert, der andere Operand dagegen unbeeinflußt gelassen.
Im Ausführungsbeispiel wird somit der Operand B im wesentlichen beeinflußt, dies geschieht mit Hilfe der Eingangsstufe EG2. A distinction must be made between two cases for BCD subtractions. In the serious case, both operands A, B are negative. Then one of the operands, for example operand A, is negated, for the other operand, for example operand B, the number 6 is added and this sum is then negated. In the event that only one of the operands is provided with a minus sign, this operand is negated, while the other operand is left unaffected. In the exemplary embodiment, operand B is essentially influenced, this is done with the aid of input stage EG2.
Selbstverständlich könnte auch der andere Operand A entsprechend beeinflußt werden. Of course, the other operand A could also be influenced accordingly.
Wenn bei einer BCD-Verknüpfung derart aufbereitete Operanden mit Hilfe des Dual-Addierers DA dual verknüpft worden sind, dann muß in manchen Fällen die vom Dual-Addierer DA abgegebene Summe S korrigiert werden. Dies erfolgt mit Hilfe der Ausgangsstufe AGS. Eine Korrektur des Wertes S muß erfolgen, wenn die Summe S kleiner als 10 ist. Dies wird durch den Carry der höchsten Bit-Stelle der Summe S angezeigt, dieser ist dann logisch 0. Die Korrektur erfolgt dadurch, daß von der Summe S die Zahl 6 subtrahiert wird. Dies erfolgt in der Ausgangsstufe AGS. Wenn dagegen die Summe S größer/gleich 10 ist oder wenn eine Dual-Verknüpfung vorliegt, dann muß das Ergebnis S des Dual-Addierers DA nicht geändert werden und wird am Ausgang der Ausgangsstufe AGS unbeeinflußt als Ergebnis R abgegeben. If operands prepared in this way in a BCD link have been linked dual using the dual adder DA, then in some cases the sum S output by the dual adder DA must be corrected. This is done with the help of the AGS output stage. The value S must be corrected if the sum S is less than 10. This is indicated by the carry of the highest bit position of the sum S, which is then logic 0. The correction is made by subtracting the number 6 from the sum S. This takes place in the AGS output stage. If, on the other hand, the sum S is greater than / equal to 10 or if there is a dual combination, then the result S of the dual adder DA need not be changed and is output as the result R unaffected at the output of the output stage AGS.
Während beim Ausführungsbeispiel die Aufbereitung des Operanden A in den modifizierten Operanden X ohne Schwierigkeiten ist, da hier nur eine Negierung erfolgt, wenn der Operand A ein Minuszeichen aufweist, ist die Realisierung der Eiπgangsstufe EG2 komplizierter. Hier müssen verschiedene Fälle unterschieden werden. Die verschiedenen Fälle ergeben sich aus der Tabelle 1 und der folgenden Tabelle 2. While in the exemplary embodiment the preparation of the operand A in the modified operand X is without difficulty, since only negation takes place here if the operand A has a minus sign, the implementation of the input stage EG2 is more complicated. Different cases have to be distinguished here. The different cases are shown in Table 1 and the following Table 2.
Die verschiedenen Fälle werden durch Funktionssignale F1 und F2, die der Eingangsstufe EG2 zugeführt werden, unterschieden. Das
Funktionssignal F1 gibt an, ob die Zahl 6 addiert werden soll oder nicht, das Funktionssignal F2 zeigt an, ob die Operanden negiert werden sollen. Es sind somit die vier Fälle der zweiten Spalte der Tabelle 1 zu unterscheiden. Aus der Tabelle 2 ist zu ersehen, wie sich die einzelnen Bitstellen des aufbereiteten Operanden Y durch Verknüpfung der Bitstellen des Operanden B ergeben. Wenn das Funktionssignal F1 logisch 0 ist, dann muß die Zahl 6 zum Operanden B addiert werden. Wenn zusätzlich das The different cases are distinguished by function signals F1 and F2, which are fed to the input stage EG2. The Function signal F1 indicates whether the number 6 should be added or not, the function signal F2 indicates whether the operands should be negated. A distinction must therefore be made between the four cases in the second column of Table 1. Table 2 shows how the individual bit positions of the prepared operand Y result from the combination of the bit positions of the operand B. If the function signal F1 is logic 0, then the number 6 must be added to the operand B. If additionally that
Funktionssignal F2 logisch 0 ist, dann muß das Ergebnis nicht invertiert werden, sonst ist eine Invertierung erforderlich. Function signal F2 is logic 0, then the result need not be inverted, otherwise an inversion is required.
Diese beiden Fälle sind in den ersten beiden Zeilen der Tabelle 2 niedergeschrieben. Ist das Funktionssignal F1 logisch 1, dann ist keine Addition von 6 zum Operanden B erforderlich. Jetzt wird nur in Abhängigkeit des Funktionssignales F2 der Operand B negiert oder nicht negiert. Die entsprechenden Ergebnisse für den aufbereiteten Operanden Y ergeben sich aus den Zeilen drei und vier der Tabelle 2. These two cases are recorded in the first two lines of Table 2. If the function signal F1 is logic 1, then no addition of 6 to the operand B is required. Now, operand B is negated or not negated only depending on the function signal F2. The corresponding results for the prepared operand Y can be found in rows three and four of Table 2.
Eine Schaltung, die diese Funktionen realisiert, ist in Figur 2 dargestellt. Es ist zu sehen, daß diese Schaltung ausschließlich aus Multiplexern MUX und aus logischen Gliedern, zum Beispiel Invertern IN und EXKLUSIV-ODER-Schaltungen EX besteht. Um eine entsprechend einfach ausgebaute Eingangsstufe EG2 zu entwickeln, die die Funktionen der Tabelle 2 ausführt, müssen Funktionsgleichungen für die einzelnen Fälle aufgestellt werden. Aus der Tabelle 3 ergeben sich für die einzelnen Bit des aufbereiteten Operanden Y die Funktionsgleichungen. Sie werden unter Verwendung der Funktionssignale F1, F2 gebildet. A circuit that realizes these functions is shown in FIG. It can be seen that this circuit consists exclusively of multiplexers MUX and of logic elements, for example inverters IN and EXCLUSIVE-OR circuits EX. In order to develop a correspondingly simple input stage EG2, which performs the functions in Table 2, functional equations must be drawn up for the individual cases. The functional equations for the individual bits of the prepared operand Y are shown in Table 3. They are formed using the function signals F1, F2.
Die Eingangsstufe EG2 besteht aus Teilschaltungen TS, die jeweils mindestens einen Multiplexer, der als AMUX bezeichnet ist, aufweisen. An den einen Dateneingang dieses Ausgangsmultiplexer
AMUX wird jeweils das zugeordnete Bit des Operanden B angeschaltet. Zum Beispiel an den Ausgangsmultiplexer AMUX0 das Operandenbit b0, an den Ausgangsmultiplexer AMUX1 das Operanden-Bit b1 und so weiter. Am anderen Dateneingang der Ausgangsmultiplexer AMUX wird das zugeordnete Bit des Operanden B invertiert zugeführt. Das Durchschalten des zugeordneten Bits in unbeeinflußter oder in invertierter Form erfolgt durch die Steuersignale am Eingang SE der Multiplexer AMUX. The input stage EG2 consists of subcircuits TS, each of which has at least one multiplexer, which is designated as AMUX. To the one data input of this output multiplexer In each case, the assigned bit of operand B is switched on AMUX. For example, the operand bit b0 on the output multiplexer AMUX0, the operand bit b1 on the output multiplexer AMUX1, and so on. At the other data input of the output multiplexer AMUX, the assigned bit of the operand B is fed inverted. The assignment of the assigned bit in unaffected or inverted form is carried out by the control signals at the input SE of the multiplexer AMUX.
Ob der eine Dateneingang oder der andere Dateneingang der Ausgangsmultiplexer AMUX durchgeschaltet wird, kann den Funktionsgleichungen der Tabelle 3 entnommen werden. Bei der ersten Teilschaltung TS0, die die Zeile 1 der Tabelle 3 realisiert, wird das zugeordnete Bit b0 des Operanden B unverändert durchgeschaltet. Die Unterscheidung, ob b0 oder F0 durchgeschaltet werden soll, wird ausschließlich mit Hilfe des Funktionssignales F2 festgelegt. Dementsprechend wird dem Ausgangsmultiplexer AMUX0 der ersten Teilschaltung TS0 nur das Funktionssignal F2 am Steuereingang SE zugeleitet. Zur Erzeugung des Bits y1 aus dem Bit b1 wird die zweite Teilschaltung TS1 verwendet. Hier sind zur Ansteuerung des Ausgangsmultiplexers AMUX1 beide Funktionssignale F1 und F2 erforderlich. Das Steuersignal für den Ausgangsmultiplexer AMUX1 wird durch The function equations in Table 3 show whether one data input or the other data input of the output multiplexer AMUX is switched through. In the first subcircuit TS0, which realizes row 1 of table 3, the assigned bit b0 of operand B is switched through unchanged. The distinction as to whether b0 or F0 is to be switched through is determined exclusively with the aid of the function signal F2. Accordingly, only the function signal F2 at the control input SE is fed to the output multiplexer AMUX0 of the first subcircuit TS0. The second subcircuit TS1 is used to generate bit y1 from bit b1. Both function signals F1 and F2 are required here to control the output multiplexer AMUX1. The control signal for the output multiplexer AMUX1 is through
EXKLUSIV-ODER-Verknüpfung der Funktionssignale F1 und F2 gemäß der Zeile zwei der Tabelle 3 erzeugt. Die Teilschaltung TS1 enthält somit neben dem Ausgangsmultiplexer AMUX1 die EXKLUSIV-ODER- Schaltung EX1 und Inverter IN, die im wesentlichen durch den EXCLUSIVE-OR combination of the function signals F1 and F2 according to line two of Table 3. The subcircuit TS1 thus contains, in addition to the output multiplexer AMUX1, the EXCLUSIVE-OR circuit EX1 and inverter IN, which are essentially due to the
Aufbau des Multiplexers und des EXKLUSIV-ODER-Schaltkreises bedingt sind. Construction of the multiplexer and the EXCLUSIVE-OR circuit are conditional.
Die Teilschaltung TS2 zur Erzeugung des Bits y2 aus dem Bit B2 ist aufwendiger. Hier müssen in Abhängigkeit der Steuersignale das Bit B2 des Operanden B entweder an den einen Dateneingang D1 des Ausgangsmultiplexers AMUX2 oder an dessen anderen Eingang D2 in nicht invertierter oder invertierter Form angelegt werden. Dazu werden weitere Multiplexer MUX1 und MUX2 verwendet. Die Erzeu-
gung des Steuersignales für den Ausgangsmultiplexer AMUX2 erfolgt unter Verwendung des Funktionssignales F1 und des Bit b1 des The subcircuit TS2 for generating bit y2 from bit B2 is more complex. Depending on the control signals, bit B2 of operand B must either be applied to one data input D1 of output multiplexer AMUX2 or to its other input D2 in non-inverted or inverted form. Additional multiplexers MUX1 and MUX2 are used for this. The generation The control signal for the output multiplexer AMUX2 is carried out using the function signal F1 and bit b1 of the
Operanden B. Das Steuersignal für die Multiplexer MUX1 und MUX2 wird aus dem Funktionssignal F2 gewonnen. Die Anschaltung des Operands B. The control signal for the multiplexers MUX1 and MUX2 is obtained from the function signal F2. The connection of the
Signales b2 an die Dateneingänge des Ausgangsmultiplexers AMUX2 und die Erzeugung der Steuersignale für die Multiplexer kann der Funktionsgleichung für y2 aus der Tabelle 3 genauer entnommen werden. Die Teilschaltung TS2 weist somit neben dem Ausgangsmultiplexer AMUX2 zwei weitere Multiplexer MUX1 und MUX2, In- verter und N0R-Glied N0R0 auf. Signals b2 to the data inputs of the output multiplexer AMUX2 and the generation of the control signals for the multiplexers can be found in more detail in the functional equation for y2 in Table 3. The subcircuit TS2 thus has, in addition to the output multiplexer AMUX2, two further multiplexers MUX1 and MUX2, inverter and N0R element N0R0.
Die Teilschaltung TS3 zur. Erzeugung des Bits y3 ist ebenfalls verhältnismäßig aufwendig. Widerum werden an den Dateneingängen des Ausgangsmultiplexers AMUX3 entweder das Bit b3 in nicht invertierter oder invertierter Form angeschlossen. Die Zuordnung erfolgt über Multiplexer MUX3 und MUX4. Der Steuereingang der The subcircuit TS3. Generation of bit y3 is also relatively complex. In turn, either the bit b3 is connected in non-inverted or inverted form to the data inputs of the output multiplexer AMUX3. The assignment is done via multiplexers MUX3 and MUX4. The control input of the
Multiplexer MUX3 und MUX4 werden wiederum vom Funktionssignal F2 angesteuert. Am Steuereingang des Ausgangsmultiplexers AMUX3 liegt ein Verknüpfungssignal an, das aus dem Funktionssignal F1, den Bits b1 und b2 gewonnen wird. Die Verknüpfung kann der Gleichung für y3 aus der Tabelle 3 entnommen werden. Die Teilschaltung TS3 besteht somit ebenfalls aus drei Multiplexern mit einigen Multiplexers MUX3 and MUX4 are in turn controlled by the function signal F2. A logic signal is present at the control input of the output multiplexer AMUX3 and is obtained from the function signal F1, bits b1 and b2. The relationship can be found in the equation for y3 in Table 3. The subcircuit TS3 thus also consists of three multiplexers with a few
Invertern IN und einer Verknüpfungsschaltung VK, die das Funktionssignal F1 und die Bits b1 und b2 des Operanden B verknüpft. Diese Verknüpfungsschaltung ist mit VK bezeichnet und führt eine ODER- Verknüpfung der Operandenbits b1 und b2 durch und anschließend eine UND-Verknüpfung des Ergebnisses der ODER-Verknüpfung und des invertierten Funktionssignales F1. Der Aufbau einer solchen Verknüpfungsschaltung VK ist bekannt, sie kann z.B. einfach mit logischen Schaltungen realisiert werden. Inverters IN and a logic circuit VK, which links the function signal F1 and the bits b1 and b2 of the operand B. This logic circuit is designated VK and performs an OR operation of the operand bits b1 and b2 and then an AND operation of the result of the OR operation and the inverted function signal F1. The structure of such a logic circuit VK is known, it can e.g. can be easily implemented with logic circuits.
Die Eingangsstufe EG2 führt somit in Abhängigkeit der Funktionssignale F1 und F2 die Aufbereitung des Operanden B durch und zwar so, daß die in den verschiedenen Spalten der Tabelle 1 angegebenen Fälle realisiert werden. Am Ausgang der Eingangsschaltung EG2 tritt somit der aufbereitete Operand Y auf, der anschließend in dem Dual-Addierer DA mit dem aufbereiteten Operanden X verknüpft
wird. Für den Dual-Addierer ist es dabei gleichgültig, ob eine BCD-Verknüpfung oder eine Dual-Verknüpfung durchgeführt werden soll. Er behandelt diese Fälle gleich. Depending on the function signals F1 and F2, the input stage EG2 thus processes the operand B in such a way that the cases specified in the different columns of Table 1 are realized. The processed operand Y thus occurs at the output of the input circuit EG2, which subsequently links the processed operand X in the dual adder DA becomes. For the dual adder, it does not matter whether a BCD link or a dual link is to be carried out. He treats these cases the same.
Wie bereits oben geschildert worden ist, muß das Verknüpfungsergebnis des Dual-Addierers DA bei manchen BCD-Verknüpfungen korrigiert werden. Die erforderliche Bedingung ist bereits angegeben worden. Die entsprechende Funkionstabelle kann der Tabelle 4 entnommen werden: As has already been described above, the linking result of the dual adder DA must be corrected for some BCD links. The required condition has already been specified. The corresponding function table can be found in table 4:
In Abhängigkeit des Carry-Signales C und eines Funktionssignales F3 können die verschiedenen Fälle unterschieden werden. Das The different cases can be distinguished depending on the carry signal C and a function signal F3. The
Funktionssignal F3 gibt dabei an, ob eine BCD-Verknüpfung vorliegt. Ist das F3 logisch 0, dann liegt eine BCD-Verknüpfung vor. Mit Hilfe des Carry-Signales von der höchstwertigsten Bitstelle der Summe S kann nun festgelegt werden, ob bei BCD-Verknüpfungen das Ergebnis korrigiert werden muß oder nicht. Ist das Carry- Signal C logisch 0, dann muß das Ergebnis S korrigiert werden und zwar in der Art, daß vom Ergebnis die Zahl 6 subtrahiert wird. Damit ergeben sich die in Zeile 1 der Tabelle 4 angegebenen Funktionsgleichungen mit den einzelnen Stellen des Summenergebnisses S. Das Ergebnis der Korrektur ist mit R bezeichnet. Für alle Function signal F3 indicates whether there is a BCD link. If the F3 is logic 0, then there is a BCD link. With the help of the carry signal from the most significant bit position of the sum S, it can now be determined whether the result must be corrected in the case of BCD links or not. If the carry signal C is logic 0, then the result S must be corrected in such a way that the number 6 is subtracted from the result. This results in the functional equations given in row 1 of table 4 with the individual digits of the total result S. The result of the correction is denoted by R. For all
anderen Fälle muß das Ergebnis S des Dual-Addierers nicht korrigiert werden. Das heißt, das Ergebnis R am Ausgang der Ausgangsstufe AGS entspricht dem Summenergebnis S. Korrigiert werden muß also nur gemäß Tabelle 4, wenn das Funktionssignal F3 und der in other cases, the result S of the dual adder need not be corrected. This means that the result R at the output of the output stage AGS corresponds to the total result S. It is therefore only necessary to correct it in accordance with Table 4 if the function signal F3 and the
Carry C beide logisch 0 sind, sonst erfolgt keine Korrektur. Carry C are both logic 0, otherwise there is no correction.
Eine Schaltungsanordnung, mit der die Korrektur durchgeführt werden kann, ist Figur 3 zu entnehmen. Diese weist für die verschiedenen Bit s0 bis s3 des Summenergebnisses vom Dual-Addierer DA je
weils eine Verknüpfungsschaltung VS auf. Die Verknüpfungsschaltungen für die Summenbits s1 bis s3 enthalten dabei jeweils eine EXKLUSIV-ODER-Schaltung EX1 bis EX3. Dem einen Eingang D4 der EXKLUSIV-ODER-Schaltungen EX1 bis EX3 wird jeweils das zugeordnete Summenbit s1 bis s3 zugeführt, dem anderen Eingang D3 Verknüpfungen aus dem Funktionsbis F3, dem Carry-Signal C und eventuell den Bits s1 beziehungsweise s2. A circuit arrangement with which the correction can be carried out can be seen in FIG. This points for the different bits s0 to s3 of the total result from the dual adder DA because a logic circuit VS on. The logic circuits for the sum bits s1 to s3 each contain an EXCLUSIVE-OR circuit EX1 to EX3. The assigned sum bit s1 to s3 is fed to one input D4 of the EXCLUSIVE-OR circuits EX1 to EX3, the other input D3 links from the function bit F3, the carry signal C and possibly the bits s1 or s2.
Die zugeordneten Funktionsgleichungen, die von den einzelnen Verknüpfungsschaltungen VS ausgeführt werden, sind der Tabelle 5 zu entnehmen. The assigned functional equations, which are executed by the individual logic circuits VS, can be found in Table 5.
Das erste, das niederwertigste Bit des Summenergebnisses s0 wird nicht beeinflußt und ergibt bereits das korrigierte Ergebnis r0. Für diese Verknüpfungsschaltung VS0 ist lediglich eine Leitung erforderlich. The first, the least significant bit of the total result s0 is not affected and already gives the corrected result r0. Only one line is required for this logic circuit VS0.
Die zweite Verknüpfungsschaltung, nämlich die Verknüpfungsschaltung VS1, besteht aus der EXKLUSIV-ODER-Schaltung EX1 und einem N0R-Glied N0R 1, das das Funktionssignal F3 und das Carry-Signal C verknüpft. Die Art der Verknüpfung kann Zeile zwei der Tabelle 5 entnommen werden. The second logic circuit, namely the logic circuit VS1, consists of the EXCLUSIVE-OR circuit EX1 and a NO gate N0R 1, which combines the function signal F3 and the carry signal C. The type of link can be found in row two of Table 5.
Die Verknüpfungsschaltung VS2 enthält neben der EXKLUSIV-ODER- Schaltung EX2 ein N0R-Glied N0R 2, das eine N0R-Verknüpfung des Funktionssignales F3, des Carry-Signales C und des invertierten Summenbits S1 durchführt. Die richtige Form der einzelnen Signale wird mit Hilfe von Invertern gewonnen.
Die Erzeugung des Signales r3 aus dem Summenbit s3 erfolgt mit The logic circuit VS2 contains, in addition to the EXCLUSIVE-OR circuit EX2, a NO gate N0R 2, which performs a NO link of the function signal F3, the carry signal C and the inverted sum bit S1. The correct form of the individual signals is obtained with the help of inverters. The signal r3 is generated from the sum bit s3 with
Hilfe der Verknüpfungsschaltung VS3, die neben der EXKLUSIV- ODER-Schaltung EX3 weitere NOR-Glieder N0R3 und N0R4 aufweist. Using the logic circuit VS3, which in addition to the EXCLUSIVE OR circuit EX3 has further NOR gates N0R3 and N0R4.
Mit dem NOR-Glied N0R4 werden die Bits sl und s2 miteinander verknüpft, mit dem N0R-Glied N0R3 das Ergebnis der Verknüpfung des NOR-Gliedes N0R4 mit dem Funktionssignal F3. Der richtige Wert dieser Signale wird wiederum über Inverter IN erzeugt. Die Art der Verknüpfung kann der Zeile vier der Tabelle 5 entnommen werden. The bits sl and s2 are linked with the NOR gate N0R4, with the N0R gate N0R3 the result of the combination of the NOR gate N0R4 with the function signal F3. The correct value of these signals is in turn generated via inverter IN. The type of linkage can be found in row four of Table 5.
Es ist zu sehen, daß die Ausgangsstufe AGS Verknüpfungsschaltungen VS1 bis VS3 enthält, die jeweils eine EXKLUSIV-ODER-Schaltung It can be seen that the output stage AGS contains logic circuits VS1 to VS3, each of which is an EXCLUSIVE-OR circuit
EX, NOR-Glieder NOR und Inverter IN aufweisen. EX, NOR gates NOR and inverter IN have.
Die Eingangsstufe EG2 nach Figur 2 und die Ausgangsstufe AGS The input stage EG2 according to Figure 2 and the output stage AGS
nach Figur 3 weisen regelmäßige Strukturen auf und bestehen nur aus wenigen verschiedenen Zellen, zum Beispiel Multiplexern MUX, EXKLUSIV-ODER-Schaltungen EX, NAND- und NOR-Gliedern und Invertern. Die derartig aufgebauten Schaltungen können leicht in CAD- Systemen verwendet werden. 3 have regular structures and consist of only a few different cells, for example multiplexers MUX, EXCLUSIVE-OR circuits EX, NAND and NOR gates and inverters. The circuits constructed in this way can easily be used in CAD systems.
Die angegebenen Schaltungen können zudem in C-MOS-Technik aufgebaut werden, zum Beispiel so wie es für den Multiplexer in Figur 4 und für die EXKLUSIV-ODER-Schaltung in Figur 5 dargestellt ist. Die Folge ist, daß für diese Schaltungen wenige Transistoren notwendig sind und die Schaltungen flächenspareπd implementiert werden können. Dadurch, daß insgesamt für die verschiedenen Operationsmodi nur sehr wenige Schaltelemente notwendig sind, können die The specified circuits can also be constructed using C-MOS technology, for example as shown in FIG. 4 for the multiplexer and in FIG. 5 for the EXCLUSIVE-OR circuit. The result is that a few transistors are necessary for these circuits and the circuits can be implemented in a space-saving manner. Because only a few switching elements are required for the different operating modes, the
Laufzeiten sehr klein gehalten werden. Maturities are kept very short.
11 Patenaansprüche 11 patent claims
5 Figuren
5 figures