DE60025631T2 - Vorrichtung und verfahren zur vermeidung von buskonflikten - Google Patents

Vorrichtung und verfahren zur vermeidung von buskonflikten Download PDF

Info

Publication number
DE60025631T2
DE60025631T2 DE60025631T DE60025631T DE60025631T2 DE 60025631 T2 DE60025631 T2 DE 60025631T2 DE 60025631 T DE60025631 T DE 60025631T DE 60025631 T DE60025631 T DE 60025631T DE 60025631 T2 DE60025631 T2 DE 60025631T2
Authority
DE
Germany
Prior art keywords
bus
output enable
integrated circuit
function block
test
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60025631T
Other languages
English (en)
Other versions
DE60025631D1 (de
Inventor
Brian Glendale LOGSDON
H. Franklyn Chandler STORY
Ken Phoenix JARAMILLO
Subramanian Tempe MEIYAPPAN
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NXP BV
Original Assignee
Koninklijke Philips Electronics NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of DE60025631D1 publication Critical patent/DE60025631D1/de
Application granted granted Critical
Publication of DE60025631T2 publication Critical patent/DE60025631T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318505Test of Modular systems, e.g. Wafers, MCM's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Bus Control (AREA)

Description

  • 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 101104, 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 101103 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 101104 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 101104 implementiert. Während des normalen Betriebs verhindert das PCI-Protokoll, unter dem die integrierte Schaltung 100 arbeitet, Buskonflikte zwischen den Blöcken 101104. Die integrierte Schaltung 100 enthält die notwendige Steuerungslogik and Unterstützungsschaltkreise, um die Blöcke 101104 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 101104 gibt.
  • Immer noch bezugnehmend auf 1 schafft die vorliegende Erfindung eine Lösung, die aktiv die entsprechenden Bustreiber für die Funktionsblöcke 101104 steuert. Diese aktive Steuerung garantiert die Eliminierung jeglicher Möglichkeit von Buskonflikten zwischen den Funktionsblöcken 101104, 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 101104 und ihre entsprechenden Verbindungen der vorliegenden Erfindung gezeigt. Jeder Block 101104 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 101104 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 101104 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:
  • Tabelle 1:
    Figure 00080001
  • 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 101104 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 101104 über eine Scan-Testmodus-Signalleitung gekoppelt ist. In dieser Ausführungsform generiert TAP-Controller 200 das Scan-Testsignal 201, um jeden Funktionsblock 101104 zu informieren, wenn Scan-Testen im Gange ist. Wie oben beschrieben, hat jeder Funktionsblock 101104 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 101104 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 301304 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 311314) 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 15 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 15 eine verteilte Lösung verwenden, um die Funktionsblöcke 101104 zu deaktivieren, Signale auf den Bus 110 zu treiben, verwendet das System 600 zentralisierte Mittel, einen der Blöcke 611614 zu aktivieren, die Gesamtheit von Bus 610 zu treiben. Wie mit den Ausführungsformen von 15, 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 611613 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 611613, 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 611613). 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 611614 zu bewilligen. Die Blöcke 611614 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 611614 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 611614, 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 611614 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 611614 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 611614 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 603604 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 702703, 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 706709 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 706709 beziehungsweise 702703 (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 610, 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 15 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 610 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 610 dargestellt wurden. Die Logik innerhalb jeder PCI-Anordnung wäre im Wesentlichen ähnlich zu der von den ersten Beispielen von 610.
  • 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 15 und das erste und zweite Beispiel) zu beschreiben. Trotzdem wird Prozess 1200 jetzt mit Bezug auf die Ausführungsform von 15 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 15 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

