ES2617318T3 - Células de lógica configurable - Google Patents

Células de lógica configurable Download PDF

Info

Publication number
ES2617318T3
ES2617318T3 ES12721046.6T ES12721046T ES2617318T3 ES 2617318 T3 ES2617318 T3 ES 2617318T3 ES 12721046 T ES12721046 T ES 12721046T ES 2617318 T3 ES2617318 T3 ES 2617318T3
Authority
ES
Spain
Prior art keywords
logic
input
flip
flop
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.)
Active
Application number
ES12721046.6T
Other languages
English (en)
Inventor
Kevin Lee KILZER
Sean Steedman
Jerrold S. Zdenek
Vivien Delport
Zeke LUNDSTRUM
Fanie Duvenhage
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
Application granted granted Critical
Publication of ES2617318T3 publication Critical patent/ES2617318T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06F15/7871Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
    • 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
    • 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/17704Logic 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 the logic functions being realised by the interconnection of rows and columns
    • H03K19/17708Logic 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 the logic functions being realised by the interconnection of rows and columns using an AND matrix followed by an OR matrix, i.e. programmable logic arrays

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)

Abstract

Un procesador, que comprende: un núcleo (102) de unidad de procesamiento central (CPU), en particular un núcleo de CPU RISC; una pluralidad de periféricos (108; 110), incluyendo la pluralidad de periféricos uno o más periféricos (104) de célula de lógica configurable, en el que el periférico (104) de célula de lógica configurable está operando de manera independiente del núcleo (102) de la CPU, en el que cada uno del uno o más periféricos (104) de célula de lógica configurable comprende un registro de configuración asociado y en el que una pluralidad de bits en dicho registro (315) de configuración asociado determina una función lógica de una célula de lógica asociada proporcionada mediante un bloque de función lógica, en el que cada bloque de función lógica tiene una pluralidad de entradas (304) lógicas y una única salida lógica y una entrada (314) de control de modo acoplada con dicha pluralidad de bits del registro (315) de configuración asociado.

Description

