DE112019007474T5 - Mikrocontroller mit konfigurierbarer logikperipherie - Google Patents

Mikrocontroller mit konfigurierbarer logikperipherie Download PDF

Info

Publication number
DE112019007474T5
DE112019007474T5 DE112019007474.1T DE112019007474T DE112019007474T5 DE 112019007474 T5 DE112019007474 T5 DE 112019007474T5 DE 112019007474 T DE112019007474 T DE 112019007474T DE 112019007474 T5 DE112019007474 T5 DE 112019007474T5
Authority
DE
Germany
Prior art keywords
input
look
memory
coupled
output
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
DE112019007474.1T
Other languages
English (en)
Inventor
Ryan FOSS
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.)
Microchip Technology Inc
Original Assignee
Microchip Technology 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 Microchip Technology Inc filed Critical Microchip Technology Inc
Publication of DE112019007474T5 publication Critical patent/DE112019007474T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • G06F13/287Multiplexed DMA
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30029Logical and Boolean instructions, e.g. XOR, NOT
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/10Decoders
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17724Structural details of logic blocks
    • H03K19/17728Reconfigurable logic blocks, e.g. lookup tables

Abstract

Ein Mikrocontroller weist eine zentrale Verarbeitungseinheit, einen Speicher, I/O-Ports und eine Vielzahl von Peripherieeinheiten auf, wobei eine der Peripherieeinheiten eine konfigurierbare Logikzelle ist. Die konfigurierbare Logikzelle ist durch eine Nachschlagetabelle ausgebildet, die durch eine Vielzahl von Speicherzellen ausgebildet ist, die eine vorgegebene Anzahl von Eingangsadresssignalen empfangen, die aus internen Signalen ausgewählt werden können, die von den Peripherieeinheiten bereitgestellt werden, und zumindest einem externen Signal, das von zumindest einem externen Pin bereitgestellt wird, und Erzeugung eines Ausgangssignals. Die zentrale Verarbeitungseinheit ist ausgebildet, um direkt Eingangsadresssignale für die Nachschlagetabelle bereitzustellen.