Claims (11)

  1. System zum Verhindern von Buskonflikten in einer integrierten Schaltung im Test, wobei die integrierte Schaltung in einer Vielzahl von Funktionsblöcken organisiert ist und das System Folgendes umfasst: – eine integrierte Schaltung (100), die angepasst ist, eine Serie von Testeingangssignalen entgegenzunehmen, die betriebsfähig sind, die Funktionalität der integrierten Schaltung zu testen; – einen in der integrierte Schaltung enthaltenen Bus (110); – eine Vielzahl von in der integrierten Schaltung enthaltenen Funktionsblöcken (101104), wobei jeder Funktionsblock (101104) an den Bus gekoppelt ist und gekoppelt ist, Testeingangssignale entgegenzunehmen, und die Vielzahl der Funktionsblöcke in der Priorität von der höchsten zu der niedrigsten gekoppelt ist; dadurch gekennzeichnet, dass: jeder Funktionsblock (101104) konfiguriert ist, eine Serie von busspezifischen Ausgangsfreigabesignalen auszugeben und zu empfangen, wobei jeder Funktionsblock fähig ist, mindestens eine Teilmenge der Serie von Ausgangsfreigabesignalen zu aktivieren, und der Funktionsblock (101) mit der höchsten Priorität konfiguriert ist, eine Serie von Ausgangsfreigabesignalen zu empfangen, die alle an denselben festen logischen Wert gebunden sind; und worin jeder Funktionsblock einen Ausgangsfreigabecontroller (301304) umfasst; wobei der Ausgangsfreigabecontroller des Funktionsblocks (101) mit der höchsten Priorität angeschlossen ist, um die Ausgangsfreigabesignale von dem genannten Funktionsblock zu empfangen und die Ausgangsfreigabesignale zu empfangen, die an denselben festen logischen Wert gebunden sind, die anderen Ausgangsfreigabecontroller angeschlossen sind, die Ausgangsfreigabesignale ihrer jeweiligen Funktionsblöcke und eines Funktionsblocks mit einer nächsthöheren Priorität zu empfangen, jeder der anderen Ausgangsfreigabecontroller während des Testens betriebsfähig ist, einen Ausgang seines jeweiligen Funktionsblocks daran zu hindern, den Bus zu treiben, wenn ein entsprechender Ausgang des Funktionsblocks mit der nächsthöheren Priorität aktiviert ist, und jeder Ausgangsfreigabecontroller außer dem Ausgangsfreigabecontroller mit der niedrigsten Priorität während des Testens betriebsfähig ist, ein Ausgangsfreigabesignal für den Funktionsblock mit der nächstniedrigeren Priorität zu erzeugen, sodass sich die Testeingangssignale durch mindesten den ersten und zweiten Funktionsblock fortpflanzen können, während Buskonflikte zwischen mindestens dem ersten und zweiten Funktionsblock verhindert werden.
  2. System nach Anspruch 1, in dem der in der integrierten Schaltung enthaltene Bus ein PCI-Bus (PCI: 'peripheral component interconnect') ist und der erste Funktionsblock und der zweite Funktionsblock PCI-Funktionsblöcke sind.
  3. System nach Anspruch 2, in dem die Serie der Ausgangsfreigabecontroller jeweils an jeweilige Gruppen von PCI-Bussignalleitungen koppeln, die den PCI-Bus umfassen, so dass die Gruppen der PCI-Bussignale selektiv von den jeweils zugehörigen der Ausgangsfreigabecontroller deaktiviert werden können, damit es möglich wird, die Gruppen der PCI-Bussignale selektiv mit Beschlag zu belegen.
  4. System nach Anspruch 1, in dem ein Ausgangsfreigabecontroller einen Funktionsblock mit einer niedrigeren Priorität deaktiviert, indem er einen Ausgangstreiber des Funktionsblocks mit der niedrigeren Priorität deaktiviert.
  5. System nach Anspruch 1, in dem ein Ausgangsfreigabecontroller den Ausgang eines Funktionsblocks mit einer niedrigeren Priorität deaktiviert, indem ein Ausgangsfreigabesignal für den Funktionsblock mit der niedrigeren Priorität erzeugt wird.
  6. System nach Anspruch 1, in dem die integrierte Schaltung außerdem einen TAP-, d.h. Testzugriffsport-Controller enthält, der betriebsfähig ist, die integrierte Schaltung in einen Testmodus zu bringen.
  7. System nach Anspruch 3, in dem die Gruppen der Ausgangsfreigabecontroller die PCL-Signale AD[31:0], FRAME#, TRDY#, C/BE#[3;0]; PAR, DEVSEL#, STOP, PERR# und SERR# enthalten.
  8. Verfahren zum Verhindern von Buskonflikten in einer integrierten Schaltung im Test, wobei die integrierte Schaltung in einer Vielzahl von Funktionsblöcken (101104) organisiert ist, die in der Priorität von der höchsten zu der niedrigsten gekoppelt sind, wobei jeder Funktionsblock an einen Bus (110) gekoppelt ist und konfiguriert ist, eine Serie von Ausgangsfreigabesignalen, die für den Bus spezifisch sind, auszugeben und zu empfangen, jeder Funktionsblock fähig ist, mindestens eine Teilmenge der Serie von Ausgangsfreigabesignalen zu aktivieren und das Verfahren Folgendes umfasst: – Annehmen einer Serie von Testeingangssignalen in der integrierten Schaltung, die betriebsfähig zum Testen der Funktionalität der integrierten Schaltung sind; – Annehmen der Testeingangssignale in der Vielzahl von Funktionsblöcken, die in der integrierten Schaltung enthalten sind; gekennzeichnet durch die Schritte: – Versorgen des Funktionsblocks mit der höchsten Priorität mit einer Serie von Ausgangsfreigabesignalen (205), die alle an denselben festen logischen Wert gebunden sind; – Erweitern jedes Funktionsblocks mit einem Ausgangsfreigabecontroller (301304), wobei der Ausgangsfreigabecontroller des Funktionsblocks (101) mit der höchsten Priorität angeschlossen ist, um die Ausgangsfreigabesignale von dem genannten Funktionsblock zu empfangen und die Ausgangsfreigabesignale zu empfangen, die an denselben festen logischen Wert gebunden sind, die anderen Ausgangsfreigabecontroller angeschlossen sind, die Ausgangsfreigabesignale ihrer entsprechenden Funktionsblöcke und eines Funktionsblocks mit einer nächsthöheren Priorität zu empfangen; – Betreiben der anderen Ausgangsfreigabecontroller, um einen Ausgang ihres jeweiligen Funktionsblocks daran zu hindern, den Bus zu treiben, wenn ein zugehöriger Ausgang des Funktionsblocks mit der nächsthöheren Priorität aktiviert ist; und – Betreiben jedes Ausgangsfreigabecontrollers bis auf den Ausgangsfreigabecontroller des Funktionsblocks mit der niedrigsten Priorität während des Testens, um ein Ausgangsfreigabesignal für den Funktionsblock mit der nächstniedrigeren Priorität zu erzeugen, sodass sich die Testeingangssignale durch die Vielzahl der Funktionsblöcke fortpflanzen können, während Buskonflikte zwischen mindestens der Vielzahl der Funktionsblöcke verhindert werden.
  9. Verfahren nach Anspruch 8, in dem der in der integrierten Schaltung enthaltene Bus ein PCI- ('peripheral component interconnect') Bus ist und die Vielzahl der Funktionsblöcke PCI-Funktionsblöcke sind
  10. Verfahren nach Anspruch 8, das außerdem den Schritt des Deaktivierens eines Funktionsblocks mit einer niedrigeren Priorität durch Deaktivieren eines Ausgangstreibers des Funktionsblocks mit der niedrigeren Priorität umfasst, wobei das Deaktivieren durch den Ausgangsfreigabecontroller des genannten Funktionsblocks ausgeführt wird.
  11. Verfahren nach Anspruch 8, in dem die integrierte Schaltung außerdem einen TAP-Controller, d.h. Testzugriffsport-Controller (200) enthält, der betriebsfähig ist, die Serie von Testeingangssignalen anzunehmen, und der TAP-Controller auch betriebsfähig ist, ein Scan-Testmodus-Signal zu erzeugen, das die Vielzahl der Ausgangsfreigabecontroller für einen Testmodus konfiguriert.