5
10
15
20
25
30
35
40
45
50
DESCRIPCION
Celulas de logica configurable
La presente divulgacion se refiere a celulas de logica configurable, y, mas particularmente, a un procesador con un periferico de logica combinatoria, una celula de logica configurable incorporada en un microprocesador y que opera independientemente del mismo, una celula de logica configurable que permite al software acceder a la configuracion interna y rutas de senal en un dispositivo de circuito integrado, una celula de logica configurable con control de configuracion en tiempo real, y una celula de logica configurable que incorpora una o mas funciones logicas.
Un sistema de procesador, tal como un sistema de procesador de Computacion de Conjunto de Instrucciones Reducido (RISC), puede incluir un nucleo de microprocesador y una pluralidad de perifericos.
La operacion de un microprocesador, de vez en cuando, se detiene intencionadamente para (a) reducir consumo de potencia (por ejemplo, en reposo o hibernar), o (b) permitir la inspeccion de registros internos por la logica de terceros (por ejemplo, inmovilizacion de depuracion). En estos casos, los dispositivos perifericos generalmente tambien se detienen, para simplificar la interfaz logica, o para permitir que un “estado actual” se capture para inspeccion.
Los dispositivos tales como los Campos de Matrices de Puertas Programables (FPGA) y Dispositivos de Logica Programable (PLD) proporcionan celulas de logica configurable. Hablando en general, el diseno de la logica debe proporcionar explfcitamente que las entradas de software usen registros, buses de direcciones y otras tecnicas de interfaz de microprocesador convencionales, que requieren que se asignen recursos de FPGA adicionales para esta caractenstica. Estas celulas de logica FPGA y pLd convencionales deben configurarse por el usuario, y esa configuracion permanece estatica mientras la celula esta en servicio.
Los FPGA y PLD proporcionan celulas de logica configurable que estan basadas en general en tecnologfa de flip- flop D. Aunque esto es adecuado para uso de fin general y configuracion de logica automatizada, no conduce siempre a una solucion de implementacion de circuito minima.
El documento US7689726 desvela un FPGA que comprende procesador, periferico, memoria de configuracion y logica de configuracion.
Como tal, existe una necesidad para sistemas y procedimientos mejorados para proporcionar dispositivos logicos configurables.
Estas y otras desventajas en la tecnica anterior se superan en gran parte por un sistema y procedimiento de acuerdo con las reivindicaciones independientes. Mejoras adicionales estan caracterizadas en las reivindicaciones dependientes.
Un procesador de acuerdo con las realizaciones segun se reivindican incluye un nucleo de CPU RISC; y una pluralidad de perifericos que incluyen uno o mas perifericos de celula de logica configurable. En algunas realizaciones, el periferico de celula de logica configurable puede configurarse para permitir acceso de software en tiempo real a configuracion interna y rutas de senales del procesador. En algunas realizaciones, el periferico de celula de logica configurable tiene control de configuracion en tiempo real.
En algunas realizaciones, el periferico de celula de logica configurable comprende un biestable asmcrono D.
En otras, el periferico de celula de logica configurable comprende un flip-flop JK. En general, la celula de logica configurable puede programarse para funcionar como una de una pluralidad de funciones logicas predeterminadas. En algunas realizaciones, el periferico de celula de logica configurable puede operar independientemente del procesador. En algunas realizaciones, el periferico de celula de logica configurable puede configurarse para operar mientras el procesador esta en un modo en espera o condicion de inmovilizacion.
En algunas realizaciones, el periferico de celula de logica configurable puede configurarse mediante uno o mas registros de software. En otras, el periferico de celula de logica configurable puede configurarse mediante memoria no volatil. La memoria no volatil puede estar conectada estaticamente para configuracion. En algunas realizaciones, la memoria no volatil puede leerse y los datos de configuracion transferirse a registros de configuracion para configurar el periferico de celula de logica configurable. En algunas realizaciones, despues de la configuracion inicial, la configuracion del periferico de celula de logica configurable puede actualizarse mediante software.
La presente invencion puede entenderse mejor, y sus numerosos objetos, caractensticas y ventajas se hacen evidentes para los expertos en la materia haciendo referencia a los dibujos adjuntos. El uso de los mismos sfmbolos de referencia en diferentes dibujos indica elementos similares o identicos.
La Figura 1 ilustra un circuito integrado ejemplar que incluye una celula de logica configurable.
La Figura 2 ilustra unas lmeas de datos y de direcciones ejemplares en un circuito integrado que incluye una celula de logica configurable.
5
10
15
20
25
30
35
40
45
50
La Figura 3 ilustra un modulo ejemplar que incluye una celula de logica configurable.
La Figura 4A y la Figura 4B ilustran control y configuracion de software de una celula de logica configurable.
La Figura 5A y la Figura 5B ilustran funciones de logica ejemplar para una celula de logica configurable que sustituye dos funciones configuradas estadfsticamente por una unica funcion controlada por software.
La Figura 6A a la Figura 6D ilustran opciones de funcion logica combinatoria para una celula de logica configurable ejemplar.
La Figura 7A a 7D ilustran opciones de estado de funcion logica para una celula de logica configurable ejemplar.
La Figura 8 ilustra una aplicacion de flip-flop JK ejemplar y temporizacion implementadas con una celula de logica configurable ejemplar.
Volviendo ahora a los dibujos y, con atencion particular a la Figura 1, se muestra un diagrama de un procesador o microcontrolador 100 de acuerdo con una realizacion de la presente invencion. El procesador 100 incluye un nucleo de procesador (MCU) 102, que puede realizarse como un nucleo RISC. El nucleo 102 de procesador se acopla mediante un bus 106 a uno o mas dispositivos perifericos en chip, tales como los perifericos 108 analogicos y los perifericos 110 digitales. El procesador 100 puede incluir adicionalmente uno o mas dispositivos 103 de memoria en chip, que pueden implementarse como memoria flash programable.
Ademas, como se explicara en mayor detalle a continuacion, el procesador 100 incluye adicionalmente una o mas celulas de logica configurable (CLC) 104, que funcionan como dispositivos perifericos y estan acopladas al bus 106. Es decir, las celulas 104 de logica configurable son direccionables como otros dispositivos perifericos y proporcionan funciones logicas para el sistema. Como se analizara en mayor detalle a continuacion, las celulas 104 de logica configurable se programan para implementar una diversidad de funciones logicas. Estas pueden incluir, por ejemplo, funciones AND, OR, XOR, y D, JK, y almacenamiento SR.
El procesador 100 incluye adicionalmente una o mas entradas y/o salidas 116, 118, 120, 122, 124, y controladores de puertos asociados, controles 114 de entrada, etc.
En la realizacion ilustrada, la celula 104 de logica configurable recibe entradas desde la patilla 124 externa, perifericos 110 digitales, y una reactivacion desde el nucleo 102 del procesador. Estas pueden incluir, por ejemplo, entradas de origen del Generador de Forma de Onda Complementaria (CWG), origen del Modulador de Senal de Datos (DSM) y Smtesis Digital Directa (DDS)/reloj de temporizador. En general, las entradas pueden provenir a partir de patillas de E/S, bits de registro, otros perifericos y relojes internos.
Ademas, la celula 104 de logica configurable puede proporcionar salidas digitales a uno o mas de los perifericos 108 analogicos, los perifericos 110 digitales y el nucleo 102 del procesador. Las salidas adicionales (tales como rapidez de respuesta, umbrales de tres estados de elevacion de tension, etc.) pueden proporcionarse a los controladores 112 de puerto, mientras que otras pueden proporcionarse a las patillas 118 externas.
Por lo tanto, en general, la celula 104 de logica configurable puede recibir entradas desde cualquier subsistema tal como un periferico digital, puerto de E/S, o bits de estado interno, o senales de reactivacion, que incluyen por ejemplo, salida de oscilador, relojes de sistema, etc., y proporciona salidas a las patillas de E/S, perifericos, una interrupcion de nucleo del procesador, funciones de control de puerto de E/S, senales de estado, reloj de sistema e incluso a otras celulas de logica configurable (no mostradas).
Como se ha indicado anteriormente, en algunas realizaciones, la celula 104 de logica configurable esta direccionada como otros dispositivos perifericos y puede configurarse en tiempo de ejecucion. En algunas realizaciones, la celula 104 de logica configurable puede configurarse en tiempo de ejecucion usando uno o mas registros de funcion especiales (no mostrados). Por lo tanto, la celula 104 de logica configurable esta completamente integrada en el bus de direcciones y de datos del procesador. La configuracion puede aplicarse estaticamente o actualizarse en tiempo real basandose en las necesidades de la aplicacion.
En algunas realizaciones, la configuracion de la celula 104 de logica configurable puede provenir a partir de registros de software o memoria no volatil. En algunas realizaciones, la memoria puede leerse y transferirse los datos a registros de configuracion. En otras, la memoria puede estar conectada estaticamente para configuracion (como en matrices de logica generica / matrices de logica programable (GAL/PAL)). Ademas, en algunas realizaciones, despues de una configuracion inicial, el software puede actualizar la configuracion.
Como tal, en algunas realizaciones, las senales de sistema y las senales de E/S se encaminan a la celula 104 de logica configurable, como se muestra en la Figura 2. La celula 104 de logica configurable a continuacion realiza la logica configurada y proporciona una salida. En particular, se muestra en la Figura 2 el procesador 100 que incluye el nucleo 102 de procesador, una memoria 203 flash de programa y perifericos 202. La memoria 203 flash de programa se acopla mediante lmeas/buses 205 de direcciones de programa y lmeas/buses 207 de datos de programa al nucleo 102 del procesador.
5
10
15
20
25
30
35
40
45
50
55
En el ejemplo ilustrado, los perifericos incluyen un temporizador 202a, memoria 202b de datos, un comparador 202c, y la celula 104 de logica configurable. Los perifericos se acoplan al nucleo 102 del procesador mediante lmeas/buses 206 de direcciones de datos y lmeas/buses 204 de datos. La celula 104 de logica configurable puede recibir entradas individuales adicionales a partir de los perifericos 208 o a partir de una patilla 124 de entrada. Por lo tanto, el software y otros perifericos pueden suministrar entradas a la celula 104 de logica configurable. La celula 104 de logica configurable realiza una operacion logica configurada y proporciona una salida 312.
Como se ha indicado anteriormente, la celula de logica configurable implementa una o mas funciones logicas y puede hacerlo independientemente del estado del nucleo del procesador, por ejemplo, mientras el nucleo del procesador esta en un modo en espera o de depuracion. Como se analizara en mayor detalle a continuacion, la celula de logica configurable incluye logica programable booleana para implementar una diversidad de funciones, tales como puertas unicas, puertas multiples, flip-flops, etc.
La Figura 3 ilustra el entorno de la celula de logica configurable de acuerdo con una realizacion mas particular. La celula 104 de logica configurable recibe cuatro entradas 304 de canal LxOUT1, LxOUT2, LxOUT3 y LxOUT4 a partir de una pluralidad de selectores 302. Las entradas a los selectores 302 pueden provenir a partir de las senales 208 y la E/S 124. En algunas realizaciones, los selectores son multiplexores y/o puertas configurables. Por ejemplo, en algunas realizaciones, los selectores 302 pueden reducir el numero de entradas clc_in 208 de ocho a cuatro entradas 304 para controlar una de ocho funciones de salida unica seleccionables por el selector 302. Pueden encontrarse detalles adicionales sobre implementaciones particulares de los selectores 302 en la solicitud de patente en tramite junto con la pendiente, comunmente asignada, titulada “Selecting Four Signals from Sixteen Inputs” presentada el 17 de abril de 2012.
En el ejemplo ilustrado, la celula 104 de logica configurable recibe las entradas de control LCMODE<2:0> 314 y LCEN 316 a partir de uno o mas registros 315 de control. La salida LxDATA de la celula 104 de logica configurable se realiza la operacion AND con la entrada 316 LCEN. La salida de la puerta 308 AND se realiza la operacion XOR con LCPOL una senal de control a partir de un registro 315 de control y a continuacion se emite como CLCxOUT, todos los cuales se explican en mayor detalle a continuacion.
Como se ha indicado anteriormente, las realizaciones permiten configuracion en tiempo real de la celula de logica configurable. Es decir, se proporciona la configuracion a traves de registros accesibles a partir del microprocesador y pueden actualizarse basandose, por ejemplo, en entradas externas, hora del dfa, temperatura del sistema, coincidencia con otros eventos, o comandos a partir de un anfitrion de control remoto.
La Figura 4A y la Figura 4B ilustran esquematicamente tal operacion. En particular, se muestra el procesador 100 que incluye el nucleo 102 del procesador y la celula 104 de logica configurable. El procesador 100 tiene una entrada 406 de E/S al nucleo 102 del procesador y un par de entradas 124a, 124b al nucleo 104 de logica configurable. La celula 104 de logica configurable emite a la patilla 412.
En la operacion, el estado de la patilla 406 de E/S puede usarse para establecer la funcion del nucleo de logica configurable. En el ejemplo ilustrado, cuando el estado logico de la entrada 406 de E/S es “0”, el nucleo 102 del procesador escribe en uno o mas registros (tales como el registro 314 LxMode de la Figura 3) para provocar que la celula 104 de logica configurable implemente una funcion 402 AND, de modo que entonces las salidas en la patilla 412 son el AND logico de las entradas A 124a y B 124b (AB). En contraste, cuando el estado logico de la entrada 406 de E/S es “1”, el nucleo 102 del procesador escribe en uno o mas registros para provocar que la celula 104 de logica configurable implemente una funcion 404 OR, de modo que entonces la salida en la patilla 412 es el OR logico de las entradas A 124a y B 124b (A+B). Como puede apreciarse, una vez que se establecen las funciones, la celula 104 de logica configurable implementa la funcion configurada independientemente del funcionamiento del nucleo 102 del procesador.
Ventajosamente, la celula 104 de logica configurable de las realizaciones de la presente invencion permite configuracion dinamica y acceso directo a software, permitiendo que el software reconfigure puertas e inversores individuales mientras el sistema se esta ejecutando. Es decir, la celula de logica configurable de las realizaciones de la invencion permite el acceso del software en tiempo real a configuracion interna y rutas de senal, sin requerir una interfaz de microprocesador.
Por ejemplo, como se muestra en la Figura 5A, una configuracion estatica de una interfaz de microprocesador para implementar las dos funciones ((A*B) + C)' y ((A*B)' + C)' requiere dos versiones 502, 504, que incluyen las puertas 506, 510 AND, puertas 508, 514 NoR y el inversor 512.
En contraste, se muestra una celula 104 de logica configurable ejemplar para implementar las funciones en la Figura 5B. La celula 104 de logica configurable incluye la puerta 552 AND, puerta 554 XOR y puerta 556 NOR. Las entradas A y B se proporcionan a la puerta 552 AND, mientras que la entrada C se proporciona a la puerta 556 NOR. La salida de la puerta 552 AND se proporciona a la puerta 554 XOR, mientras que la puerta 554 XOR proporciona su salida a la entrada de la puerta 556 NOR. Ademas, una entrada 558 de software directa (SW) (por ejemplo, a partir de un registro de control) se proporciona a la entrada de la puerta 554 XOR. De esta manera, ambas funciones de los circuitos 502, 504 se implementan usando un unico circuito y aun permiten control de
5
10
15
20
25
30
35
40
software directo.
Las opciones combinatorias ejemplares para una celula de logica configurable de cuatro entradas particular se muestran en la Figura 6A-6D. Mas particularmente, en algunas realizaciones, un registro 314 de configuracion Lx- MODE<2:0> (Figura 3) define el modo logico de la celula. Cuando LxMODE = 000, la celula de logica configurable implementa una funcion AND-OR. Cuando LxMODE = 001, la celula implementa una funcion OR-XOR. Cuando LxMODE = 010, la celula implementa un AND; cuando LxMODE = 011, la celula es un biestable asmcrono RS.
En correspondencia, la celula 104 de logica configurable puede incorporar una pluralidad de funciones logicas de estado. Estas se muestran con referencia a la Figura 7A-7D. Las funciones de estado incluyen tanto flip-flops D (Figura 7A) como flip-flops JK (Figura 7B) con activacion asmcrona (S) y reactivacion (R). El canal de entrada 1 (LCOUT1) proporciona un reloj de flanco ascendente. Si se requiere un flanco descendente, el canal 1 (LCOUT1) puede invertirse en la logica de canal (no mostrada). El canal de entrada 2 (LCOUT2), y en ocasiones el canal 4 (LCOUT4), proporcionan datos a las entradas del registro o biestable asmcrono.
Cuando LCMODE = 100, la celula implementa un flip-flop D de una entrada con S y R. Cuando LCMODE = 101, la celula implementa un flip-flop D de dos entradas con R. Cuando LCMODE = 110, la celula implementa un flip-flop JK con R. Cuando LCMODE = 111, la celula implementa un biestable asmcrono transparente de una entrada con S y R (La salida Q sigue a D mientras que LE es baja y mantiene el estado mientras LE es alta).
Finalmente, la Figura 8 ilustra una operacion de ejemplo de un flip-flop JK de acuerdo con realizaciones de la invencion. En particular, se muestra un ejemplo de colocacion de puertas de reloj que incluye un flip-flop 800 JK, con la entrada 806, salida 802 y reloj 804. La salida 802 es un FCLK/2 en puerta.
El flip-flop JK puede configurarse de acuerdo con la Figura 7B, con el reloj en LCOUT1, J introducida en LCOUT2, y K introducida (invertida) en LCOUT4. Como puede observarse, la salida 802 siempre incluye un numero de ciclos total. Se observa que puede implementarse otra logica y funciones de estado. Por lo tanto, las figuras son unicamente ejemplares.
Aunque se han ilustrado implementaciones espedficas y configuraciones de hardware/software para el dispositivo informatico movil, debena observarse que son posibles otras implementaciones y configuraciones de hardware y que no es necesaria implementacion espedfica o configuracion de hardware/software. Por lo tanto, no todos los componentes ilustrados pueden ser necesarios para el dispositivo informatico movil que implementa los procedimientos desvelados en el presente documento.
Como se usa en el presente documento, ya sea en la descripcion anterior o en las siguientes reivindicaciones, las expresiones “que comprende”, “que incluye”, “que lleva a cabo”, “que tiene”, “que contiene”, “que implica” y similares se han de entender como que estan abiertas, es decir, significar que incluyen pero sin limitacion. Unicamente las frases de transicion “que consiste en” y “que consiste esencialmente en”, respectivamente, deberan considerarse frases de transicion excluyentes, como se expone, con respecto a las reivindicaciones, en el Manual de Procedimientos de Examen de Patentes de la Oficina de Patentes de Estados Unidos.
Cualquier uso de terminos ordinales tales como “primero”, “segundo”, “tercero”, etc., en las reivindicaciones para modificar un elemento de la reivindicacion no connota por sf mismo ninguna prioridad, preferencia u orden de un elemento de reivindicacion sobre otro, o el orden temporal en el que se realizan los actos de un procedimiento. En su lugar, a menos que se establezca espedficamente de otra manera, tales terminos ordinales se usan meramente como etiquetas para distinguir un elemento de reivindicacion que tiene un cierto nombre de otro elemento que tiene un mismo nombre (pero para uso del termino ordinal).

