DE112022001867T5 - Daten-gating unter verwendung von abtastfreigabe-pins - Google Patents

Daten-gating unter verwendung von abtastfreigabe-pins Download PDF

Info

Publication number
DE112022001867T5
DE112022001867T5 DE112022001867.4T DE112022001867T DE112022001867T5 DE 112022001867 T5 DE112022001867 T5 DE 112022001867T5 DE 112022001867 T DE112022001867 T DE 112022001867T DE 112022001867 T5 DE112022001867 T5 DE 112022001867T5
Authority
DE
Germany
Prior art keywords
input
data input
memory element
clock
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.)
Pending
Application number
DE112022001867.4T
Other languages
English (en)
Inventor
Rajeev Kumar
Chandan Shantharaj
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.)
Apple Inc
Original Assignee
Apple 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 Apple Inc filed Critical Apple Inc
Publication of DE112022001867T5 publication Critical patent/DE112022001867T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318536Scan chain arrangements, e.g. connections, test bus, analog signals
    • 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/318552Clock circuits details
    • 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/3177Testing of logic operation, e.g. by logic analysers
    • 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
    • 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/318572Input/Output interfaces
    • 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/318594Timing aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Electronic Switches (AREA)

Abstract

Eine integrierte Schaltung (100) schließt ein Speicherelement (102) und eine Steuerschaltlogik (106, 110) ein. Die Steuerschaltlogik ist konfiguriert, um als Reaktion auf eine Abtastfreigabesteuerung zwischen einem Funktionsdateneingang und einem Abtastdateneingang auszuwählen, der als Eingang für das Speicherelement dienen soll, um das Umschalten eines Ausgangs des Speicherelements als Reaktion auf eine Taktfreigabesteuerung selektiv zu sperren, indem ein Taktsignal unterdrückt wird, das dem Speicherelement bereitgestellt wird, und um, während die Taktfreigabesteuerung angibt, dass der Ausgang des Speicherelements für das Umschalten gesperrt werden soll, auszuwählen, dass der Eingang des Speicherelements der Abtastdateneingang sein soll.