Description

  • VERWANDTE ANMELDUNGEN
  • Die vorliegende Anmeldung beansprucht die Priorität vor der vorläufigen US-Anmeldung Nr. 62/864,198 , eingereicht am 20. Juni 2019, deren Inhalt hiermit in ihrer Gesamtheit aufgenommen wird.
  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung betrifft Mikrocontroller mit konfigurierbaren Logikzellen und insbesondere einen Mikrocontroller mit kombinatorischer Logikperipherie.
  • HINTERGRUND
  • Ein Mikrocontroller kann eine zentrale Verarbeitungseinheit (CPU), einen Programm- und Datenspeicher, Eingabe-Ausgabe-(I/0)-Ports und eine Vielzahl von Peripherien aufweisen, die auf einem integrierten Schaltungs- (IC-) Chip hergestellt sind. Der IC-Chip kann in einem IC-Gehäuse mit Verbindungsanschlüssen („Pins“) eingeschlossen (eingekapselt) sein, an die externe Schaltungen mit dem IC-Chip verbunden werden können. Elektrische Verbindungspunkte auf dem IC-Chip können „Pads“ sein und können mit Bonddrähten mit den Pins des IC-Gehäuses verbunden sein. Die IC-Chip-Pads werden für die I/O-Ports und die DC-Energie und die Masse des IC-Chips verwendet. Einige dieser Peripherien können kernunabhängige Peripherien (CIPs) sein, d. h. ein Peripheriegerät, das für den Betrieb nicht auf Eingaben der CPU angewiesen ist.
  • Konfigurierbare Logikzellen-Peripherien in Mikrocontrollern sind von einer Vielzahl von Mikrocontrollern bekannt, die von der Anmelderin der vorliegenden Anmeldung hergestellt werden. Beispielsweise beschreibt die 2015 veröffentlichte Anwendungsnotiz TB3133 von Swathi Sridar konfigurierbare Logikzellen, die in PIC©-Mikrocontrollern verfügbar sind, und wird hiermit durch Bezugnahme aufgenommen. Diese Vorrichtungen sind vielseitig und bieten einem Mikrocontroller eine wählbare Logikfunktion ohne die Komplexität typischer FPGAs, die auch eine zentrale Verarbeitungseinheit enthalten können. Diese Logikzellen-Peripherie ist klein im Vergleich zum Platzbedarf von FPGAs und erweitert die Mikrocontroller so, dass in vielen Anwendungen keine oder nur sehr wenig zusätzliche externe Logik erforderlich ist.
  • Viele Mikrocontroller weisen diese kernunabhängige Peripherie auf und können bis zu 8 konfigurierbare Logikzellen bereitstellen. Jede konfigurierbare Logikzelle (CLC) kann aus 8 verschiedenen Optionen ausgebildet werden, wie in 3 von TB3133 gezeigt. Bestimmte Konfigurationen weisen durch Implementieren oder Hinzufügen einer Flip-Flop-Funktion eine eingeschränkte sequentielle Funktionalität auf. Somit bieten diese Mikrocontroller die beliebte CLC-Peripherie zur Implementierung einfacher kombinatorischer und sequentieller Logikfunktionen. Insbesondere die kombinatorischen Elemente erfordern jedoch einen komplizierten Aufbau und bieten begrenzte Möglichkeiten. Viele Anwendungshinweise sind gezwungen, mehrere CLC-Peripherien zu verwenden, um das erforderliche kombinatorische Logiksystem zu erstellen. Der CLC ist eine leistungsstarke und vielseitige Peripherie, und es kann oft verschwenderisch sein, eine für einfache Überbrückungsanforderungen zuzuweisen.
  • Somit gibt es gewisse Einschränkungen und Beschränkungen, da beispielsweise nur eine vorgegebene Anzahl von Logikelementen in einer Logikzelle verfügbar ist.
  • ZUSAMMENFASSUNG
  • Was daher benötigt wird, ist eine flexiblere Logikzellen-Peripherie. Gemäß einer Ausführungsform kann ein Mikrocontroller eine zentrale Verarbeitungseinheit, einen Speicher, I/O-Ports und eine Vielzahl von Peripherieeinheiten aufweisen, wobei eine der Peripherieeinheiten eine konfigurierbare Logikzelle ist, wobei die konfigurierbare Logikzelle durch eine Nachschlagetabelle ausgebildet ist, die durch eine Vielzahl von Speicherzellen ausgebildet ist, die eine vorgegebene Anzahl von Eingangsadresssignalen empfangen, die aus einer Vielzahl von internen Signalen ausgewählt werden können, die von den Peripherieeinheiten bereitgestellt werden, oder externen Signalen, die von zumindest einem externen Pin bereitgestellt werden und ein Ausgangssignal erzeugen, und wobei die zentrale Verarbeitungseinheit ausgebildet ist, um zumindest ein Eingangssignal für die Nachschlagetabelle direkt bereitzustellen.
  • Gemäß einer weiteren Ausführungsform kann die konfigurierbare Logikzelle eine Eingangsmultiplexereinheit aufweisen, die ausgebildet ist, um die vorgegebene Anzahl der Eingangssignale aus den internen und externen Signalen des Mikrocontrollers auszuwählen, und weist weiterhin ein Spezialfunktionseingangsregister auf, das zwischen den Ausgang des Eingangsmultiplexers und einen Adresseingang der Nachschlagetabelle gekoppelt ist, wobei das Spezialfunktionseingangsregister die ausgewählten Eingangssignale empfängt und puffert und wobei die zentrale Verarbeitungseinheit ausgebildet ist, in das Spezialfunktionseingangsregister zu schreiben.
  • Gemäß einer weiteren Ausführungsform kann die konfigurierbare Logikzelle eine Eingangsmultiplexereinheit aufweisen, die ausgebildet ist, um die vorgegebene Anzahl von Eingangssignalen aus den internen und externen Signalen des Mikrocontrollers auszuwählen, und weist weiterhin ein Spezialfunktionseingangsregister auf, das mit Eingängen der Eingangsmultiplexereinheit gekoppelt ist, wobei die zentrale Verarbeitungseinheit so ausgebildet ist, dass sie in das Spezialfunktionseingangsregister schreibt, um der Nachschlagetabelle direkt Eingangssignale bereitzustellen.
  • Gemäß einer Ausführungsform kann ein Mikrocontroller eine zentrale Verarbeitungseinheit, einen Speicher, I/O-Ports und eine Vielzahl von Peripherieeinheiten aufweisen, wobei eine der Peripherieeinheiten eine konfigurierbare Logikzelle ist, wobei die konfigurierbare Logikzelle durch eine Nachschlagetabelle ausgebildet ist, die durch eine Vielzahl von Speicherzellen ausgebildet ist, die eine vorgegebene Anzahl von Eingangsadresssignalen empfangen, die aus internen Signalen ausgewählt werden können, die von den Peripherieeinheiten bereitgestellt werden, und zumindest einem externen Signal, das von zumindest einem externen Pin bereitgestellt wird und ein Ausgangssignal erzeugt, und wobei die zentrale Verarbeitungseinheit ausgebildet ist, um direkt Eingangsadresssignale für die Nachschlagetabelle bereitzustellen.
  • Gemäß einer weiteren Ausführungsform kann die konfigurierbare Logikzelle eine Eingangsmultiplexerschaltung aufweisen, die ausgebildet ist, um die vorgegebene Anzahl von Eingangsadresssignalen aus den internen Signalen und dem zumindest einen externen Signal auszuwählen, und weist weiterhin ein Spezialfunktionseingangsregister auf, das zwischen Ausgängen der Eingangsmultiplexerschaltung und einem Adresseingang der Nachschlagetabelle gekoppelt ist, wobei das Spezialfunktionseingangsregister die ausgewählten Eingangssignale empfängt und puffert und wobei die zentrale Verarbeitungseinheit ausgebildet ist, um aus dem Spezialfunktionseingangsregister zu lesen und in dieses zu schreiben. Gemäß einer weiteren Ausführungsform kann die konfigurierbare Logikzelle eine Eingangsmultiplexerschaltung aufweisen, die ausgebildet ist, um die vorgegebene Anzahl von Eingangssignalen aus den internen Signalen und dem zumindest einen externen Signal auszuwählen, und weist weiterhin ein Spezialfunktionseingangsregister auf, das mit Eingängen der Eingangsmultiplexerschaltung gekoppelt ist, wobei die zentrale Verarbeitungseinheit ausgebildet ist, um aus dem Spezialfunktionseingangsregister zu lesen und in dieses zu schreiben, um der Nachschlagetabelle direkt Eingangssignale bereitzustellen. Gemäß einer weiteren Ausführungsform können die Spezialfunktionsregister auf einen Datenspeicher speicherabgebildet sein. Gemäß einer weiteren Ausführungsform kann die Nachschlagetabelle eine Vielzahl von 1-Bit-Speicherzellen aufweisen. Gemäß einer weiteren Ausführungsform kann die Vielzahl von 1-Bit-Speicherzellen auf den Datenspeicher oder den Programmspeicher, der ein Flash-Speicher sein kann, speicherabgebildet werden. Gemäß einer weiteren Ausführungsform kann der Mikrocontroller weiterhin einen Direktspeicherzugriffscontroller aufweisen, der ausgebildet sein kann, um Daten in die Vielzahl von 1-Bit-Speicherzellen zu übertragen. Gemäß einer weiteren Ausführungsform kann der Mikrocontroller weiterhin einen Multiplexer aufweisen, der eine Vielzahl von Eingängen aufweist, die mit der Vielzahl von 1-Bit-Speicherzellen gekoppelt sind, wobei der Multiplexer gesteuert wird, um gemäß den Eingangsadresssignalen einen Ausgang einer der Speicherzellen auszuwählen. Gemäß einer weiteren Ausführungsform kann der Mikrocontroller weiterhin einen Adressdecoder aufweisen, der ausgebildet ist, um eine der Speicherzellen auszuwählen, die Eingangsadresssignalen entspricht, die an dem Adressdecoder empfangen werden. Gemäß einer weiteren Ausführungsform kann der Mikrocontroller weiterhin eine Logikschaltung aufweisen, die mit einem Ausgang der Nachschlagetabelle gekoppelt ist. Gemäß einer weiteren Ausführungsform kann die Logikschaltung einen Modus-Multiplexer aufweisen, der einen ersten Eingang aufweist, der mit dem Ausgang der Nachschlagetabelle gekoppelt ist, einen zweiten Eingang aufweist, der mit einem Ausgang eines ersten Flip-Flops gekoppelt ist, wobei ein Dateneingang des ersten Flip-Flop mit dem Ausgang der Nachschlagetabelle gekoppelt ist und ein Takteingang des Flip-Flops mit einem Takteingang der Logikschaltung gekoppelt ist, wobei der Modus-Multiplexer von einem Modus-Register gesteuert wird. Gemäß einer weiteren Ausführungsform kann der Multiplexer einen dritten Eingang aufweisen, der mit einem Ausgang eines UND-Gatters gekoppelt ist, wobei das UND-Gatter einen ersten Eingang aufweist, der mit dem Takteingang gekoppelt ist, und einen zweiten Eingang aufweist, der mit einem Ausgang eines zweiten Flip-Flops gekoppelt ist, wobei ein Dateneingang des zweiten Flip-Flops mit einem Ausgang der Nachschlagetabelle gekoppelt ist und ein Takteingang des zweiten Flip-Flops mit einem Ausgang eines XOR-Gatters gekoppelt ist, wobei ein erster Eingang des XOR-Gatters mit dem Takteingang gekoppelt ist und ein zweiter Eingang des XOR-Gatters mit dem Ausgang des zweiten Flip-Flops gekoppelt ist.
  • Gemäß einer weiteren Ausführungsform weist auf ein Verfahren zum Betreiben eines Mikrocontrollers eine zentrale Verarbeitungseinheit, einen Speicher, I/O-Ports und eine Vielzahl von Peripherieeinheiten auf, wobei eine der Peripherieeinheiten eine konfigurierbare Logikzelle ist, wobei die konfigurierbare Logikzelle ausgebildet durch eine Nachschlagetabelle ist, die durch eine Vielzahl von Speicherzellen ausgebildet ist, die eine vorgegebene Anzahl von Eingangsadresssignalen empfangen und ein Ausgangssignal erzeugen, und wobei die zentrale Verarbeitungseinheit ausgebildet ist, um Eingangsadresssignale für die Nachschlagetabelle direkt bereitzustellen, wobei das Verfahren aufweisen kann: Konfigurieren die Nachschlagetabelle durch Laden vorgegebener Daten in Speicherzellen der Nachschlagetabelle; Auswählen von Adresssignalen aus internen Signalen, die von den Peripherieeinheiten bereitgestellt werden, und externen Signalen, die von zumindest einem externen Pin bereitgestellt werden; Puffern der ausgewählten Adresssignale in einem Register oder Latch.
  • Gemäß einer weiteren Ausführungsform kann das Verfahren weiterhin das Überschreiben des Registers oder Zwischenspeichers durch die zentrale Verarbeitungseinheit unter Programmsteuerung aufweisen. Gemäß einer weiteren Ausführungsform kann das Konfigurieren der Nachschlagetabelle durchgeführt werden, indem Daten durch die zentrale Verarbeitungseinheit oder einen DMA-Controller in die Speicherzellen übertragen werden. Gemäß einer weiteren Ausführungsform kann das Konfigurieren der Nachschlagetabelle durch eine Speicherabbildung der Speicherzellen auf einen Flash-Speicher und durch Programmieren des Mikrocontrollers durchgeführt werden.
  • Figurenliste
  • Ein vollständigeres Verständnis der vorliegenden Offenbarung kann durch Bezugnahme auf die folgende Beschreibung in Verbindung mit den begleitenden Zeichnungen erlangt werden. Ähnliche Bezugszeichen in den Zeichnungen beziehen sich auf ähnliche Elemente, wobei:
    • 1 einen Mikrocontroller mit einer Nachschlagetabelle - konfigurierbaren Logikzellen-Peripherie gemäß einer Ausführungsform veranschaulicht;
    • 2 einen herkömmlichen Mikrocontroller mit einer konfigurierbaren Logikzellen-Peripherie veranschaulicht.
    • 3 eine erste Ausführungsform einer Nachschlagetabelle - konfigurierbaren Logikzellen-Peripherie zeigt.
    • 4 ein Blockdiagramm einer beispielhaften Nachschlagetabelle zeigt;
    • 5 eine zweite Ausführungsform einer Nachschlagetabelle - konfigurierbaren Logikzellen-Peripherie zeigt.
  • DETAILLIERTE BESCHREIBUNG
  • Wenden wir uns nun den Zeichnungen zu und unter besonderer Berücksichtigung von 1 ist ein Diagramm eines Mikrocontrollers 100 gemäß einer Ausführungsform der vorliegenden Erfindung dargestellt. Der Mikrocontroller 100 weist einen Prozessorkern (MCU) oder eine CPU 102 auf, die als RISC-Kern ausgeführt sein können. Der Prozessorkern 102 ist typischerweise über einen Bus 106 mit einem oder mehreren On-Chip-Peripherieanordnungen verbunden, wie etwa analogen Peripherien 108 und digitalen Peripherien 110. Diese Peripherien 108, 110 können über eine oder mehrere externe Pin-Verbindungen 120, 122 mit externen Schaltungen verbunden sein und durch diese jeweiligen Pins Eingangssignale empfangen und/oder Ausgangssignale erzeugen. Einige Peripherien benötigen oder erzeugen jedoch möglicherweise keine externen Signale oder können nur ein oder mehrere Eingangssignale empfangen oder nur ein oder mehrere Ausgangssignale erzeugen. Die MCU (oder CPU) ist weiterhin entweder über den Bus 106, wie durch die gestrichelten Linien angezeigt, oder über einen separaten Speicherbus mit einem Speicherblock 103 gekoppelt. Der Speicherblock 103 kann je nach Implementierungsarchitektur separate Daten- (RAM) und Programmspeicher (ROM oder Flash-Speicher) aufweisen. Gemäß einer Ausführungsform können spezielle Funktionsregister der verschiedenen Peripherien, die für die Konfiguration und den Datentransfer verwendet werden, auf den Datenspeicher abgebildet werden. Es können mehrere externe Pins 116, 118, 120, 122, 124 bereitgestellt werden. Jeder dieser Pins kann ein Multifunktionspin sein und mit einem I/O-Port und entsprechenden Multiplexern (nicht gezeigt) gekoppelt sein, um die Multifunktion des jeweiligen Pins bereitzustellen. 1 zeigt nur eine Konfiguration, bei der Pin 120 als analoger Eingangspin für das analoge Peripheriegerät 108, Pin 122 als digitaler Eingangspin für das digitale Peripheriegerät 110, Pin 124 und 118 als Eingangs- und Ausgangspins für eine Nachschlagetabelle (LUT)-CLC 104 und Pin 116 als Mehrzweck-I/O-Pin verwendet werden.
  • Ein Direct Memory Access (DMA)-Controller 140 kann gemäß verschiedenen Ausführungsformen implementiert und mit dem Systembus 106 gekoppelt sein. Ein solcher DMA-Controller 140 kann konfigurierbar sein, um Daten zwischen dem Speicherblock 103 und beliebigen Peripherien einschließlich der LUT-CLC-Peripherie 104 oder zwischen den verschiedenen Peripherien zu übertragen.
  • Für alle externen Pins können verschiedene I/O-Ports für allgemeine Zwecke bereitgestellt werden, die die grundlegende I/O-Schnittstelle eines Mikrocontrollers ausbilden. 1 zeigt lediglich einen Ausgangstreiber 112, der mit einem externen Pin 116 gekoppelt ist. Wie gemäß Stand der Technik verstanden wird, kann ein GPIO-Port jedoch Eingangs- und Ausgangstreiber sowie Multiplexer aufweisen, um als Multifunktionspin zu arbeiten, und somit können externe Pins unter Programmsteuerung ihre Funktion mit verschiedenen Peripherien gemeinsam nutzen.
  • Außerdem weist jede LUT-CLC 104, wie unten ausführlicher erläutert wird, eine Nachschlagetabelle (LUT) anstelle von tatsächlichen Logikkomponenten auf, die unten ausführlicher erläutert werden. Jede LUT-CLCs 104 fungiert als Peripherievorrichtung und ist mit dem Bus 106 gekoppelt. Gemäß verschiedenen Ausführungsformen kann jede LUT-CLC 104 ein oder mehrere Spezialfunktionsregister (SFRs) 105 zur weiteren Konfiguration aufweisen oder diesen zugeordnet sein, wie unten ausführlicher erläutert wird. Darüber hinaus kann die LUT durch einen Block von dedizierten Speicherzellen ausgebildet werden, wobei diese Zellen auch auf den Datenspeicher 103 speicherabgebildet werden können. Alternativ können diese dedizierten Speicherzellen durch die CPU 102 unter Programmsteuerung geladen oder durch Kopieren des Inhalts eines dedizierten RAM- oder Flash-Bereichs des Speicherblocks 103 in die Zellen konfiguriert werden. Gemäß einer Ausführungsform können die dedizierten Speicherzellen der LUT-CLC 104 in den Datenspeicher oder den Flash-Speicher speicherabgebildet sein und könnten somit direkt durch die CPU 102 oder durch Programmieren des Mikrocontrollers 100 konfiguriert werden. Im Fall der Speicherabbildung der dedizierten Speicherzellen der LUT-CLC 104 auf den Flash-Speicher können die vom Mikrocontroller 102 bereitgestellten Flash-Speicher-Schreibroutinen verwendet werden, um eine LUT der LUT-CLC 104 neu zu konfigurieren oder zu initialisieren. Insbesondere kann der DMA-Controller 140 wie oben erwähnt konfigurierbar sein, um Daten in die Speicherzellen der LUT der LUT-CLC 104 zu übertragen.
  • Die dedizierten Register 105 der LUT-CLCs 104 sind wie andere Peripherien adressierbar, beispielsweise durch Memory-Mapping, und können logische Funktionen für ein System oder eine Systemanwendung bereitstellen. Diese können beispielsweise jede beliebige logische Funktion aufweisen, die von den Nachschlagetabellen bereitgestellt wird, wie unten ausführlicher erläutert wird.
  • In der veranschaulichten Ausführungsform kann die LUT-CLC 104 über den Bus 105 Eingaben von jedem der digitalen oder analogen Peripherien 108, 110 sowie externe Signale empfangen, die durch einen oder mehrere Pins 124 bereitgestellt werden, und einen Reset vom Prozessorkern 102. Wie oben erwähnt, können die Pins 124 gemäß verschiedenen Ausführungsformen ihre Funktion mit einem GPIO-Port-Pin teilen. Diese Peripherien können beispielsweise eine Pulsbreitenmodulations- (PWM-) Quelle, eine komplementäre Wellenformgenerator- (CWG-) Quelle, eine DSM-Quelle und DDS/Timer-Takteingänge oder irgendeine andere geeignete Peripherie aufweisen. Im Allgemeinen können Eingaben von I/O-Pins, beliebigen Peripherien und/oder internen Taktgebern herrühren. Wie detaillierter erläutert wird, können verschiedene interne und externe Eingangssignale durch einen Eingangsmultiplexer (in 1 nicht gezeigt) auswählbar und verfügbar sein, um der Nachschlagetabelle innerhalb der LUT-CLC 104 eine Adresse bereitzustellen, die dann abhängig von einer Programmierung der Nachschlagetabelle ein zugehöriges Ausgangssignal erzeugt, wodurch die gewünschte Logikfunktion implementiert wird. Das Ausgangssignal kann entweder ein einzelnes Signal sein, das durch einen Multiplexer (nicht gezeigt) zu einem Ziel geleitet werden kann, oder mehrere Ausgangssignale, die von einem jeweiligen Empfänger ausgewählt werden können. 1 zeigt mehrere Ausgangssignale 126. Erste und zweite Ausgangssignale der Signale 126 können ein Trigger sein, wie beispielsweise ein A/D-Trigger, oder ein Steuersignal für jeweilige analoge oder digitale Peripherien 108, 110. Ein drittes Ausgangssignal kann einen Interrupt an die CPU 102 bereitstellen. Ein viertes Ausgangssignal kann einen Ausgangstreiber eines Mehrzweck-I/O-Ports 112 steuern. Ein fünfter Ausgang kann direkt oder über einen Treiber (nicht gezeigt) zu einem externen Pin 118 geleitet werden. Zusätzliche Ausgaben und Ausgabefunktionen wie Anstiegsrate, Pull-up-Tristate-Schwellenwerte usw. können den Porttreibern 112 bereitgestellt werden, während andere an Pins bereitgestellt werden können, die als externe Pins 118 konfiguriert sind.
  • 1 zeigt eine beispielhafte Konfiguration. Im Allgemeinen kann die LUT-CLC 104 jedoch Eingaben von jedem Subsystem empfangen, wie beispielsweise einer digitalen Peripherie, einem I/O-Port oder internen Statusbits oder Rücksetzsignalen, einschließlich beispielsweise Oszillatorausgabe, Systemtakte usw., und stellt Ausgaben an I/O-Pins, an Peripherien, einen Prozessorkern-Interrupt, I/O-Port-Steuerfunktionen, Statussignale, Systemtakt und sogar an andere LUT-CLCs 104 oder konventionelle CLCs bereit.
  • Wie oben angemerkt, wird die LUT-CLC 104 in einigen Ausführungsformen wie andere Peripherien adressiert und kann zur Laufzeit durch den Bus 106 und/oder durch die Speicherzuordnung konfiguriert werden. In einigen Ausführungsformen kann die LUT-CLC 104 zur Laufzeit unter Verwendung eines oder mehrerer Spezialfunktionsregister 105 konfiguriert werden. Somit ist die LUT-CLC 104 vollständig in den Prozessoradressen- und Datenbus integriert. Die Konfiguration kann je nach den Anforderungen der Anwendung statisch angewendet oder in Echtzeit aktualisiert werden.
  • In einigen Ausführungsformen kann die Konfiguration der LUT des LUT-CLC104 von Softwareregistern oder einem nichtflüchtigen Speicher herrühren. In einigen Ausführungsformen kann der nichtflüchtige Speicher gelesen und Daten können über die CPU 102 oder einen DMA-Controller 140 an die LUT der LUT-CLC 104 übertragen werden. In anderen kann der nichtflüchtige Speicher zur Konfiguration statisch verbunden sein. Weiterhin kann in einigen Ausführungsformen nach einer anfänglichen Konfiguration die Software die Konfiguration aktualisieren.
  • Herkömmliche Mikrocontroller mit einem CLC bieten keinen Mechanismus, um direkt von der Software Eingaben an einen CLC bereitzustellen, ohne zuerst durch einen anderen Pin oder eine andere Peripherie zu führen. Mit anderen Worten, es gibt keine Funktion zum Überschreiben von Eingaben. Stattdessen kann die CPU nur Eingangssignale aus einer Vielzahl von verfügbaren Eingangssignalen auswählen, hat jedoch keine Möglichkeit, ein Eingangssignal direkt bereitzustellen.
  • 2 zeigt ein herkömmliches CLC-Peripheriegerät mit Eingangsmultiplexern CLCxSELy und einer Eingangsauswahleinheit CLCxGLS, die verschiedene Eingangssignale auswählt. Die Konfiguration wird durch spezielle Funktionsregister (nicht gezeigt) bereitgestellt, die den Block MODE steuern und die eine feste Anzahl unterschiedlicher Konfigurationen bereitstellen, wie im Block MODE gezeigt. Die wählbaren Optionen sind auf die acht verschiedenen gezeigten Konfigurationen beschränkt. Außer diesen acht Funktionen sind keine anderen Logikfunktionen verfügbar. Eine andere Signalkonditionierung kann vorhanden sein. Das Ausgangssignal (OUT oder CLCxCON.LCOUT) kann intern geroutet oder an einen externen Pin bereitgestellt werden, wie in 2 dargestellt.
  • Gemäß verschiedenen Ausführungsformen, wie zum Beispiel in 3 gezeigt, werden herkömmliche CLC-Kombinationslogikelemente, wie in 2 mit MODE gezeigt, durch ein oder mehrere Nachschlagetabellen- (LUT-) Elemente 230 (nur eines gezeigt) ersetzt. 3 zeigt, dass gemäß einer Ausführungsform innerhalb eines Mikrocontrollers vier LUT-Elemente 230 in einer einzelnen LUT-CLC-Peripherie implementiert werden können. Die LUT-Definition wird wie oben erwähnt durch Software konfiguriert. Die mehreren bereitgestellten LUTs können für eine parallele, eindeutige Eingangsverarbeitung ausgebildet sein, und Ergebnissignale können verwendet werden, um sequentielle Logikelemente 240 (nur eines gezeigt) mit komplizierteren Funktionen (z. B. JK-Flipflop mit 4 Eingängen) zu steuern. LUT-Eingänge können von Pins, Peripherien und zusätzlich von einem Register oder Latch 220 herrühren, das eine direkte Softwaresteuerung ermöglicht. Dieses Register oder Latch 220 arbeitet als Puffer, auf den die CPU zugreifen kann. Wie in der Ausführungsform von 3 gezeigt, sind vier Eingangssignale für die LUT 230 durch die Multiplexer 210a..d auswählbar und liefern der a LUT 230 entsprechende Adressen. Eine ähnliche Eingangsauswahlschaltung wird bereitgestellt, wenn mehr als eine LUT implementiert wird. Somit würden vier Auswahlschaltungen für vier LUTs implementiert. Diese vier Signale sind das Adresssignal für die LUTs 230, die jeweils den Ausgang von beispielsweise einer von sechzehn 1-Bit-Speicherzellen Mem_cell0... Mem_cell_15 auswählen. Jede LUT 230 wählt somit über die vier Adresssignale den jeweiligen Speicherzelleninhalt aus und stellt ihr jeweiliges Ausgangssignal an die nachfolgende konfigurierbare sequentielle Logik 240 oder den Ausgangspin 250 bereit. Gemäß einer Ausführungsform könnte dieses Ausgangssignal das an Pin 250 der LUT-CLC verfügbare Ausgangssignal ausbilden, wie durch die gestrichelte Linie für eine der LUTs 230 angezeigt. Wie in 3 gezeigt, kann jedoch eine konfigurierbare sequentielle Logik 240 für jede LUT 230 bereitgestellt werden, die unter CPU-Steuerung weitere Funktionen bereitstellen kann, wie im Folgenden unten ausführlich erläutert wird. Ein Ausgangssignal der konfigurierbaren sequentiellen Logik 240 wird dann dem externen Pin 250 zugeführt. Das Ausgangssignal jeder LUT 230 oder das am Ausgang der konfigurierbaren sequentiellen Logik 240 verfügbare Ausgangssignal kann auch intern als ein oder mehrere interne Signale OUT, CLCxCON.LCOUT für andere interne Module bereitgestellt werden, wie in 3 gezeigt. Die konfigurierbare sequentielle Logik 240 kann ein auswählbares Taktsignal CLCxCLK oder ein anderes Steuersignal zur weiteren Synchronisation oder zu anderen Zwecken empfangen.
  • Gemäß einer Ausführungsform kann beispielsweise ein spezifisches Vier-Bit-Eingangsregister 220 bereitgestellt werden, das ein ausgewähltes Eingangssignal durch die Multiplexer 210a..d empfängt. Wie in 3 gezeigt, ist dieses Register 220 zwischen den Eingangsauswahlmultiplexern 210a..d und der LUT 230 angeordnet. Jedes Registerbit Ina..d des Registers 220 ist einem der vier Eingänge für eine LUT zugeordnet. Diese Register können auf den Datenspeicher des Speicherblocks 103 speicherabgebildet werden, und somit kann ein Lesen oder Schreiben an ihnen durch die CPU 102 durchgeführt werden. Somit kann die CPU 102 nicht nur die aktuell ausgewählten Eingangssignale lesen, die an die LUT 230 geliefert werden, sondern kann auch diese Signale überschreiben, wodurch eine Softwaresteuerung bereitgestellt wird. Alternativ oder zusätzlich sind speicherabgebildete Spezialfunktionsregister (SFR) 260 vorgesehen, die als Eingangssignalquelle für die Multiplexer 210a..d ausgewählt werden könnten, um einen direkten Softwareeingang an die LUT 230 bereitzustellen. Alle Multiplexer 210 sind einzeln steuerbar, um wie gewünscht beliebige vier Eingangssignale an die LUT 230 bereitzustellen. Andere Ausführungsformen können mehr oder weniger als vier Eingangsadresssignale aufweisen und die zugehörigen LUTs 230 können daher mehr oder weniger komplex sein.
  • Die Benutzerkonfiguration der LUT 230 ermöglicht eine funktionsäquivalente Abwärtskompatibilität zu bestehenden CLC-Peripherien sowie die Realisierung beliebiger Logikfunktionen. Dies bedeutet, dass die meisten, wenn nicht alle Multi-CLC-Kombilogikschaltungen, wie beispielsweise in 2 gezeigt, durch eine einzelne LUT-Lösung ersetzt werden können. Die LUT-Eingabe von den Registern 220 oder 260 erhöht die Flexibilität im Vergleich zu herkömmlichen Logikzellen-Peripherien.
  • 4 zeigt ein detaillierteres Beispiel einer LUT 230. Die LUT 230 weist in diesem Beispiel einen Speicherblock 450 mit n 1-Bit-Speicherzellen 420a..n und einen Adressdecoder 410 auf, der eine Vielzahl von Adressleitungen 440 empfängt. Der Adressdecoder 410 wählt gemäß einer bereitgestellten Adresse eine der Speicherzellen 420a..b aus, deren Ausgangssignal dann auf die Ausgangsleitung 430 gelegt wird. Die CPU 102 kann Zugriff auf die Speicherzellen 420a..n haben, um eine direkte Lese- und Schreibfunktionalität bereitzustellen. Ein solcher Zugriff kann jedoch auch durch eine Speicherabbildung der Speicherzellen 420a..n in den Adressraum des Datenspeichers oder des Flash-Speichers des Speicherblocks 103 erfolgen. Alternativ zu einem Adressdecoder 410, insbesondere in kleinen LUTs, kann ein einfacher Multiplexer, wie in 3 innerhalb des Blocks 230 angezeigt, verwendet werden, der eine von mehreren Speicherzellen auswählt. Jede andere herkömmliche Nachschlagetabellenschaltung kann gemäß verschiedenen Ausführungsformen implementiert werden.
  • Gemäß einer spezifischen Ausführungsform kann eine LUT 230 durch einen 16-Zellen-1-Bit-Wort-RAM ausgebildet werden, der von einer 4-Bit-Auswahlschaltung adressiert wird, wie in den 3 bis 5 gezeigt. Gemäß einer Ausführungsform sind zum Beispiel jede der 4 Adresseingangsleitungen mit einer Multiplexerschaltung verbunden, die beispielsweise vier Multiplexer 210a..d aufweist, die es ermöglicht, vier Eingangsbits aus vielen verschiedenen Quellen zu entnehmen. 3 zeigt nur drei Eingänge für jeden Multiplexer. Durch diese Multiplexer können jedoch mehrere unterschiedliche Signale ausgewählt werden. Darüber hinaus kann jeder Multiplexer 210a..d einen unterschiedlichen oder identischen Satz von Eingangssignalen empfangen. In einigen Ausführungsformen können sich Teilmengen der Eingangssignale für die Multiplexer 210a..d überlappen.
  • Wenn eine Registereingabe implementiert werden soll, kann dies entweder durch Hinzufügen eines Registers 260 zur Auswahlliste der Multiplexerschaltung, wie in 3 gezeigt, oder durch Einfügen eines Registers 220 zwischen den Ausgängen der Multiplexer 210a..d und den jeweiligen LUT-Eingängen erreicht werden, wie in den 3 und 5 gezeigt. Auf die zweite Weise übernimmt das Register 220 die Dominanz über die LUT-Eingangsleitung und wirkt als Puffer, der ein einfaches Überschreiben von Hardwaresignalen durch Software ermöglicht. Zu diesem Zweck kann die CPU 102 beispielsweise einen beliebigen Inhalt des Registers 220 während der Laufzeit überschreiben. Wie oben erwähnt, können gemäß einer Ausführungsform beide Register 220 und 260 implementiert sein. Alle Register können auf den Datenspeicher speicherabgebildet sein.
  • Diese Lösung gemäß einigen Ausführungsformen stellt 4 vollqualifizierte Eingaben für eine 16-Elemente-LUT 230 bereit. Dadurch kann jede Funktion mit 4 Variablen realisiert werden. Die Eingangsmultiplexer 210a..d können jeweils eine identische Auswahl aufweisen, wodurch eine symmetrische Eingangsauswahl ausgebildet wird, wobei jeder Multiplexer 210a..d mehr oder weniger Eingangssignale als die drei in 3 gezeigten Signale aufweisen kann. Andere Lösungen können jedoch z B. nur eine Anzahl von Eingängen bereitstellen, die nicht symmetrisch sind, d.h. jeder Eingangsmultiplexer 210a..d kann einen anderen Satz von Eingangssignalen empfangen. In der Ausführungsform von 3 bedeutet dies, dass nur begrenzte Funktionen mit 3 Variablen realisiert werden könnten. Andere Ausführungsformen können eine höhere Anzahl von Eingangsleitungen pro Eingangsmultiplexer 210a..d und/oder eine höhere Anzahl von Eingangssignalen für die LUT 230 implementieren, was die Anzahl von Speicherzellen erhöht, die zum Implementieren der LUT 230 benötigt werden.
  • Eingaben von den Registern 220 und/oder 260 ermöglichen eine Softwaresteuerung. Benutzer, die Ereignisse von mehreren getrennten Peripherien erzeugen möchten, können dies in Software tun und dieses Ereignis durch Schreiben des Eingangsregisters 220/260 an die LUT 230 melden. Außerdem kann ein Peripheriegerät wie ein DMA 140 (in 1 gezeigt) in die Register 220/260 schreiben, was bedeutet, dass die LUT-CLC bei Verwendung dieser Funktion sogar die Kernunabhängigkeit aufrechterhalten kann.
  • 5 zeigt mehr Details einer möglichen Implementierung der konfigurierbaren sequentiellen Logik 240. Die LUT 230 ist hier wiederum als ein Multiplexer 270 und sechzehn 1-Bit-Speicherzellen 265 implementiert. Eingangsmultiplexer 210a..d können eine Vielzahl von internen/externen Signalen (nur zwei sind in 5 gezeigt) empfangen und werden von Auswahlregistern 385 gesteuert, die Teil der Spezialfunktionsregister 105 sind. Die Register 220 und 260 sind identisch mit den Registern 220 bzw. 260 von 3.
  • Ein Modus-Multiplexer 310 empfängt direkt an einem ersten Eingang das Ausgangssignal der LUT 230. Der Modus-Multiplexer 310 kann durch das Register 380 gesteuert werden, das wiederum Teil der Spezialfunktionsregister 105 sein kann. Ein zweiter Eingang des Modus-Multiplexers 310 empfängt ein Ausgangssignal vom D-Flip-Flop 320, dessen Eingang mit dem Ausgang der LUT 230 gekoppelt ist. D-Flip-Flop 320 ist taktgesteuert und empfängt ein Taktsignal CLCxCLK, das aus verfügbaren internen Takten durch einen Multiplexer 360 auswählbar ist, der durch das Taktauswahlregister 365 gesteuert wird, das wiederum Teil der Spezialfunktionsregister 105 sein kann. Ein dritter Eingang des Modus-Multiplexers 310 empfängt eine Ausgabe des UND-Gatters 340, dessen erster Eingang das wählbare interne Taktsignal CLCxCLK empfängt und dessen zweiter Eingang das Ausgangssignal des D-Flip-Flop 330 empfängt. Das D-Flip-Flop 330 empfängt das Ausgangssignal der LUT 230 als Eingangssignal und weist einen Takteingang auf, der mit einem Ausgang des XOR-Gatters 350 gekoppelt ist. Das XOR-Gatter 350 empfängt das Taktsignal CLCxCLK und das Ausgangssignal des D-Flip-Flops 330. Die D-Flip-Flops 320 und 330 können getrennt implementiert werden oder ein einzelner D-Flip-Flop kann für die beiden Betriebsarten verwendet und geteilt werden. Ein vierter oder mehr Eingänge des Modus-Multiplexers 310 können bereitgestellt werden oder nicht und können nach Wunsch weitere sequentielle Logik und daher LCMODEs bereitstellen. Die Ausführungsform von 5 zeigt drei mögliche LCMODEs, wobei der erste LCMODE = 0 keine sequentielle Logik aufweist, der zweite LCMODE = 1 den LUT plus D-Flip Flop-Modus bereitstellt und der dritte LCMODE = 2 den LUT plus D-Flip Flop und Feedback-Modus bereitstellt. Dieser dritte Betriebsmodus stellt eine sequentielle Logik zum Implementieren von Glitch-Filterung bereit, wobei herkömmliche Mikrocontroller mit CLCs 3 CLCs benötigen würden, um dies zu erreichen, während Ausführungsbeispiele der vorliegenden Anmeldung diese Aufgabe mit einer einzelnen Zelle erfüllen können. Beliebig viele Betriebsmodi bezüglich zusätzlicher sequentieller Logik können implementiert werden und keiner der gezeigten Modi LCMODE = 1 oder 2 ist erforderlich.
  • Der Modus-Multiplexer 310 kann durch das Modusregister 380 gesteuert werden, das eines der Konfigurationsregister 105 sein kann und den jeweiligen LCMODE bestimmt. Die Eingangsauswahl-Multiplexer 210 werden durch das Auswahlregister 385 gesteuert, das ein weiteres Konfigurationsregister von SFRs 105 sein kann. Eine weitere Logik 370, die von noch einem weiteren SFR 105 gesteuert wird, kann bereitgestellt werden, um das Ausgangssignal des Modus-Multiplexers 310 zu konditionieren. Die durch das Steuerregister 390 gesteuerte Logik 370 kann einen Wechselrichter, eine Open-Drain-Steuerung, steuerbare Pull-Up- oder Pull-Down-Widerstände und ähnliche Funktionen bereitzustellen und kann gemäß verschiedenen Ausführungsformen vollständig weggelassen werden. Das Steuerregister 390 kann wiederum Teil der Spezialfunktionsregister 105 sein. Bestimmte SFRs 105 können nach Wunsch Funktionen teilen. Beispielsweise kann ein einzelnes 32-Bit-SFR alle oder einige Konfigurationsoptionen steuern. Jedes Registerbit des SFR 105 kann dem Ein- oder Ausschalten einer bestimmten Funktion oder Option zugeordnet sein. Je nach Komplexität der Implementierung können mehrere Bits oder Bitgruppen in einem Register des SFR 105 zum Steuern der Eingangsauswahl-Multiplexer 210 und des Modus-Multiplexers 310 verwendet werden. Jedoch können separate Register 385, 380, 365, 390, wie in 5 gezeigt, für die Eingangsauswahl, die Konfiguration der konfigurierbaren Logik 240, die Logik 370 und die Taktauswahl 360 verwendet werden.
  • 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 Patentliteratur
    • US 62/864198 [0001]

