DE602004007503T2 - REKONFIGURIERBARE ARCHITEKTUR FÜR SOCs - Google Patents

REKONFIGURIERBARE ARCHITEKTUR FÜR SOCs Download PDF

Info

Publication number
DE602004007503T2
DE602004007503T2 DE602004007503T DE602004007503T DE602004007503T2 DE 602004007503 T2 DE602004007503 T2 DE 602004007503T2 DE 602004007503 T DE602004007503 T DE 602004007503T DE 602004007503 T DE602004007503 T DE 602004007503T DE 602004007503 T2 DE602004007503 T2 DE 602004007503T2
Authority
DE
Germany
Prior art keywords
circuit
output
switching means
input
programmable switching
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
DE602004007503T
Other languages
English (en)
Other versions
DE602004007503D1 (de
Inventor
Miron Berkeley Heights Abramovici
Alfred E. Kattsill Bay DUNLOP
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.)
DAFCA Inc
Original Assignee
DAFCA Inc
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 DAFCA Inc filed Critical DAFCA Inc
Publication of DE602004007503D1 publication Critical patent/DE602004007503D1/de
Application granted granted Critical
Publication of DE602004007503T2 publication Critical patent/DE602004007503T2/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
    • 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/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318555Control logic
    • 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/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318541Scan latches or cell details

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Logic Circuits (AREA)