Description

  • GEBIET DER OFFENBARUNG
  • Die vorliegende Offenbarung bezieht sich allgemein auf integrierte Schaltungen und speziell auf Leistungsreduzierung von gattergesteuerten Taktschaltungen in einer integrierten Schaltung.
  • HINTERGRUND DER OFFENBARUNG
  • Um das Testverfahren für integrierte Schaltungen (ICs), die Millionen von Transistoren einschließen, zu vereinfachen, wird häufig ein Abtastmodus implementiert, wobei Flipflops der ICs in Reihe geschaltet werden, was eine einfache Abtastreihentestung von ansonsten komplexen Zustandsmaschinen ermöglicht. Für eine Zusammenfassung von Abtasttesttechniken siehe beispielsweise „Enhancing Testability of Large-Scale Integrated Circuits via Test Points and Additional Logic", IEEE Transactions on Computers, C-22(1), 46-60; M. Williams und J. Angell (doi: 10.1109/t-c. 1973.223600).
  • Um den dynamischen Leistungsverbrauch von ICs mit mehreren Millionen Transistoren zu reduzieren, wird oft Takt-Gating verwendet. In „Clock Gating - A Power Optimization Technique for VLSI Circuits“ (J. Shinde et. al., 2011 Annual IEEE India Conference, 16.-18. Dezember 2011; DOI 10.1109/INDCON.2011.6139440) untersuchen die Autoren die verschiedenen Takt-Gating-Techniken, die verwendet werden können, um die Leistung in VLSI-Schaltungen auf RTL-Ebene zu optimieren und erörtern verschiedene Probleme, die auftreten, wenn diese Leistungsoptimierungstechniken auf RTL-Ebene angewendet werden.
  • ZUSAMMENFASSUNG DER OFFENBARUNG
  • Eine hierin beschriebene Ausführungsform stellt eine integrierte Schaltung (IC) bereit, die ein Speicherelement und eine Steuerschaltlogik einschließt. Die Steuerschaltlogik ist konfiguriert, um als Reaktion auf eine Abtastfreigabesteuerung zwischen einem Funktionsdateneingang und einem Abtastdateneingang auszuwählen, der als Eingang für das Speicherelement dienen soll, um das Umschalten eines Ausgangs des Speicherelements als Reaktion auf eine Taktfreigabesteuerung selektiv zu sperren, indem ein Taktsignal unterdrückt wird, das dem Speicherelement bereitgestellt wird, und um, während die Taktfreigabesteuerung angibt, dass der Ausgang des Speicherelements für das Umschalten gesperrt werden soll, auszuwählen, dass der Eingang des Speicherelements der Abtastdateneingang sein soll.
  • In einigen Ausführungsformen schließt das Speicherelement einen oder mehrere Latches ein, und beim Auswählen des Abtastdateneingangs ist die Steuerschaltlogik konfiguriert, um zu verhindern, dass einer der Latches umschaltet, während der Ausgang für das Umschalten gesperrt ist, unabhängig davon, ob der Funktionsdateneingang umgeschaltet wird oder nicht. In einer beispielhaften Ausführungsform ist die Steuerschaltlogik konfiguriert, um ein Umschalten der Latches zu verhindern, ohne Latenz zu dem Funktionsdateneingang hinzuzufügen.
  • In einer offenbarten Ausführungsform ist durch Auswählen des Abtastdateneingangs, während die Taktfreigabesteuerung angibt, dass der Ausgang für das Umschalten gesperrt werden soll, die Steuerschaltlogik konfiguriert, um den Eingang für das Speicherelement auf einen konstanten Logikzustand einzustellen, unabhängig davon, ob der Funktionsdateneingang umschaltet oder nicht. In einer anderen Ausführungsform schließt die Steuerschaltlogik ein Logikgatter ein, das konfiguriert ist, um das Speicherelement als Reaktion darauf, dass die Taktfreigabesteuerung das Taktsignal sperrt, auf einen Abtastmodus einzustellen.
  • In noch einer anderen Ausführungsform schließt die Steuerschaltlogik ein Logikgatter ein, das konfiguriert ist, um den Eingang für das Speicherelement als Reaktion darauf, dass die Taktfreigabesteuerung das Taktsignal sperrt, auf einen konstanten Logikzustand einzustellen. In noch einer anderen Ausführungsform schließt das Speicherelement einen Latch ein, der durch eine Umkehrung des Taktsignals getaktet wird, und beim Auswählen des Abtastdateneingangs, während die Taktfreigabesteuerung angibt, dass der Ausgang für das Umschalten gesperrt werden soll, ist die Steuerschaltlogik konfiguriert, um einen Eingang des Latches auf einen konstanten Logikzustand einzustellen.
  • Es wird zusätzlich gemäß einer hierin beschriebenen Ausführungsform ein Verfahren in einer integrierten Schaltung (IC) bereitgestellt, die mindestens ein Speicherelement einschließt. Das Verfahren schließt das Auswählen, als Reaktion auf eine Abtastfreigabesteuerung, zwischen einem Funktionsdateneingang und einem Abtastdateneingang ein, der als Eingang für das Speicherelement dienen soll. Als Reaktion auf eine Taktfreigabesteuerung wird das Umschalten eines Ausgangs des Speicherelements selektiv durch Unterdrücken eines Taktsignals, das dem Speicherelement bereitgestellt wird, gesperrt. Während die Taktfreigabesteuerung angibt, dass der Ausgang des Speicherelements für das Umschalten gesperrt werden soll, wird der Eingang des Speicherelements als Abtastdateneingang ausgewählt.
  • Gemäß einer hierin beschriebenen Ausführungsform wird auch eine Vorrichtung bereitgestellt, die einen Prozessor einschließt, der (i) Abrufschaltlogik, die konfiguriert ist, um Anweisungen abzurufen, und (ii) Ausführungsschaltlogik einschließt, die konfiguriert ist, um Anweisungen auszuführen. Eine oder beide von der Abrufschaltlogik und der Ausführungsschaltlogik schließen ein Speicherelement und Steuerschaltlogik ein. Die Steuerschaltlogik ist konfiguriert, um als Reaktion auf eine Abtastfreigabesteuerung zwischen einem Funktionsdateneingang und einem Abtastdateneingang auszuwählen, der als Eingang für das Speicherelement dienen soll, um das Umschalten eines Ausgangs des Speicherelements als Reaktion auf eine Taktfreigabesteuerung selektiv zu sperren, indem ein Taktsignal unterdrückt wird, das dem Speicherelement bereitgestellt wird, und um, während die Taktfreigabesteuerung angibt, dass der Ausgang des Speicherelements für das Umschalten gesperrt werden soll, auszuwählen, dass der Eingang des Speicherelements der Abtastdateneingang sein soll.
  • Die vorliegende Offenbarung wird aus der folgenden ausführlichen Beschreibung ihrer Ausführungsformen zusammen mit den Zeichnungen besser verständlich, in denen Folgendes gezeigt wird:
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
    • 1 ist ein Blockdiagramm, das schematisch die Struktur einer integrierten Schaltung (IC) gemäß einer hierin beschriebenen Ausführungsform veranschaulicht;
    • 2 ist ein Blockdiagramm, das schematisch die Struktur eines D-Flipflops (DFF), das mit einer Abtastschaltung und einem Taktgatter gekoppelt ist, gemäß einer Ausführungsform, die hierin beschriebenen ist, veranschaulicht;
    • 3 ist ein Blockdiagramm, das schematisch eine Struktur eines Computers gemäß einer hierin beschriebenen Ausführungsform veranschaulicht;
    • 4 ist ein Flussdiagramm, das schematisch ein Verfahren zur Leistungsverbrauchsreduzierung unter Verwendung von Daten-Gating gemäß einer hierin beschriebenen Ausführungsform veranschaulicht;
    • 5 ist ein Diagramm, das schematisch verschiedene Arten von Systemen, die beliebige der hierin erörterten Schaltungen, Vorrichtungen oder Systeme einschließen können, gemäß Ausführungsformen, die hierin beschrieben sind, veranschaulicht; und
    • 6 ist ein Blockdiagramm, das ein beispielhaftes nicht-transitorisches computerlesbares Speichermedium, das Schaltungsdesigninformationen speichert, gemäß einigen Ausführungsformen veranschaulicht.
  • DETAILLIERTE BESCHREIBUNG VON AUSFÜHRUNGSFORMEN Überblick
  • In der Regel schließen komplexe integrierte Schaltungen Speicherelemente ein, die jeweils konfiguriert sind, um einen Wert „logisch 1“ oder „logisch 0“ zu speichern. Im vorliegenden Zusammenhang bezieht sich der Begriff „Speicherelement“ auf Elemente wie Flipflops, Latches und dergleichen. Die hierin beschriebenen Ausführungsformen beziehen sich beispielhaft auf Flipflops, aber die offenbarten Techniken sind auf andere geeignete Arten von Speicherelementen anwendbar.
  • Es gibt eine Vielzahl von Flipflop-Typen, einschließlich beispielsweise getakteten und nicht getakteten Flipflops, R-S-Flipflops, J-K-Flipflops, T-Flipflops und anderen. Ein häufiger Typ von Flipflop, der in den integrierten Schaltungen von heute weit verbreitet ist, ist ein D-Flipflop (manchmal als DFF bezeichnet), der einen D-Eingang, einen Takteingang und einen Ausgang einschließt. Der DFF ist konfiguriert, um den logischen Wert zu speichern, der an seinem D-Eingang anliegt, wenn der Takteingang übergeht, z. B. von logisch low nach logisch high. In der nachstehenden Offenbarung verwenden wir in Beispielen die Begriffe „Flipflops“ und „DFFs“ manchmal austauschbar.
  • Um ein einfaches Testen von digitalen integrierten Schaltungen zu ermöglichen, kann Abtastschaltlogik zu einer Gruppe von DFFs in der integrierten Schaltung hinzugefügt werden. Ein externer Tester kann der Abtastschaltlogik einen Abtastmodus (oder eine Abtastfreigabe) angeben, wobei DFFs der Gruppe abgetastet werden sollten. Die Abtastschaltlogik ist konfiguriert, um als Reaktion auf die Abtastmodusangabe die DFFs in der Gruppe sequentiell zu verbinden (z. B. Reihenschaltung), sodass ein Abtasteingang von außerhalb der Gruppe der DFFs zwischen den DFFs der Gruppe von einem ersten DFF zu einem letzten DFF und von dem letzten DFF zu einem Abtasten-Aus-Ausgang der Gruppe der DFFs übergeben wird. (Wir beziehen uns im Folgenden auf zwei Modi zum Betrieb integrierter Schaltungen - den vorstehend beschriebenen Abtastmodus und einen Funktionsmodus, bei dem die Abtastschaltlogik nicht in Betrieb ist und die DFFs Funktionseingänge anstelle von Abtasteingängen empfangen.)
  • Wir bezeichnen ferner nachstehend logisch low bzw. logisch high als „low“ bzw. „high“; wir bezeichnen einen Übergang von low zu high als steigende Flanke (oder „posedge“) und einen Übergang von high zu low als fallende Flanke (oder „negedge“). Es versteht sich, dass low und high nicht notwendigerweise Spannungspegel darstellen; beispielsweise können sich low und high in einigen Logikfamilien auf Stromrichtungen beziehen; darüber hinaus stellt in einigen Logikfamilien low eine Spannung dar, die höher als der durch high dargestellte Spannungspegel (z. B. in negativer Logik) ist.
  • Ein DFF schließt üblicherweise einen primären Latch und einen sekundären Latch ein. In einem posedge-getriggerten DFF übergibt der primäre Latch den D-Eingang des DFF an einen Eingang des sekundären Latches, wenn der Takteingang low ist, und hält den Wert des D-Eingangs bei einer steigenden Taktflanke; der sekundäre Latch übergibt den Ausgang des primären Latches an den DFF-Ausgang, wenn der Takteingang high ist, und hält den Wert des primären Latches bei einer fallenden Taktflanke. Umgekehrt, in einem negedge-getriggerten DFF, übergibt der primäre Latch den Eingang, wenn der Takt high ist, und hält bei einem negedge-Takt, während der sekundäre Latch den Ausgang des primären übergibt, wenn der Takt low ist, und den Ausgang bei einer steigenden Taktflanke hält. (Es ist zu beachten, dass die primären und sekundären Latches in einer Weise arbeiten können, die von Fachleuten auch als „Master“ (d. h. primär) und „Slave“ (d. h. sekundär) bezeichnet werden. Während hierin die Terminologie „primär/sekundär“ verwendet wird, ist es ausdrücklich beabsichtigt, dass die Begriffe „primär“ und „sekundär“ so ausgelegt werden, dass sie diese Entsprechungen umfassen.)
  • Integrierte Schaltungen mit hoher Dichte können Millionen von DFFs einschließen, und das Umschalten der Takteingänge der DFFs ist ein wesentlicher beitragender Faktor für den Leistungsverbrauch der integrierten Schaltung. Eine gängige Technik, um den Leistungsverbrauch zu reduzieren, ist das Takt-Gating, wobei das Taktsignal in Abschnitten der Schaltung, die nicht verwendet werden, gesperrt ist. Das Takt-Gating spart Leistung, indem der Taktbaum beschnitten wird, zu dem Preis, dass einer Schaltung mehr Logik hinzugefügt wird.
  • Wenn der Takt eines DFF gesperrt ist, wird der Takteingang des DFF in der Regel auf einen Logikpegel eingestellt, bei dem der primäre Latch transparent ist (d. h. er übergibt den D-Eingang an den sekundären Latch), jedoch den Logikwert nicht hält, während der sekundäre Latch den letzten Wert, den der primäre Latch bei der fallenden Taktflanke ausgegeben hat, speichert (z. B. wird der Takt für posedge-getriggerte DFFs auf low eingestellt). Somit wird, wenn der sekundäre Latch nicht umschaltet, die Leistungsdissipation erheblich reduziert. (Der sekundäre Latch treibt in der Regel Logikschaltlogik an und lädt und entlädt beim Umschalten zusätzliche Knoten, was zu einer signifikanten Leistungsdissipation führt.)
  • Wenn jedoch der primäre Latch transparent ist, schaltet er in der Regel um, wenn der D-Eingang umschaltet, obwohl der Takt des DFF gesperrt sein kann und die Änderungen am D-Eingang am Ausgang des sekundären Latches nicht sichtbar sind. Somit kann, obwohl der Takt eines DFF gesperrt ist, das Umschalten des primären Latches immer noch zu einem erheblichen Leistungsverbrauch führen.
  • Ausführungsformen, die hierin beschrieben werden, stellen Vorrichtungen und Verfahren bereit, bei denen Daten-Gating zusätzlich zu dem Takt-Gating der taktgesperrten DFFs verwendet wird, um den Leistungsverbrauch von taktgesperrten DFFs weiter zu reduzieren. In einigen Ausführungsformen ist Steuerschaltlogik konfiguriert um als Reaktion auf einen Taktsperreingang den Abtastfreigabeeingang, der konstant ist, wenn keine Abtastung angegeben wird, an den Eingang des entsprechenden DFF zu lenken, wobei der DFF-Eingang auf einen konstanten Logikpegel eingestellt wird. Somit werden, wenn der Takt gesperrt ist, sowohl der Dateneingang als auch der Takteingang gattergesteuert, was zu einer erheblichen Reduzierung des Leistungsverbrauchs der integrierten Schaltung führen kann.
  • Darüber hinaus fügt die offenbarte Steuerschaltlogik keine Logik im Funktionsdatenpfad hinzu, z. B. vor dem Funktionseingang des Flipflops. Somit verursachen die offenbarten Techniken keine zusätzliche Latenz und verschlechtern nicht den erreichbaren Datendurchsatz oder die erreichbare Taktgeschwindigkeit.
  • Systembeschreibung
  • 1 ist ein Blockdiagramm, das schematisch die Struktur einer integrierten Schaltung (IC) 100 gemäß einer hierin beschriebenen Ausführungsform veranschaulicht. Die IC 100 kann eine beliebige geeignete Art von IC einschließen, die konfiguriert ist, um eine beliebige geeignete Funktion auszuführen, z. B. einen Mikroprozessor, einen Videoprozessor oder eine beliebige andere. Die IC schließt eine Gruppe von Dual-Latch-D-Typ-Flipflops (DFFs) 102 ein, die einen gemeinsamen Takteingang (als „Takt“ bezeichnet) und kombinatorische Logikschaltlogik 104, die konfiguriert ist, um Funktionseingänge an die DFFs 102 als Reaktion auf die gespeicherten Daten in den DFFs (und möglicherweise als Reaktion auf andere Eingänge) zu erzeugen, gemeinsam nutzen. Jedes DFF schließt einen Takteingang („CLK“), einen D-Eingang und einen Q-Ausgang ein (in Ausführungsformen kann DFF 102 andere Eingänge, z. B. Reset, einschließen).
  • Es versteht sich, dass integrierte Schaltungen gemäß einigen Ausführungsformen mehrere Takteingänge und mehrere Gruppen von DFFs einschließen können, wobei die DFFs jeder Gruppe einen der mehreren Takteingänge gemeinsam nutzen. In einigen Ausführungsformen kann die IC 100 andere Logik einschließen, wie nicht getaktete Flipflops, Speicher, analoge Schaltungen und andere. Aus Gründen der Klarheit werden wir uns im Folgenden jedoch auf eine Ausführungsform beziehen, bei der die IC 100 einen einzelnen Takt einschließt, und wir werden Schaltlogik ignorieren, die nicht mit der Gruppe der DFFs in Zusammenhang steht, wie Speicher, analoge Subsysteme und dergleichen.
  • Gemäß der in 1 veranschaulichten beispielhaften Ausführungsform schließt IC 100 Abtastschaltungen 106 ein, wobei jede Abtastschaltung mit einer jeweiligen DFF 102 gekoppelt ist und konfigurierbar ist, um als Reaktion auf einen Abtastfreigabeeingang entweder einen Funktionseingang (Ausgang aus kombinatorischer Logikschaltlogik 104) oder einen Abtasteingang an den D-Eingang des DFF zu übertragen.
  • DFFs 102 sind in der Weise einer Reihenschaltung miteinander gekoppelt, sodass der Abtasteingang der Abtastschaltung, die mit einem ersten DFF gekoppelt ist, mit einem ABTASTEN-EIN-Eingang der IC 100 gekoppelt ist, der Abtasteingang der Abtastschaltung, die mit einem zweiten DFF gekoppelt ist, mit dem Q-Ausgang des ersten DFF gekoppelt ist und so weiter. Der Q-Ausgang eines letzten DFF ist mit einem ABTASTEN-AUS-Ausgang der IC gekoppelt. (In einigen Ausführungsformen sind ABSTASTEN-EIN und/oder ABTASTEN-AUS keine Eingänge/Ausgänge der IC 100; stattdessen kann Abtasten-ein von einer eingebauten Selbsttestschaltung (BIST-Schaltung) in der IC 100 eingegeben und/oder ABTASTEN-AUS kann an diese ausgegeben werden.)
  • Die IC 100 schließt ferner eine Taktsperrschaltlogik 108 ein, die konfiguriert ist, um die Takteingänge der DFFs 102 zu sperren, die inaktiv sein können. Eine Taktgatterschaltung 110 ist mit jedem DFF 102 gekoppelt; die Taktgatterschaltung ist konfiguriert, um den Takteingang der DFF als Reaktion auf eine Taktsperrsteuerung zu sperren, die von der Taktsperrschaltlogik 108 ausgegeben wird, beispielsweise durch Anlegen eines konstanten logischen Low an den Takteingang der DFF. Wie vorstehend erläutert, verhindert dies, dass der sekundäre Latch des DFF 102 umschaltet und reduziert somit den Leistungsverbrauch.
  • Gemäß der in 1 veranschaulichten beispielhaften Ausführungsform wird zusätzlich zum Takt-Gating Daten-Gating verwendet, um zu verhindern, dass der primäre Latch (zusätzlich zu dem sekundären Latch) umschaltet. (Eine beispielhafte interne Struktur des Doppel-Latch-Flipflops 102, die die primären und sekundären Latches zeigt, ist in 2 unten dargestellt.) Die Abtastschaltung 106 ist konfiguriert, um als Reaktion auf den Taktsperreingang einen konstanten Logikpegel (z. B. low) an den D-Eingang des entsprechenden DFF zu senden. Infolgedessen schaltet der primäre Latch nicht um, und es wird eine zusätzliche Leistungsreduzierung erreicht (in Ausführungsformen sendet die Abtastschaltung als Reaktion auf den Taktsperreingang den Abtastfreigabeeingang, der im Funktionsmodus konstant low ist, an den D-Eingang des DFF).
  • Es versteht sich, dass die Struktur von IC 100, die in 1 veranschaulicht und vorstehend beschrieben ist, eine beispielhafte Ausführungsform ist, die der Klarheit halber angeführt wird. In einigen Ausführungsformen können alternative Strukturen verwendet werden. Beispielsweise können die Abtastschaltungen auch verwendet werden, um die DFFs auf einen bekannten Zustand einzustellen; andere Arten von Flipflops können verwendet werden; und mehr als eine Abtastkette kann in der IC implementiert sein.
  • Im vorliegenden Zusammenhang werden die Abtastschaltung 106 und die Takt-Gating-Schaltung 110 gemeinsam als „Steuerschaltlogik“ bezeichnet, die die offenbarte Technik ausführt, obwohl in anderen Ausführungsformen Steuerschaltlogik zum Implementieren der offenbarten Technik unter Verwendung von anderen Schaltungen oder einer anderen Organisation als in 1 implementiert werden kann. Im vorliegenden Zusammenhang werden die Begriffe „Taktfreigabeeingang“ und „Taktsperreingang" austauschbar zum Bezeichnen eines Signals verwendet, das steuert, ob der Takt freigegeben oder gesperrt wird.
  • 2 ist ein Blockdiagramm, das schematisch die Struktur eines DFF 102, das mit einer Abtastschaltung 106 und einem Taktgatter 110 gekoppelt ist, gemäß einer hierin beschriebenen Ausführungsform veranschaulicht. DFF 102, Abtastschaltung 106 und Taktgatter 110, die unter Bezugnahme auf 1 erörtert wurden, werden hierin gemäß der in 2 veranschaulichten beispielhaften Ausführungsform ausführlicher beschrieben. Wie nachstehend erwähnt, veranschaulicht 2 die logische Funktion von Ausführungsformen der Abtastschaltung 106 und des Taktgatters 110 als UND- und ODER-Gatter zur Vereinfachung der Darstellung. Es wird jedoch darauf hingewiesen, dass eine beliebige geeignete Schaltungsstruktur verwendet werden kann, um die veranschaulichte Funktionalität zu implementieren.
  • Das DFF 102 schließt zwei Latches ein - einen primären Latch 202 und einen sekundären Latch 204. Der primäre Latch übergibt den D-Eingang des DFF an den Eingang des sekundären Latches, wenn der Takteingang low ist, und hält den Wert des D-Eingangs bei einer steigenden Taktflanke. Der sekundäre Latch übergibt den Ausgang des primären Latches an den DFF-Ausgang, wenn der Takteingang high ist, und hält den Wert des primären Latches bei einer fallenden Taktflanke.
  • Der Takteingang des DFF 102, der von dem primären Latch 202 und dem sekundären Latch 204 gemeinsam genutzt wird, wird durch das Taktgatter 110 erzeugt. Gemäß der in 2 veranschaulichten beispielhaften Ausführungsform ist das Taktgatter 110 ein UND-Gatter, das den Takteingang an den DFF-Takteingang übergibt, wenn ein Taktfreigabeeingang high ist, und den Takteingang des DFF auf low einstellt, wenn die Taktfreigabe low ist, wodurch verhindert wird, dass der sekundäre Latch umschaltet.
  • Die Abtastschaltung 106 schließt einen Multiplexer 206 ein, der konfiguriert ist, um eine Quelle für den D-Eingang des DFF 102 auszuwählen, ein UND-Gatter 208, das konfiguriert ist, um die Abtastdaten gatterzusteuern, einen Wechselrichter 209 und ein ODER-Gatter 210, das konfiguriert ist, um anzugeben, an welche Quelle der Multiplexer 206 den D-Eingang des DFF 102 senden soll.
  • Im Abtastmodus ist der Abtastfreigabeeingang high, das UND-Gatter 208 gibt die Abtastdaten aus, das ODER-Gatter 210 gibt logisch high aus, was bewirkt, dass der Multiplexer 206 den Ausgang des UND-Gatters 208 an den D-Eingang des DFF 102 überträgt. Somit ist ein Abtastpfad konfiguriert, und der Abtasteingang übergibt über das DFF 102 den Q-Ausgang (und daher an den Abtasteingang der Abtastschaltung der nächsten DFF-Stufe, wie in 1 veranschaulicht). Im Funktionsmodus ist der Abtastfreigabeeingang low, und wenn der Taktfreigabeeingang high ist, überträgt der Multiplexer 206 den Funktionseingang an den D-Eingang des DFF 202.
  • Wenn die Taktfreigabe im Funktionsmodus jedoch low ist, gibt das ODER-Gatter 210 an, dass der Multiplexer 206 den Ausgang des UND-Gatters 208 an den D-Eingang des DFF 102 übertragen soll. Da der Abtastfreigabeeingang nun low ist, gibt der Wechselrichter 209 ein High aus und das UND-Gatter 208 gibt ein Low aus, der D-Eingang des DFF 102 ist low, und somit schaltet der primäre Latch 202 nicht um, unabhängig vom einem etwaigen Umschalten beim Funktionseingang, was zu einer weiteren Reduzierung des Leistungsverbrauchs führt.
  • Es versteht sich, dass die Struktur des DFF 102, der Abtastschaltung 106 und des Taktgatters 110, in 2 veranschaulicht und vorstehend beschrieben, beispielhaft angeführt sind. In alternativen Ausführungsformen können verschiedene geeignete Strukturen verwendet werden. Beispielsweise können De-Morgan-Äquivalente der veranschaulichten Gatter verwendet werden. In einigen Ausführungsformen können die Abtastfreigabe- und/oder die Taktfreigabeeingänge aktiv low sein. In Ausführungsformen können andere Arten von DFFs verwendet werden, und in einigen Ausführungsformen können einige oder alle DFFs durch andere Arten von Flipflops, z. B. T-Flipflops, ersetzt werden.
  • In dem vorliegenden Beispiel dienen die verschiedenen Elemente von 2, die nicht das Flipflop 102 sind (Abtastschaltung 106 und Taktgatter 110) als Steuerschaltlogik, die die offenbarte Technik ausführt. In alternativen Ausführungsformen kann die Steuerschaltlogik eine beliebige andere geeignete Konfiguration aufweisen.
  • 3 ist ein Blockdiagramm, das schematisch die Struktur eines Computers 300 gemäß einer hierin beschriebenen Ausführungsform veranschaulicht. Der Computer 300 schließt eine zentrale Verarbeitungseinheit (CPU) 304 und einen Speicher 306 ein. Die CPU schließt eine Anweisungsabrufschaltung 308 ein, die konfiguriert ist, um Anweisungen (z. B. aus dem Speicher 306) abzurufen und zu decodieren, und eine Anweisungsausführungsschaltung 310, die konfiguriert ist, um die decodierten Anweisungen auszuführen.
  • Ein Benutzer kann mit dem Computer 300 über eine Anzeigevorrichtung und eine oder mehrere Eingabevorrichtungen, im vorliegenden Beispiel ein Anzeige-/Tastatur-/Maussubsystem 312, interagieren. Es versteht sich, dass der Computer 300 eine Vielzahl von CPUs sowie zahlreiche andere Komponenten einschließen kann, einschließlich beispielsweise Verschlüsselungs-/Entschlüsselungseinheiten, Grafikprozessoren, Netzwerkschnittstellenschaltungen, analoger Schaltungen und drahtloser Schnittstelleneinheiten.
  • Eine Anweisungsabrufschaltung 308 und eine Anweisungsausführungsschaltung 310 schließen mehrere Flipflops ein, wie beispielsweise die Flipflops 102 von 1 und 2. Gemäß der in 3 veranschaulichten beispielhaften Ausführungsform schließt die CPU 304 eine Abtastkette 316 ein, die mindestens einige der Flipflops in der Anweisungsabrufschaltung 308 und in der Anweisungsausführungsschaltung 310 (und/oder zusätzlichen Logikschaltungen, die die CPU 300 einschließen kann) abdeckt. Die Abtastkette schließt Abtastschaltungen (z. B. Abtastschaltung 106, 2) ein, die konfiguriert sind, um die jeweiligen Flipflops in einem Abtastmodus zu betreiben, und, wenn der Takt an die entsprechenden Flipflops gesperrt ist, den D-Eingang der Flipflops auf einen konstanten Logikpegel einzustellen, beispielsweise durch Leiten des Abtastfreigabeeingangs an den D-Eingang des Flipflops.
  • 4 ist ein Flussdiagramm, das schematisch ein Verfahren 400 zur Leistungsverbrauchsreduzierung unter Verwendung von Daten-Gating gemäß einer hierin beschriebenen Ausführungsform veranschaulicht. Das Flussdiagramm wird durch Taktgatter 110 und Abtastschaltungen 106 (1) ausgeführt. Jede/s der Abtastschaltungen und der Taktgatter führt den Fluss unabhängig von den anderen Abtastschaltungen und Taktgattern aus.
  • Das Flussdiagramm beginnt bei einer Abtastfreigabe-prüfen-Stufe 402, bei der die Abtastschaltung prüft, ob die Abtastfreigabe angegeben wird. Wenn ja, tritt das Flussdiagramm in eine Abtastung-zu-Flipflop-leiten-Stufe 404 ein, bei der die Abtastschaltung den Abtasten-ein-Eingang an den D-Eingang von DFF 102 leitet, der Abtasttest der DFFs eingeleitet wird und das Flussdiagramm endet.
  • Wenn in Stufe 402 keine Abtastfreigabe angegeben wird, treten das Taktgatter und der Abtastschaltkreis in eine Taktfreigabe-prüfen-Stufe 406 ein und prüfen, ob der Takt des entsprechenden DFF freigegeben ist. Wenn ja, treten das Taktgatter und die Abtastschaltung in eine Funktionsbetriebsstufe 408 ein, bei der der Abtastmodus gesperrt ist und der Takt nicht gattergesteuert ist, und dann endet das Flussdiagramm.
  • Wenn in Stufe 406 der Takt nicht freigegeben ist, leitet die Abtastschaltung in einer Abtasteingang-zu-Flipflop-leiten-Stufe 410 den Abtasteingang (der im Funktionsmodus auf low eingestellt ist) zum D-Eingang von DFF 102, sodass der primäre Latch des DFF nicht umschaltet. Als Nächstes stellt das Taktgatter 110 in „Flipflop-Takt auf low erzwingen“ den Takteingang des Flipflops auf low ein, wodurch verhindert wird, dass der sekundäre Latch umschaltet.
  • Somit sind gemäß dem in 4 veranschaulichten und vorstehend beschriebenen Verfahren ein Taktgatter und eine Abtastschaltung betreibbar, um als Reaktion auf eine Abtastmodusangabe (Abtastfreigabe high) den Abtasteingang zum D-Eingang des entsprechenden Flipflops zu leiten; und als Reaktion auf eine Taktsperrangabe (Taktfreigabe bei low), i) einen konstanten low-Pegel an dem Takteingang des Flipflops zu erzwingen, um zu verhindern, dass der sekundäre Latch umschaltet, und ii) den Abtastfreigabeeingang, der im Funktionsmodus low ist, zum D-Eingang des Flipflops zu leiten, um zu verhindern, dass der primäre Latch umschaltet.
  • 5 ist ein Diagramm 500, das schematisch verschiedene Arten von Systemen veranschaulicht, die eine der vorstehend erörterten Schaltungen, Vorrichtungen oder Systeme gemäß hierin beschriebenen Ausführungsformen einschließen können. Das System oder die Vorrichtung 500, das/die eine oder mehrere der hierin beschriebenen Techniken beinhalten oder anderweitig nutzen kann, kann in einem breiten Spektrum von Bereichen eingesetzt werden. Beispielsweise kann das System oder die Vorrichtung 500 als Teil der Hardware von Systemen wie einem Desktop-Computer 510, einem Laptop-Computer 520, einem Tablet-Computer 530, einem Handy oder Mobiltelefon 540 oder einem Fernseher 550 (oder einer mit einem Fernseher gekoppelten Set-Top-Box) verwendet werden.
  • In ähnlicher Art und Weise können die offenbarten Elemente in einer am Körper zu tragenden Vorrichtung 560, wie einer Smartwatch oder einer Vorrichtung zur Überwachung der Gesundheit, verwendet werden. Smartwatches können in vielen Ausführungsformen eine Vielzahl verschiedener Funktionen erfüllen, beispielsweise Zugriff auf E-Mails, Mobilfunkdienste, Kalender, Gesundheitsüberwachung usw. Eine am Körper zu tragende Vorrichtung kann auch so konzipiert sein, dass sie ausschließlich Gesundheitsüberwachungsfunktionen ausführt, wie das Überwachen der Lebenszeichen eines Benutzers, das Durchführen epidemiologischer Funktionen wie die Ermittlung von Kontaktpersonen, das Bereitstellen von Kommunikation mit einem medizinischen Notdienst usw. Es sind auch andere Arten von Vorrichtungen denkbar, einschließlich Vorrichtungen, die am Hals getragen werden, Vorrichtungen, die in den menschlichen Körper implantiert werden können, Brillen oder Helme, die computergenerierte Realitätserfahrungen bieten, wie solche, die auf erweiterter und/oder virtueller Realität basieren, usw.
  • Das System oder die Vorrichtung 500 kann auch in verschiedenen anderen Zusammenhängen verwendet werden. Beispielsweise kann das System oder die Vorrichtung 500 im Zusammenhang mit einem Server-Computersystem verwendet werden, wie einem dedizierten Server oder auf gemeinsam genutzter Hardware, die einen Cloud-basierten Dienst 570 implementiert. Darüber hinaus kann das System oder die Vorrichtung 500 in einem breiten Spektrum von spezialisierten, alltäglichen Vorrichtungen implementiert werden, einschließlich von im Haushalt üblichen Vorrichtungen 580 wie Kühlschränken, Thermostaten, Sicherheitskameras usw. Die Vernetzung solcher Vorrichtungen wird oft als das „Internet der Dinge“ (IoT) bezeichnet. Die Elemente können auch in verschiedenen Transportmitteln implementiert werden. Das System oder die Vorrichtung 500 könnte beispielsweise in den Steuersystemen, Leitsystemen, Unterhaltungssystemen usw. verschiedener Typen von Fahrzeugen 590 eingesetzt werden.
  • Die in 5 veranschaulichten Anwendungen sind lediglich beispielhaft und sollen die möglichen zukünftigen Anwendungen der offenbarten Systeme oder Vorrichtungen nicht einschränken. Andere Anwendungsbeispiele schließen ohne Einschränkung Folgendes ein: tragbare Spielvorrichtungen, Musikabspielgeräte, Datenspeichervorrichtungen, unbemannte Luftfahrzeuge usw.
  • In der vorliegenden Offenbarung wurden oben verschiedene beispielhafte Schaltungen ausführlich beschrieben. Es ist beabsichtigt, dass die vorliegende Offenbarung nicht nur Ausführungsformen abdeckt, die eine derartige Schaltlogik einschließen, sondern auch ein computerlesbares Speichermedium, das Designinformationen einschließt, die eine derartige Schaltlogik spezifizieren. Dementsprechend soll die vorliegende Offenbarung Ansprüche unterstützen, die nicht nur eine Einrichtung abdecken, welche die offenbarten Schaltlogiken einschließt, sondern auch ein Speichermedium, das die Schaltlogik in einem Format spezifiziert, das von einem Produktionssystem erkannt wird, das zur Herstellung von Hardware konfiguriert ist (z. B. eine integrierte Schaltung), welche die offenbarte Schaltlogik einschließt. Ansprüche auf ein derartiges Speichermedium sollen zum Beispiel eine Entität abdecken, die ein Schaltungsdesign erzeugt, jedoch das Design nicht selbst produziert.
  • 6 ist ein Blockdiagramm, das ein beispielhaftes nicht-transitorisches computerlesbares Speichermedium, das Schaltungsdesigninformationen speichert, gemäß einigen Ausführungsformen veranschaulicht. In der veranschaulichten Ausführungsform ist ein Halbleiterherstellungssystem 620 konfiguriert, um die auf dem nicht-transitorischen computerlesbaren Medium 610 gespeicherten Designinformationen 615 zu verarbeiten und eine integrierte Schaltung 830 auf Grundlage der Designinformationen 615 herzustellen.
  • Das nicht-transitorische computerlesbare Speichermedium 610 kann eine beliebige von verschiedenen geeigneten Arten von Speichervorrichtungen oder Speicherungsvorrichtungen einschließen. Das nicht-transitorische computerlesbare Speichermedium 610 kann ein Installationsmedium, z. B. eine CD-ROM, Disketten oder eine Bandvorrichtung; ein Computersystemspeicher oder Direktzugriffsspeicher, wie DRAM, DDR-RAM, SRAM, EDO-RAM, Rambus-RAM usw.; ein nicht-flüchtiger Speicher, wie ein Flash-Speicher, Magnetmedien, z. B. eine Festplatte oder eine optische Speicherung; Register oder andere ähnliche Typen von Speicherelementen usw. sein. Das nicht-transitorische computerlesbare Speichermedium 610 kann auch andere Typen von nichttransitorischem Speicher oder Kombinationen davon einschließen. Das nicht-transitorische computerlesbare Speichermedium 810 kann zwei oder mehr Speichermedien einschließen, die sich an unterschiedlichen Positionen befinden können, z. B. in unterschiedlichen Computersystemen, die über ein Netzwerk verbunden sind.
  • Die Designinformationen 615 können unter Verwendung von beliebigen von verschiedenen geeigneten Computersprachen spezifiziert werden, einschließlich Hardwarebeschreibungssprachen, wie ohne Einschränkung: VHDL, Verilog, SystemC, SystemVerilog, RHDL, M, MyHDL usw. Die Designinformationen 615 können von dem Halbleiterherstellungssystem 620 verwendet werden, um mindestens einen Abschnitt der integrierten Schaltung 630 herzustellen. Das Format der Designinformationen 815 kann von mindestens einem Halbleiterherstellungssystem 620 erkannt werden. In einigen Ausführungsformen können die Designinformationen 615 auch eine oder mehrere Zellbibliotheken einschließen, die die Synthese, das Layout oder beides der integrierten Schaltung 630 spezifizieren. In einigen Ausführungsformen sind die Designinformationen ganz oder teilweise in der Form einer Netzliste spezifiziert, welche die Zellbibliothekelemente und deren Konnektivität spezifiziert. Die Designinformationen 615 können, für sich genommen, ausreichende Informationen für die Herstellung einer entsprechenden integrierten Schaltung einschließen, müssen es aber nicht. Beispielsweise können die Designinformationen 815 die herzustellenden Schaltungselemente, jedoch nicht deren physisches Layout, spezifizieren. In diesem Fall müssen die Designinformationen 815 möglicherweise mit Layoutinformationen kombiniert werden, um die spezifizierte Schaltlogik tatsächlich herzustellen.
  • Die integrierte Schaltung 630 kann in verschiedenen Ausführungsformen eine oder mehrere benutzerdefinierte Makrozellen, wie Speicher, Analog- oder Mischsignalschaltungen und dergleichen, einschließen. In solchen Fällen können die Designinformationen 615 Informationen in Bezug auf enthaltene Makrozellen einschließen. Solche Informationen können, ohne darauf beschränkt zu sein, eine Schemaerfassungsdatenbank, Maskendesigndaten, Verhaltensmodelle und Netzlisten auf Vorrichtungs- oder Transistorebene einschließen. Wie hierin verwendet, können Maskendesigndaten gemäß dem Grafikdatensystem (GDSII) oder einem beliebigen anderen geeigneten Format formatiert werden.
  • Das Halbleiterherstellungssystem 620 kann ein beliebiges von verschiedenen geeigneten Elementen einschließen, die konfiguriert sind, um integrierte Schaltungen herzustellen. Dies kann beispielsweise Elemente zum Abscheiden von Halbleitermaterialien (z. B. auf einem Wafer, was eine Maskierung einschließen kann), Entfernen von Materialien, Ändern der Form abgeschiedener Materialien, Modifizieren von Materialien (z. B. durch Dotieren von Materialien oder Modifizieren dielektrischer Konstanten unter Verwendung von ultravioletter Bearbeitung) usw. einschließen. Das Halbleiterherstellungssystem 820 kann auch konfiguriert sein, um verschiedene Tests von hergestellten Schaltungen auf ihre korrekte Funktion durchzuführen.
  • In verschiedenen Ausführungsformen ist die integrierte Schaltung 630 konfiguriert, um gemäß einem durch die Designinformationen 615 spezifizierten Schaltungsdesign zu arbeiten, was ein Durchführen einer beliebigen der hierin beschriebenen Funktionalitäten einschließen kann. Beispielsweise kann die integrierte Schaltung 630 beliebige von verschiedenen in 1, 2, 3 und 5 gezeigten Elementen einschließen. Ferner kann die integrierte Schaltung 630 konfiguriert sein, um verschiedene hierin beschriebene Funktionen in Verbindung mit anderen Komponenten durchzuführen. Ferner kann die hierin beschriebene Funktionalität durch mehrere verbundene integrierte Schaltungen durchgeführt werden.
  • Wie hierin verwendet, impliziert ein Ausdruck der Form „Designinformationen, die ein Design einer Schaltung spezifizieren, die konfiguriert ist, um zu ...“ nicht, dass die betreffende Schaltung hergestellt werden muss, damit das Element erfüllt wird. Vielmehr gibt dieser Ausdruck an, dass die Designinformationen eine Schaltung beschreiben, die nach der Fertigung dazu konfiguriert wird, die angegebenen Aktionen auszuführen, oder die spezifizierten Komponenten einzuschließen.
  • Die vorliegende Offenbarung schließt Bezugnahmen auf „eine“ Ausführungsform oder Gruppen von „Ausführungsformen“ (z. B. „einige Ausführungsformen“ oder „verschiedene Ausführungsformen“) ein. Ausführungsformen sind verschiedene Implementierungen oder Instanzen der offenbarten Konzepte. Bezugnahmen auf „Ausführungsform“, „eine Ausführungsform“, „eine bestimmte Ausführungsform“ und dergleichen beziehen sich nicht notwendigerweise auf die gleiche Ausführungsform. Eine große Anzahl möglicher Ausführungsformen wird in Betracht gezogen, einschließlich der speziell offenbarten, sowie Modifikationen oder Alternativen, die in das Wesen oder den Schutzumfang der Offenbarung fallen.
  • Diese Offenbarung kann potenzielle Vorteile erörtern, die sich aus den offenbarten Ausführungsformen ergeben können. Nicht alle Implementierungen dieser Ausführungsformen weisen notwendigerweise beliebige oder alle potenziellen Vorteile auf. Ob ein Vorteil für eine bestimmte Implementierung erreicht wird, hängt von vielen Faktoren ab, von denen einige außerhalb des Schutzumfangs dieser Offenbarung liegen. Tatsächlich gibt es eine Reihe von Gründen dafür, warum eine Implementierung, die innerhalb des Schutzumfangs der Ansprüche fällt, möglicherweise einige oder alle der offenbarten Vorteile nicht aufweist. Zum Beispiel könnte eine bestimmte Implementierung eine andere Schaltlogik außerhalb des Schutzumfangs der Offenbarung einschließen, die in Verbindung mit einer der offenbarten Ausführungsformen einen oder mehrere der offenbarten Vorteile aufhebt oder verringert. Des Weiteren könnte auch eine suboptimale Designausführung einer bestimmten Implementierung (z. B. Implementierungstechniken oder -werkzeuge) offenbarte Vorteile aufheben oder verringern. Selbst unter der Annahme einer qualifizierten Implementierung kann die Erreichung von Vorteilen weiterhin von anderen Faktoren, wie den Umgebungsumständen, in denen die Implementierung bereitgestellt wird, abhängen. Zum Beispiel können Eingaben, die einer bestimmten Implementierung bereitgestellt werden, verhindern, dass ein oder mehrere Probleme, die in dieser Offenbarung behandelt werden, bei einer bestimmten Gelegenheit auftreten, wodurch der Vorteil seiner Lösung möglicherweise nicht erreicht wird. Aufgrund des Vorhandenseins möglicher Faktoren außerhalb dieser Offenbarung ist es ausdrücklich beabsichtigt, dass alle hierin beschriebenen potenziellen Vorteile nicht als Anspruchseinschränkungen ausgelegt werden sollen, die erfüllt werden müssen, um eine Verletzung nachzuweisen. Vielmehr soll die Identifizierung solcher potenziellen Vorteile den Typ/die Typen von Verbesserung veranschaulichen, der/die für Designer verfügbar sind, die den Nutzen dieser Offenbarung haben. Dass solche Vorteile in einem erlaubenden Sinn beschrieben werden (z. B. unter der Angabe, dass ein bestimmter Vorteil „auftreten kann“), soll keinen Zweifel daran vermitteln, ob solche Vorteile tatsächlich erreicht werden können, sondern es soll stattdessen die technische Realität anerkannt werden, dass die Erreichung solcher Vorteile häufig von zusätzlichen Faktoren abhängt.
  • Sofern nicht anders angegeben, sind Ausführungsformen nicht einschränkend. Das heißt, dass die offenbarten Ausführungsformen den Schutzumfang von Ansprüchen, die basierend auf dieser Offenbarung formuliert werden, nicht einschränken sollen, selbst wenn nur ein einzelnes Beispiel in Bezug auf ein bestimmtes Merkmal beschrieben wird. Die offenbarten Ausführungsformen sollen veranschaulichend und nicht einschränkend sein, sofern in der Offenbarung keine gegenteiligen Aussagen vorhanden sind. Die Anmeldung soll es somit ermöglichen, dass Ansprüche offenbarte Ausführungsformen sowie die Alternativen, Modifikationen und Äquivalente, die für den Fachmann, der den Nutzen dieser Offenbarung hat, offensichtlich sind, abdecken.
  • Zum Beispiel können Merkmale in dieser Anmeldung auf jede geeignete Weise kombiniert werden. Dementsprechend können während der Weiterverfolgung dieser Anwendung (oder einer Anwendung, welche die Priorität dieser beansprucht) neue Ansprüche auf eine beliebige solche Kombination von Merkmalen formuliert werden. Insbesondere können unter Bezugnahme auf die beiliegenden Ansprüche Merkmale aus abhängigen Ansprüchen mit denen anderer abhängiger Ansprüche kombiniert werden, wo dies geeignet ist, einschließlich Ansprüchen, die von anderen unabhängigen Ansprüchen abhängen. In ähnlicher Weise können Merkmale aus jeweiligen unabhängigen Ansprüchen, wo dies geeignet ist, kombiniert werden.
  • Während die beiliegenden abhängigen Ansprüche derart formuliert sein können, dass jeder von einem einzigen anderen Anspruch abhängt, werden entsprechend auch zusätzliche Abhängigkeiten in Betracht gezogen. Alle Kombinationen von Merkmalen im abhängigen, die mit dieser Offenbarung übereinstimmen, werden in Betracht gezogen und können in dieser oder einer anderen Anmeldung beansprucht werden. Zusammengefasst sind Kombinationen nicht auf diejenigen beschränkt, die in den beiliegenden Ansprüchen speziell aufgezählt sind.
  • Wo dies geeignet ist, wird auch in Betracht gezogen, dass in einem Format oder einem gesetzlichen Typ formulierte Ansprüche (z. B. Einrichtung) entsprechende Ansprüche eines anderen Formats oder gesetzlichen Typs (z. B. Verfahren) unterstützen sollen.
  • Da diese Offenbarung ein rechtliches Dokument ist, können verschiedene Begriffe und Phrasen einer behördlichen und rechtlichen Auslegung unterliegen. Es wird hiermit bekannt gemacht, dass die folgenden Absätze sowie Definitionen, die in der gesamten Offenbarung bereitgestellt werden, beim Bestimmen, wie basierend auf dieser Offenbarung formulierte Ansprüche auszulegen sind, verwendet werden sollen.
  • Bezugnahmen auf eine Singularform eines Elements (d. h. ein Substantiv oder eine Nominalphrase, vor dem/der ein „ein/e/r“ oder „der/die/das“ steht) sollen, sofern der Kontext nicht eindeutig etwas anderes vorschreibt, „ein/e/r oder mehrere“ bedeuten. Eine Bezugnahme auf „ein Element“ in einem Anspruch schließt somit ohne einen Begleitkontext keine zusätzlichen Instanzen des Elements aus. Eine „Vielzahl“ von Elementen bezieht sich auf einen Satz von zwei oder mehr der Elemente.
  • Das Wort „kann/können“ wird hierin in einem erlaubenden Sinn (d. h. das Potenzial aufweisend, in der Lage sein) und nicht in einem obligatorischen Sinn (d. h. muss/ müssen) verwendet.
  • Die Begriffe „umfassend“ und „einschließlich“ und Formen davon sind offen und bedeuten „einschließlich, ohne darauf beschränkt zu sein“.
  • Wenn der Begriff „oder“ in dieser Offenbarung in Bezug auf eine Liste von Optionen verwendet wird, wird er im Allgemeinen derart verstanden, dass er in dem einschließenden Sinn verwendet wird, sofern nicht der Kontext etwas anderes vorsieht. Somit ist eine Angabe von „x oder y“ äquivalent zu „x oder y oder beide“ und deckt somit 1) x, aber nicht y, 2) y, aber nicht x, und 3) sowohl x als auch y ab. Andererseits macht eine Phrase, wie „entweder x oder y, aber nicht beide“ deutlich, dass „oder“ im exklusiven Sinn verwendet wird.
  • Eine Angabe von „w, x, y oder z oder eine beliebige Kombination davon“ oder „mindestens eines von ... w, x, y und z“ soll alle Möglichkeiten abdecken, die ein einzelnes Element bis zur Gesamtanzahl von Elementen im Satz beinhalten. Bei dem Satz [w, x, y, z] decken diese Phrasen zum Beispiel jedes einzelne Element des Satzes (z. B. w, aber nicht x, y oder z), beliebige zwei Elemente (z. B. w und x, aber nicht y oder z), beliebige drei Elemente (z. B. w, x und y, aber nicht z) und alle vier Elemente ab. Die Phrase „mindestens eines von ... x, y und z“ bezieht sich somit auf mindestens ein Element des Satzes [w, x, y, z], wodurch alle möglichen Kombinationen in dieser Liste von Elementen abgedeckt werden. Diese Phrase darf nicht derart ausgelegt werden, dass es erforderlich ist, dass mindestens eine Instanz von w, mindestens eine Instanz von x, mindestens eine Instanz von y und mindestens eine Instanz von z vorhanden sind.
  • Verschiedene „Kennzeichnungen“ können in dieser Offenbarung vor Substantiven oder Substantivphrasen stehen. Sofern nicht der Kontext etwas anderes vorsieht, beziehen sich verschiedene Kennzeichnungen, die für ein Merkmal (z. B. „erste Schaltung“, „zweite Schaltung“, „bestimmte Schaltung“, „gegebene Schaltung“ usw.) verwendet werden, auf verschiedene Instanzen des Merkmals. Zusätzlich implizieren die Kennzeichnungen „erste/r/s“, „zweite/r/s“ und „dritte/r/s“, wenn sie auf ein Merkmal angewendet werden, keinen Typ von Sortierung (z. B. räumlich, zeitlich, logisch usw.), sofern nicht anders angegeben.
  • Die Phrase „basierend auf/auf der Grundlage von“ oder wird verwendet, um einen oder mehrere Faktoren zu beschreiben, die eine Bestimmung beeinflussen. Dieser Begriff schließt nicht die Möglichkeit aus, dass zusätzliche Faktoren die Bestimmung beeinflussen können. Das heißt, eine Bestimmung kann ausschließlich auf angegebenen Faktoren basieren oder auf den angegebenen Faktoren sowie anderen, nicht angegebenen Faktoren basieren. Man betrachte die Phrase „A basierend auf B bestimmen“. Diese Phrase gibt an, dass B ein Faktor ist, der verwendet wird, um A zu bestimmen, oder der die Bestimmung von A beeinflusst. Diese Phrase schließt nicht aus, dass die Bestimmung von A auch auf einem anderen Faktor, wie C, basieren kann. Diese Phrase soll auch eine Ausführungsform abdecken, in der A ausschließlich basierend auf B bestimmt wird. Wie hierin verwendet, ist die Phrase „basierend auf/auf der Grundlage von“ gleichbedeutend mit der Phrase „basierend mindestens teilweise auf“.
  • Die Phrasen „als Reaktion auf und „in Reaktion auf“ beschreiben einen oder mehrere Faktoren, die eine Wirkung auslösen. Diese Phrase schließt nicht die Möglichkeit aus, dass zusätzliche Faktoren die Wirkung beeinflussen oder anderweitig auslösen können, entweder gemeinsam mit den angegebenen Faktoren oder unabhängig von den angegebenen Faktoren. Das heißt, eine Wirkung kann ausschließlich als Reaktion auf diese Faktoren erfolgen oder kann als Reaktion auf die angegebenen Faktoren sowie andere, nicht angegebene Faktoren erfolgen. Man betrachte die Phrase „A als Reaktion auf B durchführen“. Diese Phrase gibt an, dass B ein Faktor ist, der die Durchführung von A auslöst oder der ein bestimmtes Ergebnis für A auslöst. Diese Phrase schließt nicht aus, dass ein Durchführen von A auch als Reaktion auf einen anderen Faktor, wie C, erfolgen kann. Diese Phrase schließt auch nicht aus, dass ein Durchführen von A als Reaktion auf B und C gemeinsam erfolgen kann. Diese Phrase soll auch eine Ausführungsform abdecken, in der A ausschließlich basierend auf B durchgeführt wird. Wie hierin verwendet, ist die Phrase „basierend auf” gleichbedeutend mit der Phrase „basierend mindestens teilweise auf“. In ähnlicher Weise ist die Phrase „als Reaktion auf gleichbedeutend mit der Phrase „mindestens teilweise als Reaktion auf“.
  • Innerhalb dieser Offenbarung können unterschiedliche Entitäten (die verschiedentlich als „Einheiten“, „Schaltungen“, andere Komponenten usw. bezeichnet werden können) als „konfiguriert“, um eine oder mehrere Aufgaben oder Operationen durchzuführen, beschrieben oder beansprucht werden. Diese Formulierung - [Entität], die konfiguriert ist, um [eine oder mehrere Aufgaben durchzuführen] - wird hierin verwendet, um sich auf eine Struktur (d. h. etwas Physisches) zu beziehen. Insbesondere wird diese Formulierung verwendet, um anzugeben, dass diese Struktur angeordnet ist, um die eine oder die mehreren Aufgaben während des Betriebs durchzuführen. Eine Struktur kann als „konfiguriert, um“ eine Aufgabe durchzuführen, bezeichnet werden, selbst wenn die Struktur aktuell nicht betrieben wird. Somit bezieht sich eine Entität, die als „konfiguriert, um“ eine Aufgabe durchzuführen, beschrieben oder angegeben wird, auf etwas Physisches, wie eine Vorrichtung, eine Schaltung, ein System mit einer Prozessoreinheit und einem Speicher, der Programmanweisungen speichert, die ausführbar sind, um die Aufgabe zu implementieren, usw. Diese Phrase wird hierin nicht verwendet, um auf etwas nicht Greifbares Bezug zu nehmen.
  • In einigen Fällen können verschiedene Einheiten/Schaltungen/Komponenten hierin als Durchführen eines Satzes von Aufgaben oder Vorgängen beschrieben werden. Es versteht sich, dass diese Entitäten „konfiguriert sind, um“ diese Aufgaben/Operationen durchzuführen, selbst wenn dies nicht spezifisch angegeben ist.
  • Der Begriff „konfiguriert, um“ soll nicht „konfigurierbar, um“ bedeuten. Eine unprogrammierte FPGA würde zum Beispiel nicht als „konfiguriert, um“ eine bestimmte Funktion durchzuführen, betrachtet werden. Diese unprogrammierte FPGA kann jedoch „konfigurierbar, um“ diese Funktion durchzuführen, sein. Nach geeigneter Programmierung kann die FPGA dann als „konfiguriert, um“ die bestimmte Funktion durchzuführen, bezeichnet werden.
  • Für Zwecke von US-Patentanmeldungen basierend auf dieser Offenbarung soll sich in einem Anspruch, dass eine Struktur „konfiguriert, um“ eine oder mehrere Aufgaben durchzuführen ist, ausdrücklich nicht auf die Anwendung von 35 U.S.C. § 112(f) für dieses Anspruchselement berufen werden. Wenn sich der Anmelder während des Erteilungsverfahrens einer US-Patentanmeldung basierend auf dieser Offenbarung auf die Anwendung von Abschnitt 112(f) berufen möchte, gibt er Anspruchselemente unter Verwendung des Konstrukts „Mittel zum“ [Durchführen einer Funktion] an.
  • Verschiedene „Schaltungen“ können in dieser Offenbarung beschrieben werden. Diese Schaltungen oder „Schaltlogik“ bilden Hardware, die verschiedene Typen von Schaltungselementen, wie kombinatorische Logik, getaktete Speicherungsvorrichtungen (z. B. Flip-Flops, Register, Latches usw.), endliche Automaten, Speicher (z. B. Direktzugriffsspeicher, eingebetteten dynamischen Direktzugriffsspeicher), programmierbare logische Anordnungen und so weiter, einschließt. Schaltlogik kann benutzerdefiniert oder aus Standardbibliotheken entnommen sein. In verschiedenen Implementierungen kann Schaltlogik, wie es geeignet ist, digitale Komponenten, analoge Komponenten oder eine Kombination von beiden einschließen. Bestimmte Typen von Schaltungen können allgemein als „Einheiten“ (z. B. eine Decodiereinheit, eine arithmetischlogische Einheit (ALU), eine Funktionseinheit, eine Speicherverwaltungseinheit (MMU) usw.) bezeichnet werden. Solche Einheiten beziehen sich ebenfalls auf Schaltungen oder Schaltlogik.
  • Die offenbarten Schaltungen/Einheiten/Komponenten und andere Elemente, die in den Zeichnungen veranschaulicht und hierin beschrieben sind, schließen somit Hardwareelemente, wie die im vorstehenden Absatz beschriebenen, ein. In vielen Fällen kann die interne Anordnung von Hardwareelementen innerhalb einer bestimmten Schaltung durch Beschreiben der Funktion dieser Schaltung angegeben werden. Zum Beispiel kann eine bestimmte „Decodiereinheit“ als die Funktion des „Verarbeitens eines Opcodes einer Anweisung und Umleitens dieser Anweisung zu einer oder mehreren einer Vielzahl von Funktionseinheiten“ durchführend beschrieben werden, was bedeutet, dass die Decodiereinheit „konfiguriert ist, um“ diese Funktion durchzuführen. Diese Funktionsangabe ist für den Fachmann auf dem Computergebiet ausreichend, um einen Satz möglicher Strukturen für die Schaltung näher zu bezeichnen.
  • In verschiedenen Ausführungsformen, wie im vorstehenden Absatz erörtert, Schaltungen, Einheiten und andere Elemente, die durch die Funktionen oder Vorgänge definiert sind, zu deren Implementierung sie konfiguriert sind, Die Anordnung und solche Schaltungen/ Einheiten/Komponenten in Bezug aufeinander und die Weise, in der sie interagieren, bilden eine Mikroarchitekturdefinition der Hardware, die letztendlich in einer integrierten Schaltung hergestellt oder in eine FPGA programmiert wird, um eine physische Implementierung der Mikroarchitekturdefinition zu bilden. Somit wird die Mikroarchitekturdefinition von dem Fachmann als Struktur erkannt, aus der viele physische Implementierungen abgeleitet werden können, die alle in die breitere Struktur fallen, die durch die Mikroarchitekturdefinition beschrieben wird. Das heißt, dass der Fachmann, dem die gemäß dieser Offenbarung bereitgestellten Mikroarchitekturdefinition präsentiert wird, ohne unangemessenes Experimentieren und durch Anwendung durchschnittlicher Fähigkeiten die Struktur implementieren kann, indem er die Beschreibung der Schaltungen/Einheiten/Komponenten in einer Hardwarebeschreibungssprache (HDL), wie Verilog oder VHDL, codiert. Die HDL-Beschreibung wird häufig in einer Weise ausgedrückt, die als funktional erscheinen kann. Für den Fachmann auf diesem Gebiet ist diese HDL-Beschreibung jedoch die Weise, die verwendet wird, um die Struktur einer Schaltung, Einheit oder Komponente auf die nächste Implementierungsdetailebene zu transformieren. Eine solche HDL-Beschreibung kann die Form von Verhaltenscode (der üblicherweise nicht synthetisierbar ist), Register-Transfer-Sprache-Code (RTL-Code) (der im Gegensatz zu Verhaltenscode üblicherweise synthetisierbar ist) oder Strukturcode (z. B. eine Netzliste, die Logikgatter und deren Konnektivität angibt) annehmen. Die HDL-Beschreibung kann anschließend gegenüber einer Bibliothek von Zellen synthetisiert werden, die für eine gegebene Technologie zur Herstellung integrierter Schaltungen gestaltet ist, und kann aus Gründen der Zeittaktung, Energie und anderen Gründen modifiziert werden, um zu einer endgültigen Designdatenbank zu führen, die an eine Gießerei übermittelt wird, um Masken zu erzeugen und letztendlich die integrierte Schaltung herzustellen. Manche Hardware-Schaltungen oder Abschnitte davon können auch in einem schematischen Editor benutzerdefiniert ausgestaltet und zusammen mit synthetisierter Schaltlogik in das Design der integrierten Schaltung eingegliedert werden. Die integrierten Schaltungen können Transistoren und andere Schaltungselemente (z. B. passive Elemente, wie Kondensatoren, Widerstände, Spulen usw.) einschließen und eine Verbindung zwischen den Transistoren und Schaltungselementen herstellen. Manche Ausführungsformen können mehrere integrierte Schaltungen implementieren, die miteinander gekoppelt sind, um die Hardware-Schaltungen zu implementieren, und/oder diskrete Elemente können in manchen Ausführungsformen verwendet werden. Alternativ kann das HDL-Design zu einer programmierbaren Logikanordnung, wie einer anwenderprogrammierbaren Gatter-Anordnung (FPGA), synthetisiert werden und kann in der FPGA implementiert werden. Dieses Entkoppeln zwischen dem Design einer Gruppe von Schaltungen und der anschließenden Implementierung auf niedriger Ebene dieser Schaltungen führt üblicherweise zu dem Szenario, in dem der Schaltungs- oder Logikdesigner nie einen bestimmten Satz von Strukturen für die Implementierung auf niedriger Ebene angibt, der über eine Beschreibung dessen hinausgeht, wozu die Schaltung konfiguriert ist, da dieser Prozess auf einer anderen Stufe des Schaltungsimplementierungsprozesses durchgeführt wird.
  • Die Tatsache, dass viele verschiedene Kombinationen auf niedriger Ebene von Schaltungselementen verwendet werden können, um die gleiche Spezifikation einer Schaltung zu implementieren, führt zu einer großen Anzahl von äquivalenten Strukturen für diese Schaltung. Wie angegeben, können diese Schaltungen auf niedriger Ebene gemäß Änderungen in der Herstellungstechnologie, der zur Herstellung der integrierten Schaltung ausgewählten Gießerei, der Bibliothek von Zellen, die für ein bestimmtes Projekt bereitgestellt wird, usw. variieren. In vielen Fällen können die durch verschiedene Designwerkzeuge oder -methodiken zur Herstellung dieser verschiedenen Implementierungen vorgenommenen Auswahlen beliebig sein.
  • Darüber hinaus ist es für eine einzelne Implementierung einer bestimmten Funktionsspezifikation einer Schaltung üblich, für eine gegebene Ausführungsform eine große Anzahl von Vorrichtungen (z. B. Millionen von Transistoren) einzuschließen. Entsprechend macht es das bloße Volumen dieser Informationen undurchführbar, eine vollständige Angabe der Struktur auf niedriger Ebene, die verwendet wird, um eine einzelne Ausführungsform zu implementieren, geschweige denn die enorme Anordnung äquivalenter möglicher Implementierungen bereitzustellen. Aus diesem Grund beschreibt die vorliegende Offenbarung eine Struktur von Schaltungen unter Verwendung der Funktionskurzschrift, die üblicherweise in der Industrie eingesetzt wird.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • „Enhancing Testability of Large-Scale Integrated Circuits via Test Points and Additional Logic", IEEE Transactions on Computers, C-22(1), 46-60; M. Williams und J. Angell [0002]