DE60025631T 1999-09-02 2000-08-29 Vorrichtung und verfahren zur vermeidung von buskonflikten Expired - Lifetime DE60025631T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US389873 1999-09-02
US09/389,873 US6560663B1 (en) 1999-09-02 1999-09-02 Method and system for controlling internal busses to prevent bus contention during internal scan testing
PCT/US2000/023650 WO2001016610A1 (en) 1999-09-02 2000-08-29 Device for and method of preventing bus contention

Publications (2)

Publication Number Publication Date
DE60025631D1 DE60025631D1 (de) 2006-04-06
DE60025631T2 true DE60025631T2 (de) 2006-10-19

Family

ID=23540108

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60025631T Expired - Lifetime DE60025631T2 (de) 1999-09-02 2000-08-29 Vorrichtung und verfahren zur vermeidung von buskonflikten

Country Status (7)

Country Link
US (1) US6560663B1 (de)
EP (1) EP1125141B1 (de)
JP (1) JP2003508830A (de)
KR (1) KR100735169B1 (de)
CN (1) CN1197008C (de)
DE (1) DE60025631T2 (de)
WO (1) WO2001016610A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000164788A (ja) * 1998-11-20 2000-06-16 Anam Semiconductor Inc 半導体パッケ―ジ用リ―ドフレ―ムとこれを用いた半導体パッケ―ジ及びその製造方法
US6883134B2 (en) * 2001-03-27 2005-04-19 Logicvision, Inc. Method and program product for detecting bus conflict and floating bus conditions in circuit designs
US6785685B2 (en) * 2001-08-22 2004-08-31 International Business Machines Corporation Approach for transforming XML document to and from data objects in an object oriented framework for content management applications
CN100353347C (zh) * 2002-11-25 2007-12-05 杭州士兰微电子股份有限公司 一种实现pci多功能卡的方法
JP2007500356A (ja) * 2003-05-28 2007-01-11 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ シグナルインテグリティ自己テストアーキテクチャ
US7519827B2 (en) * 2004-04-06 2009-04-14 Verigy (Singapore) Pte. Ltd. Provisioning and use of security tokens to enable automated test equipment
DE102015201278B4 (de) * 2015-01-26 2016-09-29 Continental Automotive Gmbh Steuersystem

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0719217B2 (ja) 1990-04-24 1995-03-06 株式会社東芝 情報処理装置
US5396602A (en) * 1993-05-28 1995-03-07 International Business Machines Corp. Arbitration logic for multiple bus computer system
US5648733A (en) * 1995-11-01 1997-07-15 Lsi Logic Corporation Scan compatible 3-state bus control
GB9622687D0 (en) * 1996-10-31 1997-01-08 Sgs Thomson Microelectronics An integrated circuit with tap controller
JPH1194914A (ja) 1997-09-22 1999-04-09 Matsushita Electric Ind Co Ltd スキャンパス制御回路