Description

  • Diese Erfindung bezieht sich auf integrierte Schaltungen, und genauer gesagt auf eine Entwurfsannäherung einer integrierten Schaltung.
  • Der Entwurf von sehr komplexen Systemen innerhalb einer einzelnen integrierten Schaltung ist die neue Herausforderung für die Entwurfsgemeinschaft der integrierten Schaltung. Angetrieben durch die Notwendigkeit nach hoher Geschwindigkeit und großen Durchsatz-Anwendungen wurde es recht offensichtlich, dass der Entwurf von sehr hoch skalierten integrierten Schaltungen (VLSI) am vorteilhaftesten lediglich durch Adoptieren eines Grundsatzes der Wiederverwendung bei einem Kern-Pegel vorgenommen werden kann. Eine solche Wiederverwendung erlaubt nicht nur den wirksamen Entwurf von sehr komplexen Chips, sondern bietet ebenfalls solche Entwürfe in sehr kurzer Zeit an. In einer solchen Wiederverwendungs-Annäherung sind Kerne, welche von vorherigen innerbetrieblichen Entwürfen oder von weiteren kommerziellen Gesellschaften erhältlich sind, verbunden, um ein System auf einem Chip (SoC) auf eine Weise auszubilden, welche nicht ungleich der Art und Weise ist, auf welche integrierte Schaltungen auf verdrahteten Platinen verbunden werden. Es sind Kerne verfügbar, welche CPUs, Speicher, Netzwerksteuerungen, UARTs, usw. implementieren. Der Vorteil einer Verwendung von Kernen liegt in der Tatsache, dass diese Entwürfe in der Vergangenheit perfektioniert wurden (von Fehlern befreit und genau verifiziert), und von ihnen angenommen werden kann, dass sie korrekt arbeiten.
  • Es ist zu erwähnen, dass einige SoC-Entwürfe Funktionalitäten erfordern, welche durch ein ledigliches Verbinden von verfügbaren Kernen nicht verfügbar sind, und daher enthalten jene Entwürfe ein oder mehrere speziell entworfene, benutzerdefinierte Logik (UDL)-Module. Ein UDL-Modul kann mehr als eine ledigliche kombinatorische Logik enthalten.
  • Im Kontext von dieser Beschreibung kennzeichnet der Ausdruck „Kerne" vorpaketierte Entwurfsmodule, welche ein Entwerfer von einer integrierten Schaltung für gewöhnlich ohne jegliche Änderungen verwendet. Ein UDL-Modul stellt funktionale Elemente von einem integrierten Schaltungsentwurf dar, welche sich mit den Kernen zusammenfassen, um die funktionale Schaltung der integrierten Schaltung auszubilden.
  • Jedoch ist die Verwendung von Kernen zum Entwerfen einer integrierten Schaltung nicht ausreichend, wenn es darum geht, einen vollendeten integrierten Schaltungsentwurf zu verifizieren, da der globale Entwurf des Systems oder eine bestehende UDL Fehler enthalten kann, Schnittstellen zwischen den Kernen nicht auf eine korrekte Weise in der anfänglichen Entwurfsphase ausgewiesen wurden oder das Layout möglicherweise nicht korrekt entworfen wurde.
  • Die unzähligen Quellen von möglichen Herstellungsdefekten in SoCs machen es zwingend erforderlich, dass die SoCs testbar sein sollten. Oftmals haben Kerne eine zugehörige Testfolge, welche verfügbar ist, sodass, wenn ein Kern innerhalb eines SoC zugreifbar ist, zumindest jene Kerne getestet werden können. Dies gestaltet das Testen von sogar sehr hoch komplexen Entwürfen durchführbar, vorausgesetzt, dass ein Mechanismus zum Zugreifen auf jeden der eingebetteten Kerne in einen SoC-Entwurf einbezogen ist.
  • Es ist der Begriff von einer Schutzhülle (engl. wrapper) aufgekommen, um genau diese Fähigkeit bereitzustellen. Eine Schutzhülle enthält eine Schaltung, welche einen Kern umgibt, und welche (obwohl nicht notwendigerweise direkt) von außerhalb der SoC zugreifbar ist. Es wird gesagt, dass eine Schutzhülle einen Kern „umgibt", alle Eingänge und Ausgänge eines Kerns lediglich zugreifbar sind, indem durch die Schutzhülle gegangen wird. Anders gesagt, hat eine Schutzhülle innere I/O-Leitungen, an welche die zugehörigen I/O-Leitungen des Kerns verbunden sind, und äußere I/O-Leitungen. Jede innere I/O-Leitung hat eine entsprechende äußere I/O-Leitung. Eine Schutzhülle hat typischerweise mehrere zusätzliche äußere I/O-Leitungen.
  • 1 zeigt den Aufbau von einer Schutzhülle an, welcher mit dem vom IEEE vorgeschlagenen P1500-Standard übereinstimmt. Siehe beispielsweise http://grouper.ieee.org/groups/1500/. Er enthält eine Schutzhülle 10, welche einen Kern 20 in dem oben bestimmten Sinne umhüllt oder umgibt. Ein serieller Eingang 18 der Schutzhülle ist an einen Schieberegister-Satz von Eingabe-Schnittstellezellen 13 der Schutzhülle angelegt, von woher er an einen seriellen Registersatz von Schutzhüllen-Ausgangszellen 14 angelegt ist. Der serielle Ausgang von dem Satz 14 ist an einen Multiplexer 15 angelegt. Die serielle Eingabe ist ebenfalls an den Multiplexer 15 (eine unterschiedliche Eingabeleitung) durch Bypass-Register 17 angelegt, welches typischerweise eine 1-Bit-Verzögerung bereitstellt. Schließlich ist die serielle Eingabe an ein Schutzhüllen-Steuerelement 11 angelegt, welches ein Schutzhüllen-Instruktionsregister 11-1 enthält, welches die serielle Eingabe empfängt und die Information, welche im Instruktionsregister 11-1 gespeichert ist, an eine Steuerung 11-2 anlegt. Tatsächlich ist das Register 11-1 sowohl ein serielles Eingabe/Ausgabe-Register als auch ein paralleles Eingabe/Ausgabe-Register. Die parallele Eingabe an Register 11-1 wird von außerhalb der Schutzhülle 10 über einen Bus 12 angelegt, und die serielle Ausgabe wird an einen ersten Eingang eines Multiplexers 16 angelegt. Der Ausgang des Multiplexers 15 ist mit einem zweiten Eingang des Multiplexers 16 verbunden, und der Ausgang des Multiplexers 16 bildet die serielle Ausgabe der Schutzhülle 10. Die Steuerung 11-2 steuert den eingegebenen Zellen-Satz, den ausgegebenen Zellen-Satz und die Multiplexer 15 und 16.
  • 2A und 2B zeigen jeweils eine Eingangszelle und eine Ausgangszelle, wie sie in der Schutzhülle 10 verwendet werden können.
  • Eine externe Testvorrichtung legt Testvektoren für einen Kern an einen Satz von Stiften des SoC an. Die Pfade zwischen diesen Stiften und der Schutzhülle des Kerns werden als ein Testzugriffs-Mechanismus oder TAM bezeichnet. Der TAM ist benutzerdefiniert und ist nicht Teil des P1500-Standards.
  • S. Koranne adressiert in „A Novel Reconfigurable Wrapper for Testing of Embedded Core-Based SoCs and it's Associated Scheduling Algorithm", Volume 21 von Journal of Electronic Testing, Seiten 51–70, Kluwer Academic Publishers, September 2002, das Thema einer TAM-Optimierung in Verbindung mit einer wirksamen Planung von Tests auf einem Systempegel. Koranne beobachtet, dass, da die Anzahl von Teststiften, welche an Anschlüssen von der integrierten Schaltung (IC) verfügbar sind, beschränkt ist, Test-Bits partitioniert werden sollten, um die gesamten Testkosten zu reduzieren. Unter der Beobachtung, dass vorherige Annäherungen Test-Schutzhüllen um Kerne unter der Annahme einer statischen Breite von TAM entworfen haben, beschreibt Koranne eine Annäherung, bei welcher die Anzahl von TAM-Bits, welche parallel durch die Schutzhülle verarbeitet werden, verändert werden kann, anstelle denn festgelegt zu sein. Koranne bezeichnet dies als einen „rekonfigurierbaren Schutzhüllen-Entwurf".
  • Unabhängig davon, wie Koranne seine Annäherung benennt, bleibt eine Annäherung zurück, welche eine Steuerung lediglich über die Anzahl von TAM-Bits anbietet, welche beim Testen eines Kerns innerhalb eines SoC verwendet werden. Es kann bestenfalls festgehalten werden, dass eine solche Steuerung eine Steuerung über einen Parameter von dem TAM ist. Die Funktionalität von der Schutzhülle verbleibt unabhängig davon, was Koranne vorschlägt, unverändert.
  • Die EP-A-1 296 152 (Siemens AG) 26. März 2003 beschreibt einen ASIC mit einem zentralen Kern mit einer Grenzabtastschaltung, welche am Eingang und an Ausgängen des Kerns verbunden ist. Dieses Dokument beschreibt ebenfalls ein kostenwirksames Qualifikationsverfahren, welches schnell durchgeführt werden kann, wobei die Komplexität von dem ASIC in Betracht gezogen wird.
  • Die EP-A-1 296 152 beschreibt insbesondere eine Vorrichtung, welche eine Funktionsschaltung mit einem Satz von Eingängen und Ausgängen und eine zweite Schaltung, welche Eingangszellen und Ausgangszellen hat, wobei jede Eingangszelle einen äußeren Eingang und einen inneren Ausgang hat, wobei der innere Ausgang mit einem entsprechenden Eingang von der Funktionsschaltung verbunden ist, und jede Ausgangszelle einen äußeren Ausgang und einen inneren Eingang hat, wobei der innere Eingang mit einem entsprechenden Ausgang von der Funktionsschaltung gekoppelt ist, hat, bei welcher: die zweite Schaltung zusätzlich ein Schaltmittel enthält, welches eine Mehrzahl von Eingängen und eine Mehrzahl von Ausgängen hat, wobei jede Eingangszelle ein Steuermittel enthält, welches selektiv den entsprechenden Eingang von der Funktionsschaltung mit dem äußeren Eingang von der Eingangszelle oder einem Ausgang von dem programmierbaren Schaltmittel selektiv koppelt; und jede Ausgangszelle ein Steuermittel enthält, welches den äußeren Ausgang von der Ausgangszelle mit einem Ausgang von dem Schaltmittel oder einem entsprechenden Ausgang von der Funktionsschaltung selektiv koppelt.
  • Das U.S.-Patent 6,484,280 (Moberly, David S.) 19. November 2002 beschreibt die Verwendung eines feldprogrammierbaren Gate-Arrays (FPGA) in einer Testvorrichtung. Das feldprogrammierbare Gate-Array erlaubt es der Testvorrichtung, derart programmiert zu sein, um einen ausgewählten Funktionsblock eines Systems auf einem Chip (SoC) zu testen. Das FPGA kann schnell neu konfiguriert werden, um weitere Funktionsblöcke des SoC zu testen.
  • Die WO-A1-01/71876 (Intellitech Corporation) 27. September 2001 beschreibt ein Verfahren und eine Einrichtung zum Bereitstellen eines Zugriffes auf Schaltungen zur Fehlerbehebung, Programmierung und zum Testen. Das Dokument beschreibt eine Zugriffsschnittstellenschaltung, welche mit einer Test-Ressource verbunden ist. Die Zugriffsschnittstellenschaltung kann derart programmiert sein, um auf elektrische Knoten von einer Schaltung zur Programmierung, zum Testen und zum Fehlerbeheben zuzugreifen.
  • Jedoch gestaltet es die Komplexität von SoC-Entwürfen sehr vorteilhaft, dazu in der Lage zu sein, die Funktionalität eines Kerns, wie vom Rest des SoC aus gesehen, zu ändern.
  • Ein wesentlicher Fortschritt im Stand der Technik wird durch eine Schutzhülle realisiert, welche ein funktionell neu konfigurierbares Modul (FRM) enthält, welches dazu in der Lage ist, die Betriebsfunktionalität von der Schutzhülle zu beeinflussen, und welche daraus folgend die Betriebsfunktionalität von einem entworfenen SoC beeinflussen kann. Eine Ausführungsform von einer Kern- und Schutzhüllen-Kombination enthält eindeutige Eingangs- und Ausgangszellen innerhalb der Schutzhülle und ein separates FRM. Jeder Ausgang des zugehörigen Kerns ist mit einer Ausgangszelle innerhalb der Schutzhülle und dem FRM verbunden. Die Ausgangszellen führen Signale an Ausgangsdrähte von der Schutzhülle zu. Jeder Eingang von der Schutzhülle ist mit einer Eingangszelle und dem FRM verbunden, und die Eingangszellen führen ihre Ausgaben am Eingangsleiter des zugehörigen Kerns zu. Eine weitere Ausführungsform kann die Eingangs- und Ausgangszelle innerhalb des FRM einbetten. Das FRM kann beispielsweise mit einer Logik implementiert sein, welche ähnlich einem feldprogrammierbaren Logik-Array (FPLA) ist, dessen Funktionalität durch die Inhalte von einem Konfigurationsspeicher bestimmt ist.
  • Die außergewöhnliche Flexibilität des FRM-Moduls rührt (a) von seiner neu konfigurierbaren Natur, (b) der Zwischenverbindung zwischen der Schutzhülle, dem zugehörigen Kern und der Eingangsleiter von der Schutzhülle, und (c) von der Tatsache, dass das FRM in Kombination mit und ohne einen Speicher implementiert werden kann, her.
  • Ein zusätzlicher Fortschritt wird realisiert, indem eine Anzahl von freien Leitungen im Netzwerk der Signalpfade bereitgestellt wird, welches die verschiedenen SoC-Elemente verbindet. Veranschaulichend wird die Anzahl von Leitungen, welche jede Schutzhülle mit einer weiteren Schutzhülle verbinden, mit freien Leitern erhöht, welche mit dem FRM verbunden sind, und welche zum Testen, zur Überwachung, zur Korrektur des Entwurfs, zur Korrektur von Herstellungsdefekten, usw. verwendet werden können.
  • In einem Aspekt bezieht sich die Erfindung auf eine Vorrichtung, welche eine Funktionsschaltung mit einem Satz von Eingängen und Ausgängen und eine zweite Schaltung hat, welche Eingangszellen und Ausgangszellen hat, wobei jede Eingangszelle einen äußeren Eingang und einen inneren Ausgang hat, wobei der innere Ausgang mit einem entsprechenden Eingang der Funktionsschaltung verbunden ist, und jede Ausgangszelle einen äußeren Ausgang und einen inneren Eingang hat, wobei der innere Eingang mit einem entsprechenden Ausgang von der Funktionsschaltung gekoppelt ist. Die zweite Schaltung enthält zusätzlich ein programmierbares Schaltmittel, welches eine Mehrzahl von Eingängen und eine Mehrzahl von Ausgängen hat, und wobei jede Eingangszelle ein Steuermittel enthält, welches selektiv den entsprechenden Eingang der Funktionsschaltung mit dem äußeren Eingang von der Eingangszelle oder einem Ausgang von dem programmierbaren Schaltmittel koppelt. Ferner enthält jede Ausgangszelle ein Steuermittel, welches selektiv den äußeren Ausgang der Ausgangszelle mit einem Ausgang des programmierbaren Schaltmittels oder einem entsprechenden Ausgang der Funktionsschaltung koppelt.
  • In einer Ausführungsform von der Vorrichtung enthält das programmierbare Schaltmittel einen Konfigurationsspeicher.
  • In einer weiteren Ausführungsform von der Vorrichtung enthält der Konfigurationsspeicher einen nicht-flüchtigen Speicher.
  • In einer weiteren Ausführungsform von der Vorrichtung enthält das programmierbare Schaltmittel zusätzlich eine Mehrzahl von Leitern und eine Mehrzahl von Schaltern, welche selektiv Ausgewählte der Leiter verbinden, und wobei der Zustand von jedem aus der Mehrzahl von Schaltern durch einen im Konfigurationsspeicher gespeicherten Wert gesteuert ist.
  • In einer weiteren Ausführungsform von der Vorrichtung enthält das Steuermittel von jeder Ausgangszelle einen Multiplexer, welcher einen ersten Eingang, welcher mit einem Ausgang des programmierbaren Steuermittels verbunden ist, einen zweiten Eingang, welcher mit einem entsprechenden Ausgang der Funktionsschaltung verbunden ist, einen Steueranschluss, welcher mit einem Konfigurationssignal von einem aus der Mehrzahl von Ausgängen des programmierbaren Schaltmittels verbunden ist, und einen Ausgang hat, welcher an dem äußeren Ausgang der Ausgangszelle gekoppelt ist.
  • In einer weiteren Ausführungsform von der Vorrichtung ist der Multiplexer-Ausgang an einem äußeren Ausgangsleiter der Ausgangszelle über einen Tri-Zustandpuffer gekoppelt, welcher auf ein zweites Konfigurations-Steuersignal von einem der Mehrzahl von Ausgängen des programmierbaren Schaltmittels anspricht, wobei der Treiber sein Eingangssignal an seinen Ausgang überträgt, wenn das zweite Konfigurations-Steuersignal an einem ersten Logik-Pegel ist, und eine hohe Impedanz an seinem Ausgang darlegt, wenn das zweite Konfigurations-Steuersignal an einem zweiten Logik-Pegel ist.
  • In einer weiteren Ausführungsform von der Vorrichtung enthält das Steuermittel von jeder Ausgangszelle einen ersten Tri-Zustandtreiber, welcher einen Eingang, welcher an einem Ausgang des programmierbaren Schaltmittels verbunden ist, und einen Ausgang hat, welcher am äußeren Ausgang der Ausgangszelle verbunden ist, und einen zweiten Tri-Zustandtreiber, welcher einen Eingang, welcher an einem entsprechenden Ausgang der Funktionsschaltung verbunden ist, und einen Ausgang hat, welcher ebenfalls am äußeren Ausgang der Ausgangszelle verbunden ist, wobei jeder der Treiber einen Steueranschluss hat, welcher mit dem programmierbaren Schaltmittel verbunden ist.
  • In einer weiteren Ausführungsform von der Vorrichtung sind Signale, welche an den Steueranschlüssen der Treiber angelegt sind, dazu angeordnet, nicht mehr als einen der Treiber zu einer Zeit freizugeben.
  • In einer weiteren Ausführungsform von der Vorrichtung ist die Funktionsschaltung eine Kernschaltung.
  • In einer weiteren Ausführungsform enthält die Vorrichtung ferner zumindest einen Konfigurations-Eingangsleiter zum Empfangen von einer Information für das programmierbare Schaltmittel.
  • In einer weiteren Ausführungsform ist die Vorrichtung eine integrierte Schaltung und bilden die Funktionsschaltung und die zweite Schaltung ein Modul aus, und sind die Eingänge und Ausgänge der Funktionsschaltung von außerhalb des Moduls lediglich durch eine Durchlauf-Schaltung innerhalb der zweiten Schaltung zugreifbar.
  • In einer weiteren Ausführungsform von der Vorrichtung koppelt das Steuermittel von jeder Eingangszelle selektiv den entsprechenden Eingang der Funktionsschaltung an den äußeren Eingang von der Eingangszelle oder einen Ausgang des programmierbaren Schaltmittels, basierend auf einem Konfigurationssignal, welches an die Zelle von einem Konfigurations-Speicherelement innerhalb des programmierbaren Schaltmittels angelegt ist.
  • In einer weiteren Ausführungsform von der Vorrichtung ist die Funktionsschaltung ein Kern und ist die zweite Schaltung ein REFAB.
  • In einer weiteren Ausführungsform von der Vorrichtung enthält das REFAB eine programmierbare Logik und eine programmierbare Zwischenverbindungs-Struktur.
  • In einer weiteren Ausführungsform von der Vorrichtung wird ein Programmieren von der programmierbaren Logik durch eine Steuerung von Inhalten von Speichermodulen erreicht.
  • In einer weiteren Ausführungsform enthält die Vorrichtung ferner zumindest eine Konfigurations-Eingangsleitung zum Bereitstellen des Inhalts von den Speichermodulen.
  • In einer weiteren Ausführungsform von der Vorrichtung enthält das REFAB ein feldprogrammierbares Array.
  • In einer weiteren Ausführungsform ist die Vorrichtung eine integrierte Schaltung und bilden die Funktionsschaltung und die zweite Schaltung ein erstes Modul, und die integrierte Schaltung enthält ein zweites ähnliches Modul. Ebenfalls enthält die integrierte Schaltung Leiter, welche einen oder mehrere der äußeren Ausgänge von einer Ausgangszelle des ersten Moduls mit einem oder mehreren der äußeren Eingänge von einer Eingangszelle des zweiten Moduls verbinden.
  • In einer weiteren Ausführungsform von der Vorrichtung sind die Funktionsschaltungen in zumindest einem von dem ersten oder zweiten Modul eine Kernschaltung.
  • In einer weiteren Ausführungsform von der Vorrichtung ist eine der Funktionsschaltungen in zumindest einem aus dem ersten oder zweiten Modul eine Kernschaltung, und ist die weitere der Funktionsschaltungen eine UDL-Schaltung.
  • In einer weiteren Ausführungsform von der Vorrichtung ist die Anzahl von Leitern, welche die zweiten Schaltungen im ersten Modul und zweiten Modul verbinden, größer als die Anzahl von Leitern, welche notwendig sind, um die Funktionsschaltung im ersten Modul und die Funktionsschaltung im zweiten Modul bei dem Nicht-Vorliegen der zweiten Schaltungen im ersten und zweiten Modul zu koppeln.
  • In einer weiteren Ausführungsform enthält die Vorrichtung ferner Konfigurations-Leiter, welche sich zwischen dem programmierbaren Schaltmittel im ersten Modul und dem programmierbaren Schaltmittel im zweiten Modul überbrücken.
  • In einer weiteren Ausführungsform von der Vorrichtung ist die Funktionsschaltung in jedem der Module durch einen Entwurf gekennzeichnet, welcher vor einer Aufnahme der Funktionsschaltung beim Entwurf der integrierten Schaltung vervollständigt und verifiziert war.
  • In einer weiteren Ausführungsform von der Vorrichtung hat jede der Funktionsschaltungen einen Entwurf, welcher als eine Einheit durch einen Entwerfer der integrierten Schaltung erlangt war.
  • In einer weiteren Ausführungsform von der Vorrichtung hat jede der Funktionsschaltungen eine Test-Ordnung, um einen Betriebsstatus der Funktionsschaltung zu verifizieren, welcher vor einer Aufnahme der Funktionsschaltung beim Entwurf der integrierten Schaltung bekannt war.
  • In einer weiteren Ausführungsform enthält die Vorrichtung zusätzlich eine oder mehrere benutzerdefinierte Logikschaltungen, welche mit einem oder mehreren äußeren Ausgängen von einer Ausgangszelle des ersten Moduls und einem oder mehreren äußeren Eingängen von einer Eingangszelle des zweiten Moduls verbunden sind.
  • In einer weiteren Ausführungsform von der Vorrichtung ist ein programmierbares Schaltmittel in einem Ausgewählten aus dem ersten oder zweiten Modul dazu konfiguriert, ein Signal s, welches über einen der Leiter fließt, durch ein Signal q zu ersetzen. In einer weiteren Ausführungsform kann das Signal q eine Funktion des Signals s sein.
  • In einer weiteren Ausführungsform von der Vorrichtung ist das programmierbare Schaltmittel in zumindest einem der Module dazu konfiguriert, seine zugehörige Funktionsschaltung zu testen.
  • In einer weiteren Ausführungsform von der Vorrichtung ist das programmierbare Schaltmittel in einem der Module dazu konfiguriert, Test-Vektoren zu erzeugen, um die zugehörige Funktionsschaltung zu testen.
  • In einer weiteren Ausführungsform von der Vorrichtung ist das programmierbare Schaltmittel von dem ersten Modul mit einer ersten Testschaltung konfiguriert, ist das programmierbare Schaltmittel von dem zweiten Modul mit einer zweiten Testschaltung konfiguriert, und sind die erste Testschaltung und die zweite Testschaltung zwischenverbunden.
  • In einer weiteren Ausführungsform von der Vorrichtung sind das programmierbare Logikmittel des ersten Moduls oder das programmierbare Schaltmittel des zweiten Moduls, oder beide, dazu konfiguriert, um Herstellungsdefekte in der integrierten Schaltung zu reparieren.
  • In einer weiteren Ausführungsform von der Vorrichtung sind die Defekte in einer Verbindungs-Struktur, welche Module in der integrierten Schaltung verbindet.
  • In einer weiteren Ausführungsform von der Vorrichtung sind M Leiter von einem äußeren Ausgang von einem ersten der Module mit M der äußeren Eingänge von einem zweiten der Module verbunden, wobei M gleich der Anzahl von Leitern N, welche zur Funktionalität der integrierten Schaltung erforderlich sind, zwischen der Funktionsschaltung des ersten Moduls und I/O-Leitern der Funktionsschaltung des zweiten Moduls verbunden zu sein, plus einer Anzahl von freien Leitern S ist. In einigen Ausführungsformen von der Vorrichtung ist M gleich N plus S plus einer Anzahl von Konfigurationsleitern C. In einigen Ausführungsformen ist S direkt proportional zu N. In weiteren Ausführungsformen ist S ein Prozentanteil von N, aufgerundet auf eine Ganzzahl.
  • In einer weiteren Ausführungsform von der Vorrichtung ist eine zweite Schaltung von einem der Module dazu konfiguriert, an eine der freien Leitern ein Signal zu passieren, welches eine Funktion von einem oder mehreren Signalen von den Ausgängen der Funktionsschaltung von dem Modul ist.
  • In einer weiteren Ausführungsform von der Vorrichtung ist das Signal ebenfalls eine Funktion von einem oder mehreren Signalen, welche an das programmierbare Schaltmittel über die freien Signalleiter angelegt sind.
  • In einer weiteren Ausführungsform von der Vorrichtung sind während eines normalen Betriebes die programmierbaren Schaltmittel von den Modulen nicht einbezogen, welches sich von einem Konfigurieren des Zustands der Eingangszellen und Ausgangszellen von den Modulen unterscheidet. In einigen Ausführungsformen, um Entwicklungsänderungen in einem oder mehreren der Module zu implementieren oder um ein Muster der Module zwischenzuverbinden, fügt zumindest eines der programmierbaren Schaltmittel der Module, während eines normalen Betriebes, eine Logik-Funktionalität an die integrierte Schaltung hinzu.
  • In einer weiteren Ausführungsform von der Vorrichtung ist ein programmierbares Schaltmittel der Module dazu konfiguriert, ein Signal zu entwickeln, welches eine Funktion von einem oder mehreren Signalen ist, welche aus einem Satz entnommen sind, welcher enthält (a) ein Eingangssignal an das programmierbare Schaltmittel, (b) ein Ausgangssignal der Funktionsschaltung im Zusammenhang mit dem Modul, (c) ein Eingangssignal, welches an das programmierbare Schaltmittel über die freien Signalleiter angelegt ist; und wobei das entwickelte Signal an einen Punkt angelegt ist, welcher aus einem Satz entnommen ist, welcher enthält (i) eine Eingangszelle des Moduls, (ii) eine Ausgangszelle des Moduls und (iii) einen der freien Signalleiter.
  • In einer weiteren Ausführungsform von der Vorrichtung enthält das programmierbare Schaltmittel Speicherelemente, welche eine gewünschte Logikfunktion implementieren.
  • In einem weiteren Aspekt, ist ein Verfahren zum Betreiben einer Vorrichtung bereitgestellt, welche eine Funktionsschaltung mit einem Satz von Eingängen und Ausgängen und eine zweite Schaltung hat, welche Eingangszellen und Ausgangszellen hat, wobei jede Eingangszelle einen äußeren Eingang und einen inneren Ausgang hat, wobei der innere Ausgang mit einem entsprechenden Eingang der Funktionsschaltung verbunden ist, und jede Ausgangszelle einen äußeren Ausgang und einen inneren Eingang hat, wobei der innere Eingang mit einem entsprechenden Ausgang von der Funktionsschaltung gekoppelt ist, wobei das Verfahren enthält: a) Programmieren eines programmierbaren Schaltmittels innerhalb der zweiten Schaltung, um eine programmierte Funktion durchzuführen; b) Weiterleiten einer Mehrzahl von Signalen an Eingänge des programmierbaren Schaltmittels von den Eingängen und/oder Ausgängen der Funktionsschaltung; c) Durchführen der programmierten Funktion in dem programmierbaren Schaltmittel unter Verwendung der an die Eingänge des programmierbaren Schaltmittels weitergeleiteten Signale, wodurch zumindest ein programmierbares Schaltmittel-Ausgangssignal erzeugt wird; und d) Ersetzen von zumindest einem Signal an einem äußeren Ausgang von einer Ausgangszelle durch die zumindest eine programmierbare Schaltmittel-Ausgabe.
  • In einigen Ausführungsformen des Verfahrens ist die programmierte Funktion eine Fehlerbereinigungs-Funktion. In einigen Ausführungsformen gibt die Fehlerbereinigungs-Funktion eine Anhaltepunkt-Anzeige aus. In weiteren Ausführungsformen ist die Fehlerbereinigungs-Funktion ein Ereigniszähler.
  • In einer weiteren Ausführungsform des Verfahrens testet die programmierte Funktion eine Funktionsschaltung von zumindest einem der Module.
  • In einer weiteren Ausführungsform des Verfahrens ist das programmierbare Schaltmittel innerhalb einer Mehrzahl von Modulen dazu programmiert, zu interagieren, während es eine Testfunktion durchführt.
  • In einer weiteren Ausführungsform enthält das Verfahren zusätzlich ein selektives Weiterleiten von zumindest einem Signal s an das programmierbare Schaltmittel von zumindest einem der Module durch die Schutzhülle von dem Modul, welches das programmierbare Schaltmittel enthält, und bildet die programmierte Funktion ein Ausgangssignal aus, welches dem Signal s logisch invers ist.
  • In einer weiteren Ausführungsform des Verfahrens ist das Ausgangssignal an die Schutzhülle von einem separaten Modul durch freie Leiter in der integrierten Schaltung gekoppelt.
  • Merkmale der verschiedenen Ausführungsformen können allein oder in jeglicher Kombination verwendet werden. Es können weitere Merkmale von jeglicher Vorrichtung, welche eine Ausführungsform von der Erfindung praktiziert, als Teil von einem Verfahren implementiert werden, in welchem die Erfindung implementiert ist. Gleichfalls können Merkmale von einem Verfahren, welches die Erfindung verwendet, als Teil von einer Vorrichtung implementiert werden, welche eine Ausführungsform von der Erfindung praktiziert.
  • Die begleitenden Zeichnungen sind nicht als maßstäblich zu verstehen. In den Zeichnungen ist jedes identische oder nahezu identische Bauteil, welches in verschiedenen Figuren dargestellt ist, durch ein gleiches Bezugszeichen dargestellt. Aus Gründen der Klarheit kann nicht jedes Bauteil in jeder Zeichnung gekennzeichnet werden. In den Zeichnungen gilt:
  • 1 zeigt einen Schutzhüllen-Entwurf, welcher mit dem vorgeschlagenen P1500-Standard übereinstimmt;
  • 2A und 2B zeigen jeweils eine Eingangs- und Ausgangszelle von der Schutzhülle von 1;
  • 3 zeigt einen Schutzhüllen-Entwurf gemäß den Prinzipien von dieser Erfindung;
  • 4 zeigt den Aufbau von Ausgangs- und Eingangszellen und die Verwendung von freien Leitungen zwischen FRMs;
  • 5 stellt den Aufbau von einem FPLA dar, welcher in dem Entwurf von 3 verwendet werden kann;
  • 6 zeigt zwei Kerne und ihre normale Zwischenverbindung über ihre zugehörigen Schutzhüllen;
  • 7 zeigt einen Aufbau einer Schutzhülle, um eine wirksame Ausgabe eines Kerns zu invertieren;
  • 8 zeigt einen Aufbau einer Schutzhülle, um eine wirksame Eingabe eines Kerns zu invertieren;
  • 9, 10 und 11 zeigen einen Aufbau eines freien Leiters, um jeweils ein Übersprechen-Problem, ein „Leerlauf"-Problem und ein „Kurzschluss"-Problem zu bewältigen;
  • 12, 13 und 14 zeigen unterschiedliche Annäherungen zum Fixieren eines Entwurfsproblems in einer UDL durch ein Konfigurieren der FRMs innerhalb einer oder mehrerer Schutzhüllen;
  • 15 stellt ein Beispiel von einer Überwachungsfunktion dar, welches in FRMs innerhalb von einer oder mehreren Schutzhüllen konfiguriert werden kann;
  • 16 stellt das Testen von Kernen dar, und ebenfalls, dass jegliche Funktion, welche zur Implementierung benötigt wird, implementiert werden kann, indem die kollektiven Ressourcen von den FRMs innerhalb eines SoC verwendet werden; und
  • 17 und 18 stellen ein Testen von UDLs und Zwischenverbindungen durch Konfigurations-Testvorrichtungen innerhalb der FRMs von einer oder mehreren Schutzhüllen dar.
  • Diese Erfindung ist in ihrer Anwendung nicht auf die Details des Aufbaus und der Anordnung von Bauteilen, wie in der folgenden Beschreibung dargelegt oder in den Zeichnungen dargestellt, beschränkt. Die Erfindung ist auf weitere Ausführungsformen tauglich und dazu tauglich, auf verschiedene Weisen praktiziert und durchgeführt zu werden. Ebenfalls dienen die Ausdrucksweise und Terminologie, wie hier verwendet, zum Zwecke der Beschreibung, und sollten nicht als beschränkend betrachtet werden. Die Verwendung von „enthält", „umfasst" oder „hat", „beinhaltet", „umfasst" und Variationen davon, sind hier dazu beabsichtigt, um die danach aufgelisteten Elemente zu umgreifen und die Möglichkeit dazu, zusätzliche Elemente zu enthalten.
  • 3 stellt ein Blockdiagramm eines Kerns 20 dar, welcher mit einer Schutzhülle 30 verbunden ist, welche gemäß den hier beschriebenen Prinzipien aufgebaut ist. Der Kern 20 wird beispielsweise in einem einfachen Fall in einem „System auf einem Chip" oder SoC verwendet. Der SoC kommuniziert mit dem Kern 20 über Eingangssignale 21 und Ausgangssignale 24, wobei beide davon auf ihrem eigenen Weg durch die Schutzhülle 30 gehen, und zwar zu und von dem Kern. Grundlegend sind Eingangsleiter 22 des Kerns 20 mit inneren (Ausgabe) Leitungen der Schutzhülle 30 verbunden, welche, innerhalb der Schutzhülle 30, mit Ausgangsanschlüssen von einem Eingangszellen-Satz 31 verbunden sind. Äußere Eingangsleiter 21 sind mit Eingangsanschlüssen von einem Eingangszellen-Satz 31 verbunden, wodurch es ermöglicht wird, dass Signale durch die Schutzhülle 30 an den Kern 20 passieren. Ähnlich sind Ausgangsleiter 23 des Kerns 20 mit inneren (Eingabe) Leitungen der Schutzhülle 30 verbunden, welche, innerhalb der Schutzhülle 30, mit Eingangsanschlüssen von einem Ausgangszellen-Satz 34 verbunden sind. Ausgangsanschlüsse des Ausgangszellen-Satzes 34 erstrecken sich außerhalb der Schutzhülle 30 an äußere Ausgangsleiter 24. Zusätzlich enthält die Schutzhülle 30 ein funktionell konfigurierbares Modul (FRM) 40, welches mit dem Zellen-Satz 31 und Zellen-Satz 34 gekoppelt ist. Das FRM kann beispielsweise mit einem feldprogrammierbaren Array und einer bestimmten Steuerschaltung implementiert sein, wobei die Funktionalität des feldprogrammierbaren Arrays durch die Inhalte von einem Konfigurationsspeicher bestimmt ist, welcher Teil des feldprogrammierbaren Arrays ist. Das FRM 40 enthält ebenfalls einen seriellen Eingang 41 (möglicherweise ein Mehrfachleiter-Bus) und einen seriellen Ausgang 42, welches, wenn durch den Satz von Schutzhüllen in einem SoC verkettet (engl.: daisy-chained), es ermöglicht, dass alle der FRMs im SoC durch die serielle Verbindung konfiguriert werden. Obwohl nicht explizit gezeigt, enthält das FRM 40 ebenfalls Leitungen, durch welche Steuersignale angelegt werden können, um die Funktionalität und den Betrieb von der Schutzhülle zu richten. Somit wird gemäß dem hier beschriebenen Prinzipien ein flexibler SoC mit einem REFAB (neu konfigurierbare Architektur) erzeugt, welche eine Schutzhülle ist, welche eine Sammlung von Eingangszellen, Ausgangszellen und ein FRM enthält. In einer in Erwägung gezogenen Ausführungsform enthält das FRM im Wesentlichen nichts Weiteres als eine feldprogrammierbare Logik und einen Speicher, welcher die Logik und die Zwischenverbindungen innerhalb des FRM konfiguriert. Es wird im Wesentlichen angenommen, dass mehr als 95 % der „Liegenschaft" des FRM der feldprogrammierbaren Logik und zugehörigen Konfigurationsspeicher-Elementen gewidmet ist.
  • Es ist zu erwähnen, dass der Eingangszellen-Satz 31 und Ausgangszellen-Satz 34 innerhalb des FRM 40 eingebettet sein können, jedoch zeigen alle der Zeichnungen in dieser Beschreibung die Zellen aus Gründen der Darstellung als deutliche Elemente.
  • 4 zeigt den Aufbau von den Ausgangs- und Eingangszellen durch eine Darstellung von einem SoC, bei welchem ein Ausgangsleiter 23-i des Kerns 20-1 mit einem Eingangsleiter 22-j eines Kerns 20-2 verbunden sein muss. Gemäß dem hier beschriebenen Schutzhüllen-Muster, wird diese Verbindung durch ein Passieren durch die Schutzhülle des Kerns 20-1, das heißt Schutzhülle 30-1, und durch ein Passieren durch die Schutzhülle des Kerns 20-2, das heißt Schutzhülle 30-2, bewirkt. Genauer gesagt, verbindet der Leiter 23-i mit der Ausgangszelle 34-i in der Schutzhülle 30-1, verlässt Zelle 34-i auf Leiter 24-i, verbindet mit Leiter 21-j der Schutzhülle 30-2, tritt in die Eingangszelle 31-j ein, und verlässt die Eingangszelle 31-j auf Leiter 22-j.
  • Ausgangszellen innerhalb einer Schutzhülle sind wie für Zelle 34-i gezeigt aufgebaut. Das heißt, dass eine Zelle einen Zwei-Eingang-Multiplexer 32 enthält, welcher einen Eingang hat, welcher mit einem Ausgangsleiter (beispielsweise 23-i) des zugehörigen Kerns verbunden ist. Dieser selbe Ausgangsleiter des Kerns ist ebenfalls mit dem FRM von der Schutzhülle, das heißt FRM 40-1, verbunden. Der zweite Eingang des Multiplexers 32 wird vom FRM empfangen. Der Ausgang des Multiplexers 32 ist mit einem Ausgangsleiter von der Schutzhülle 30 durch einen Tri-Zustandtreiber 33 gekoppelt. Der Treiber 33 ist durch eine hohe Ausgangsimpedanz gekennzeichnet, wenn das Steuersignal auf Low (logischer Pegel „0") ist. Wenn das Steuersignal auf High (logischer Pegel „1") ist, ähnelt die Ausgabe des Treibers 33 lediglich ihrer Eingabe. Konfigurationsspeicher-Bits innerhalb des FRM 40-1 (die durchgängigen Quadrate in 3), wie beispielsweise Konfigurations-Bit 46, steuern den Multiplexer 32 und den Treiber 33.
  • Alternativ können die Ausgangszellen innerhalb einer Schutzhülle, wie für Zelle 34-f gezeigt, aufgebaut sein. Das heißt, dass eine Zelle einen Tri-Zustandtreiber 36 enthält, welcher, unter Steuerung von einem Konfigurations-Bit, dazu angepasst ist, das Signal von einem Kern-Ausgangsleiter 23-f an einen Schutzhülle-Ausgangsleiter 24-f auszugeben, und einen Tri-Zustandtreiber 37, welcher, unter Steuerung von einem zweiten Konfigurations-Bit, dazu angepasst ist, ein Signal, welches innerhalb der Schutzhülle erzeugt wird, an denselben Ausgang 24-f auszugeben. Natürlich sind die Konfigurations-Bits niemals derart eingestellt, dass beide Treiber gleichzeitig ein Signal an ihre jeweiligen Ausgänge passieren.
  • Eingangszellen innerhalb einer Schutzhülle sind, wie für Zelle 31-j gezeigt, beispielsweise mit einem Zwei-Eingang-Multiplexer 35 aufgebaut. Ein äußerer Eingangsleiter von der Schutzhülle (beispielsweise 21-j) ist mit einem Eingang des Multiplexers 35 und der zugehörigen FRM verbunden. Ein zweiter Eingang an den Multiplexer 35 wird vom FRM empfangen, und der Ausgang des Multiplexers 35 ist mit einem Eingangsleiter (beispielsweise 22-j) des zugehörigen Kerns verbunden. Wie bei der Zelle 34-i, steuern Konfigurations-Bits innerhalb des FRM den Zustand des Multiplexers 35.
  • 4 stellt ein zusätzliches Merkmal dar, welches wesentliche Vorteile an die SoC-Struktur-Architektur, wie hier beschrieben, überträgt, und dieses Merkmal sind freie Leitungen 43 und 44, welche das FRM der Schutzhülle 30-1 mit dem FRM der Schutzhülle 30-2 verbinden. 4 zeigt lediglich zwei freie Leitungen, jedoch sollte es zu beachten sein, dass die Figur 4-Darstellung weniger als alle der Verbindungen zwischen der Schutzhülle 30-1 und 30-2 anzeigt, und dass es ebenfalls Verbindungen zu weiteren Schutzhüllen und zu UDL-Modulen geben kann.
  • Offensichtlich ist die Anzahl von freien Leitungen eine Entwurfsauswahl. Es wird jedoch erwartet, dass die Anzahl von freien Leitungen zwischen zwei Schutzhüllen direkt proportional – obwohl nicht notwendigerweise in einer mathematisch präzisen Beziehung – zu der Anzahl von Signalleitungen sein wird, welche jene Schutzhüllen in einem bestimmten SoC-Entwurf verbinden. Vorzugsweise wird eine rechnerisch entwickelte Anzahl von freien Leitern auf die nächste Ganzzahl aufgerundet.
  • Um unterschiedliche Ausgangszellen-Entwürfe darzustellen, stellt 4 zwei Ausgangszellen für die Schutzhülle 30-1 dar. Die erste (Zelle 34-i) enthält einen Multiplexer 32, gefolgt durch einen Tri-Zustandtreiber 33. Die zweite (Zelle 34-f) enthält einen Tri-Zustandtreiber 36 und einen Tri-Zustandtreiber 37, welche ihre Ausgänge zusammen und mit dem Ausgang von der Zelle (beispielsweise Leitung 24-f) gekoppelt haben. In der ersten Zelle wählt der Multiplexer 32 entweder ein Signal vom Kern 20-1 oder ein Signal von innerhalb des FRM 40-1 aus, und der Treiber 34 passiert entweder dieses Signal an den Zellen-Ausgang oder ist gesperrt, und stellt somit dem Zellen-Ausgang eine hohe Impedanz dar. In der zweiten Zelle ist lediglich einer der Treiber zu einem Zeitpunkt gesperrt, und somit stellt die Zelle entweder eine hohe Impedanz an ihren Ausgang oder das Signal vom gesperrten Treiber, das heißt entweder ein Signal vom Kern 20-1 oder ein Signal von innerhalb des FRM 40-1, dar.
  • 5 stellt den Aufbau von einer FPLA dar, welche in Implementierungen des FRM 40 verwendet werden kann. Die Linien in 5 stellen Mehrfach-Leiter-Busse dar, und die vollen schwarzen Punkte stellen Sätze von Schaltern dar. Jeder der Schalter-Sätze hat ein zugehöriges Konfigurations-Bit, ist jedoch aus Gründen der Vereinfachung in 5 nicht gezeigt. Der Entwurf von der 5 FPLA ist recht konventionell. Es kann jedoch erwähnt werden, dass die Platzierung der Schalter-Sätze beinahe unbegrenzte Verbindungsanordnungen erlaubt, welche zur Zuführung von Signalen an Logik-Elemente 45 des Arrays von Logik-Elementen konfiguriert sind. Jedes Logik-Element hat einen Eingangs-Bus, welcher Signale von einem horizontalen Bus erlangt, und einen Eingangs-Bus, welcher Signale von einem vertikalen Bus erlangt. Jedes Logik-Element hat einen Ausgangs-Bus, welcher an einen horizontalen Bus oder an einen vertikalen Bus (oder an beide) angelegt werden kann. Logik-Blöcke 45 können auf zahlreiche Wege implementiert werden. Ein Weg besteht darin, dass jeder Logik-Block 45 einen programmierbaren Speicher hat. Diese Speicher, welche durch die serielle Eingabe (3, Element 41) programmiert sind, können jegliche gewünschte Logik-Funktion implementieren. Aus Gründen der Vereinfachung ist die serielle Verbindung der verschiedenen Konfigurations-Bits und Speicher innerhalb des FRM 40 in 5 nicht gezeigt. Kurz gesagt, hat das FRM Zellen einer programmierbaren Logik und ein programmierbares Zwischenverbindungs-Netzwerk, welches dazu in der Lage ist, Verbindungen unter den Logik-Zellen, den Eingängen und Ausgängen von der Schutzhülle, inklusive der freien Zwischen-Schutzhülle-Verbindungen, aufzubauen. Die Funktionen von den Zellen und den Verbindungen der programmierbaren Zwischenverbindung werden eingestellt, indem ein Konfigurations-Speicher innerhalb der Schutzhülle geladen wird.
  • Die folgenden Sektionen beschreiben einige der Fähigkeiten, welche dem Aufbau in 3 inhärent sind, wobei 6 die normale Betriebsbedingung zeigt.
  • In 6 ist ein Ausgangsleiter von Kern 20-1 an den Multiplexer 32 von einer Ausgangszelle in der Schutzhülle 30-1 angelegt. In Ansprechen auf ein „0"-Steuersignal wählt der Multiplexer 32 das Signal von diesem Leiter aus und legt es an den Treiber 33 an. In Ansprechen auf ein „0"-Steuersignal wird der Treiber 33 gesperrt, und dieses erstreckt das Signal außerhalb der Schutzhülle 30-1, wo es mit einer Schutzhülle 30-2 und möglicherweise mit weiteren Schutzhüllen und/oder UDLs verbunden wird. Das Letztgenannte ist durch die Linie gezeigt, welche am Zeichen „A" endet. Innerhalb der Schutzhülle 30-2 ist das Signal an eine Eingangszelle, und genauer gesagt an Multiplexer 35, angelegt, wo es in Ansprechen auf ein „0"-Steuersignal ausgewählt wird. Die Ausgabe von Multiplexer 35 wird an Kern 20-2 angelegt.
  • Invertieren eines Ausgangssignals
  • Es ist möglich, dass das Ausgangssignal von einem Kern nicht das ist, als es für einen bestimmten Zweck gewünscht ist. Es kann erwartet werden, dass diese Situation nicht unhäufig auftritt, da der Entwurf (und das Layout) von einem Kern, welcher von einer dritten Partei empfangen wird, beispielsweise Kern 20-1, zu einer früheren Zeit vollendet war. 7 stellt eine Anordnung zum Invertieren eines Ausgangssignals s des Kerns 20-1 dar, um ein Signal s auszubilden. Alles, was erforderlich ist, ist es einen Inverter innerhalb des FRM von der Schutzhülle 30-1 zu konfigurieren (das heißt zu erzeugen), welcher zwischen dem Ausgang von der Schutzhülle 30-1 und dem zweiten Eingang des Multiplexers 32 verbunden ist, und ein „1"-Steuersignal am Multiplexer 32 zu konfigurieren. Das Signal, welches daraus folgend am Treiber 33 angelegt ist, ist s, und das gewünschte Endergebnis wird somit erzielt, wie durch die fett gedruckten Polylinien in 7 gezeigt.
  • Invertieren eines Eingangssignals
  • Es ist möglich, dass das Ausgangssignal von einem Kern so ist, wie es sein sollte, wenn die verschiedenen weiteren Schutzhüllen und UDL-Module, an welchen die Ausgabe angelegt werden muss, in Betracht gezogen werden, jedoch, lediglich in Relation auf Kern 30-2, ist dieses Signal s unkorrekt, und was benötigt wird, ist ein Signal s. 8 stellt eine Anordnung zum Invertieren eines Eingangssignals am Kern 20-2 dar. Alles, was benötigt wird, ist ein Inverter innerhalb des FRM von der Schutzhülle 30-2 zu konfigurieren, welcher zwischen dem Eingang von der Schutzhülle 30-2 und dem zweiten Eingang des Multiplexers 35 verbunden ist, und ein „1"-Steuersignal am Multiplexer 35 zu konfigurieren. Das Signal, welches daraus folgend am Kern 20-2 angelegt wird, ist s, und das gewünschte Endergebnis wird somit erzielt, wie durch die fett gedruckten Polylinien in 8 gezeigt.
  • Lösen eines Übersprechen-Problems oder Überbrücken eines Kurzschlusses zwischen zwei Drähten
  • Es ist möglich, dass, obwohl ein Entwurf logisch korrekt ist, das tatsächliche Layout von einem Chip zu zwei Signalen führt, welche zu nahe beieinander weitergeleitet werden, wobei sie sich daraus folgend nachteilig gegenseitig beeinflussen. Dieses Übersprechen-Problem wird typischerweise gelöst, indem das Layout in einem nachfolgenden Entwurfs-Zyklus geändert wird. Dies ist jedoch sehr kostenintensiv. Ein ähnliches Problem kommt auf, wenn ein Herstellungsdefekt (ein „Kurzschluss") unkorrekterweise Leitungen verbindet, welche nicht verbunden werden sollten.
  • Das hier beschriebene FRM, gekoppelt mit der vorteilhaften Verwendung von den freien Leitungen zwischen verbundenen Schutzhüllen, löst diese Schwierigkeiten mit Leichtigkeit, wie in 9 für das Übersprechen-Problem demonstriert. Um dies darzustellen, wird in Verbindung mit 9 angenommen, dass entdeckt wird, dass die Signalleitung zwischen dem Treiber 33 von der Schutzhülle 30-1 und dem Multiplexer 35 von der Schutzhülle 30-2 zu viel Übersprechen aufnimmt. Gemäß den hier beschriebenen Prinzipien wird dieses Problem bewältigt, indem die Schutzhülle 30-1 derart konfiguriert wird, dass das Ausgangssignal des Kerns 20-1, welches sich andererseits vom Treiber 33 (zu der Übersprechen-Leitung) erstreckt, sich anstelle dessen durch eine der freien Leitungen erstreckt, welche die Schutzhülle 30-1 mit der Schutzhülle 30-2 verbindet. Die Lösung wird vervollständigt, indem die Schutzhülle 30-2 derart konfiguriert wird, dass sie das Signal, welches an der freien Leitung ankommt, dem zweiten Leiter des Multiplexers 35 darlegt, und ein „1"-Steuersignal am Multiplexer 35 konfiguriert wird. Das Ergebnis ist, dass das Signal, welches zuvor durch die Leitung vom Treiber 33 zum oberen Eingang des Multiplexers 35 floss, nun durch eine freie Leitung und an den unteren Eingang des Multiplexers 35 fließt. Da die freie Leitung notwendigerweise weiter von der Leitung entfernt ist, welche das verstoßende Übersprechen erzeugt, wird das Problem verbessert. Dies ist durch die fett gedruckten Polylinien von 9 gezeigt. Es ist zu erwähnen, dass das Steuersignal von dem Multiplexer 32 nicht spezifiziert ist – weil es irrelevant („keine Sorge") ist.
  • Die Lösung zum Überbrücken eines „Kurzschlusses" kann identisch zu der des Übersprechen-Problems sein, wie durch 10 demonstriert.
  • Reparieren eines „Leerlaufs”
  • Es ist ebenfalls möglich, dass eine notwendige Verbindung nicht vorgenommen wird, und zwar entweder aufgrund eines Layout-Fehlers oder eines Herstellungsdefekts, welcher zu einem „Leerlauf" führt. Dieser Defekt kann ebenfalls recht einfach korrigiert werden, wie in 11 demonstriert.
  • Es ist zu erwähnen, dass die Fähigkeit zum Reparieren von Herstellungsdefekten, wie beispielsweise Kurzschlüsse und Leerläufe, durch den Hersteller des SoC ausgeübt werden kann, wenn hergestellte SoCs getestet werden, oder durch den Verbraucher/Nutzer des SoC zu einem späteren Zeitpunkt. Dies ist ein leistungsstarkes Werkzeug, um einen Herstellungsertrag zu erhöhen, und stellt daher einen hauptsächlichen kommerziellen Vorteil der offenbarten Schutzhüllen-Architektur dar.
  • Reparieren eines Entwurfsfehlers
  • Wie oben angezeigt, kann ein entworfener SoC die UDL-Module zusätzlich zu den Kernen enthalten. Da die UDL-Module speziell für den SoC entworfen sind, ist es möglich, dass UDL-Module Entwurfsfehler enthalten werden.
  • 12 stellt eine Situation dar, bei welcher das Signal, welches dazu benötigt wird, um am Kern 20-2 angelegt zu werden, gleich G(s, u) ist, wobei s ein Ausgangssignal des Kerns 20-1 ist und u ein Ausgangssignal des Kerns 20-3 ist. Der Entwurf beginnt damit, die Funktion G(s, u) vom UDL- Modul 50 zu erlangen, indem Signal s an UDL 50 über Elemente 32 und 33 innerhalb der Schutzhülle 30-1, und Signal u an UDL 50 über Elemente 32 und 33 innerhalb der Schutzhülle 30-3 angelegt werden. Jedoch kann es sich erweisen, dass, aufgrund eines Entwurfsfehlers, das UDL-Modul 50 tatsächlich ein unterschiedliches Signal, das heißt F(s, u) entwickelt. Dieser Fehler wird gemäß der Figur 12-Ausführungsform korrigiert, indem die Schutzhülle 30-1 derart konfiguriert wird, um Signal s an eine der freien Leitungen zu passieren, welche sich an die Schutzhülle 30-2 erstreckt, und indem die Schutzhülle 30-3 derart konfiguriert wird, um Signal u an eine freie Leitung zu passieren, welche mit der Schutzhülle 30-2 verbindet. Die Schutzhülle 30-2 ist derart konfiguriert, um die korrekte Funktion G(s, u) in Ansprechen auf Signale zu erzeugen, welche an den freien Leitungen ankommen, und um das entwickelte G(s, u) Signal an den zweiten Eingang des Multiplexers 35 anzulegen. Ein Konfigurieren der Schutzhülle 30-2, um ein „1"-Steuersignal am Multiplexer 35 anzulegen, vervollständigt die Reparatur des Entwurfsfehlers.
  • Es ist zu erwähnen, dass die Figur 12-Reparatur eine freie Leitung zwischen der Schutzhülle 30-3 und der Schutzhülle 30-2, als auch zwischen der Schutzhülle 30-1 und der Schutzhülle 30-2 erfordert, obwohl es keinerlei weitere Signalverbindungen zwischen der Schutzhülle 30-2 und diesen weiteren Schutzhüllen geben kann. Es gibt natürlich keinen Grund dazu, die Einbeziehung von solchen freien Leitungen in einem SoC-Entwurf zu untersagen.
  • Eine weitere Lösung ist in 13 dargestellt, welche auf der Beobachtung basiert, dass es keinen Grund dazu gibt, die Erzeugung von einer Schutzhülle zu untersagen, um UDL 50, beispielsweise Schutzhülle 30-4, zu umfassen. Dies erlaubt die Erzeugung von einer Funktion G(s, u) innerhalb der Schutzhülle 30-4 entlang der oben erläuterten Leitungen.
  • Eine weitere Lösung, welche mit einer strikten Regel übereinstimmt, dass freie Leitungen lediglich als eine schrittweise Addition auf Signalleitungen zwischen Schutzhüllen zu enthalten sind, ist in 14 gezeigt, bei welcher die Schutzhülle 30-1 derart konfiguriert ist, um ein Signal zu entwickeln, das M(s) entspricht, um dieses Signal an den zweiten Eingang an ihren Multiplexer 32 anzulegen, und um das Signal an ihren Treiber 33 zu passieren. Ähnlich ist die Schutzhülle 30-2 derart entworfen, um ein Signal zu entwickeln, welches N(u) entspricht, um dieses Signal an den zweiten Eingang von ihrem Multiplexer 32 anzulegen, und um das Signal an ihren Treiber 33 zu passieren. Das Entwurfsproblem wird bewältigt, wenn Funktionen M(s) und N(u) derart ausgewählt sind, dass F(M(s), N(u)) gleich G(s, u) ist.
  • Es gibt zahlreiche Umstände, bei denen es wünschenswert sein würde, die oben diskutierten Reparaturen, welche Entwurfs- und Herstellungsprobleme beheben, permanent in einem SoC einbezogen zu haben. Gemäß den hier beschriebenen Prinzipien wird dies einfach durch einen eingebetteten nicht-flüchtigen Speicher, wie beispielsweise ein ROM, im FRM erreicht. Sobald ein SoC getestet ist und die Schutzhüllen dazu konfiguriert sind, die Entwurfs- oder Herstellungsprobleme zu beheben, kann der ROM mit Daten „eingebrannt" werden, um die geeigneten Konfigurations-Bits zu konfigurieren, wenn an dem SoC eine Leistung angelegt wird.
  • Fehlerbeseitigung
  • Um das Vorliegen und die Ursache von Fehlern zu erfassen, muss man dazu in der Lage sein, den SoC auf Fehler zu beseitigen. Vorteilhafterweise bietet die beschriebene Architektur leistungsstarke Fehlerbeseitigungs-Fähigkeiten an. Dies beinhaltet ein Einsetzen von Haltepunkten, ein Bewirken von Zustands-Auflistungen, einer Aussage-Überprüfung, Ereignis-Zielen, usw.
  • 15 stellt die Erzeugung eines Haltepunkt-Signals dar, welches einen Logik-Pegel 1 annimmt, wenn ein bestimmtes Ausgangssignal v des Kerns 20-2 gleich „1" ist und ein Ausgangssignal s des Kerns 20-1 gleich „1" ist. Dies wird darstellhafterweise dadurch erreicht, indem die Schutzhülle 30-2 derart konfiguriert wird, dass sie Signal v an eine freie Leitung passiert, welche die Schutzhülle 30-2 mit der Schutzhülle 30-1 verbindet, die Schutzhülle 30-1 derart konfiguriert wird, um ein AND-Gate zu erzeugen, um Signale v und s an das AND-Gate zu passieren, und die Gate-Ausgabe an eine freie Leitung auszugeben, welche, wohin auch immer die Haltepunkt-Information zu senden ist, verbindet. Der derzeitige Stand der Technik stellt keinerlei SoC-Fehlerbeseitigungs-Mechanismus bereit, welcher einen Aufbau von solchen Haltepunkten erlaubt oder Signale von unterschiedlichen Kernen bei Laufzeit kombiniert. Alternativ kann die Schutzhülle 30-1 einen Ereignis-Zähler implementieren, um beispielsweise die Häufigkeit zu zählen, bei welcher die Bedingung S × V = 1 innerhalb eines spezifizierten Zeitintervalls, usw., auftritt. Dies bezieht lediglich die Addition eines Zählers ein, welcher für die Ausgabe des Gates 37 verantwortlich ist. Der Endwert des Zählers kann ausgelesen werden, indem ein serielles Register konfiguriert wird, welches den Zähler enthält und den Zustand des Zählers abtastet. Es ist zu erwähnen, dass diese jedoch wenige Beispiele von Fehlerbeseitigungs-Merkmalen sind. Weitere Beispiele enthalten Zustands-Auflistungen, eine Aussage-Überprüfung, eine Überwachung, eine Fehlerinjektion, usw. Für den erfahrenen Fehlerbeseitigungs-Entwickler stellt die Neukonfiguration von den Schutzhüllen, gekoppelt mit der Verwendung von den freien Signalleitungen zwischen den Schutzhüllen, eine unerreichte Flexibilität zur Fehlerbeseitigung des SoC-Entwurfs bereit.
  • Kern-Test
  • Viele Kerne enthalten eine eingebaute Selbsttest (BIST)-Hardware, welche Testvektoren zum Testen des Kerns erzeugen kann, und ebenfalls die vom Kern erlangte Antwort analysieren kann, um zu bestimmen, ob er Herstellungsdefekte enthält. Eine herkömmliche BIST-Logik wird typischerweise lediglich einmal für einen Herstellungstest verwendet, verbleibt jedoch immer noch in der Schaltung für ihre gesamte Lebensdauer. Vom Standpunkt dieser Erfindung aus ist dies eine verschwendete Chip-„Liegenschaft". In SoC-Entwürfen gemäß den hier beschriebenen Prinzipien ist eine Selbsttest-Hardware im FRM von der Schutzhülle lediglich dann konfiguriert, wenn ein Test gewünscht wird. Um einen Kern zu testen, erzeugt die im FRM vorliegende Selbsttest-Hardware (FRM-RSTH) Signale, welche unter Test an die Eingänge des Tests angelegt werden, und analysiert ihre Ausgangssignale. Wenn der Test vollendet ist, kann das FRM für weitere Zwecke neu konfiguriert werden. Es ist natürlich möglich, dass die Selbsttest-Hardware Ressourcen im Übermaß zu jenen erfordert, welche innerhalb des FRM in Zusammenhang mit dem Kern verfügbar sind. Dies stellt jedoch kein Problem dar, weil eine Hardware von FRMs von weiteren Schutzhüllen in die FRM-RSTH über die Verwendung von freien Leitern, wie oben diskutiert, einbezogen werden kann. Dies ist beispielsweise in 16 dargestellt, bei welchem Blöcke A und B zusammengefasst sind, um die gewünschte Testfunktion für den Kern unter Test 20-1 bereitzustellen. Es ist zu erwähnen, dass die Tri-Zustandtreiber in der Schutzhülle 30-1 des Kerns unter Test 20-1 gesperrt sind, um den Kern vom Rest des SoC zu isolieren.
  • Es ist zu erwähnen, dass das FRM dazu konfiguriert werden kann, um den vorgeschlagenen P1500-Standard zu implementieren.
  • Viele Kerne werden mit Vektoren getestet, welche durch eine externe Testvorrichtung zugeführt werden und über einen TAM an den Kern unter Test gebracht werden. In einem SoC, welcher gemäß den hier beschriebenen Prinzipien entworfen ist, kann die gesamte Logik zum Erzeugen der erforderlichen Vektoren für einen Kern in der Schutzhülle von diesem Kern, und, wenn erforderlich, in weiteren Schutzhüllen, konfiguriert werden. Auf diese Weise kann auf den TAM verzichtet werden.
  • UDL-Test
  • Die beschriebene Architektur ist nicht nur dazu in der Lage, die betriebliche Integrität von Kernen zu verifizieren, sondern ebenfalls die betriebliche Integrität von UDL-Modulen. 17 stellt eine solche Testanordnung dar, bei welcher die Schutzhülle 30-1 mit einer Testvorrichtung konfiguriert ist, und die Schutzhülle 30-2 mit einer Testvorrichtung konfiguriert ist. Beide Testvorrichtungen legen eine Testsequenz an die Eingänge der UDL 50 an, und beide Testvorrichtungen können die Ausgänge der UDL 50 beobachten.
  • Zwischenverbindungs-Test
  • 18 zeigt an, dass die Zwischenverbindung zwischen Kernen ebenfalls auf eine Weise getestet werden kann, welche ähnlich zu der von 17 ist.
  • Im Obigen wurden einige der Fähigkeiten beschrieben, welche bei der Verwendung von einem FRM in Kern- und Schutzhüllen-Kombinationen inhärent sind. Der Fachmann wird viele weitere Möglichkeiten einfach erkennen. Um dies darzustellen, ist eine Funktionsschaltung, welche für einen Kern benötigt wird, oder welche für die Interaktion von zwei unterschiedlichen Kernen benötigt wird, nicht auf Realisierungen innerhalb einer einzelnen Schutzhülle, oder sogar innerhalb der Schutzhüllen, welche mit den relevanten Kernen in Zusammenhang stehen, beschränkt. Er kann Ressourcen von unterschiedlichen Schutzhüllen verwenden, wie in 17 dargestellt. Dies erhöht die potenzielle Wirksamkeit des gesamten Satzes von FRMs, welche in einem SoC-Entwurf enthalten sind, und dies kann wiederum zu kleineren individuellen FRMs führen, als andererseits zweckmäßig.