Claims (19)

  1. Mikrocontroller, der aufweist: eine zentrale Verarbeitungseinheit; Speicher; I/O-Ports; und eine Vielzahl von Peripherieeinheiten; wobei: eine der Peripherieeinheiten eine konfigurierbare Logikzelle ist; die konfigurierbare Logikzelle durch eine Nachschlagetabelle ausgebildet ist, die durch eine Vielzahl von Speicherzellen ausgebildet ist, die eine vorgegebene Anzahl von Eingangsadresssignalen empfangen, die aus internen Signalen, die von den Peripherieeinheiten bereitgestellt werden, und zumindest einem externen Signal ausgewählt werden können, das von zumindest einem externen Pin bereitgestellt wird und ein Ausgangssignal erzeugt; und die zentrale Verarbeitungseinheit ausgebildet ist, um Eingangsadresssignale für die Nachschlagetabelle direkt bereitzustellen.
  2. Mikrocontroller gemäß Anspruch 1, wobei: die konfigurierbare Logikzelle aufweist: eine Eingangsmultiplexerschaltung, die ausgebildet ist, um die vorgegebene Anzahl von Eingangsadresssignalen aus den internen Signalen und dem zumindest einen externen Signal auszuwählen; und ein Spezialfunktionseingangsregister, das zwischen Ausgängen der Eingangsmultiplexerschaltung und einem Adresseingang der Nachschlagetabelle gekoppelt ist; das Spezialfunktionseingangsregister ausgebildet ist, um die ausgewählten Eingangssignale zu empfangen und zu puffern; und die zentrale Verarbeitungseinheit ausgebildet ist, um aus dem Spezialfunktionseingangsregister zu lesen und in dieses zu schreiben.
  3. Mikrocontroller gemäß Anspruch 2, wobei das Spezialfunktionsregister auf einen Datenspeicher speicherabgebildet ist.
  4. Mikrocontroller gemäß einem der Ansprüche 2 bis 3, wobei: die konfigurierbare Logikzelle aufweist: eine Eingangsmultiplexerschaltung, die ausgebildet ist, um die vorgegebene Anzahl von Eingangssignalen aus den internen Signalen und dem zumindest einen externen Signal auszuwählen; und ein weiteres Spezialfunktionseingangsregister, das mit Eingängen der Eingangsmultiplexerschaltung gekoppelt ist; und die zentrale Verarbeitungseinheit ausgebildet ist, um aus dem weiteren Spezialfunktionseingangsregister zu lesen und in dieses zu schreiben, um der Nachschlagetabelle Eingangssignale direkt bereitzustellen.
  5. Mikrocontroller gemäß Anspruch 4, wobei das weitere Spezialfunktionsregister auf einen Datenspeicher speicherabgebildet ist.
  6. Mikrocontroller gemäß einem der Ansprüche 2 bis 3, wobei die Nachschlagetabelle eine Vielzahl von 1-Bit-Speicherzellen aufweist.
  7. Mikrocontroller gemäß Anspruch 6, wobei die Vielzahl von 1-Bit-Speicherzellen auf den Datenspeicher speicherabgebildet sind.
  8. Mikrocontroller gemäß Anspruch 6, wobei die Vielzahl von 1-Bit-Speicherzellen auf den Programmspeicher speicherabgebildet sind.
  9. Mikrocontroller gemäß Anspruch 8, wobei der Programmspeicher ein Flash-Speicher ist.
  10. Mikrocontroller gemäß einem der Ansprüche 6 bis 9, der weiterhin einen Direktspeicherzugriffscontroller aufweist, der konfigurierbar ist, um Daten in die Vielzahl von 1-Bit-Speicherzellen zu übertragen.
  11. Mikrocontroller gemäß einem der Ansprüche 6 bis 10, der weiterhin einen Multiplexer aufweist, der eine Vielzahl von Eingängen aufweist, die mit der Vielzahl von 1-Bit-Speicherzellen gekoppelt sind, wobei der Multiplexer gesteuert wird, um entsprechend den Eingangsadresssignalen einen Ausgang einer der Speicherzellen auszuwählen.
  12. Mikrocontroller gemäß einem der Ansprüche 6 bis 11, der weiterhin einen Adressdecoder aufweist, der ausgebildet ist, um eine der Speicherzellen auszuwählen, die Eingangsadresssignalen entspricht, die an dem Adressdecoder empfangen werden.
  13. Mikrocontroller gemäß einem der Ansprüche 1 bis 12, der weiterhin eine Logikschaltung aufweist, die mit einem Ausgang der Nachschlagetabelle gekoppelt ist.
  14. Mikrocontroller gemäß Anspruch 13, wobei: die Logikschaltung einen Modus-Multiplexer aufweist, der einen ersten Eingang aufweist, der mit dem Ausgang der Nachschlagetabelle gekoppelt ist, und einen zweiten Eingang, der mit einem Ausgang eines ersten Flip-Flops gekoppelt ist; ein Dateneingang des ersten Flip-Flops mit dem Ausgang der Nachschlagetabelle gekoppelt ist; ein Takteingang des Flip-Flops mit einem Takteingang der Logikschaltung gekoppelt ist, und der Modus-Multiplexer von einem Modusregister gesteuert wird.
  15. Mikrocontroller gemäß Anspruch 14, wobei: der Multiplexer einen dritten Eingang aufweist, der mit einem Ausgang eines UND-Gatters gekoppelt ist, wobei das UND-Gatter einen ersten Eingang aufweist, der mit dem Takteingang gekoppelt ist, und einen zweiten Eingang, der mit einem Ausgang eines zweiten Flip-Flops gekoppelt ist, ein Dateneingang des zweiten Flip-Flops mit einem Ausgang der Nachschlagetabelle gekoppelt ist und ein Takteingang des zweiten Flip-Flops mit einem Ausgang eines XOR-Gatters gekoppelt ist; und ein erster Eingang des XOR-Gatters mit dem Takteingang gekoppelt ist und ein zweiter Eingang des XOR-Gatters mit dem Ausgang des zweiten Flip-Flops gekoppelt ist.
  16. Verfahren zum Betreiben eines Mikrocontrollers, der eine zentrale Verarbeitungseinheit, einem Speicher, I/O-Ports und eine Vielzahl von Peripherieeinheiten aufweist, wobei eine der Peripherieeinheiten eine konfigurierbare Logikzelle ist, wobei die konfigurierbare Logikzelle durch einen Look-Up-Tabelle ausgebildet ist, die durch eine Vielzahl von Speicherzellen ausgebildet ist, die eine vorgegebene Anzahl von Eingangsadresssignalen empfangen und ein Ausgangssignal erzeugen, und wobei die zentrale Verarbeitungseinheit ausgebildet ist, um direkt Eingangsadresssignale für die Nachschlagetabelle bereitzustellen, wobei das Verfahren aufweist: Konfigurieren der Look-Up-Tabelle durch Laden vorgegebener Daten in Speicherzellen der Nachschlagetabelle; Auswählen von Adresssignalen aus internen Signalen, die von den Peripherieeinheiten bereitgestellt werden, und aus externen Signalen, die von zumindest einem externen Pin bereitgestellt werden; Puffern der ausgewählten Adresssignale in einem Register oder Latch.
  17. Verfahren gemäß Anspruch 16, das weiterhin aufweist: Überschreiben des Registers oder Zwischenspeichers durch die zentrale Verarbeitungseinheit unter Programmsteuerung.
  18. Verfahren gemäß Anspruch 16, wobei das Konfigurieren der Nachschlagetabelle durch Übertragen von Daten in die Speicherzellen durch die zentrale Verarbeitungseinheit oder einen DMA-Controller durchgeführt wird.
  19. Verfahren gemäß Anspruch 16, wobei das Konfigurieren der Nachschlagetabelle durch eine Speicherabbildung der Speicherzellen auf einen Flash-Speicher und durch Programmieren des Mikrocontrollers durchgeführt wird.
