-
TECHNISCHES GEBIET
-
Die
vorliegende Erfindung betrifft das Gebiet des testfreundlichen Designs
integrierter Schaltungsanordnungen. Insbesondere bezieht sich die
vorliegende Erfindung auf ein Verfahren und System, interne Busse
zu steuern, um zu versuchen, Buskonflikte innerhalb einer integrierten
Schaltungsanordnung während
interner Scan-Tests zu verhindern.
-
HINTERGRUND DER TECHNIK
-
Computersysteme,
Softwareanwendungen und die Anordnungen und Systeme, die um sie
herum gebaut werden, wachsen kontinuierlich in Leistung und Komplexität. Der Verlass
der Gesellschaft auf solche Systeme wächst gleichermaßen an und macht
es entscheidend, dass die Systeme den Eigenschaften gehorchen, die
ihre Designer beabsichtigten. Je leistungsfähiger und komplexer das System
ist, desto größer ist
normalerweise sein Nutzen und seine Verwendbarkeit. Aber, da diese
Computer und softwareimplementierten Systeme und Prozesse leistungsfähiger werden,
wird Ermitteln und Korrigieren von Fehlern innerhalb des Systems
zunehmend schwierig.
-
Da
integrierte Schaltungen, und speziell die Logikanteile integrierter
Schaltungen, komplexer und dichter geworden sind, sind sie zunehmend
schwieriger zu testen geworden, um korrekte und vollständige Funktionalität sicherzustellen.
Zum Beispiel: da die Gesamtanzahl der innerhalb eines integrierten Schaltungs-Chips
hergestellten Transistoren steigt, steigt mit derzeitiger Technologie
auch die Zeitmenge, welche die aus einer Fertigungsprozesslinie
herauskommende integrierte Schaltung im Testen aufbringt. Also können die
Testkosten für
die neuesten und größten integrierten
Schaltungen hoher Dichte sehr bedeutend sein. Sehr hoch entwickelte
Testprogramme, Programme zur automatischen Generierung von Testmustern
(ATPG), werden verwendet, um die verschiedenen Netzlisten-Repräsentanten des
Designs der integrierten Schaltung zu analysieren und daraus das
Test muster (z.B. auch als Testprogramme oder Testvektoren bezeichnet),
das zum Testen der Anordnung in automatischen Testgeräte-Systemen
(ATE) verwendet wird, zu generieren.
-
Die
Aufgabe des ATPG-Programms oder Werkzeugs ist es, ein genaues Testmuster
mit hoher Abdeckung (d.h. Test des meisten des ausführenden Schaltkreises
der integrierten Schaltung) so effizient wie möglich zu generieren, um Kosten
zu reduzieren. Also umfasst ein zunehmend wichtiger Teil des Logiksyntheseprozesses
das Entwerfen von ASICs und anderen komplexen integrierten Schaltungen
für inhärente Testbarkeit.
Dies wird als testfreundliches Designen oder DFT (design for testibility)
bezeichnet.
-
Ein
problematischer Aspekt des DFT-Prozesses umfasst hohe Dichte und
integrierte Multifunktionsschaltungen, die vielfältige Funktionseinheiten an einem
oder mehreren internen Bussen enthalten. Die Verwendung von internen
Tristate-(Dreizustands-) Signalen oder Bussen mit vielfältigen Treibern
ist in den System-auf-dem-Chip-Designs nach dem Stand der Technik
allgemein üblich
geworden. Auch allgemein üblich
ist die Verwendung interner Scan-Test-Methodiken, um komplexe Designs
zu testen. Im Allgemeinen haben diese zwei Aspekte der Designs auf
dem neuesten Stand der Technik widersprüchliche Design- und Test-Auswirkungen
aufeinander.
-
Derzeitige
ATPG-Werkzeuge haben Schwierigkeiten, solche Strukturen zu interpretieren
und zu steuern, aber erfordern trotzdem, dass ein und nur ein Treiber
zu irgendeiner vorgegeben Zeit aktiv ein gemeinsames Signal treibt.
Vielfältige
aktive Treiber können
unerwartete Testresultate produzieren und können potenziell Komponenten
während
des Produktionstests beschädigen.
Dieses Problem zu lösen wird
erschwert, wenn die vielfältigen
Treiber unabhängig
von eindeutigen Funktionsblöcken,
die autonome Schaltkreise enthalten, gesteuert werden, um ihre entsprechenden
Bustreiber zu aktivieren.
-
Eine
Lösung
nach Stand der Technik, das Problem, dass mehrere Funktionsblöcke um einen odere
mehrere Busse konkurrieren, zu behandeln, ist die Implementierung
einer Methodik, das ATPG-Werkzeug zu zwingen, alle Buskonfliktangelegenheiten
zu lösen.
Aber dies resultiert in geringerer Fehlerabdeckung und physikalisch
längerer
Zeit, Muster zu generieren. Zusätzlich
unterstützen
viele ATPG-Programme und Werkzeuge diese Lösung nicht.
-
Zusätzlich tun
die Werkzeuge, die Lösung und
Verhindern von Buskonflikten unterstützen, dies mit begrenztem Erfolg.
Sie garantieren, dass keine ATPG-Muster generiert werden, die Buskonflikte
auf irgendwelchen Signalen oder Bussen verursachen, aber es ist
oft schwierig für
die Werkzeuge zu tun. Das Ergebnis sind oft extrem lange Kompilierungszeiten
und sehr schlechte Fehlerabdeckung.
-
EP-A-0454052
offenbart eine Datenverarbeitungsanordnung mit einer Testschaltung
mit verschiedenen Testoperationsmodi zum Verhindern von Buskonflikten.
Dies hat den Nachteil, dass unterschiedliche Testoperationsmodi
erforderlich sind, was wiederum zusätzliche Steuerschaltkreise
erfordert.
-
Also,
was gefordert ist, ist eine Lösung,
die fähig
ist, jegliche potenziellen Buskonflikte zwischen vielfältigen Funktionseinheiten
einer integrierten Schaltungsanordnung zu eliminieren. Was gefordert ist,
ist eine Lösung,
die aktiv vielfältige
Bustreiber für die
vielfältigen
Funktionseinheiten zu steuern, um Buskonflikte zu eliminieren. Die
geforderte Lösung sollte
durch Design garantieren, dass Buskonflikte bei jedem Scan-Testmuster, das ein
ATPG-Werkzeug generieren könnte,
nicht auftreten können,
und also Testmuster generiert, die einer viel größeren Fehlerabdeckung und viel
schnelleren Kompilierungszeiten resultieren. Die geforderte Lösung sollte
leicht zu implementieren sein, einheitlich in Konstruktion und minimale
Auswirkungen auf Gatterfläche
und Systemleistungsfähigkeit
des Designs haben.
-
An
diesem Punkt sei bemerkt, dass die japanische Patentanmeldung JP11-094914 ein IC offenbart,
das eine Anordnung bereitstellt, um Buskonflikte während des
Scan-Tests zu verhindern. Das IC umfasst eine Scan-Kette von Flipflops,
die zwischen eine erste Logikschaltung und eine Anzahl von Logikschaltungen,
die Zugriff auf einen Bus haben, gekoppelt ist. Während des
Scan-Tests werden Daten durch die Scan-Kette geschoben, was zufällige Buskonflikte
verursachen kann. Das wir durch eine zusätzliche Logikschaltung verhindert,
die an die Scan-Kette gekoppelt ist und ein Busfreigabesignal für eine Logikschaltung
mit Buszugriff nur als Funktion des Inhalts der Scan-Kette generiert
und so sicherstellt, dass keine Buskonflikte auftreten, wenn sie
Daten durch die Scan-Kette schiebt. Aber JP-11-094914 sagt nichts
darüber,
während
des Scan-Testens Buszugriff exakt einem Funktionsblock der genannten
Blöcke
zu gewähren.
-
OFFENBARUNG DER ERFINDUNG
-
Die
vorliegende Erfindung ist ein Verfahren und System zum Eliminieren
jeglicher potenzieller Buskonflikte zwischen vielfältigen Funktionseinheiten einer
integrierten Schaltungsanordnung. Die vorliegende Erfindung schafft
eine Lösung,
die aktiv vielfältige
Bustreiber für
die vielfältigen
Funktionseinheiten steuert, um Buskonflikte zwischen den Funktionseinheiten,
wie sie durch eine Serie von Testeingangssignalen (z.B. ATPG-Testmuster, Vektoren
usw.) hervorgerufen werden, zu eliminieren. Das Verfahren und System
der vorliegenden Erfindung garantiert durch Design, dass Buskonflikte
bei jeglichen Scan-Testmustern, die ATPG-Werkzeuge generieren könnten, nicht
auftreten können,
und erlauben es dem ATPG-Werkzeug so, Testmuster zu erzeugen, die
in viel größerer Fehlerabdeckung
resultieren. Zusätzlich
können
Testmuster mit viel schnelleren Kompilierungszeiten generiert werden,
da das ATPG-Werkzeug nicht sicherzustellen hat, dass Buskonflikte
nicht auftreten können.
Das System der vorliegenden Erfindung ist leicht implementiert,
einheitlich in Konstruktion und hat minimale Auswirkungen auf Gatterfläche und
Systemleistungsfähigkeit
des Gesamtdesigns von integrierten Schaltungsanordnung Entsprechend
einem ersten Aspekt der Erfindung wurde ein System zum Verhindern
von Buskonflikten in einer integrierten Schaltung im Test gemäß Anspruch
1 geschaffen.
-
Entsprechend
einem anderen Aspekt der Erfindung wurde ein Verfahren zum Verhindern
von Buskonflikten in einer integrierten Schaltung im Test gemäß Anspruch
8 geschaffen.
-
Die
begleitenden Zeichnungen, die in dieser Anmeldung enthalten sind
und einen Teil davon bilden, erläutern
Ausführungsformen
der Erfindung und dienen zusammen mit der Beschreibung dazu, die Prinzipien
der Erfindung zu erklären.
Es zeigen:
-
1 ein
allgemeines Schema einer PCI-basierten (peripheral component interconnect
= Vernetzung peripherer Komponenten) Ausführungsform der vorliegenden
Erfindung;
-
2 eine
Implementierung einer integrierter Schaltung von 1 gemäß einer
Ausführungsform
der Erfindung in größerem Detail;
-
3 ein
Schema der Logik, die notwendig ist, einen vorher bestehenden Funktionsblock
gemäß einer
Ausführungsform
der vorliegenden Erfindung zu modifizieren;
-
4 die
interne Logik eines beispielhaften „OE Control for Test" (Ausgangsfreigabesteuerung zum
Testen)-Blocks gemäß einer
Ausführungsform der
vorliegenden Erfindung, in der die Tristate-Treiber eine Aktiv-„Low"-Ausgangsfreigabelogik
haben;
-
5 ein
Beispiel eines „OE
Control for Test"-Blocks,
der für
Tristate-Treiber
konfiguriert ist, die eine Aktiv-„High"-Ausgangsfreigabelogik haben, gemäß einer
Ausführungsform
der vorliegenden Erfindung;
-
6 ein
System gemäß eines
weiteren Beispiels;
-
7 ein
Schema eines PCI-Bus-Arbiters gemäß des weiteren Beispiels;
-
8 die
typische Logik, die von einem Funktionsblock verwendet wird, um
die Ausgangsfreigabe für
den Adressen/Daten-Anteil eines PCI-Bus zu generieren, gemäß des weiteren
Beispiels;
-
9 die
Logik gemäß des weiteren
Beispiels, die von einem Funktionsblock benötigt wird, um zu garantieren,
dass es während
des Scan-Testmodus nie irgendwelche Buskonflikte gibt;
-
10 die
Logik gemäß des weiteren
Beispiels, wo die Ausgangsfreigaben Aktiv-„High" im Gegensatz zu Aktiv-„Low" sind;
-
11 ein
Schema eines „Test
Only"-Blocks (Nur-Testen-Block)
gemäß eines
anderen Beispiels; und
-
12 ein
Flussdiagramm der Schritte eines Funktionsprozesses gemäß einer
Ausführungsform der
vorliegenden Erfindung.
-
BESTE ART, DIE ERFINDUNG
AUSZUFÜHREN
-
Jetzt
werden detaillierter die bevorzugten Ausführungsformen der Erfindung,
ein Verfahren und System zum Steuern interner Busse, um Buskonflikte während des
Scan-Tests durch Verwenden zentralisierten Steuerungsmittel zu verhindern,
erwähnt,
Beispiele davon sind in den begleitenden Zeichnungen erläutert. Während die
Erfindung in Verbindung mit den bevorzugten Ausführungsformen beschrieben wird,
sei verstanden, dass sie nicht gedacht sind, die Erfindung auf diese
Ausführungsformen
zu limitieren. Im Gegensatz, die Erfindung ist gedacht, Alternativen,
Modifikationen und Entsprechungen abzudecken, die in den Rahmen
der Erfindung, wie er in den Ansprüchen definiert ist, eingeschlossen
sein könnten.
Außerdem
sind in der folgenden detaillierten Beschreibung der vorliegenden
Erfindung zahlreiche spezielle Details dargelegt, um ein umfassendes
Verständnis
für die
vorliegende Erfindung zu schaffen. Aber es wird Fachleuten deutlich
sein, dass die vorliegende Erfindung ohne diese speziellen Details praktiziert
werden kann. In anderen Fällen
wurden gut bekannte Verfahren, Prozeduren, Komponenten und Schaltun gen
nicht im Detail beschrieben, um nicht unnötigerweise Aspekte der vorliegenden
Erfindung zu verwirren.
-
Die
vorliegende Erfindung ist ein Verfahren und System zum Eliminieren
jeglicher potenzieller Buskonflikte zwischen vielfältigen Funktionseinheiten einer
integrierten Schaltungsanordnung. Die vorliegende Erfindung schafft
eine Lösung,
die aktiv vielfältige
Bustreiber für
die vielfältigen
Funktionsblöcke steuert,
um Buskonflikte zwischen den Funktionsblöcken, wie sie durch eine Serie
von Testeingangssignalen (z.B. ATPG-Testmuster, -vektoren usw.) hervorgerufen
werden, zu eliminieren. Das Verfahren und System der vorliegenden
Erfindung garantieren durch Design, dass Buskonflikte bei jeglichen Scan-Testmustern,
die ATPG-Werkzeuge generieren könnten,
nicht auftreten können,
und erlauben es dem ATPG-Werkzeug so, Testmuster zu erzeugen, die
in viel größerer Fehlerabdeckung
resultieren. Zusätzlich
können
Testmuster mit viel schnelleren Kompilierungszeiten generiert werden,
da das ATPG-Werkzeug nicht sicherzustellen hat, dass Buskonflikte
nicht auftreten können.
Das System der vorliegenden Erfindung ist leicht implementiert,
einheitlich in Konstruktion und hat minimale Auswirkungen auf Gatterfläche und
Systemleistungsfähigkeit
des Gesamtdesigns von integrierten Schaltungsanordnungen. Die vorliegende
Erfindung und ihre weiteren Vorteile werden im Folgenden weiter
beschrieben.
-
Bezugnehmend
auf 1 wird ein Schema einer integrierten Multifunktionsschaltung 100 gemäß einer
Ausführungsform
der vorliegenden Erfindung gezeigt. 1 zeigt
ein allgemeines Schema einer PCI-basierten (peripheral component
interconnect = Vernetzung peripherer Komponenten) Ausführungsform
der vorliegenden Erfindung. Aber man sei sich bewusst, dass das
Verfahren und System der vorliegenden Erfindung mit anderen Arten
gemeinsamer Busse und/oder anderen Arten von Busstandards (z.B.
AMBA-Bus, ASB, AHB, APB usw.) implementiert werden können.
-
Wie
in 1 dargestellt, enthält integrierte Schaltung 100 vier
Funktionsblöcke 101–104,
jeder an einen gemeinsamen Bus 110 gekoppelt. In dieser Ausführungsform
sind die Funktionsblöcke PCI-Agenten
(d.h. PCI-Master/Target #1, PCI-Master/Target
#2, PCI-Target #3 beziehungsweise PCI-Master/Target #4) und der
gemeinsame Bus 110 ist ein PCI-Bus. Funktionsblöcke 101–103 sind PCI-Master/Target-Agenten
(d.h. sie funktionieren als PCI-Initiatoren und PCI-Slaves). Funktionsblock 104 ist
ein PCI-Nur-Target).
Die Blöcke 101–104 und Bus 110 sind
in die integrierte Schaltung 100 integriert und schaffen
zusammen die Funktionalität
und den Nutzen der integrieren Schaltung 100.
-
Wie
oben beschrieben, ist die vorliegende Erfindung als ein System zum
Verhindern von Buskonflikten für
den Bus 110 zwischen den Funktionsblöcken 101–104 implementiert.
Während
des normalen Betriebs verhindert das PCI-Protokoll, unter dem die
integrierte Schaltung 100 arbeitet, Buskonflikte zwischen
den Blöcken 101–104.
Die integrierte Schaltung 100 enthält die notwendige Steuerungslogik
and Unterstützungsschaltkreise,
um die Blöcke 101–104 und
den Bus 110 als ein völlig
PCI-normkonformes System zu betreiben (z.B. Buszuteilung, Anordnungskonfiguration,
Anschließen
und Steuerung usw.). Also besteht während des normalen Betriebs
wenig Gefahr von Buskonflikten. Aber während des Testens, wie es gut
bekannt ist, besteht eine signifikante Gefahr von Buskonflikten,
die durch verschiedene Testvektoren, Testmuster, Scan-Muster usw.,
die in die integrierte Schaltung 100 eingelesen werden,
um ihre Funktionalität
zu testen, hervorgerufen wird. Die vorliegende Erfindung funktioniert
teilweise, indem sie garantiert, dass ungeachtet irgendwelcher Testmuster,
Vektoren usw., denen integrierte Schaltung 100 ausgesetzt
wird, es keine Möglichkeit für Buskonflikte
zwischen den Blöcken 101–104 gibt.
-
Immer
noch bezugnehmend auf 1 schafft die vorliegende Erfindung
eine Lösung,
die aktiv die entsprechenden Bustreiber für die Funktionsblöcke 101–104 steuert.
Diese aktive Steuerung garantiert die Eliminierung jeglicher Möglichkeit
von Buskonflikten zwischen den Funktionsblöcken 101–104,
wie sie von einer Serie von Testeingangssignalen (z.B. ATPG-Testmuster,
-vektoren usw.) angeregt werden. Die aktive Steuerung wird unter
Verwendung von Steuerungslogik implementiert, die in das Design
des Systems 100 eingebaut ist. Diese Steurungslogik ist
konfiguriert, um sicherzustellen, dass Buskonflikte, bei jeglichen
Scan-Testmustern, die ein ATPG-Werkzeug generieren könnte, nicht
auftreten können.
Also muss dass ATPG-Werkzeug während der
Generierung der Testmuster für
die integrierte Schaltung 100 nicht deterministisch jeden
und jeden potenziellen Testvektor analysieren, um zu verifizieren,
dass Konflikte nicht auftreten werden. Indem das so getan wird,
verläuft
die ATPG-Verarbeitung sehr viel effizienter (d.h. in typischen Applikationen
eine Größenordnung
effizienter). Die zusätzliche
Effizienz erlaubt dem ATPG-Werkzeug, die integrierte Schaltung 100 gründlicher
zu verarbeiten, was dem ATPG-Werkzeug beispielsweise erlaubt, Testmuster
zu erzeugen, die in viel größerer Fehlerabdeckung
resultieren. Da das ATPG-Werkzeug nicht zu garantieren hat, dass
Buskonflikte nicht auftreten würden,
erlaubt die zusätzliche
Effizienz außerdem,
dass Testmuster mit viel schnellerer Kompilierungszeit erstellt werden.
Noch ein weiterer Vorteil der vorliegenden Erfindung ist die Tatsache,
dass die implementierende Steuerungslogik leicht zu vorher existierenden
integrierten Multifunktionsschaltungsdesigns addiert werden kann.
Die implementierende Logik ist einheitlich in Konstruktion und hat
minimale Auswirkungen auf Gatterfläche und Systemleistungsfähigkeit
des Gesamtdesigns einer integrierten Schaltungsanordnung (d.h. integrierte
Schaltung 100).
-
2 zeigt
eine Implementierung der integrierten Schaltung 100 gemäß einer
Ausführungsform
der vorliegenden Erfindung in größerem Detail. Wie
in 2 dargestellt, sind die Funktionalblöcke 101–104 und
ihre entsprechenden Verbindungen der vorliegenden Erfindung gezeigt.
Jeder Block 101–104 ist
in der Lage, im normalen Betrieb den Bus 110 zu treiben
und muss während
des Scan-Testens gesteuert werden, um Buskonflikte zu verhindern.
Jeder der Blöcke 101–104 ist
konfiguriert, eine Serie von Ausgangsfreigabesignalen auszugeben
und zu empfangen, wie durch Pfeil 205 (hiernach kollektiv als
Ausgangsfreigabesignale 205 bezeichnet). Das Ausgangsfreigabesignal 205 entspricht
speziellen Signalen oder Gruppen von Signalen, die spezifisch für den Bus 110 sind,
und funktioniert durch Freigeben oder Aussetzen der entsprechenden
Ausgangstreiber der Blöcke 101–104 für die entsprechenden
Signale oder Gruppen von Signalen, wie sie in Tabelle 1 im Folgenden
gezeigt sind. Wie in 2 dargestellt, kaskadieren die
Ausgangsfreigabesignale 205 von Block 101 bis
zu Block 104, mit Ausnahme von Block 103 (PCI-Target
#3), wo einige der Ausgangsfreigabesignale 205 Block 103 umgehen
und zu Block 104 weitergehen. Das ist so, weil Block 103 ein PCI-Nur-Target-Agent
ist und deshalb die PCI-Signale
FRAME#, IRDY# und CBE# nicht treiben muss. Die Beziehung zwischen
den Ausgangsfreigabesignalen und ihren entsprechenden PCI-Signalen
ist in Tabelle 1 gezeigt:
-
-
Immer
noch auf 2 bezugnehmend: Gemäß der vorliegenden
Erfindung werden die Ausgangsfreigabesignale von einem Funktionsblock
zu dem nächsten
in einer „ODER-Kette" kaskadiert, um eine
priorisierte Hierarchie zwischen den Blöcke 101–104 zu
erzeugen. Diese priorisierte Hierarchie verhindert, dass zu irgendeiner
Zeit Ausgangstreiber von verschiedenen Blöcken gleichzeitig aktiv sind.
In dieser Ausführungsform
werden die Ausgangsfreigabesignale jedes Blocks zusammen kaskadiert,
um eine priorisierte Logikkette von Block 101 bis Block 104 zu
bilden, wie in 2 gezeigt. Die Geltendmachung
der Ausgangsfreigabe eines Blocks verhindern notwendigerweise, dass
irgendwelche anderen Blöcke
mit einer niedrigeren Priorität
geltend gemacht werden. Genauso wird, wenn ein Block mit einer speziellen
Priorität
aktiv das Signal oder den Bus treibt und ein Treiber mit einer höheren Priorität aktiviert
wird, der Treiber mit der niedrigeren Priorität sofort deaktiviert.
-
2 zeigt
auch einen TAP-Controller (test access port controller = Testzugriffscontroller) 200, der
an jeden Funktionsblock 101–104 über eine Scan-Testmodus-Signalleitung gekoppelt
ist. In dieser Ausführungsform
generiert TAP-Controller 200 das Scan-Testsignal 201,
um jeden Funktionsblock 101–104 zu informieren,
wenn Scan-Testen
im Gange ist. Wie oben beschrieben, hat jeder Funktionsblock 101–104 ein
Ausgangsfreigabesignal für
jede Hauptgruppierung von Signalen auf dem PCI-Bus (AD, PAR, CBE,
FRAME#, IRDY#, TRDY#, DEVSEL, STOP#, PERR# und SERR#). Diese Ausgangsfreigabesignale
(d.h. Ausgangsfreigabesignale 205) informieren den entsprechenden
Block, ob irgendein Block höherer
Priorität
den PCI-Bus treibt. Jeder Funktionsblock hat auch einen entsprechenden
Ausgangsfreigabesignal-Ausgang für
jede Hauptgruppierung von Signalen auf dem PCI-Bus. Wie in 2 gezeigt,
werden diese Ausgangsfreigabesignal-Ausgänge zu den Ausgangsfreigabesignal-Eingängen des
Funktionsblock der nächsten
Priorität
kaskadiert.
-
Immer
noch bezugnehmend auf 2 hat beispielsweise der Funktionsblock 101 die
höchste Prioritär und der
Funktionsblock 104 die niedrigste Priorität. Wenn
der Funktionsblock 101 (d.h. PCI-Master/Target #1) während des
Scan-Testmodus die Signalleitungen AD[31:0], FRAME# und STOP# treibt
(d.h. das ATPG-Werkzeug erzeugte ein Scan-Muster, das ihn zwingt,
das zu tun), dann aktiviert der Funktionsblock 101 seine
Ausgänge
für ad_oe_1,
frame_oe_1 und stop_oe_1. Der Funktionsblock 102 würde dann
diese Signale aktiviert sehen und würde sie nicht treiben, auch
wenn das ATPG-Werkzeug ein Scan-Muster erzeugte, das ihm sagen würde, es
zu tun. Der Funktionsblock 102 (d.h. PCI-Master/Target
#2) würde
diese Information durch Aktivieren seiner Signale ad_oe_2, frame_oe_2
und stop_oe_2 an die Blöcke
niedrigerer Priorität
weitergeben. Es sei bemerkt, dass der Block 101 seine Ausgangsfreigabesignal-Eingänge auf „Low" (logisch null) gelegt
hat. Das macht den Block 101 zum Block der höchsten Priorität, da er
ihm nie etwas zuvorkommt. Der Block 104 hat seine Ausgangsfreigabesignal-Ausgänge offen
gelassen. Das macht ihn zum Block niedrigster Priorität, da er
nie einer anderen Anordnung zuvorkommen wird. Auf diese Weise werden
die Ausgänge
ad_oe_1, frame_oe_1 und stop_oe_1 durchkaskadiert, von den Blöcken hoher Priorität zu dem
Block niedrigster Priorität.
-
Es
sei bemerkt, dass der Block 103 ein Nur-Target-PCI-Agent
ist. Da der Block 103 keine Bus-Master-Fähigkeit
hat, hat es nicht die Signale FRAME#, IRDY# und C/BE(3:0) vom Bus 110 in
seinem Interface. In diesem Fall umgehen die Ausgangsfreigabesignale
frame_oe_2, irdy_oe_ und cbe_oe_2 den Block 103 und verbinden
sich mit Block 104.
-
Es
sei auch bemerkt, dass in der vorliegenden Ausführungsform die Ausgangsfreigabesignal-Eingänge und
Ausgänge
alle Aktiv-„High"-Signale sind. Wenn
beispielsweise einer der Blöcke 101–104 während des
Scan-Tests einen seiner Ausgangsfreigabesignal-Eingänge „High" sieht, wird er nicht
den entsprechenden Abschnitt des PCI.Bus treiben und wird wiederum
den entsprechenden Ausgangsfreigabesignal-Ausgang aktivieren.
-
Bezugnehmend
auf 3 wird ein Schema der Logik, die notwendig ist,
einen vorher bestehenden Funktionsblock gemäß einer Ausführungsform der
vorliegenden Erfindung zu modifizieren, gezeigt. 3 zeigt
die Zusammenschaltungslogik, die mit der vorliegenden Erfindung
verwendet wird (z.B. um zu garantieren, dass es während des
Scan-Tests keine
Buskonflikte auf dem Bus 110 gibt). In diesem Fall wird
der Block 102 gezeigt. Wie in 3 dargestellt, repräsentiert
der Block 102 die normale Logik, die einen PCI-Master/Target implementiert,
weniger die Tristate-Treiber, die den PCI-Bus treiben. Diese Implementierung
der vorliegenden Erfindung erfordert die Addition eines „OE Control
for Test"-Blocks (OE-(Ausgangsfreigabe)-Steuerung
zum Testen) für jedes
Ausgangsfreigabesignal. Vier dieser Blöcke, OE-Steuerung-zum-Testen 301–304 sind
gezeigt. Die OE-Steuerung-zum-Testen-Blöcke nehmen
die Ausgangsfreigabesignale des existierenden Blocks (z.B. Block 102)
cr_xx_oe_n (wobei „xx" dem Signaltyp entspricht,
z.B. ad, frame, irdy usw.) zusammen mit dem Scan-Testmodus-Signal
und dem Ausgangsfreigabesignal von der PCI-Anordnung nächsthöherer Priorität, xx_oe_in
von Block 101 und generieren die aktuelle Ausgangsfreigabe
für die
Tristate-Treiber und die Ausgangsfreigabesignal-Ausgänge
an den Block nächstniedrigerer
Priorität, xx_oe_out
für den
Block 103. Es sei bemerkt, dass 3 Aktiv-„Low"-Ausgangsfreigabelogik
für die
Tristate-Treiber (z.B. Tristate-Treiber 311–314)
annimmt.
-
Nun
wird bezugnehmend auf 4 die interne Logik eines Beispiel
eines OE-Steuerung-zum-Testen-Controllers 400 gemäß einer
Ausführungsform
der vorliegenden Erfindung gezeigt. Controller 400 zeigt
Logik gemäß Tristate-Treibern, die
Aktiv-„Low"-Ausgangsfreigabelogik
haben (z.B. Tristate-Treiber 401). In der vorliegenden
Ausführungsform
hat Controller 400 drei Eingänge und zwei Ausgänge. Wenn
der Scan-Testmoduseingang 201 „Low" ist, dann ist die „Ausgangsfreigabe-zum-Testen"-Logik deaktiviert
und das Ausgangsfreigabesignal des Blocks, cr_<signal>_oe_n, wird verwendet, den Tristate-Treiber 401 zu
steuern. Wenn Scan-Testmodus 201 „High" ist, wird die „Ausgangsfreigabe-zum-Testen"-Logik aktiviert
und der Ausgangsfreigabesignaleingang von dem Block nächsthöherer Priorität, <signal>_oe_in, wird verwendet, die
Ausgangsfreigabe dieses Blocks zu steuern, Wenn <signal>_oe_in „High" ist, treibt der vorige Block den Bus.
In diesem Fall deaktiviert der Controller 400 den Tristate-Treiber 401 und
aktiviert den Ausgangsfreigabesignal-Ausgang an die PCI-Anordnung
der nächstniedrigeren
Priorität, <signal>_oe_out. Wenn <signal>_oe_in „Low" ist, wird das Ausgangsfreigabesignal
des Blocks, cr_<signal>_oe_n verwendet, den
Tristate-Treiber 401 zu steuern. Wenn cr_<signal>_oe_n „Low"-aktiviert ist, aktiviert
der Controller 400 den Ausgangsfreigabesignal-Ausgang zu
dem Block nächstniedrigerer
Priorität, <signal>_oe_out, um ihm zu
sagen, nicht den Bus 110 zu treiben.
-
5 zeigt
ein Beispiel eines OE-Steuerung-zum-Testen-Controllers 500,
der für
Tristate-Treiber konfiguriert ist, die eine Aktiv-„High"-Ausgangsfreigabelogik
haben, gemäß einer
Ausführungsform
der vorliegenden Erfindung. Der Controller 500 funktioniert
in einer im Wesentlichen fast gleichen Weise wie der Controller 400 von 4.
Aber die interne Logik für
den Controller 500 ist für Tristate-Treiber konfiguriert,
die eine Aktiv-„High"-Ausgangsfreigabelogik
haben.
-
Auf
diese Weise garantieren die in 1–5 dargestellten
Ausführungsformen,
dass während
des Scan-Testens keine Buskonflikte auftreten. Indem es so gemacht
wird, verläuft
die von einem ATPG-Werkzeug durchgeführte ATPG-Verarbeitung viel
effizienter und benötigt
viel weniger Zeit um Test-Muster/Vektoren hoher Qualität zu generieren. Zusätzlich liefern
diese Test-Muster/Vektoren viel bessere Testabdeckung als die gemäß dem Stand der
Technik generierten, wo es dem ATPG-Werkzeug überlassen wird, alle Buskonfliktthemen
zu lösen.
Die implementierende Hardware der vorliegenden Erfindung kann leicht
durch Modifizieren jedes Funktionsblocks in einer in Frage kommenden
integrierten Schaltung integriert werden.
-
Nun
bezugnehmend auf 6 wird ein System 600 gemäß eines
anderen Beispiels gezeigt. Während
die Ausführungsformen
von 1–5 eine
verteilte Lösung
verwenden, um die Funktionsblöcke 101–104 zu
deaktivieren, Signale auf den Bus 110 zu treiben, verwendet
das System 600 zentralisierte Mittel, einen der Blöcke 611–614 zu
aktivieren, die Gesamtheit von Bus 610 zu treiben. Wie
mit den Ausführungsformen
von 1–5,
wird das Beispiel von 6 mit Bezug auf eine PCI-Bus-Implementierung
(z.B. Bus 610) beschrieben, aber es sei bemerkt, dass das
System 600 auf andere Arten von Busstrukturen ausgeweitet
werden kann.
-
Wie
in 6 dargestellt, sind die Funktionsblöcke 611–613 PCI-Master/Target-Agenten
und der Funktionsblock 614 ist ein PCI-Nur-Target-Agent.
Ein PCI-Nur-Target-Agent enthält
Register oder Speichermittel, auf die von dem PCI-Bus 610 zugegriffen werden
kann. Ein PCI-Nur-Master-Agent enthält die Fähigkeit, den Busbesitz zu entscheiden
und auf Register oder Speichermittel auf dem Bus 610 zuzugreifen,
hat aber typischerweise keine eigenen Register oder Speichermittel.
Eine PCI-Master/Target-Anordnung
hat die Mittel des Targets wie auch die Fähigkeit des Masters, auf andere
Mittel zuzugreifen.
-
System 600 ist
ein allgemeines PCI-Bussystem mit einem einzelnen PCI-Bus-Arbiter 601,
den Blöcken 611–613,
die ein PCI-Master- wie auch ein Target-Interface haben, und einem
einzelnen Block 614, der ein PCI-Nur-Target-Agent ist.
Die Blöcke
mit Master-Interfaces treiben Busanforderungssignale an den Arbiter 601 (z.B.
Busanforderungen 603). Der Arbiter 601 treibt
Busbewilligungssignale 602 an jeden PCI-Master-Agenten
(z.B. Blöcke 611–613). Block 614,
der ein Nur-Target-PCI-Agent ist, verwendet kein Anforderungs- oder
Bewilligungssignal.
-
6 verhindert
Buskonflikte während
des Scan-Testens durch Verwendung von dem PC-Bus-Arbiter 601,
um den Bus 610 einem der Blöcke 611–614 zu
bewilligen. Die Blöcke 611–614 sind modifiziert,
diese Bewilligung während
des Scan-Testens zu akzeptieren, so dass eine aktivierte Blockabtastbewilligung „Treibe
den Bus" bedeutet und
eine deaktivierte Abtastbewilligung „Deaktiviere alle Bustreiber" meint. Da die Flipflops
in dem PCI-Bus-Arbiter 601, die zum Generieren der Busbewilligungen
verwendet werden, in der Scan-Kette sind, kann das ATPG-Werkzeug
Scan-Daten so erzwingen, dass die geeigneten der Blöcke 611–614 den
Bus wie gewünscht
treiben.
-
6 enthält Logik,
um mit zwei spezifischen Situationen umzugehen. Die erste Situation ist,
welche Logik in einem Fall zu implementieren ist, wo eine integrierte
Schaltung Funktionsblöcke
des PCI-Nur-Target-Typs enthält,
die keine Busbewilligungssignale verwenden. Die zweite Situation
ist, wie einen Fall hantieren, wo das ATPG-Werkzeug die Bewilligung von vielfachen
Bewilligungssignalen während
des Scan-Testens verursacht. Die Lösung dieser speziellen Situationen
wird unten diskutiert.
-
Noch
auf 6 bezugnehmend: der PCI-Bus-Arbiter 601 agiert
als das zentrale Mittel zum aktivieren der Tristate-Treiber jedes
Funktionsblocks während
des Scan-Testmodus.
Jeder der Blöcke 611–614,
der während
des Scan-Testens seine Busbewilligung aktiviert hat, soll den PCI-Bus 610 treiben
(AD[31:0]; CBE, PAR, PERR#, SERR#, FRAME#, IRDY#, TRDY#, DEVSEL#
und STOP#). Dies schließt
PCI-Nur-Target-Agenten
und Nur-Master-Agenten ein. Es sei angemerkt, dass Busbewilligung 604 ein
neues Signal ist, das zu Nur-Target-Agenten (z.B. Block 614)
hinzugefügt
werden muss. Es sei auch angemerkt, dass die „Spezial"-Busbewilligung 604 für Nur-Target-Agenten
(z.B. Block 614) ein Ausgang des Bus-Arbiters 601 ist,
der nur während
des Scan-Testens funktioniert.
-
In
dem Fall, dass ein Nur-Target-Block selektiert wird, treibt der
Bus-Arbiter 601 die
Signale des PCI-Master-Typs, CBE, FRAME# und IRDY#. Das ist so auf
Grund der Tatsache, dass ein Nur-Target-Agent (z.B. Block 614)
im normalen Betrieb keine Notwendigkeit hat, diese Signale zu treiben,
und sie deshalb nicht in seinem Interface haben wird. Ähnlich treibt
in dem Fall, dass ein Agent vom Typ Nur-Master selektiert wird,
der Bus-Arbiter 601 die eindeutigen Signale des PCI-Target-Agenten,
TRDY#, DEVSEL# und STOP#, da ein Agent vom Typ Nur-Master keine
Notwendigkeit hat, sie im normalen Betrieb zu treiben.
-
Es
gibt interne PCI-Bus-Implementierungen, welche die Signale FRAME#,
IRDY#, TRDY#, STOP#, DEVSEL#, REQ#(0:N), PERR#, SERR# und/oder INT(A:D)
nicht mit Tristate betreiben. In einer solchen Implementierung hat
der PCI-Bus-Arbiter 601 keine Notwendigkeit, sie wie in
dem vorhergehenden Abschnitt zu treiben.
-
Lieber
als den PCI-Bus-Arbiter 601 die Signale CBE, FRAME#, IRDY#,
TRDY#, DEVSEL# und STOP# treiben zu lassen, wenn Agenten des Target-Typs
oder des Nur-Master-Typs selektiert werden, gibt es Implementierungen,
die wählen
können, diese
Signale nicht zu treiben, sondern sie stattdessen floaten zu lassen.
Dies resultiert in einiger Reduktion der Fehlerabdeckung, aber es
kann nicht genug sein, um das Addieren der zusätzlichen Komplexität in das
Design des Arbiters zu rechtfertigen.
-
Während des
Scan-Testens ist der PCI-Bus-Arbiter 601 für das Aktivieren
eines und nur eines Freigabesignals verantwortlich. Die Flipflops
in der für
die Generierung von PCI-Bus-Freigaben verantwortlichen Arbiter sind
auf der Scan-Kette, so dass das ATPG-Werkzeug Daten in sie schieben kann,
um den Bus 610 an egal welchen der Funktionsblöcke 611–614 es
wünscht,
freizugeben. Aber das ATPG-Werkzeug kann auch versuchen, vielfache
Busfreigaben zu aktivieren. Bus-Arbiter 601 muss immer
noch garantieren, dass nur einer der Blöcke 611–614 selektiert
wird. In dem Fall, dass keine Anordnung selektiert wird, gibt der
Bus-Arbiter 601 den Bus 610 an den „Voreinstellungs"-Block frei. Dieser
Voreinstellungs-Block kann als einer der Blöcke 611–614 oder
jeder derartige Block am Bus 610 gewählt werden.
-
Nun
bezugnehmend auf 7 wird ein Diagramm eines PCI-Bus-Arbiters 700 gemäß eines
anderen Beispiels gezeigt. Die Darstellung des PCI-Bus-Arbiters 700 zeigt
die Logik, die notwendig ist, um die Freigabesignale (d.h. Freigabesignale 603–604 von 6)
zu implementieren und die Signale CBE[3:0], FRAME#, IRDY#, DEVSEL#
und STOP# zu generieren. Der PCI-Bus-Arbiter 700 ist ein
Beispiels-Arbiter mit vier Agenten des PCI-Master/Target-Typs und
zwei Agenten des PCI-Nur-Target-Typs. Die Target-Freigabesignale
sind als tgnt(1:0) gezeigt. Die Zusätze zu der Logik eines konventionellen
PCI-Bus-Arbiters 705 sind die Flipflops 702–703,
um die Target-Freigabesignale zu treiben, die kombinatorische Logik 701,
um CBE[3:0], FRAME#, IRDY#, TRDY#, DEVSEL# und STOP# zu generieren
und die kombinatorische Logik 704, um zu garantieren, dass
während
des Scan-Testens nur eine Freigabe aktiviert wird. Während des
normalen Betriebs (scantestmode = 0) werden die PCI-Bus-Freigaben,
gnt_n(3:0), direkt von den Flipflops 706–709 getrieben,
die „Target-Freigaben" sind deaktiviert
und CBE[3:0], FRAME#, IRDY#, TRDY#, DEVSEL# und STOP# werden im
Tristate-Zustand betrieben. Während
des Scan-Tests (scantestmode = 1) werden die Ausgangssignale gnt_n
und tgnt_n von den Flipflops 706–709 beziehungsweise 702–703 (d.h.
von dem ATPG-Werkzeug) getrieben, es sei denn, vielfache Freigaben
werden aktiviert. Wenn vielfache Freigaben von den Flipflops aktiviert
werden, muss die kombinatorische Logik 704 eine der Freigaben
zum Aktivieren auswählen,
während
sie alle anderen deaktiviert. Wenn von den Flipflops kein Freigaben
aktiviert werden, muss die kombinatorische Logik 704 eine
der Freigaben zum Aktivieren auswählen, während sie alle anderen deaktiviert. Wenn
das aktivierte Frei gabesignal eines der „Target-Freigabe"-Signale ist, werden
CBE(3:0), FRAME# und IRDY# auf einen konstanten Wert getrieben (im
Beispiel als nullen gezeigt). Wenn das Freigabesignal für einen
Agenten des Nur-Master-Typs aktiviert wird, werden TRDY#, DEVSEL#
und STOP# getrieben.
-
8 zeigt
die typische Logik, die von einem Funktionsblock verwendet wird,
um die Ausgangsfreigabe für
den Adressen/Daten-Anteil von PCI-Bus 610 (z.B. ad(31:0))
zu generieren. Es zeigt, dass nur eine Ausgangsfreigabe für den gesamten
Bus 610 generiert wird. Es ist weit verbreitet, dass vielfache Flipflops
Ausgangsfreigaben für
verschiedenen Abschnitte des Busses generieren, aber dies ist eine leicht
zu integrierende Erweiterung zu dieser Implementierung.
-
9 zeigt
die Logik, die von einem Funktionsblock benötigt wird, um zu garantieren,
dass es während
des Scan-Tests nie irgendwelche Buskonflikte gibt. Während des
normalen Betriebs (scantestmode = 0) wird das normale Ausgangsfreigabesignal des
Funktionsblocks, cr_ad_oe_n, verwendet, um seine Ausgangstreiber
freizugeben. Aber während des
Scan-Tests (scantestmode = 1) soll entsprechend der vorliegenden
Erfindung das Freigabesignal gnt_n verwendet werden, um die Ausgangstreiber
freizugeben. Die Darstellung von 9 nimmt an,
dass die Ausgangsfreigaben aktiv-„Low" sind.
-
10 zeigt
die Logik, wo die Ausgangsfreigaben aktiv-„High" sind im Gegensatz zu aktiv-„Low". Also garantiert
das alternative Beispiel von 6–10,
dass Buskonflikte während
des Scan-Tests nicht auftreten. Das erleichtert außerordentlich
die Arbeit des ATPG-Werkzeugs und schafft viel bessere Fehlerabdeckung
mitschneller Kompilierungszeiten im Vergleich zum Stand der Technik,
wo es dem ATPG-Werkzeug überlassen
wird, alle Buskonflikt-Themen zu lösen. Wie bei den Ausführungsformen
von 1–5 kann
dieses Beispiel durch Modifizieren jedes Funktionsblocks in dem
System und dem zentralen Bus-Arbiter leicht implementiert werden.
-
Ein
zweites Beispiel kann auch implementiert werden. Diese zweite Beispiel
ist im Wesentlich ähnlich
dem ersten Beispiel von 6–10 außer der
Tatsache, dass die zentralen Mittel zum Steuern jedes Funktionsblocks
während
des Scan-Testsmodus nicht der PCI-Bus-Arbiter ist, sondern ein selbstständiger „Nur-Test"-Block. Mit diesem
Beispiel ist es nicht notwendig, das Design des PCI-Bus-Arbiters
zu ändern.
Die erforderliche Logik wird in den „Nur-Test"-Block integriert. Dieser „Nur-Test"-Block generiert
dann „Auswahl"-Signale statt Freigabesignale.
Diese Auswahlsignale würden
von jedem Funktionsblock verwendet, um den Bus während des Scan-Testens zu treiben,
anstatt der Freigabe signale, wie sie in dem ersten Beispiel von 6–10 dargestellt
wurden. Die Logik innerhalb jeder PCI-Anordnung wäre im Wesentlichen ähnlich zu
der von den ersten Beispielen von 6–10.
-
11 zeigt
ein Diagramm eines Nur-Test-Blocks 1100 gemäß dem zweiten
Beispiel. Der Nur-Test-Block 1100 ist im Wesentlichen die
gleiche Schaltung, die zu dem Bus-Arbiter 705 von 7 hinzugefügt wird.
Es sei bemerkt, dass es mit diesem zweiten Beispiel keine Unterscheidung
zwischen Auswahlsignalen des Target-Typs und Signalen des Master-Typs
gibt, wie es mit Target-Typ-Freigaben und Master-Typ-Freigaben des
ersten Beispiels war.
-
Bezugnehmend
nun auf 12 wird ein Flussdiagramm der
Schritte eines Prozesses 1200 gemäß einer Ausführungsform
der vorliegenden Erfindung gezeigt. Prozess 1200 zeigt
die generellen Operationsschritte einer integrierten Multifunktionsschaltung
gemäß der vorliegenden
Erfindung. Prozess 1200 beschreibt die generellen Operationsschritte,
aber Prozess 1200 ist genau anwendbar, um die Operation
der verschiedenen oben beschriebenen Ausführungsformen (z.B. die Ausführungsform von 1–5 und
das erste und zweite Beispiel) zu beschreiben. Trotzdem wird Prozess 1200 jetzt mit
Bezug auf die Ausführungsform
von 1–5 beschrieben.
-
Prozess 1200 beginnt
in Schritt 1201, wo die integrierte Multifunktionsschaltung
gemäß einer
der Ausführungsformen
der vorliegenden Erfindung (z.B. integrierte Schaltung 100 von 1)
ATPG-Testvektoren empfängt
(z.B. über
Scan-Ketten, Pins usw.). Wie oben beschrieben, werden Testvektoren/Testmuster
von einer ATE-Maschine in die integrierte Schaltung 100 geschoben
und der TAP (z.B. TAP 200 von 2) wird
verwendet, die integrierte Schaltung in einen Testmodus zu versetzen.
-
In
Schritt 1202 wird als Antwort auf die in Schritt 1201 empfangenen
Testvektoren ein Scan-Testmodussignal „scantestmode" an jedem Funktionsblock
der integrierten Schaltung aktiviert. Diese Signal funktioniert
durch Konfigurieren der Funktionsblöcke zum Testen, indem es sie
von einem normalen Betriebsmodus zu einem Testmodus umwandelt. In
jeder der oben beschriebenen Ausführungsformen aktiviert das „scantestmode"-Signal die Logik der vorliegenden Erfindung.
-
In
Schritt 1203 wird als ein Ergebnis davon, dass einer der
Testvektoren von Schritt 1201 an die Funktionsblöcke der
integrierten Schaltung gelegt wird, einer der Funktionsblöcke aktiviert,
um sein Operationscharakteristiken zu testen.
-
In
Schritt 1204 werden alle anderen Funktionsblöcke von
der Logik der vorliegenden Erfindung deaktiviert. Wie oben beschrieben,
ist in der Ausführungsform
von 1–5 diese
Logik zwischen jedem der Funktionsblöcke aufgeteilt. In den ersten und
zweiten alternativen Beispielen ist die implementierende Logik in
dem Arbiter (z.B. PCI-Bus-Arbiter 601 von 6)
oder in einer selbstständigen Nur-Test-Anordnung
(z.B. Nur-Test-Anordnung 1100 von 11)
zentralisiert. Wenn man es so tut, kann, ungeachtet des Effekts
irgendeines angelegten Testvektors/Testmusters, nur ein Funktionsblock
Signale auf dem Bus treiben.
-
In
Schritt 1205 überwacht
die implementierende Logik kontinuierlich, ob es einen Block höherer Priorität gibt als
den Funktionsblock, der gerade den Bus treibt, der als ein Ergebnis
der neuen Testvektors, der eingeschoben wird, aktiviert wird.
-
In
Schritt 1206 wird für
den Fall, dass ein Block höherer
Priorität
aktiviert ist, der Block mit der niedrigeren Priorität, der gerade
des Bus treibt, unmittelbar deaktiviert, während der Block höherer Priorität seine
Ausgangsreiber aktiviert hat. Wie oben beschrieben, stellt die implementierende
Logik sicher, dass keine zwei Sätze
von Ausgangstreibern von verschiedenen Funktionsblöcken gleichzeitig entsprechende
Signalleitungen des Busses treiben.
-
In
den Schritten 1207 und 1210 geht der Testprozess
der vorliegenden Erfindung weiter, mit neuen Testvektoren, die kontinuierlich
eingeschoben werden, und resultierenden Testdaten, die kontinuierlich
ausgeschoben werden, wie die Funktionalität der integrierten Schaltung
vollständig
verifiziert wird.
-
In
Schritt 1208, wo der Testprozess fertig gestellt ist, wird
das Scan-Testmodussignal
durch die ganze integrierte Schaltung hindurch deaktiviert. Diese
rekonfiguriert die Funktionsblöcke
und die Logik der vorliegenden Erfindung aus dem Testmodus heraus
in den normalen Betriebsmodus.
-
Nachfolgend,
in Schritt 1209, geht die integrierte Schaltung in den
normalen Betrieb. Wie oben beschrieben, werden während normaler Operation, die
Ausgangstreiber der Funktionsblöcke
von ihrer Normalbetriebsmoduslogik (z.B. gemäß der PCI-Spezifikationen) gesteuert. Die implementierende
Logik der vorliegenden Erfindung „schläft" bis zur Aktivierung eines anderen Scan-Testmodussignals, das
den Beginn eines anderen Testprozesses anzeigt.
-
Also
schafft die vorliegende Erfindung ein Verfahren und System zum Eliminieren
jeglicher Buskonflikte zwischen Multifunktionsblöcken einer integrierten Schal tungsanordnung.
Die vorliegende Erfindung schafft eine Lösung, die aktiv vielfache Bustreiber
Treiber für
Multifunktionsblöcke
steuert, um Buskonflikte zwischen den Funktionsblöcken zu
eliminieren, wie sie von einer Serie von Testeingangssignalen (z.B.
ATPG-Testmuster,
Vektoren usw.) angeregt werden. Das Verfahren und System der vorliegenden
Erfindung garantiert durch Design, dass Buskonflikte nicht auftreten
können,
welche Scan-Testmuster,
die ein ATPG-Werkzeug generieren könnte, auch gegeben sind, und
erlaubt so dem ATPG-Werkzeug, Testmuster zu erzeugen, die in einer
viel höheren
Fehlerabdeckung resultieren. Zusätzlich
können, da
das ATPG-Werkzeug nicht sicherstellen muss, dass Buskonflikte nicht
auftreten können,
Testmuster mit viel schnelleren Kompilierungszeiten generiert werden.
Das System der vorliegenden Erfindung ist leicht implementiert,
einfach in Konstruktion und hat minimale Gatterfläche und
Auswirkung auf das Gesamtdesign der integrierten Schaltungsanordnung.
-
Die
vorhergehenden Beschreibungen spezieller Ausführungsformen der vorliegenden
Erfindung wurden zum Zweck der Illustration und Beschreibung präsentiert.
Sie sind nicht gedacht, erschöpfend
zu sein oder die Erfindung auf die genauen, offenbarten Formen zu
limitieren, und offensichtlich sind im Licht der obigen Ausführungen
viele Modifikationen und Variationen möglich. Die Ausführungsformen
wurden ausgewählt
und beschrieben, um am besten die Prinzipien der Erfindung und ihrer
praktischen Anwendung zu erklären,
und dabei andere Fachleute zu befähigen, die Erfindung und verschiedene
Ausführungsformen
mit verschiedenen Modifikationen, wie sie passend für die besondere
angedachte Verwendung sind, zu nutzen. Es ist beabsichtigt, dass
der Rahmen der Erfindung in den hierzu angehängten Ansprüchen definiert ist.
-
Text in der Zeichnung:
-
1:
- PCI
MASTER/TARGET
- PCI-Master/Target
-
2:
- TAP
Controller or Test Logic
- TAP-Controller
oder Testlogik
- open
- offen
- scantestmode
- Scan-Testmodus
-
4 + 5:
- Normal
PCI Master/Target Logic
- Normale
PCI-Master/Target-Logik
- OE
Control for Test
- OE-Steuerung
zum Testen
- OE
Control for Active Low Oes
- OE-Steuerung
für aktiv-„Low Oes
- Active
high
- aktiv-„High"
-
6:
- PCI
BUS ARBITER
- PCI-Bus-Arbiter
- Bus
Grants (3)
- Busgewährungen
(3)
- Bus-Requests
(3)
- Busanfragen
(3)
-
7:
- Normale
Arbiter Logic
- Normale
Arbiter-Logik
- (excluding
gnt_n register)
- (ausschließlich des gnt_n-Registers)
-
9:
- Scan
OE Control
- Scan-OE-Steuerung
-
10:
- Scan_oe_controle_module
- Scan-OE-Steuerungsmodul
-
- (Alle anderen Bezeichnungen an den Leitungen sind Namen
von Signalen)
-
12:
- 1201
- Empfange
ATPG-Testvektoren von einer ATE-Einrichtung
- 1202
- Aktiviere
ein Scantest-Modussignal überall in
der integrierten Schaltung
- 1203
- Aktiviere
einen der Funktionsblöcke
der integrierten Schaltung als ein Ergebnis
-
- des
Testvektors
- 1204
- Deaktiviere
alle anderen Funktionsblöcke
- 1205
- Gibt
es einen Funktionsblock mit höherer Priorität, der aktiviert
ist?
- 1206
- Deaktiviere
den Funktionsblock mit der niedrigeren Priorität während der Aktivie
-
- rung
des Funktionsblocks mit der höheren Priorität
- 1207
- Ausgeführt
-
- YES
= Ja NO = Nein
- 1208
- Deaktiviere
Scan-Testmodus
- 1209
- Gehe
zum Normalbetrieb
- 1210
- Mache
Scan-Test weiter