Claims (15)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    REIVINDICACIONES
    1. Un procesador, que comprende:
    un nucleo (102) de unidad de procesamiento central (CPU), en particular un nucleo de CPU RISC; una pluralidad de perifericos (108; 110), incluyendo la pluralidad de perifericos uno o mas perifericos (104) de celula de logica configurable, en el que el periferico (104) de celula de logica configurable esta operando de manera independiente del nucleo (102) de la CPU, en el que cada uno del uno o mas perifericos (104) de celula de logica configurable comprende un registro de configuracion asociado y en el que una pluralidad de bits en dicho registro (315) de configuracion asociado determina una funcion logica de una celula de logica asociada proporcionada mediante un bloque de funcion logica, en el que cada bloque de funcion logica tiene una pluralidad de entradas (304) logicas y una unica salida logica y una entrada (314) de control de modo acoplada con dicha pluralidad de bits del registro (315) de configuracion asociado.
  2. 2. Un procesador de acuerdo con la reivindicacion 1, en el que el periferico (104) de celula de logica configurable esta configurado para permitir el acceso de software en tiempo real a configuracion interna y rutas de senales del nucleo (102) de la CPU.
  3. 3. Un procesador de acuerdo con la reivindicacion 1, el bloque de funcion logica es programable a traves de la entrada (314) de control de modo para operar como uno de: un biestable asmcrono D, un flip-flop y una pluralidad de circuitos de funciones logicas booleanas predeterminadas.
  4. 4. Un procesador de acuerdo con la reivindicacion 1, en el que el periferico (104) de celula de logica configurable esta configurado para operar mientras el nucleo (102) de la cPu esta en una condicion en reposo o inmovilizado.
  5. 5. Un procesador de acuerdo con la reivindicacion 1, en el que el periferico (104) de celula de logica configurable es configurable mediante memoria (103; 203) no volatil.
  6. 6. Un procesador de acuerdo con la reivindicacion 5, en el que se lee la memoria (103; 203) no volatil y se transfieren los datos de configuracion a registros (315) de configuracion para configurar el periferico (104) de celula de logica configurable.
  7. 7. Un procesador de acuerdo con la reivindicacion 1, en el que despues de la configuracion inicial, la configuracion del periferico (104) de celula de logica configurable puede actualizarse mediante software.
  8. 8. Un procesador de acuerdo con una de las reivindicaciones anteriores 3-7, el bloque de funcion logica puede configurarse para formar:
    una primera puerta AND que tiene dos entradas acopladas con una primera y una segunda entrada logica y una salida;
    una segunda puerta AND que tiene dos entradas acopladas con una tercera y una cuarta entrada logica y una salida; y
    una puerta OR que tiene dos entradas acopladas con las salidas de la primera y segunda puerta AND y que tiene una salida que forma la salida logica del bloque de funcion logica.
  9. 9. Un procesador de acuerdo con una de las reivindicaciones anteriores 3-8, el bloque de funcion logica puede configurarse para formar:
    una primera puerta OR que tiene dos entradas acopladas con una primera y una segunda entrada logica y una salida;
    una segunda puerta OR que tiene dos entradas acopladas con una tercera y una cuarta entrada logica y una salida; y
    una puerta XOR que tiene dos entradas acopladas con las salidas de la primera y segunda puerta OR y que tiene una salida que forma la salida logica del bloque de funcion logica.
  10. 10. Un procesador de acuerdo con una de las reivindicaciones anteriores 3-9, el bloque de funcion logica puede configurarse para formar:
    una puerta AND que tiene cuatro entradas acopladas con una primera, segunda, tercera y cuarta entradas logicas, respectivamente y una salida que forma la salida logica del bloque de funcion logica.
  11. 11. Un procesador de acuerdo con una de las reivindicaciones anteriores 3-10, en el que el bloque de funcion logica comprende cuatro entradas logicas y una unica salida logica y esta configurado para formar un biestable asmcrono D o un flip-flop, el bloque de funcion logica puede configurarse adicionalmente
    en un primer modo, para formar un flip-flop D y
    para acoplar directamente la primera entrada logica con una entrada set del flip-flop D, para acoplar directamente la segunda entrada logica con una entrada de datos del flip-flop D, para acoplar directamente la tercera entrada logica con una entrada de reloj del flip-flop D, y
    5
    10
    15
    20
    25
    30
    35
    40
    para acoplar directamente la cuarta entrada logica con una entrada reset del flip-flop D, en el que una salida del flip-flop D forma la salida logica del bloque de funcion logica;
    en un segundo modo, para formar un flip-flop D y
    una primera puerta AND que tiene dos entradas acopladas con la primera y la segunda entrada logica y una salida acoplada con una entrada set del flip-flop D; y
    una segunda puerta AND que tiene dos entradas acopladas con la tercera y la cuarta entrada logica y una salida acoplada con una entrada reset del flip-flop D;
    en un tercer modo para formar un flip-flop D y
    una primera puerta AND que tiene dos entradas acopladas con la primera y la segunda entrada logica y una salida acoplada con una entrada de datos del flip-flop D;
    para acoplar directamente la tercera entrada logica con una entrada de reloj del flip-flop D, y para acoplar directamente la cuarta entrada logica con una entrada reset del flip-flop D, en el que una salida del flip-flop D forma la salida logica del bloque de funcion logica;
    en un cuarto modo para formar un biestable asmcrono D y
    para acoplar directamente la primera entrada logica con una entrada set del biestable asmcrono D, para acoplar directamente la segunda entrada logica con una entrada de datos del biestable asmcrono D, para acoplar directamente la tercera entrada logica con una entrada de habilitacion del biestable asmcrono del biestable asmcrono D, y
    para acoplar directamente la cuarta entrada logica con una entrada reset del biestable asmcrono D, en el que una salida del biestable asmcrono D forma la salida logica del bloque de funcion logica;
    y en un quinto modo para formar un flip-flop JK y
    para acoplar directamente la primera entrada logica con una entrada J del flip-flop JK,
    para acoplar directamente la segunda entrada logica con una entrada de reloj del flip-flop JK,
    para acoplar directamente la tercera entrada logica con una entrada K del flip-flop JK, y
    para acoplar directamente la cuarta entrada logica con una entrada reset del flip-flop JK, en el que
    una salida del flip-flop JK forma la salida logica del bloque de funcion logica.
  12. 12. Un procesador de acuerdo con la reivindicacion 11, en el que el bloque de funcion logica puede configurarse adicionalmente
    en un sexto modo para formar
    una primera puerta AND que tiene dos entradas acopladas con una primera y una segunda entrada logica y una salida;
    una segunda puerta AND que tiene dos entradas acopladas con una tercera y una cuarta entrada logica y una salida; y
    una puerta OR que tiene dos entradas acopladas con las salidas de la primera y segunda puerta AND y que tiene una salida que forma la salida logica del bloque de funcion logica;
    en un septimo modo para formar
    una primera puerta OR que tiene dos entradas acopladas con una primera y una segunda entrada logica y una salida;
    una segunda puerta OR que tiene dos entradas acopladas con una tercera y una cuarta entrada logica y una salida; y
    una puerta XOR que tiene dos entradas acopladas con las salidas de la primera y segunda puerta OR y que tiene una salida que forma la salida logica del bloque de funcion logica; y
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    en un octavo modo para formar
    una puerta AND que tiene cuatro entradas acopladas con una primera, segunda, tercera y cuarta entradas logicas, respectivamente y una salida que forma la salida logica del bloque de funcion logica.
  13. 13. Un procedimiento para uso en un sistema de procesador, que comprende: establecer uno o mas bits en un registro (315) de control;
    usar el uno o mas bits en el registro (315) de control para definir funciones implementadas mediante una celula (104) de logica configurable, comprendiendo las funciones una pluralidad de estados de funciones combinatorias y logicas, en el que dependiendo del ajuste de bits en el registro (315) de control, la celula de logica configurable esta configurada para realizar una funcion logica proporcionada mediante un bloque de funcion logica, en el que el bloque de funcion logica tiene una pluralidad de entradas (304) logicas y una unica salida logica y una entrada (314) de control de modo para configurar la funcion.
  14. 14. Un procedimiento de acuerdo con la reivindicacion 11,
    en el que el bloque de funcion logica comprende cuatro entradas logicas y una unica salida logica y puede configurarse para formar un biestable asmcrono D o un flip-flop, en el que el procedimiento comprende adicionalmente establecer los bits en dicho registro de control para configurar el bloque de funcion logica en el que
    en una primera configuracion, el bloque de funcion logica forma un flip-flop D y acopla directamente la primera entrada logica con una entrada set del flip-flop D, acopla directamente la segunda entrada logica con una entrada de datos del flip-flop D, acopla directamente la tercera entrada logica con una entrada de reloj del flip-flop D, y
    acopla directamente la cuarta entrada logica con una entrada reset del flip-flop D, en el que una salida del flip- flop D forma la salida logica del bloque de funcion logica;
    en una segunda configuracion, el bloque de funcion logica forma un flip-flop D y
    una primera puerta AND que tiene dos entradas acopladas con la primera y la segunda entrada logica y una salida acoplada con una entrada set del flip-flop D; y
    una segunda puerta AND que tiene dos entradas acopladas con la tercera y la cuarta entrada logica y una salida acoplada con una entrada reset del flip-flop D;
    en una tercera configuracion, el bloque de funcion logica forma un flip-flop D y
    una primera puerta AND que tiene dos entradas acopladas con la primera y la segunda entrada logica y una salida acoplada con una entrada de datos del flip-flop D;
    para acoplar directamente la tercera entrada logica con una entrada de reloj del flip-flop D, y
    para acoplar directamente la cuarta entrada logica con una entrada reset del biestable D, en el que una salida del
    flip-flop D forma la salida logica del bloque de funcion logica;
    en una cuarta configuracion, el bloque de funcion logica forma un biestable asmcrono D y
    para acoplar directamente la primera entrada logica con una entrada set del biestable asmcrono D, para acoplar directamente la segunda entrada logica con una entrada de datos del biestable asmcrono D,
    para acoplar directamente la tercera entrada logica con una entrada de habilitacion del biestable asmcrono del
    biestable asmcrono D, y
    para acoplar directamente la cuarta entrada logica con una entrada reset del biestable asmcrono D, en el que una salida del biestable asmcrono D forma la salida logica del bloque de funcion logica;
    y en una quinta configuracion, el bloque de funcion logica forma un flip-flop JK y
    para acoplar directamente la primera entrada logica con una entrada J del flip-flop JK, para acoplar directamente la segunda entrada logica con una entrada de reloj del flip-flop JK, para acoplar directamente la tercera entrada logica con una entrada K del flip-flop JK, y
    para acoplar directamente la cuarta entrada logica con una entrada reset del flip-flop JK, en el que una salida del
    flip-flop JK forma la salida logica del bloque de funcion logica.
  15. 15. Un procedimiento de acuerdo con la reivindicacion 11,
    en el que el bloque de funcion logica esta configurado adicionalmente en un sexto modo para formar
    una primera puerta AND que tiene dos entradas acopladas con una primera y una segunda entrada logica y una salida;
    una segunda puerta AND que tiene dos entradas acopladas con una tercera y una cuarta entrada logica y una salida; y
    una puerta OR que tiene dos entradas acopladas con las salidas de la primera y segunda puerta AND y que tiene una salida que forma la salida logica del bloque de funcion logica;
    10
    en un septimo modo para formar
    una primera puerta OR que tiene dos entradas acopladas con una primera y una segunda entrada logica y una salida;
    una segunda puerta OR que tiene dos entradas acopladas con una tercera y una cuarta entrada logica y una salida; y
    una puerta XOR que tiene dos entradas acopladas con las salidas de la primera y segunda puerta OR y que tiene una salida que forma la salida logica del bloque de funcion logica; y
    en un octavo modo para formar
    una puerta AND que tiene cuatro entradas acopladas con una primera, segunda, tercera y cuarta entradas logicas, respectivamente y una salida que forma la salida logica del bloque de funcion logica.