DE112019007474.1T 2019-06-20 2019-12-17 Mikrocontroller mit konfigurierbarer logikperipherie Pending DE112019007474T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962864198P 2019-06-20 2019-06-20
US62/864,198 2019-06-20
US16/568,058 2019-09-11
US16/568,058 US10949204B2 (en) 2019-06-20 2019-09-11 Microcontroller with configurable logic peripheral
PCT/US2019/066709 WO2020256778A1 (en) 2019-06-20 2019-12-17 Microcontroller with configurable logic peripheral

Publications (1)

Publication Number Publication Date
DE112019007474T5 true DE112019007474T5 (de) 2022-04-28

Family

ID=74038858

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019007474.1T Pending DE112019007474T5 (de) 2019-06-20 2019-12-17 Mikrocontroller mit konfigurierbarer logikperipherie

Country Status (4)

Country Link
US (1) US10949204B2 (de)
CN (1) CN114026552B (de)
DE (1) DE112019007474T5 (de)
WO (1) WO2020256778A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116820015B (zh) * 2023-08-29 2023-11-17 灵动集成电路南京有限公司 具有灵活可配置逻辑模块的微控制器

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6145020A (en) * 1998-05-14 2000-11-07 Advanced Technology Materials, Inc. Microcontroller incorporating an enhanced peripheral controller for automatic updating the configuration date of multiple peripherals by using a ferroelectric memory array
US6256683B1 (en) * 1998-12-23 2001-07-03 Bops, Inc. Methods and apparatus for providing direct memory access control
US6188241B1 (en) * 1999-05-14 2001-02-13 Advanced Micro Devices, Inc. Microcontroller having a block of logic configurable to perform a selected logic function and to produce output signals coupled to corresponding I/O pads according to a predefined hardware interface
US7170315B2 (en) * 2003-07-31 2007-01-30 Actel Corporation Programmable system on a chip
US20050102573A1 (en) * 2003-11-03 2005-05-12 Macronix International Co., Ltd. In-circuit configuration architecture for embedded configurable logic array
US7242218B2 (en) * 2004-12-02 2007-07-10 Altera Corporation Techniques for combining volatile and non-volatile programmable logic on an integrated circuit
US7493467B2 (en) * 2005-12-16 2009-02-17 Intel Corporation Address scrambling to simplify memory controller's address output multiplexer
US9564902B2 (en) * 2007-04-17 2017-02-07 Cypress Semiconductor Corporation Dynamically configurable and re-configurable data path
US9946667B2 (en) * 2008-11-12 2018-04-17 Microchip Technology Incorporated Microcontroller with configurable logic array
US9432298B1 (en) * 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
US8710863B2 (en) 2011-04-21 2014-04-29 Microchip Technology Incorporated Configurable logic cells
US10068183B1 (en) * 2017-02-23 2018-09-04 Edico Genome, Corp. Bioinformatics systems, apparatuses, and methods executed on a quantum processing platform
CN105677616A (zh) * 2016-03-17 2016-06-15 李晓波 处理器实现管脚附加输入/输出功能可配置的方法及装置
CN111679795B (zh) * 2016-08-08 2024-04-05 北京忆恒创源科技股份有限公司 无锁并发io处理方法及其装置
CN107885681B (zh) * 2016-09-29 2020-10-23 比亚迪股份有限公司 管脚控制装置和方法
CN108874709B (zh) * 2017-05-11 2023-05-16 恩智浦美国有限公司 引脚分配电路