Claims (20)

  1. Integrierte Schaltung (IC), umfassend: ein Speicherelement; und eine Steuerschaltlogik, die konfiguriert ist zum: als Reaktion auf eine Abtastfreigabesteuerung, Auswählen zwischen einem Funktionsdateneingang und einem Abtastdateneingang, der als Eingang für das Speicherelement dienen soll; als Reaktion auf eine Taktfreigabesteuerung, selektiven Sperren des Umschaltens eines Ausgangs des Speicherelements durch Unterdrücken eines Taktsignals, das dem Speicherelement bereitgestellt wird; und während die Taktfreigabesteuerung angibt, dass der Ausgang des Speicherelements für das Umschalten gesperrt werden soll, Auswählen, dass der Eingang des Speicherelements der Abtastdateneingang sein soll.
  2. IC nach Anspruch 1, wobei das Speicherelement einen oder mehrere Latches umfasst, und wobei beim Auswählen des Abtastdateneingangs die Steuerschaltlogik konfiguriert ist, um zu verhindern, dass einer der Latches umschaltet, während der Ausgang für das Umschalten gesperrt ist, unabhängig davon, ob der Funktionsdateneingang umschaltet oder nicht.
  3. IC nach Anspruch 2, wobei die Steuerschaltlogik konfiguriert ist, um ein Umschalten der Latches zu verhindern, ohne Latenz zu dem Funktionsdateneingang hinzuzufügen.
  4. IC nach einem der Ansprüche 1 bis 3, wobei durch Auswählen des Abtastdateneingangs, während die Taktfreigabesteuerung angibt, dass der Ausgang für das Umschalten gesperrt werden soll, die Steuerschaltlogik konfiguriert ist, um den Eingang für das Speicherelement auf einen konstanten Logikzustand einzustellen, unabhängig davon, ob der Funktionsdateneingang umschaltet oder nicht.
  5. IC nach einem der Ansprüche 1 bis 3, wobei die Steuerschaltlogik ein Logikgatter umfasst, das konfiguriert ist, um das Speicherelement als Reaktion darauf, dass die Taktfreigabesteuerung das Taktsignal sperrt, auf einen Abtastmodus einzustellen.
  6. IC nach einem der Ansprüche 1 bis 3, wobei die Steuerschaltlogik ein Logikgatter umfasst, das konfiguriert ist, um den Eingang für das Speicherelement als Reaktion darauf, dass die Taktfreigabesteuerung das Taktsignal sperrt, auf einen konstanten Logikzustand einzustellen.
  7. IC nach einem der Ansprüche 1 bis 3, wobei das Speicherelement einen Latch umfasst, der durch eine Umkehrung des Taktsignals getaktet wird, und wobei beim Auswählen des Abtastdateneingangs, während die Taktfreigabesteuerung angibt, dass der Ausgang für das Umschalten gesperrt werden soll, die Steuerschaltlogik konfiguriert ist, um einen Eingang des Latches auf einen konstanten Logikzustand einzustellen.
  8. Verfahren in einer integrierten Schaltung (IC), die mindestens ein Speicherelement einschließt, das Verfahren umfassend: als Reaktion auf eine Abtastfreigabesteuerung, Auswählen zwischen einem Funktionsdateneingang und einem Abtastdateneingang, der als Eingang für das Speicherelement dienen soll; als Reaktion auf eine Taktfreigabesteuerung, selektives Sperren des Umschaltens eines Ausgangs des Speicherelements durch Unterdrücken eines Taktsignals, das dem Speicherelement bereitgestellt wird; und während die Taktfreigabesteuerung angibt, dass der Ausgang des Speicherelements für das Umschalten gesperrt werden soll, Auswählen, dass der Eingang des Speicherelements der Abtastdateneingang sein soll.
  9. Verfahren nach Anspruch 8, wobei das Speicherelement einen oder mehrere Latches umfasst, und wobei das Auswählen des Abtastdateneingangs das Verhindern, dass einer der Latches umschaltet, während der Ausgang für das Umschalten gesperrt ist, unabhängig davon, ob der Funktionsdateneingang umschaltet oder nicht, umfasst.
  10. Verfahren nach Anspruch 9, wobei das Verhindern des Umschaltens der Latches durchgeführt wird, ohne Latenz zu dem Funktionsdateneingang hinzuzufügen.
  11. Verfahren nach einem der Ansprüche 8 bis 10, wobei das Auswählen des Abtastdateneingangs, während die Taktfreigabesteuerung angibt, dass der Ausgang für das Umschalten gesperrt werden soll, das Einstellen des Eingangs für das Speicherelement auf einen konstanten Logikzustand, unabhängig davon, ob der Funktionsdateneingang umschaltet oder nicht, umfasst.
  12. Verfahren nach einem der Ansprüche 8 bis 10, wobei das Auswählen des Abtastdateneingangs das Einstellen des Speicherelements auf einen Abtastmodus unter Verwendung eines Logikgatters als Reaktion darauf, dass die Taktfreigabesteuerung das Taktsignal sperrt, umfasst.
  13. Verfahren nach einem der Ansprüche 8 bis 10, wobei das Auswählen des Abtastdateneingangs das Einstellen des Eingangs für das Speicherelement auf einen konstanten Logikzustand unter Verwendung eines Logikgatters als Reaktion darauf, dass die Taktfreigabesteuerung das Taktsignal sperrt, umfasst.
  14. Verfahren nach einem der Ansprüche 8 bis 10, wobei das Speicherelement einen Latch umfasst, der durch eine Umkehrung des Taktsignals getaktet wird, und wobei das Auswählen des Abtastdateneingangs, während die Taktfreigabesteuerung angibt, dass der Ausgang für das Umschalten gesperrt werden soll, das Einstellen eines Eingangs des Latches auf einen konstanten Logikzustand umfasst.
  15. Vorrichtung, umfassend einen Prozessor, der (i) eine Abrufschaltlogik, die konfiguriert ist, um Anweisungen abzurufen, und (ii) Ausführungsschaltlogik , die konfiguriert ist, um Anweisungen auszuführen, umfasst, wobei eine oder beide von der Abrufschaltlogik und der Ausführungsschaltlogik umfassen: ein Speicherelement; und eine Steuerschaltlogik, die konfiguriert ist zum: als Reaktion auf eine Abtastfreigabesteuerung, Auswählen zwischen einem Funktionsdateneingang und einem Abtastdateneingang, der als Eingang für das Speicherelement dienen soll; als Reaktion auf eine Taktfreigabesteuerung, selektiven Sperren des Umschaltens eines Ausgangs des Speicherelements durch Unterdrücken eines Taktsignals, das dem Speicherelement bereitgestellt wird; und während die Taktfreigabesteuerung angibt, dass der Ausgang des Speicherelements für das Umschalten gesperrt werden soll, Auswählen, dass der Eingang des Speicherelements der Abtastdateneingang sein soll.
  16. Vorrichtung nach Anspruch 15, ferner umfassend eine Anzeigevorrichtung und eine oder mehrere Eingabevorrichtungen.
  17. Vorrichtung nach Anspruch 15, wobei das Speicherelement einen oder mehrere Latches umfasst, und wobei beim Auswählen des Abtastdateneingangs die Steuerschaltlogik konfiguriert ist, um zu verhindern, dass einer der Latches umschaltet, während der Ausgang für das Umschalten gesperrt ist, unabhängig davon, ob der Funktionsdateneingang umschaltet oder nicht.
  18. Vorrichtung nach einem der Ansprüche 15 bis 17, wobei durch Auswählen des Abtastdateneingangs, während die Taktfreigabesteuerung angibt, dass der Ausgang für das Umschalten gesperrt werden soll, die Steuerschaltlogik konfiguriert ist, um den Eingang für das Speicherelement auf einen konstanten Logikzustand einzustellen, unabhängig davon, ob der Funktionsdateneingang umschaltet oder nicht.
  19. Vorrichtung nach einem der Ansprüche 15 bis 17, wobei die Steuerschaltlogik ein Logikgatter umfasst, das konfiguriert ist, um das Speicherelement als Reaktion darauf, dass die Taktfreigabesteuerung das Taktsignal sperrt, auf einen Abtastmodus einzustellen.
  20. Vorrichtung nach einem der Ansprüche 15 bis 17, wobei die Steuerschaltlogik ein Logikgatter umfasst, das konfiguriert ist, um den Eingang für das Speicherelement als Reaktion darauf, dass die Taktfreigabesteuerung das Taktsignal sperrt, auf einen konstanten Logikzustand einzustellen.