Claims (44)

  1. Vorrichtung, welche eine Funktionsschaltung (20, 20-1, 20-2) mit einem Satz von Eingängen (22) und Ausgängen (23) und eine zweite Schaltung (30, 30-1, 30-2) hat, welche Eingangszellen (31) und Ausgangszellen (34) hat, wobei jede Eingangszelle einen äußeren Eingang (21) und einen inneren Ausgang hat, wobei der innere Ausgang mit einem entsprechenden Eingang (22) der Funktionsschaltung verbunden ist, und jede Ausgangszelle einen äußeren Ausgang (24) und einen inneren Eingang hat, wobei der innere Eingang mit einem entsprechenden Ausgang (23) von der Funktionsschaltung gekoppelt ist, dadurch gekennzeichnet, dass: a) die zweite Schaltung zusätzlich ein programmierbares Schaltmittel (40, 40-1, 40-2) enthält, welches eine Mehrzahl von Eingängen und eine Mehrzahl von Ausgängen hat, wobei zumindest ein Abschnitt der Mehrzahl von Eingängen des programmierbaren Schaltmittels jeweils an dem äußeren Eingang (21-j) von einer Eingangszelle (31-j) oder dem inneren Eingang (23-i) von einer Ausgangszelle (34-i) gekoppelt ist; b) jede Eingangszelle (31-j) ein Steuermittel (35) enthält, welches selektiv den entsprechenden Eingang (22-j) der Funktionsschaltung (20-2) mit dem äußeren Eingang (21-j) von der Eingangszelle oder einem Ausgang von dem programmierbaren Schaltmittel (40-2) koppelt; c) jede Ausgangszelle (34-i, 34-f) ein Steuermittel (32, 3637) enthält, welches selektiv den äußeren Ausgang (24-i, 24-f) der Ausgangszelle mit einem Ausgang des programmierbaren Schaltmittels (40-1) oder einem entsprechenden Ausgang (23-i, 23-f) der Funktionsschaltung koppelt; und d) wobei ausgewählte Signale auf dem Satz von Eingängen und Ausgängen der Funktionsschaltung durch Signale ersetzt werden können, welche im programmierbaren Schaltmittel erzeugt sind.
  2. Vorrichtung nach Anspruch 1, bei welcher das programmierbare Schaltmittel einen Konfigurationsspeicher enthält.
  3. Vorrichtung nach Anspruch 2, bei welcher der Konfigurationsspeicher einen nicht-flüchtigen Speicher enthält.
  4. Vorrichtung nach einem der Ansprüche 2 bis 3, bei welcher das programmierbare Schaltmittel zusätzlich eine Mehrzahl von Leitern und eine Mehrzahl von Schaltern enthält, welche selektiv Ausgewählte der Leiter verbinden, und wobei der Zustand von jedem aus der Mehrzahl von Schaltern durch einen im Konfigurationsspeicher gespeicherten Wert gesteuert ist.
  5. Vorrichtung nach einem der vorhergehenden Ansprüche, bei welcher das Steuermittel von jeder Ausgangszelle einen Multiplexer (32) enthält, welcher einen ersten Eingang, welcher mit einem Ausgang des programmierbaren Steuermittels (40-1) verbunden ist, einen zweiten Eingang, welcher mit einem entsprechenden Ausgang (23-i) der Funktionsschaltung (20-1) verbunden ist, einen Steueranschluss, welcher mit einem Konfigurationssignal (46) von einem aus der Mehrzahl von Ausgängen des programmierbaren Schaltmittels verbunden ist, und einen Ausgang hat, welcher an dem äußeren Ausgang (24-i) der Ausgangszelle (34-i) gekoppelt ist.
  6. Vorrichtung nach Anspruch 5, bei welcher der Multiplexer (32) Ausgang an einem äußeren Ausgangsleiter der Ausgangszelle über einen Tri-Zustandtreiber (33) gekoppelt ist, welcher auf ein zweites Konfigurations-Steuersignal von einem der Mehrzahl von Ausgängen des programmierbaren Schaltmittels anspricht, wobei der Treiber sein Eingangssignal an seinen Ausgang überträgt, wenn das zweite Konfigurations-Steuersignal an einem ersten Logik-Pegel ist, und eine hohe Impedanz an seinem Ausgang darlegt, wenn das zweite Konfigurations-Steuersignal an einem zweiten Logik-Pegel ist.
  7. Vorrichtung nach einem der Ansprüche 1 bis 4, bei welcher das Steuermittel von jeder Ausgangszelle (34-f) einen ersten Tri-Zustandtreiber (37), welcher einen Eingang, welcher an einem Ausgang des programmierbaren Schaltmittels (40-1) verbunden ist, und einen Ausgang hat, welcher am äußeren Ausgang (24-f) der Ausgangszelle verbunden ist, und einen zweiten Tri-Zustandtreiber (36) enthält, welcher einen Eingang, welcher an einem entsprechenden Ausgang (23-f) der Funktionsschaltung verbunden ist, und einen Ausgang hat, welcher ebenfalls am äußeren Ausgang (24-f) der Ausgangszelle verbunden ist, wobei jeder der Treiber einen Steueranschluss hat, welcher mit dem programmierbaren Schaltmittel verbunden ist.
  8. Vorrichtung nach Anspruch 7, bei welcher Signale, welche an den Steueranschlüssen der Treiber angelegt sind, dazu angeordnet sind, nicht mehr als einen der Treiber zu einer Zeit freizugeben.
  9. Vorrichtung nach einem der vorgehenden Ansprüche, bei welcher die Funktionsschaltung eine Kernschaltung (20) ist.
  10. Vorrichtung nach einem der vorgehenden Ansprüche, welche zumindest einen Konfigurations-Eingangsleiter (41) zum Empfangen von einer Information für das programmierbare Schaltmittel (40) enthält.
  11. Vorrichtung nach einem der vorgehenden Ansprüche, bei welcher die Vorrichtung eine integrierte Schaltung ist und die Funktionsschaltung (20) und die zweite Schaltung ein Modul ausbilden und die Eingänge (22) und Ausgänge (23) der Funktionsschaltung von außerhalb des Moduls lediglich durch eine Durchlauf-Schaltung innerhalb der zweiten Schaltung zugreifbar sind.
  12. Vorrichtung nach einem der vorgehenden Ansprüche, bei welcher das Steuermittel (32, 3637) von jeder Eingangszelle (31-j) selektiv den entsprechenden Eingang der Funktionsschaltung (20, 50) an dem äußeren Eingang von der Eingangszelle (31) oder einen Ausgang des programmierbaren Schaltmittels (40), basierend auf einem Konfigurationssignal koppelt, welches an die Zelle von einem Konfigurations-Speicherelement innerhalb des programmierbaren Schaltmittels angelegt ist.
  13. Vorrichtung nach einem der vorgehenden Ansprüche, bei welcher: (a) die Vorrichtung eine integrierte Schaltung ist und die Funktionsschaltung und die zweite Schaltung ein erstes Modul ausbilden und die integrierte Schaltung ein oder mehrere gleiche Module enthält; und (b) die integrierte Schaltung Leiter (43, 44) enthält, welche einen oder mehrere Ausgänge der zweiten Schaltung (40-1) von einem ersten der Module mit einem oder mehreren Eingängen der zweiten Schaltung (40-2) von einem zweiten der Module verbinden.
  14. Vorrichtung nach Anspruch 13, bei welcher zumindest eine der Funktionsschaltungen in zumindest einem aus dem ersten oder zweiten Modul eine Kernschaltung (20) ist.
  15. Vorrichtung nach Anspruch 13, bei welcher eine der Funktionsschaltungen in zumindest einem aus dem ersten oder zweiten Modul eine Kernschaltung ist, und die weitere der Funktionsschaltungen eine UDL-Schaltung (50) ist.
  16. Vorrichtung nach einem der Ansprüche 13 bis 15, bei welcher die Anzahl von Leitern, welche die zweiten Schaltungen im ersten Modul und zweiten Modul verbinden, größer als die Anzahl von Leitern ist, welche notwendig sind, um die Funktionsschaltung im ersten Modul und die Funktionsschaltung im zweiten Modul bei dem Nicht-Vorliegen der zweiten Schaltungen im ersten und zweiten Modul zu koppeln.
  17. Vorrichtung nach einem der Ansprüche 13 bis 16, welche ferner Konfigurations-Leiter enthält, welche sich zwischen dem programmierbaren Schaltmittel im ersten Modul und dem programmierbaren Schaltmittel im zweiten Modul überbrücken.
  18. Vorrichtung nach einem der Ansprüche 13 bis 17, bei welcher die Funktionsschaltung in jedem der Module durch einen Entwurf gekennzeichnet ist, welcher vor einer Aufnahme der Funktionsschaltung beim Entwurf der integrierten Schaltung vervollständigt und verifiziert war.
  19. Vorrichtung nach Anspruch 18, bei welcher jede der Funktionsschaltungen einen Entwurf hat, welcher als eine Einheit durch einen Entwerfer der integrierten Schaltung erlangt war.
  20. Vorrichtung nach einem der Ansprüche 18 oder 19, bei welcher jede der Funktionsschaltungen eine Test-Ordnung hat, um einen Betriebsstatus der Funktionsschaltung zu verifizieren, welcher vor einer Aufnahme der Funktionsschaltung beim Entwurf der integrierten Schaltung bekannt war.
  21. Vorrichtung nach einem der Ansprüche 13 bis 20, welche zusätzlich eine oder mehrere benutzerdefinierte Logikschaltungen enthält, welche mit einem oder mehreren äußeren Ausgängen von einer Ausgangszelle des ersten Moduls und einem oder mehreren äußeren Eingängen von einer Eingangszelle des zweiten Moduls verbunden sind.
  22. Vorrichtung nach einem der Ansprüche 13 bis 21, bei welcher ein programmierbares Schaltmittel in einem Ausgewählten aus dem ersten oder zweiten Modul dazu konfiguriert ist, ein Signal s, welches über einen der Leiter fließt, durch ein Signal q zu ersetzen.
  23. Vorrichtung nach Anspruch 22, bei welcher das Signal q eine Funktion des Signals s ist.
  24. Vorrichtung nach einem der Ansprüche 13 bis 23, bei welcher das programmierbare Schaltmittel in zumindest einem der Module dazu konfiguriert ist, seine zugehörige Funktionsschaltung zu testen.
  25. Vorrichtung nach Anspruch 24, bei welcher das programmierbare Schaltmittel in einem der Module dazu konfiguriert ist, Test-Vektoren zu erzeugen, um die zugehörige Funktionsschaltung zu testen.
  26. Vorrichtung nach einem der Ansprüche 13 bis 25, bei welcher M-Leiter von der zweiten Schaltung von einem ersten der Module mit der zweiten Schaltung von einem zweiten der Module verbunden sind, wobei M gleich der Anzahl von Leitern N, welche zur Funktionalität der integrierten Schaltung erforderlich sind, zwischen der Funktionsschaltung des ersten Moduls und I/O-Leitern der Funktionsschaltung des zweiten Moduls verbunden zu sein, plus einer Anzahl von freien Leitern S ist.
  27. Vorrichtung nach einem der Ansprüche 13 bis 26, bei welcher das programmierbare Schaltmittel des ersten Moduls mit einer ersten Testschaltung konfiguriert ist, das programmierbare Schaltmittel des zweiten Moduls mit einer zweiten Testschaltung konfiguriert ist und die erste Testschaltung und die zweite Testschaltung über freie Leiter verbunden sind.
  28. Vorrichtung nach einem der Ansprüche 13 bis 27, bei welcher das programmierbare Schaltmittel des ersten Moduls und/oder das programmierbare Logikmittel des zweiten Moduls dazu konfiguriert sind, Herstellungsdefekte in der integrierten Schaltung zu reparieren.
  29. Vorrichtung nach Anspruch 28, bei welcher die Defekte in einer Verbindungsstruktur sind, welche Module in der integrierten Schaltung verbindet.
  30. Vorrichtung nach einem der Ansprüche 26 bis 29, bei welcher eine zweite Schaltung von einem der Module dazu konfiguriert ist, an einen der freien Signalleiter ein Signal zu passieren, welches eine Funktion von einem oder mehreren Signalen der Ausgänge von der Funktionsschaltung des Moduls ist.
  31. Vorrichtung nach einem der Ansprüche 26 bis 30, bei welcher eine zweite Schaltung von einem der Module dazu konfiguriert ist, ein Signal an einen der freien Signalleiter zu passieren, welches eine Funktion von einem oder mehreren Signalen ist, welche an das programmierbare Schaltmittel über die freien Signalleiter angelegt sind.
  32. Vorrichtung nach einem der Ansprüche 13 bis 31, bei welcher während eines normalen Betriebes die programmierbaren Schaltmittel der Module nicht einbezogen sind, im Gegensatz zum Aufbau des Zustandes der Eingangszellen und Ausgangszellen der Module.
  33. Vorrichtung nach Anspruch 32, bei welcher, um Entwicklungsänderungen in der ersten Schaltung von einem oder mehreren der Module oder ein Verbindungs-Muster der Module zu implementieren, während eines normalen Betriebes zumindest eines der programmierbaren Schaltmittel der Module dazu konfiguriert ist, zumindest einen Eingang und/oder zumindest einen Ausgang seiner zugehörigen ersten Schaltung zu ersetzen.
  34. Vorrichtung nach Anspruch 32, bei welcher ein programmierbares Schaltmittel der Module dazu konfiguriert ist, ein Signal zu entwickeln, welches eine Funktion von einem oder mehreren Signalen ist, welche aus einem Satz entnommen sind, welcher enthält: (a) ein Eingangssignal an das programmierbare Schaltmittel, (b) ein Ausgangssignal der Funktionsschaltung im Zusammenhang mit dem Modul, (c) ein Eingangssignal, welches an das programmierbare Schaltmittel über die freien Signalleiter angelegt ist; und wobei das entwickelte Signal an einen Punkt angelegt ist, welcher aus einem Satz entnommen ist, welcher enthält: (i) eine Eingangszelle des Moduls, (ii) eine Ausgangszelle des Moduls und (iii) einen der freien Signalleiter.
  35. Verfahren zum Betreiben einer Vorrichtung, welche eine Funktionsschaltung (20, 20-1, 20-2) mit einem Satz von Eingängen (22) und Ausgängen (23) und eine zweite Schaltung (30, 30-1, 30-2) hat, welche Eingangszellen (31) und Ausgangszellen (34) hat, wobei jede Eingangszelle einen äußeren Eingang (21) und einen inneren Ausgang hat, wobei der innere Ausgang mit einem entsprechenden Eingang (22) der Funktionsschaltung verbunden ist, und jede Ausgangszelle einen äußeren Ausgang (34) und einen inneren Eingang hat, wobei der innere Eingang mit einem entsprechenden Ausgang (23) von der Funktionsschaltung gekoppelt ist, gekennzeichnet durch: a) Programmieren eines programmierbaren Schaltmittels innerhalb der zweiten Schaltung, um eine programmierte Funktion durchzuführen; b) Weiterleiten einer Mehrzahl von Signalen an Eingänge des programmierbaren Schaltmittels von den Eingängen und/oder Ausgängen der Funktionsschaltung; c) Durchführen der programmierten Funktionen in dem programmierbaren Schaltmittel unter Verwendung der an die Eingänge des programmierbaren Schaltmittels weitergeleiteten Signale, wodurch zumindest ein programmierbares Schaltmittel-Ausgangssignal erzeugt wird; und d) Ersetzen von zumindest einem Signal an einem äußeren Ausgang von einer Ausgangszelle durch die zumindest eine programmierbare Schaltmittel-Ausgabe.
  36. Verfahren nach Anspruch 35, welches zusätzlich ein Neuprogrammieren des programmierbaren Schaltmittels enthält.
  37. Verfahren nach Anspruch 36, bei welchem das Neuprogrammieren ein Neuprogrammieren des programmierbaren Schaltmittels enthält, um eine Fehlerbereinigungs-Funktion durchzuführen.
  38. Verfahren nach Anspruch 37, bei welchem die Fehlerbereinigungs-Funktion eine Anhaltepunkt-Anzeige (37) ausgibt.
  39. Verfahren nach Anspruch 37, bei welchem die Fehlerbereinigungs-Funktion einen Ereigniszähler enthält.
  40. Verfahren nach Anspruch 36, bei welchem die Neuprogrammierung eine Neuprogrammierung des programmierbaren Schaltmittels enthält, um einen Aspekt der Funktionsschaltung zu testen.
  41. Verfahren nach Anspruch 40, bei welchem die Vorrichtung eine Mehrzahl von Modulen enthält, wobei jedes eine Funktionsschaltung und eine zweite Schaltung hat, wobei jede zweite Schaltung ein programmierbares Schaltmittel hat, und wobei die programmierbaren Schaltmittel innerhalb der Mehrzahl von Modulen dazu programmiert sind, während einer Durchführung von einer Testfunktion zu interagieren.
  42. Verfahren nach Anspruch 36, bei welchem die Vorrichtung eine Mehrzahl von Modulen enthält, wobei jedes eine Funktionsschaltung und eine zweite Schaltung hat, wobei jede zweite Schaltung ein programmierbares Schaltmittel hat, und wobei das Verfahren zusätzlich ein selektives Weiterleiten von zumindest einem Signal s an das programmierbare Schaltmittel von zumindest einem der Module durch die zweite Schaltung von einem Modul enthält, welches das programmierbare Schaltmittel enthält, und die zweite Funktion ein Ausbilden eines Ausgangssignals enthält, welches dem Signal s logisch invers ist.
  43. Verfahren nach Anspruch 36, bei welchem die Vorrichtung eine Mehrzahl von Modulen enthält, wobei jedes eine Funktionsschaltung und eine zweite Schaltung hat, wobei jede zweite Schaltung ein programmierbares Schaltmittel hat, und wobei die Neuprogrammierung ein Koppeln eines Ausgangssignals von dem programmierbaren Schaltmittel eines ersten Moduls an die zweite Schaltung von einem zweiten Modul durch freie Leiter in der Vorrichtung enthält.
  44. Verfahren nach Anspruch 36, bei welchem die Neuprogrammierung eine Neuprogrammierung des programmierbaren Schaltmittels enthält, um eine Aussagenüberprüfung durchzuführen.