Also Published As

Publication number Publication date
WO2020256778A1 (en) 2020-12-24
US20200401407A1 (en) 2020-12-24
CN114026552B (zh) 2024-04-12
CN114026552A (zh) 2022-02-08
US10949204B2 (en) 2021-03-16

Similar Documents

Publication Publication Date Title
DE3645224C2 (de)
DE60100476T2 (de) Unterstützung mehrerer konfigurationszustände eines fpga mittels eines auf dem integrierten schaltkreis dafür vorgesehenen prozessors
DE69723530T2 (de) Durch einen Mikrokontroller steuerbare Makrozelle
DE2918053C2 (de)
DE69831900T2 (de) Programmier-Modus-Auswahl mit JTAG Schaltungen
DE69534812T2 (de) Programmierbare logische Vorrichtung, die mehr als eine Konfiguration speichert, und Mittel zum Umschalten der Konfiguration
DD295039A5 (de) Zusatzkarte mit automatischer anpassung an die schlitzposition
DE3232600C2 (de)
DE102013113262B4 (de) Auslöser-Leitwegeinheit
DE102011053359A1 (de) Latch-basierte Speichervorrichtung
DE10231956A1 (de) Verfahren und Vorrichtung zur systeminternen Programmierung durch einen gemeinsamen Verbindungspunkt von programmierbaren logischen Bauelementen auf mehreren Schaltungsplatinen eines Systems
DE112019007402T5 (de) Virtuelle ports zum anschluss von kern-unabhängigen peripherievorrichtungen
DE112019007474T5 (de) Mikrocontroller mit konfigurierbarer logikperipherie
DE3737958A1 (de) Anordnung zum emulieren eines mikrokontrollers unter verwendung eines muttermikrokontrollers und eines tochtermikrokontrollers, mutter-mikrokontroller bzw. tochtermikrokontroller zur verwendung in einer derartigen anordnung, integrierte schaltung zur verwendung in einem derartigen tochtermikrokontroller und mikrokontroller mit einer derartigen integrierten schaltung
DE3342354A1 (de) Weich programmierbare logikanordnung
EP0231434A1 (de) In integrierter Technik hergestellter Baustein zur Erstellung integrierter Schaltungen
DE19522335A1 (de) Verfahren zum Einstellen von Eingabe/Ausgabe-Basisadressen und Vorrichtung für jumperfreie Konfiguration
WO2004025493A1 (de) Integrierter schaltkreis mit umschaltung durch multiplexer zwischen normalbetrieb und testbetrieb
DE60122968T2 (de) Rekonfigurierbare Speicherabbildung für ein System auf einem Chip
DE2713068A1 (de) Sequentielle datenverarbeitungsanlage
DE60204968T2 (de) Direktzugriffdekodierer
DE1549431A1 (de) Datenverarbeitendes System mit verbesserter Verbindung fuer Untersysteme
DE2233164A1 (de) Schaltungsanordnung zur ausblendung eines beliebig waehlbaren bereichs einer bitfolge bei deren uebertragung zwischen zwei registern
EP0782077A1 (de) Verfahren und Anordnung zum Konvertieren von Speicheradressen in Speicheransteuersignale
DE3215074C2 (de)

Legal Events

Date Code Title Description
R012 Request for examination validly filed