DE112022001867.4T 2021-06-30 2022-03-08 Daten-gating unter verwendung von abtastfreigabe-pins Pending DE112022001867T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/363,093 2021-06-30
US17/363,093 US11454671B1 (en) 2021-06-30 2021-06-30 Data gating using scan enable pin
PCT/US2022/019219 WO2023277978A1 (en) 2021-06-30 2022-03-08 Data gating using scan enable pin

Publications (1)

Publication Number Publication Date
DE112022001867T5 true DE112022001867T5 (de) 2024-01-18

Family

ID=80937095

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112022001867.4T Pending DE112022001867T5 (de) 2021-06-30 2022-03-08 Daten-gating unter verwendung von abtastfreigabe-pins

Country Status (5)

Country Link
US (3) US11454671B1 (de)
KR (2) KR20240035637A (de)
CN (1) CN117396765A (de)
DE (1) DE112022001867T5 (de)
WO (1) WO2023277978A1 (de)

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5920575A (en) * 1997-09-19 1999-07-06 International Business Machines Corporation VLSI test circuit apparatus and method
JP4627118B2 (ja) * 2001-04-26 2011-02-09 ルネサスエレクトロニクス株式会社 スキャンテスト用回路
US7185249B2 (en) * 2002-04-30 2007-02-27 Freescale Semiconductor, Inc. Method and apparatus for secure scan testing
KR20040001334A (ko) * 2002-06-27 2004-01-07 삼성전자주식회사 스캔 플립플롭을 구비한 반도체 집적 회로
US7356745B2 (en) 2004-02-06 2008-04-08 Texas Instruments Incorporated IC with parallel scan paths and compare circuitry
US7457998B1 (en) * 2005-01-07 2008-11-25 Cadence Design Systems, Inc. Scan register and methods of using the same
US7560964B2 (en) 2005-03-18 2009-07-14 International Business Machines Corporation Latch and clock structures for enabling race-reduced MUX scan and LSSD co-compatibility
US7992062B2 (en) * 2006-06-22 2011-08-02 Qualcomm Incorporated Logic device and method supporting scan test
US7793178B2 (en) * 2006-07-12 2010-09-07 Texas Instruments Incorporated Cell supporting scan-based tests and with reduced time delay in functional mode
US7865759B2 (en) * 2007-05-10 2011-01-04 Broadcom Corporation Programmable clock control architecture for at-speed testing
EP2234272A3 (de) * 2009-03-23 2015-09-30 Oticon A/S Doppelflankengetriggerte Speicherzelle mit geringem Stromverbrauch mit Scantestunterstützung und Taktgatterschaltung dafür
US7843218B1 (en) * 2009-10-28 2010-11-30 Freescale Semiconductor, Inc. Data latch with structural hold
US8332698B2 (en) 2010-05-21 2012-12-11 Apple Inc. Scan latch with phase-free scan enable
US20130117618A1 (en) 2011-11-03 2013-05-09 Freescale Semiconductor, Inc Scan testing of integrated circuit with clock gating cells
JP2013224917A (ja) * 2012-03-22 2013-10-31 Renesas Electronics Corp スキャンテスト回路、テストパタン生成制御回路及びスキャンテスト制御方法
US8914689B2 (en) 2012-09-14 2014-12-16 Cadence Design Systems, Inc. Controlled toggle rate of non-test signals during modular scan testing of an integrated circuit
US9086457B2 (en) 2013-03-26 2015-07-21 International Business Machines Corporation Scan chain latch design that improves testability of integrated circuits
KR102257380B1 (ko) * 2014-12-22 2021-05-31 삼성전자주식회사 온칩 클록 컨트롤러를 포함하는 시스템온칩 및 이를 포함하는 모바일 장치
US9606177B2 (en) 2015-05-19 2017-03-28 Advanced Micro Devices, Inc. Scan flip-flop circuit with dedicated clocks
US9568551B1 (en) * 2015-09-16 2017-02-14 Freescale Semiconductor, Inc. Scan wrapper circuit for integrated circuit
US9876488B2 (en) 2015-11-02 2018-01-23 Mediatek Inc. Flip-flop circuit with data-driven clock
US9966953B2 (en) 2016-06-02 2018-05-08 Qualcomm Incorporated Low clock power data-gated flip-flop
US20180203067A1 (en) * 2017-01-13 2018-07-19 Mediatek Inc. Clock gating circuits and scan chain circuits using the same
US10110234B1 (en) * 2017-07-19 2018-10-23 Xilinx, Inc. Efficient system debug infrastructure for tiled architecture
US10461747B2 (en) * 2017-09-20 2019-10-29 Apple Inc. Low power clock gating circuit
US10345379B2 (en) * 2017-11-20 2019-07-09 Nxp Usa, Inc. Scan testing and method thereof

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
„Enhancing Testability of Large-Scale Integrated Circuits via Test Points and Additional Logic", IEEE Transactions on Computers, C-22(1), 46-60; M. Williams und J. Angell

