-
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.