ES12721046.6T 2011-04-21 2012-04-20 Células de lógica configurable Active ES2617318T3 (es)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161477821P 2011-04-21 2011-04-21
US201161477821P 2011-04-21
US13/449,993 US8710863B2 (en) 2011-04-21 2012-04-18 Configurable logic cells
US201213449993 2012-04-18
PCT/US2012/034367 WO2012145578A1 (en) 2011-04-21 2012-04-20 Configurable logic cells

Publications (1)

Publication Number Publication Date
ES2617318T3 true ES2617318T3 (es) 2017-06-16

Family

ID=47020828

Family Applications (1)

Application Number Title Priority Date Filing Date
ES12721046.6T Active ES2617318T3 (es) 2011-04-21 2012-04-20 Células de lógica configurable

Country Status (7)

Country Link
US (1) US8710863B2 (es)
EP (1) EP2700170B1 (es)
KR (1) KR101924439B1 (es)
CN (1) CN103477561B (es)
ES (1) ES2617318T3 (es)
TW (1) TWI589120B (es)
WO (1) WO2012145578A1 (es)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9450585B2 (en) 2011-04-20 2016-09-20 Microchip Technology Incorporated Selecting four signals from sixteen inputs
US20120268162A1 (en) * 2011-04-21 2012-10-25 Microchip Technology Incorporated Configurable logic cells
US10061590B2 (en) 2015-01-07 2018-08-28 Micron Technology, Inc. Generating and executing a control flow
US10107902B2 (en) * 2015-09-29 2018-10-23 Microchip Technology Incorporated Core independent peripheral based ultrasonic ranging peripheral
US10223317B2 (en) 2016-09-28 2019-03-05 Amazon Technologies, Inc. Configurable logic platform
US10795742B1 (en) 2016-09-28 2020-10-06 Amazon Technologies, Inc. Isolating unresponsive customer logic from a bus
US10949204B2 (en) * 2019-06-20 2021-03-16 Microchip Technology Incorporated Microcontroller with configurable logic peripheral
KR20240037153A (ko) * 2022-09-14 2024-03-21 주식회사 메타씨앤아이 동작 속도를 향상시키는 플립플롭 회로 장치

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4292548A (en) 1979-07-27 1981-09-29 Instituto Venezolano De Investigaciones Cientificas (Ivic) Dynamically programmable logic circuits
JPH01162971A (ja) 1987-09-09 1989-06-27 Hitachi Ltd シングルチップマイクロコンピュータ
US5298805A (en) 1991-08-29 1994-03-29 National Semiconductor Corporation Versatile and efficient cell-to-local bus interface in a configurable logic array
US5910732A (en) 1997-03-12 1999-06-08 Xilinx, Inc. Programmable gate array having shared signal lines for interconnect and configuration
US6467009B1 (en) * 1998-10-14 2002-10-15 Triscend Corporation Configurable processor system unit
US6260087B1 (en) * 1999-03-03 2001-07-10 Web Chang Embedded configurable logic ASIC
US6803785B1 (en) 2000-06-12 2004-10-12 Altera Corporation I/O circuitry shared between processor and programmable logic portions of an integrated circuit
US6798239B2 (en) 2001-09-28 2004-09-28 Xilinx, Inc. Programmable gate array having interconnecting logic to support embedded fixed logic circuitry
US6476634B1 (en) 2002-02-01 2002-11-05 Xilinx, Inc. ALU implementation in single PLD logic cell
US7028281B1 (en) 2002-07-12 2006-04-11 Lattice Semiconductor Corporation FPGA with register-intensive architecture
US6798240B1 (en) 2003-01-24 2004-09-28 Altera Corporation Logic circuitry with shared lookup table
US8024548B2 (en) * 2003-02-18 2011-09-20 Christopher Joseph Daffron Integrated circuit microprocessor that constructs, at run time, integrated reconfigurable logic into persistent finite state machines from pre-compiled machine code instruction sequences
US7873811B1 (en) 2003-03-10 2011-01-18 The United States Of America As Represented By The United States Department Of Energy Polymorphous computing fabric
US6948147B1 (en) 2003-04-03 2005-09-20 Xilinx, Inc. Method and apparatus for configuring a programmable logic device using a master JTAG port
US7119575B1 (en) 2004-01-12 2006-10-10 Altera Corporation Logic cell with improved multiplexer, barrel shifter, and crossbarring efficiency
US7689726B1 (en) 2004-10-01 2010-03-30 Xilinx, Inc. Bootable integrated circuit device for readback encoding of configuration data
US8082526B2 (en) 2006-03-08 2011-12-20 Altera Corporation Dedicated crossbar and barrel shifter block on programmable logic resources
US7812635B1 (en) 2006-05-08 2010-10-12 Altera Corporation Programmable logic device architecture with the ability to combine adjacent logic elements for the purpose of performing high order logic functions
CN200990088Y (zh) * 2006-09-29 2007-12-12 上海海尔集成电路有限公司 一种新型的8位risc微控制器构架
US8026739B2 (en) * 2007-04-17 2011-09-27 Cypress Semiconductor Corporation System level interconnect with programmable switching
US9564902B2 (en) 2007-04-17 2017-02-07 Cypress Semiconductor Corporation Dynamically configurable and re-configurable data path
CN201083993Y (zh) * 2007-09-25 2008-07-09 上海海尔集成电路有限公司 一种微控制器
US9946667B2 (en) * 2008-11-12 2018-04-17 Microchip Technology Incorporated Microcontroller with configurable logic array
US20120271968A1 (en) 2011-04-21 2012-10-25 Microchip Technology Incorporated Logic device for combining various interrupt sources into a single interrupt source and various signal sources to control drive strength

