-
Die Erfindung bezieht sich auf das Prüfen von
programmierbaren logischen Anordnungen und insbesondere auf eine
programmierbare logische Anordnung, die speziell zur
Vereinfachung von Prüfvorgängen geeignet ist.
-
Eine programmierbare logische Anordnung (PLA) ist eine an
sich bekannte Anordnung zur Durchführung von kombinierten
logischen Funktionen. Wie beispielsweise in IEEE Transactions
in Computers, 1979, Seite 609 beschrieben, weist eine PLA
grundsätzlich einen Satz von Bitleitungen (üblicherweise in
Paaren, die Komplentärsignale führen), einen Satz von
Produktleitungen, die die Bitleitungen schneiden und eine
erste Matrix von Kreuzungsstellen bilden (üblicherweise als
die UND-Ebene oder Matrix bezeichnet), und einen Satz von
Ausgangsleitungen, die die Produktleitungen schneiden und
eine zweite Matrix von Kreuzungsstellen bilden (üblicherweise
als ODER-Ebene oder Matrix bezeichnet) auf. An jeder
Kreuzungsstelle ist die Produktleitung selektiv mit der Bitleitung
oder der Ausgangsleitung verbunden oder nicht angeschlossen
gelassen, je nach der gewünschten logischen Funktion. Die PLA
kann damit so programmiert werden, daß sie einen weiten
Bereich von logischen Funktionen durchführt, die
beispielsweise aus Kombinationen von UND- und ODER-Operationen
bestehen.
-
Die GB-Patentschrift 21 72 726 beschreibt eine PLA mit einer
Erweiterung auf die UND-Ebene, die als integraler Decodierer
wirkt, wobei erreicht wird, daß individuelle Produktleitungen
einzeln in einem Testbetrieb ausgewählt werden. Der integrale
Decodierer nimmt eine Folge von Adressen mit Hilfe eines
Satzes von Puffern auf. Diese Puffer können unwirksam gemacht
werden, damit verhindert wird, daß die Adressen in den
integralen Decodierer eingespeist werden, wodurch der
Decodierer unwirksam gemacht wird, wie dies für einen
normalen Betrieb erforderlich ist.
-
Bei einer derartigen Anordnung besteht das Problem, daß dann,
wenn ein Fehler in einem der Puffer auftritt, der verhindert,
daß der Puffer einwandfrei unwirksam gemacht wird, dieser
Fehler mit herkömmlichen Prüfmethoden auf der PLA schwierig
anzuzeigen ist. Aufgabe der Erfindung ist es, eine PLA
anzugeben, bei der das Prüfen dieser Puffer vereinfacht wird.
Kurzbeschreibung der Erfindung
-
Mit der Erfindung wird eine programmierbare logische
Anordnung mit einer Vielzahl von Datenbitleitungen, die selektiv
mit einer Vielzahl von Produktleitungen gekoppelt sind,
welche ihrerseits selektiv mit einer Vielzahl von
Ausgangsleitungen gekoppelt sind, einer Vielzahl von
Adressenbitleitungen, die selektiv mit den Produktleitungen zur Bildung
eines integralen Decodierers gekoppelt sind, der die Auswahl
von individuellen Produktleitungen ermöglicht, einer
Folgesteuerung zum Aufgeben einer Folge von Adressen auf die
Adressenbitleitungen, um jede Produktleitung nacheinander
auszuwählen, und einem Puffer, der so betätigbar ist, daß er
alle Adressenbitleitungen unwirksam macht, um zu verhindern,
daß sie einen Effekt auf die Produktleitungen ausüben,
vorgeschlagen, die gekennzeichnet ist durch eine weitere
Produktleitung und eine weitere Ausgangsleitung, wobei die
weitere Produktleitung mit allen Adressenbitleitungen und
Datenbitleitungen und mit der weiteren Ausgangsleitung
verbunden ist, jedoch nicht mit einer der anderen
Ausgangsleitungen, wobei die weitere Ausgangsleitung mit der weiteren
Produktleitung, jedoch nicht mit einer der anderen
Produktleitungen verbunden ist, und wobei Fehler im Puffer, die
verhindern, daß die Adressenbitleitungen unwirksam werden,
durch Beobachtung von Ausgangssignalen auf der weiteren
Ausgangsleitung festgestellt werden können.
Kurze Beschreibung der Zeichnungen
-
Eine PLA nach der Erfindung wird nachstehend anhand eines
Ausführungsbeispieles in Verbindung mit den Zeichnungen
beschrieben.
-
Fig. 1 zeigt ein Gesamtschaltbild der PLA.
-
Fig. 2 und 3 zeigen Kreuzungsstellen der PLA im einzelnen.
-
Fig. 4 zeigt einen Pufferstromkreis im einzelnen.
-
Fig. 5 ist eine Tabelle, die die Folge von Anwendungen der
Testmuster auf die PLA zeigt.
-
Fig. 6 zeigt ein alternatives, lineares Rückkopplungs-
Schieberegister zur Verwendung in einer PLA nach der
Erfindung.
Beschreibung eine Ausführungsbeispieles der Erfindung
-
Fig. 1 zeigt eine PLA mit einem Satz von Produktleitungen P1
-P7, einen Satz von Datenbitleitungen 10, einen Satz von
Adressenbitleitungen 11 und einen Satz von Ausgangsleitungen
12. Die Datenbitleitungen 10 schneiden die Produktleitungen
in einer Matrix 13 von Kreuzungsstellen, die als die UND-
Ebene bezeichnet sind. Die Adressenbitleitungen schneiden die
Produktleitungen in einer Matrix 14, die eine Verlängerung
der UND-Ebene bildet und als der integrale Decodierer
bezeichnet wird. Die Ausgangsleitungen 12 schneiden die
Produktleitungen in einer Matrix 15, die als ODER-Ebene
bezeichnet ist.
-
Die Datenbitleitungen 10 sind mit den Produktleitungen an
ausgewählten Kreuzungsstellen in der UND-Ebene 13 verbunden,
wie durch X in der Zeichnung angezeigt ist. Die übrigen
Kreuzungsstellen in der UND-Ebene haben keine Verbindungen.
Fig. 2 zeigt eine der Kreuzungsstellen X. An jeder
Kreuzungsstelle X ist die Datenbitleitung 10 mit der Gatterelektrode
eines Transistors 16 vom N-Typ verbunden. Die Quellen-und
Abflußelektroden dieses Transistors sind entsprechend mit der
Produktleitung P und mit Erdpotential (0 Volt) verbunden.
Wenn somit die Bitleitung 10 auf einen hohen Spannungspegel
(+5 Volt) angehoben wird, wird die Produktleitung P auf
Erdpotential gesetzt.
-
In ähnlicher Weise sind die Adressenbitleitungen 11 mit den
Produktleitungen an ausgewählten Kreuzungsstellen X im
integralen Decodierer 14 verbunden dargestellt. Jede der
Kreuzungsstellen X ist so ausgebildet, wie in Fig. 2 gezeigt.
Jede Produktleitung ist mit einer anderen Kombination von
Adressenbitleitungen in einem Standard-Binärdecodierschema
verbunden. Dies ermöglicht, daß eine beliebige der
Produktleitungen durch Anlegen eines entsprechenden Adressenschemas
an die Adressenbitleitungen 11 ausgewählt werden kann.
-
Die Datenausgangsleitungen 12 sind mit den Produktleitungen
an ausgewählten Kreuzungsstellen in der ODER-Ebene 15
verbunden, wie durch O in der Zeichnung angedeutet. Die
übrigen Kreuzungsstellen in der ODER-Ebene sind ohne
Verbindung.
-
Fig. 3 zeigt eine der Kreuzungsstellen O. An jeder
Kreuzungsstelle O ist die Produktleitung P mit der Gatterelektrode
(Steuerelektrode) eines N-Transistors 17 verbunden, dessen
Quellen- und Abflußelektroden entsprechend mit der
Ausgangsleitung 12 und Erdpotential (0 Volt) verbunden sind. Wenn
somit die Produktleitung P auf einem hohen Spannungspegel (+5
Volt) steht, wird die Ausgangsleitung 12 auf 0 Volt
herabgesetzt.
-
Die Datenbitleitungen 10 nehmen Eingangsdatenbits D0-D4 von
einem Eingangsregister 18 über einen Satz von Puffern B auf.
-
Das Eingangsregister 18 ist in zwei unterschiedlichen
Betriebsarten betätigbar. Im normalen Betrieb wirkt es als
ein Parallel-Eingangs/Ausgangs-Register zur Aufnahme von
Eingangsdaten für die PLA. In einem Testbetrieb ist das
Register 18 all Kreis-Schieberegister betätigbar, dessen
Serienausgang an den Serieneingang über einen Pfad 19
zurückverbunden wird. Bei diesem Testbetrieb wird das
Register durch ein Taktsignal CK gesteuert, so daß bei jedem
Takt des Taktsignals der Inhalt des Registers um eine Stelle
nach rechts verschoben wird, wobei das rechte Bit in das
linke Ende zurückgeführt wird. Ein derartiges Register ist in
der EP-Anmeldung 196 152 beschrieben, aus der sich
Einzelheiten dieses Registers ergeben.
-
Einer der Puffer ist im einzelnen in Fig. 4 gezeigt. Der
Puffer weist NOR-Gatter 19, 20 auf. Das NOR-Gatter 19 nimmt
das Datenbit D aus dem Eingangsregister 18 über einen
Inverter 21 auf und erzeugt ein echtes Ausgangssignal T. Das
NOR-Gatter 20 nimmt das Datenbit D direkt auf und erzeugt ein
inverses Ausgangssignal I. Die NOR-Gatter 19, 20 werden durch
Puffersperrsignale BTD und BID gesteuert.
-
Im normalen Betrieb werden beide Sperrsignale BTD und BID
niedrig gehalten, so daß alle Puffer B wirksam werden,
wodurch jedes Eingangsdatenbit dem echten Ausgang T und sein
inverser Wert dem inversen Ausgang I aufgegeben werden kann.
In einem Testbetrieb kann entweder BTD oder BID auf hoch
gesetzt werden. Ist BTD hoch, werden die NOR-Gatter 19 in
allen Puffern unwirksam gemacht und bringen alle echten
Ausgänge T auf niedrig. Wenn BID hoch ist, werden die
NOR-Gatter 20 unwirksam gemacht und führen alle inversen
Ausgänge I nach niedrig.
-
Die Adressenbitleitungen 11 nehmen eine Eingangsadresse A0-
A3 aus einem linearen Rückkopplungs-Schieberegister (LFSR) 22
über einen Satz von Puffern C auf.
-
Das LFSR 22 weist ein dreistufiges Schieberegister auf,
dessen zweite und dritte Stufen in den Serieneingang der
ersten Stufe über ein Exklusiv-ODER-Gatter 23 rückgekoppelt
sind. Das LFSR wird von dem Taktsignal CK (das auch das
Eingangsregister 18 steuert) so gesteuert, daß bei jedem Takt
des Taktsignals der Inhalt des LFSR um eine Stelle nach
rechts verschoben wird, und der Ausgang des Exklusiv-ODER-
Gatters 23 in das linke Ende des LFSR eingeführt wird. Daraus
ergibt sich, daß dann, wenn beispielsweise das LFSR 22 zu
Anfang mit dem Bitschema 111 gefüllt wird, bei
aufeinanderfolgenden Takten des Taktsignals CK das LFSR nachstehende
Folge erzeugt:
-
Bei der nächsten Verschiebung kehrt das LFSR in das Schema
111 zurück, und der obige Zyklus wiederholt sich. Das LFSR
erzeugt somit eine zyklische Folge von sieben Adressen. Im
allgemeinen erzeugt ein LFSR mit M Stufen eine Folge der
Länge 2M-1.
-
Die Puffer C sind ähnlich den Puffern B ausgebildet, mit der
Ausnahme, daß sie von den Puffersperrsignalen CTD und CID
anstatt von BTD und BID gesteuert werden.
-
Im normalen Betrieb werden sowohl CTD als auch CID hoch
gehalten, und somit werden alle Puffer unwirksam gemacht,
wodurch alle Adressenbitleitungen 11 auf niedrig gesetzt
werden. Dies macht den integralen Decodierer 14 unwirksam, so
daß er keinen Einfluß auf die Produktleitungen ausüben kann.
Bei einem Testbetrieb werden sowohl CTD als auch CID niedrig
gehalten und damit werden die Puffer C alle wirksam gemacht,
wodurch die Adressen A0-A2 dem integralen Decodierer
aufgegeben werden, der eine der Produktleitungen auswählt.
-
Die Ausgangsleitungen 12 sind mit einem Satz von Invertern 24
verbunden, die Ausgangsdatensignale Y0-Y4 erzeugen. Die
Ausgangsdaten werden einem Ausgangsregister 25 zugeführt.
-
Das Ausgangsregister 25 besitzt zwei Betriebsarten. Im
normalen Betrieb wirkt es als paralleles Eingabe/Ausgabe-
Register zum Aufnehmen von Ausgangsdaten aus der PLA. In
einem Testbetrieb kann es als paralleles
Eingabe-Digitalsignaturanalysator
verwendet werden, um eine
Signaturcharakteristik einer Folge von Ausgangsdaten aus der PLA zu bilden.
Derartige Register sind bekannt, und z. B. in der europäischen
Patentanmeldung 196 171 beschrieben.
Betriebsweise
-
Für den normalen Betrieb des PLA werden das Eingaberegister
18 und das Ausgaberegister 25 beide in ihren normalen
Parallel-Eingabe/Ausgabe-Betrieb gesetzt. Die Puffer C werden
unwirksam gemacht (CID und CTD beide hoch), so daß alle
Adressenbitleitungen niedrig gehalten werden. Die Puffer B
werden wirksam gemacht (EID und BTD beide niedrig), so daß
die Datenbits D0-D4 aus dem Eingaberegister 18 den
Datenbitleitungen 10 aufgegeben werden.
-
Die Produktleitungen P1-P7 werden zu Anfang auf +5 Volt mit
Hilfe einer herkömmlichen Vorspannschaltung (nicht gezeigt)
vorgespannt. Jede Datenbitleitung 10, die hoch (+5 Volt) ist,
macht die Transistoren 16 in allen Kreuzungsstellen X auf
dieser Bitleitung wirksam, und bewirkt damit, daß die
entsprechenden Produktleitungen auf Null Volt gebracht
werden. Nur die Produktleitungen, die nicht mit einer der
Kreuzungsstellen X auf einer Hochbitleitung verbunden sind,
bleibt auf +5 Volt. Somit bildet jede Produktleitung die
NOR-Funktion der Signale auf den Bitleitungen, mit denen sie
durch die Kreuzungsstellen X verbunden ist.
-
Die Ausgangsleitungen 12 sind mit Hilfe einer herkömmlichen
Vorladeschaltung (nicht dargestellt) auf +5 Volt vorgespannt.
Alle Produktleitungen, die auf +5 Volt bleiben, machen die
Kreuzungsstellen-Transistoren 17 wirksam, mit denen sie
verbunden sind, und dies bringt die entsprechenden
Ausgangsleitungen auf Null Volt. Nur die Ausgangsleitungen, die nicht
mit einem wirksam gemachten Transistor 17 verbunden sind,
bleiben auf +5 Volt. Somit erzeugt jede Ausgangsleitung die
NOR-Funktion der Produktleitungen, mit denen sie verbunden
ist.
-
Dieser normale Betrieb des PLA ist herkömmlich und braucht
nicht weiter beschrieben zu werden.
-
Die PLA kann so betrieben werden, daß sie einzelne
Kreuzungsstellen wie folgt testet.
-
Das Abgaberegister 25 wird auf Null gebracht und wird in
seinen Signaturanalysatorbetrieb gesetzt.
-
Die Puffer C werden wirksam gemacht (CTD und CID beide auf
niedrig gesetzt), so daß die Adressenbits A0-A2 aus dem
LFSR 22 den Adressenbitleitungen 11 aufgegeben werden. Dies
bewirkt, daß alle Produktleitungen mit Ausnahme einer auf
Null Volt gebracht werden. Wenn beispielsweise die
Adressenbits A0-A2 gleich 001 sind, werden die Produktleitungen P2
-P7 alle auf Null Volt gebracht, und nur die Leitung P1 kann
auf +5 Volt bleiben, d. h. die Leitung P1 wird ausgewählt.
Wenn das LFSR 22 seine Folge bei aufeinanderfolgenden Takten
des Taktgebers CK durchläuft, wird jede der Produktleitungen
P1-P7 nacheinander, wenn auch nicht in numerischer
Reihenfolge, ausgewählt.
-
Gleichzeitig wird das Eingaberegister 18 mit einem
Testbitschema 10000 (d. h. lauter Nullen mit Ausnahme einer "1")
gefüllt und in den Kreisschiebebetrieb gesetzt. Bei
aufeinanderfolgenden Taktschlägen des Taktes CK wird die "1" im
Eingaberegister durch das Register von links nach rechts
verschoben und dann in das linke Ende zurückgekoppelt,
wodurch ein gleitendes Bitschema erzeugt wird. Die echten
Ausgänge T der Puffer B werden wirksam gemacht, indem BTD
niedrig gestellt wird (BID bleibt hoch). Somit wird das
gleitende Bitschema aus dem Register 18 den echten
Bitleitungen 10 aufgegeben, damit jede dieser Leitungen nacheinander
ausgewählt wird.
-
Der kombinierte Effekt der Betriebsweise des LFSR 22 und der
kreisförmigen Verschiebung des Registers 18 besteht darin,
daß die Folge von Eingabeschemen in die PLA erzeugt wird, wie
in Fig. 5 gezeigt.
-
Diese Folge bewirkt, daß jede Kombination von Produktleitung
und echter Bitleitung ausgewählt wird, und damit alle
Kreuzungsstellen in der UND-Ebene, die mit den echten
Bitleitungen 10 verbunden sind, testet.
-
Das Eingaberegister 18 wird dann erneut mit dem inversen
Testschema 01111 geladen (d. h. alle Einsen mit Ausnahme einer
Null), und die inversen Ausgänge der Puffer B werden durch
Einstellung von BID auf niedrig und BTD auf hoch wirksam
gemacht. Obige Folge wird dann wiederholt, so daß die
Kreuzungsstellen, die mit den inversen Bitleitungen 10
verbunden sind, getestet werden.
-
Während diese Eingangs folgen der PLA aufgegeben werden,
arbeitet das Ausgaberegister 25 als Signatur-Analysator, der
eine digitale Signaturschema-Charakteristik der Folge von
Ausgängen, welche von den Ausgangsleitungen 12 aufgenommen
werden, sammelt. Am Ende der Testfolgen kann diese Signatur
mit der Signatur verglichen werden, die aus einer PLA ohne
Fehler erwartet würde; wenn beide ungleich sind, gibt dies
an, daß ein Fehler in der PLA vorliegt.
-
Damit dieser Testvorgang eine vollständige Abdeckung von
Kreuzungsstellen in der UND-Ebene ergibt, ist es
erforderlich, daß die Längen der Folgen, die von der LFSR 22 und dem
Eingaberegister 18 erzeugt werden, Primzahlen sind. Zwei
Zahlen sind Koprimzahlen, wenn sie keinen gemeinsamen Faktor
größer als 1 haben. In vorliegendem Fall ist die Folgelänge
des LFSR 7 und die des Registers ist 5, so daß diese die
gewünschte Bedingung erfüllen, da der größte gemeinsame
Faktor von 5 und 7 die 1 ist.
-
Bei anderen Ausführungsformen nach der Erfindung kann die PLA
eine unterschiedliche Anzahl von Produktleitungen,
Bitleitungen und Ausgangsleitungen haben, und die Folgelängen des LFSR
und des kreisförmigen Schieberegisters können unterschiedlich
von den vorbeschriebenen sein, vorausgesetzt, daß die
Folgelängen die obige Regel, nämlich daß sie Koprimzahlen
sind, erfüllen.
-
Im allgemeinen gilt- das dann, wenn das LFSR M Stufen
aufweist, seine Folgelänge 2M-1 ist, und wenn das
kreisförmige Schieberegister N Stufen besitzt, seine Folgelänge N
ist, so daß die Regel lautet, daß 2M-1 und N Koprimzahlen
sein müssen. Um diese Regel zu erfüllen, ist es möglich,
freie, nicht benutzte Bits dem LFSR oder kreisförmigen
Schieberegister hinzuzufügen. Beispielsweise wird eine PLA
betrachtet, die ein vierstufiges LFSR (M = 4) mit einer
Folgelänge 2&sup4;-1 = 15 erforderlich macht, und die neun
Dateneingangsleitungen hat. Wenn das Eingabedatenregister 9
Bits lang ist (N = 9), wäre die obige Regel nicht erfüllt, da
15 und 9 nicht Koprimzahlen sind: Sie haben einen gemeinsamen
Faktor 3. Dies kann dadurch vermieden werden, daß das
Eingaberegister die Länge von 11 Bits (N = 11) erhält,
wodurch die obige Regel erfüllt wird, da 15 und 11
Koprimzahlen sind. Zwei der Bits des Eingaberegisters würden
deshalb frei sein, in dem Sinne, daß sie nicht für einen
normalen parallelen Eingang von Daten in die PLA verwendet
werden. Der einzige Zweck dieser beiden gesonderten Bits
besteht darin, die Folgelänge des Registers von neun auf elf
Stufen zu vergrößern, wenn es im kreisförmigen Schiebebetrieb
arbeitet.
-
Wenn ein Bereich von PLAs unterschiedlicher Größe ausgelegt
wird, ist es zweckmäßig, ein LFSR von Standardgröße zu haben,
das für einen Bereich unterschiedlicher PLAs verwendet werden
kann. Ein LFSR von sieben Bits, wie in Fig. 6 gezeigt, ist
hierfür als besonders zweckmäßig festgestellt worden. Dies er
gibt einen Wert von M = 7, so daß die Folgelänge 127 beträgt.
Dies ist eine Primzahl, d. h. sie hat keine Faktoren. Wenn
deshalb N eine kleinere Länge als 127 Bits hat, sind 2M-1 und
N Koprimzahlen. Somit kann das Dateneingaberegister eine
beliebige Länge bis 126 Bits haben.
-
Um die PLA vollständig zu testen, ist es erforderlich, die
Puffer B und C zu testen, um sicherzustellen, daß jeder
einwandfrei wirksam und unwirksam gemacht werden kann.
-
Die Betriebsweise der Puffer B und C im Freigabebetrieb wird
getestet, wenn die Kreuzungsstellen in der oben beschriebenen
Weise getestet werden, so daß kein spezieller Test
erforderlich ist.
-
Die Betriebsweise der Puffer B in Sperrbetrieb kann wie folgt
getestet werden. Zuerst wird ein nur Einsen aufweisendes
Schema in das Eingaberegister 18 eingefüllt, BTD und BID
werden beide auf hoch gesetzt, und es werden erschöpfende
Schemen in dem LFSR 22 erzeugt. Damit wird getestet, daß die
echten Bitleitungen einwandfrei unwirksam gemacht worden
sind. Dann wird ein aus lauter Nullen bestehendes Schema in
das Eingaberegister eingefüllt, wobei BTD und BID wieder hoch
sind, und es werden wiederum erschöpfende Schemen in dem LFSR
22 erzeugt. Damit wird getestet, daß die inversen
Bitleitungen einwandfrei unwirksam gemacht bzw. gesperrt worden sind.
-
Um ein Testen der Puffer C im Sperrbetrieb zu ermöglichen,
wird die PLA mit einer gesonderten Produktleitung 26 und
einer gesonderten Ausgangsleitung 27 versehen. Die gesonderte
Produktleitung 27 wird mit jeder Adressenbitleitung 11 und
Datenbitleitung 10 verbunden. Die gesonderte Produktleitung
ist ferner mit der gesonderten Ausgangsleitung 27 in der
ODER-Ebene 15, jedoch nicht mit einer der anderen
Ausgangsleitungen 12 verbunden. Die gesonderte Abgabeleitung 27 ist
nicht mit einer der anderen Produktleitungen P1-P7
verbunden.
-
Um die Puffer C im Sperrbetrieb zu testen, werden die
Steuersignale CTD, CID, BTD und BID alle hoch gehalten, damit
alle Adressenbitleitungen und Datenbitleitungen unwirksam
gemacht werden. Das LFSR 22 wird dann durch seine Folge
getaktet. Wenn alle Puffer C einwandfrei umwirksam gemacht
worden sind, wird die gesonderte Produktleitung 26 hoch und
damit die gesonderte Ausgangsleitung 27 niedrig. Wenn jedoch
ein Fehler in einem der Puffer C vorliegt, der ihn daran
hindert, unwirksam zu werden, wird die gesonderte
Produktleitung 26 an einer Stelle im Testzyklus nach niedrig gebracht,
wodurch die gesonderte Ausgangsleitung nach hoch geht. Dies
wird durch das Abgaberegister 25 im Signatur-Analysebetrieb
angezeigt.