DE602004007503T 2003-04-28 2004-04-28 REKONFIGURIERBARE ARCHITEKTUR FÜR SOCs Expired - Lifetime DE602004007503T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US425101 1995-04-20
US10/425,101 US7058918B2 (en) 2003-04-28 2003-04-28 Reconfigurable fabric for SoCs using functional I/O leads
PCT/US2004/013155 WO2004102210A1 (en) 2003-04-28 2004-04-28 RECONFIGURABLE FABRIC FOR SoCs

Publications (2)

Publication Number Publication Date
DE602004007503D1 DE602004007503D1 (de) 2007-08-23
DE602004007503T2 true DE602004007503T2 (de) 2008-04-17

Family

ID=33299473

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004007503T Expired - Lifetime DE602004007503T2 (de) 2003-04-28 2004-04-28 REKONFIGURIERBARE ARCHITEKTUR FÜR SOCs

Country Status (6)

Country Link
US (2) US7058918B2 (de)
EP (1) EP1620739B1 (de)
JP (1) JP4406648B2 (de)
KR (1) KR20060003063A (de)
DE (1) DE602004007503T2 (de)
WO (1) WO2004102210A1 (de)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7127697B1 (en) * 2001-08-07 2006-10-24 Xilinx, Inc. Methods of utilizing programmable logic devices having localized defects in application-specific products
US6842039B1 (en) * 2002-10-21 2005-01-11 Altera Corporation Configuration shift register
KR101034494B1 (ko) * 2004-02-11 2011-05-17 삼성전자주식회사 개방형 코어 프로토콜을 기반으로 하는 버스 시스템
WO2005078465A1 (en) * 2004-02-17 2005-08-25 Institut National Polytechnique De Grenoble Integrated circuit chip with communication means enabling remote control of testing means of ip cores of the integrated circuit
US7607057B2 (en) * 2004-12-28 2009-10-20 Lsi Corporation Test wrapper including integrated scan chain for testing embedded hard macro in an integrated circuit chip
US7605605B2 (en) * 2005-01-27 2009-10-20 Cswitch Corporation Programmable logic cells with local connections
US7358765B2 (en) * 2005-02-23 2008-04-15 Cswitch Corporation Dedicated logic cells employing configurable logic and dedicated logic functions
US7394708B1 (en) 2005-03-18 2008-07-01 Xilinx, Inc. Adjustable global tap voltage to improve memory cell yield
KR100662471B1 (ko) 2005-10-11 2007-01-02 엘지전자 주식회사 시스템 온 칩 구조 및 데이터 전송 방법
US7348796B2 (en) * 2005-10-26 2008-03-25 Dafca, Inc. Method and system for network-on-chip and other integrated circuit architectures
US7296201B2 (en) * 2005-10-29 2007-11-13 Dafca, Inc. Method to locate logic errors and defects in digital circuits
US7484153B2 (en) * 2005-12-06 2009-01-27 Kabushiki Kaisha Toshiba Systems and methods for LBIST testing using isolatable scan chains
EP1811415A1 (de) * 2005-12-23 2007-07-25 Nagracard S.A. Sicheres System-on-Chip
EP1802030A1 (de) * 2005-12-23 2007-06-27 Nagracard S.A. Sicheres System-on-Chip
US8656191B2 (en) 2005-12-23 2014-02-18 Nagravision S.A. Secure system-on-chip
US7519884B2 (en) 2006-06-16 2009-04-14 Texas Instruments Incorporated TAM controller for plural test access mechanisms
US7827515B2 (en) * 2007-03-15 2010-11-02 Oracle America, Inc. Package designs for fully functional and partially functional chips
US20090271877A1 (en) * 2008-04-28 2009-10-29 Dafca, Inc. Method to secure embedded system with programmable logic, hardware and software binding, execution monitoring and counteraction
US8139430B2 (en) * 2008-07-01 2012-03-20 International Business Machines Corporation Power-on initialization and test for a cascade interconnect memory system
US8082475B2 (en) * 2008-07-01 2011-12-20 International Business Machines Corporation Enhanced microprocessor interconnect with bit shadowing
US8082474B2 (en) * 2008-07-01 2011-12-20 International Business Machines Corporation Bit shadowing in a memory system
US8201069B2 (en) * 2008-07-01 2012-06-12 International Business Machines Corporation Cyclical redundancy code for use in a high-speed serial link
US20100005335A1 (en) * 2008-07-01 2010-01-07 International Business Machines Corporation Microprocessor interface with dynamic segment sparing and repair
US8234540B2 (en) 2008-07-01 2012-07-31 International Business Machines Corporation Error correcting code protected quasi-static bit communication on a high-speed bus
US8245105B2 (en) * 2008-07-01 2012-08-14 International Business Machines Corporation Cascade interconnect memory system with enhanced reliability
US7895374B2 (en) * 2008-07-01 2011-02-22 International Business Machines Corporation Dynamic segment sparing and repair in a memory system
FR2933826B1 (fr) * 2008-07-09 2011-11-18 Univ Paris Curie Reseau logique programmable, commutateur d'interconnexion et unite logique pour un tel reseau
US7956639B2 (en) * 2008-07-23 2011-06-07 Ndsu Research Foundation Intelligent cellular electronic structures
US8531204B2 (en) * 2008-11-13 2013-09-10 Nxp, B.V. Testable integrated circuit and test method therefor
US7979759B2 (en) * 2009-01-08 2011-07-12 International Business Machines Corporation Test and bring-up of an enhanced cascade interconnect memory system
US20100180154A1 (en) * 2009-01-13 2010-07-15 International Business Machines Corporation Built In Self-Test of Memory Stressor
JP5451542B2 (ja) * 2010-06-30 2014-03-26 日本電信電話株式会社 集積回路
US8793095B2 (en) * 2011-03-09 2014-07-29 Intel Corporation Functional fabric-based test controller for functional and structural test and debug
US8522189B2 (en) 2011-03-09 2013-08-27 Intel Corporation Functional fabric based test access mechanism for SoCs
US9043665B2 (en) * 2011-03-09 2015-05-26 Intel Corporation Functional fabric based test wrapper for circuit testing of IP blocks
US20150067428A1 (en) * 2012-05-02 2015-03-05 Freescale Semiconductor, Inc. System-on-chip, method of manufacture thereof and method of communicating diagnostic data
US9436623B2 (en) * 2012-09-20 2016-09-06 Intel Corporation Run-time fabric reconfiguration
WO2019152792A1 (en) 2018-02-02 2019-08-08 Dover Microsystems, Inc. Systems and methods for policy linking and/or loading for secure initialization
WO2019213061A1 (en) 2018-04-30 2019-11-07 Dover Microsystems, Inc. Systems and methods for checking safety properties
TW202022679A (zh) 2018-11-06 2020-06-16 美商多佛微系統公司 用於停滯主處理器的系統和方法
US11841956B2 (en) 2018-12-18 2023-12-12 Dover Microsystems, Inc. Systems and methods for data lifecycle protection
US12079197B2 (en) 2019-10-18 2024-09-03 Dover Microsystems, Inc. Systems and methods for updating metadata

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5212652A (en) * 1989-08-15 1993-05-18 Advanced Micro Devices, Inc. Programmable gate array with improved interconnect structure
JP3552175B2 (ja) * 1995-05-17 2004-08-11 株式会社アドバンテスト フェイルメモリ装置
US6968514B2 (en) * 1998-09-30 2005-11-22 Cadence Design Systems, Inc. Block based design methodology with programmable components
US6484280B1 (en) 1999-09-30 2002-11-19 Agilent Technologies Inc. Scan path test support
US6594802B1 (en) 2000-03-23 2003-07-15 Intellitech Corporation Method and apparatus for providing optimized access to circuits for debug, programming, and test
US6877122B2 (en) * 2001-12-21 2005-04-05 Texas Instruments Incorporated Link instruction register providing test control signals to core wrappers
EP1296152A1 (de) 2001-09-21 2003-03-26 Siemens Aktiengesellschaft Elektronischer Baustein und Verfahren zu dessen Qualifizierungsmessung