Also Published As

Publication number Publication date
US20230194606A1 (en) 2023-06-22
KR20230167145A (ko) 2023-12-07
US20230019009A1 (en) 2023-01-19
CN117396765A (zh) 2024-01-12
WO2023277978A1 (en) 2023-01-05
US11609270B2 (en) 2023-03-21
KR20240035637A (ko) 2024-03-15
US11454671B1 (en) 2022-09-27
KR102645526B1 (ko) 2024-03-11

Similar Documents

Publication Publication Date Title
DE102011108103A1 (de) Echtzeit-Fehlerermittlung durch inverse Verarbeitung
DE60314530T2 (de) Verfahren und system zum debuggen unter verwendung duplizierter logik
DE102020115968A1 (de) Systeme und verfahren für multi-bit-speicher mit eingebetteter logik
DE102019117226A1 (de) Schaltkreis mit adaptiven speicherassistenzfähigkeiten
DE112020006021T5 (de) Auf maschinelles lernen basierendes verfahren und vorrichtung für die berechnung und verifizierung von verzögerungen des entwurfs integrierter schaltungen
DE112015003632T5 (de) Dynamisches spielraumeinstellen zum steuern von anwendungsspezifischen schaltungen und speichern
US10175571B2 (en) Hybrid coloring methodology for multi-pattern technology
US9483599B1 (en) Circuit design-specific failure in time rate for single event upsets
DE112019004358T5 (de) Verfahren zur takt-gate-analyse von entwürfen für elektronische systeme und zugehörige systeme, verfahren und vorrichtungen
DE112022001867T5 (de) Daten-gating unter verwendung von abtastfreigabe-pins
DE102018102292A1 (de) Verfahren und Vorrichtung zur automatischen Implementierung eines kompensierenden Rücksetzens für neugetaktete Schaltungen
DE112017003659T5 (de) Kontextbasiertes schutzsystem
DE102014002302A1 (de) System und Verfahren zum Bestimmen der operativen Robustheit eines Systems auf einem Chip
DE112022001472T5 (de) Dynamisches takt- und leistungs-gating von chip zu chip
DE112017004431T5 (de) Partitionierung unter verwendung einer korrelations-metaheuristik
US20110107289A1 (en) Method of implementing physically realizable and power-efficient clock gating in microprocessor circuits
DE112013005831T5 (de) Netzlistenabstraktion
DE102017129380A1 (de) In hohem Maße flexibler Performance-Zähler und System-Debug-Modul
TW202240455A (zh) 多位元胞元
DE102020130212A1 (de) Verfahren zum deterministischen Clustering und Packing für Random-Logik auf programmierbaren integrierten Schaltungen
De Sio et al. On the evaluation of SEU effects on AXI interconnect within AP-SoCs
DE112020004595T5 (de) Bidirektionale einzelversorgungs-pegelumsetzerschaltung
DE102022121035A1 (de) Vollständige die- und- partielle die-tape-outs aus einem gemeinsamen design
DE112022003384T5 (de) System-On-Chip mit Leistungsversorgungsmodus mit reduzierter Anzahl von Phasen
DE112022003363T5 (de) Dynamische zuweisung von cache-speicher als ram

Legal Events

Date Code Title Description
R012 Request for examination validly filed