Also Published As

Publication number Publication date
TW201310914A (zh) 2013-03-01
TWI589120B (zh) 2017-06-21
EP2700170B1 (en) 2016-11-30
KR101924439B1 (ko) 2018-12-03
CN103477561A (zh) 2013-12-25
CN103477561B (zh) 2017-04-26
EP2700170A1 (en) 2014-02-26
WO2012145578A1 (en) 2012-10-26
US20120268163A1 (en) 2012-10-25
US8710863B2 (en) 2014-04-29
KR20140013032A (ko) 2014-02-04

Similar Documents

Publication Publication Date Title
ES2617318T3 (es) Células de lógica configurable
TWI611298B (zh) 週邊通訊
US11868290B2 (en) Communication interface between host system and state machine using event slot registers
TWI505103B (zh) 具有可組態邏輯陣列之微控制器
US12072833B2 (en) Executing functions in response to reading event indices on an event queue by a state machine
US7924051B2 (en) Programmable logic device with a microcontroller-based control system
TWI556159B (zh) 用於結合各種中斷源成為單一中斷源及各種信號源以控制驅動強度之邏輯裝置
EP2700167B1 (en) Configurable logic cells
CN114647613A (zh) 处理系统、相关集成电路和方法
Memory Fusion Family of Mixed-Signal Flash FPGAs
PL229515B1 (pl) Układ FPGA oraz sposób aktywowania i dezaktywowania partycji