Also Published As

Publication number Publication date
US7058918B2 (en) 2006-06-06
EP1620739B1 (de) 2007-07-11
JP2007501586A (ja) 2007-01-25
DE602004007503D1 (de) 2007-08-23
US7146548B1 (en) 2006-12-05
WO2004102210A1 (en) 2004-11-25
EP1620739A1 (de) 2006-02-01
JP4406648B2 (ja) 2010-02-03
KR20060003063A (ko) 2006-01-09
US20040212393A1 (en) 2004-10-28

Similar Documents

Publication Publication Date Title
DE602004007503T2 (de) REKONFIGURIERBARE ARCHITEKTUR FÜR SOCs
DE69914864T2 (de) Steuerung der konfiguration in einer programmierbaren logik-einheit mittels nichtflüchtiger bauelemente
DE10244757B3 (de) Programmierung eines Speicherbausteins über ein Boundary Scan-Register
DE69430637T2 (de) Vorrichtung und verfahren zum testen von integrierten schaltkreisen
DE60218498T2 (de) Elektronisches gerät
DE69631658T2 (de) Verfahren und gerät zur prüfung einer megazelle in einem asic unter verwendung von jtag
DE602004003475T2 (de) Testen von integrierten schaltungen
DE60102164T2 (de) Systeminitialisierung eines mikrocode-basierten eingebauten speicher-selbsttests
DE3130714C2 (de)
DE69831900T2 (de) Programmier-Modus-Auswahl mit JTAG Schaltungen
DE60220511T2 (de) Verfahren und system zur optimierung der testkosten und deaktivierungsdefekte für scan- und bist-speicher
DE69623334T2 (de) Verfahren zur prüfung des ein-/ausschaltverhaltens unter anwendung von jtag
DE3851847T2 (de) Integrierte Halbleiterschaltung mit einer Mehrzahl von Schaltungsblöcken äquivalenter Funktionen.
DE60309931T2 (de) Verbindung mehrerer testzugriffsportsteuerungsvorrichtungen durch ein einzeltestzugriffsport
DE60316068T2 (de) Prüfverfahren und -gerät für Konfigurationsspeicherzellen in programmierbaren logischen Bauelementen (PLDS)
DE69628034T2 (de) Hochimpedanzmodus für jtag
DE19943941A1 (de) Programmierbare JTAG-Netzwerkarchitektur zum Unterstützen eines proprietären Debug-Protokolls
DE102004053559A1 (de) Drahtloses, berührungsloses Testen von integrierten Schaltungen
DE19729163A1 (de) System und Verfahren zur Abtaststeuerung einer programmierbaren Sicherungsschaltung in einer integrierten Schaltung
DE4243910A1 (de) Aufgeteiltes Grenzabtasttesten zum Vermindern des durch Testen hervorgerufenen Schadens
DE3520003A1 (de) Elektrisch programmierbare verknuepfungsmatrix
DE69912545T2 (de) Schaltkreis mit einer einheit zum testen von verbindungen und ein verfahren zum testen von verbindungen zwischen einem ersten und zweiten elektronischen schaltkreis
DE69433542T2 (de) Prüfung, sequenziellogischer Schaltung auf grund einer kombinatorischen Logikschaltungsveränderung
DE68927984T2 (de) Logikschaltung mit einer Prüffunktion
DE10231956A1 (de) Verfahren und Vorrichtung zur systeminternen Programmierung durch einen gemeinsamen Verbindungspunkt von programmierbaren logischen Bauelementen auf mehreren Schaltungsplatinen eines Systems

Legal Events

Date Code Title Description
8364 No opposition during term of opposition