Also Published As

Publication number Publication date
WO2001016610A1 (en) 2001-03-08
JP2003508830A (ja) 2003-03-04
CN1335937A (zh) 2002-02-13
US6560663B1 (en) 2003-05-06
EP1125141A1 (de) 2001-08-22
CN1197008C (zh) 2005-04-13
KR20010083931A (ko) 2001-09-03
DE60025631D1 (de) 2006-04-06
KR100735169B1 (ko) 2007-07-03
EP1125141B1 (de) 2006-01-18

Similar Documents

Publication Publication Date Title
DE69915377T2 (de) Auf-chip fehlersuchsystem
DE69724463T2 (de) Verfahren und gerät um einen gleichzeitigen zugriff von mehreren agenten auf einem gemeinsamen speicher zu gewährleisten
DE69032481T2 (de) Buszugriff für Digitalrechnersystem
DE19580606C2 (de) Plattenlaufwerksverbinderschnittstelle zur Verwendung an einem PCI-Bus
DE68927626T2 (de) Hierarchisches Mehrfachbus-Computersystem
DE69529375T2 (de) System zur Durchführung eines Hochgeschwindigkeitsperipheriebus
DE19580707C2 (de) PCI-ZU-ISA-Interrupt-Protokoll-Konverter und -Auswahlmechanismus
DE19847642C2 (de) PCI-PCI-Brücke
DE69930846T2 (de) Mehrkonfiguration-rückwand
DE69714472T2 (de) Verfahren zum überprüfen eines integrierten speichers mit hilfe einer integrierten dma-schaltung
DE69226001T2 (de) Hochgeschwindigkeitsprüfung einer integrierten Schaltung mit JTAG
DE69604294T2 (de) Zusätzliche karte mit programmierbaren konfigurationsregistern für pci-bus-rechner
DE19680668C2 (de) Verfahren zum Überbrücken zweier Busse, transparente Brücke zum Koppeln zwischen zwei Bussen und Anordnung mit einem Computersystem
DE69021594T2 (de) Hochgeschwindigkeitsdatenübertragung auf einem Rechnersystembus.
DE60125112T2 (de) PCI-Arbiter mit unter Spannung stellbarer Steuerungsunterstützung
DE69228582T2 (de) Vorrichtung zur Vermeidung von Prozessorblockierungen in einem Multiprozessorsystem
DE69628034T2 (de) Hochimpedanzmodus für jtag
DE69433130T2 (de) Rechnersystem mit verändertem lokalen Datenbus
DE19808988B4 (de) Target-Eingabe/Ausgabesystem zum Koppeln eines auf Hardwarelogik basierenden Emulators an ein Target-System
DE60025631T2 (de) Vorrichtung und verfahren zur vermeidung von buskonflikten
DE69327504T2 (de) Datenprozessor mit Operationseinheiten, die gemeinsam Gruppen von Registerspeichern benutzen
DE112004002492B4 (de) Verfahren zum Signalisieren eines Befehlsstatus eines PCI/PCI-X-Standart-Hot-Plug-Controllers (SHPC) und Computer-Brücken-Vorrichtung
DE60132961T2 (de) Unabhängige Initialisierung von Arbitern und Agenten, um verzögerte Agent-Initialisierung zu ermöglichen
DE112007002085T5 (de) Zugriffssteuerung für Speicherraum in Mikroprozessorsystemen
DE69828890T2 (de) Konfigurierbare speichersteuerungsvorrichtung und verfahren hierfür

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: EISENFUEHR, SPEISER & PARTNER, 10178 BERLIN

8327 Change in the person/name/address of the patent owner

Owner name: NXP B.V., EINDHOVEN, NL