CN114026552B - 具有可配置逻辑外围设备的微控制器 - Google Patents
具有可配置逻辑外围设备的微控制器 Download PDFInfo
- Publication number
- CN114026552B CN114026552B CN201980097558.7A CN201980097558A CN114026552B CN 114026552 B CN114026552 B CN 114026552B CN 201980097558 A CN201980097558 A CN 201980097558A CN 114026552 B CN114026552 B CN 114026552B
- Authority
- CN
- China
- Prior art keywords
- input
- memory
- microcontroller
- 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.)
- Active
Links
- 230000002093 peripheral effect Effects 0.000 title claims abstract description 68
- 238000012545 processing Methods 0.000 claims abstract description 25
- 230000006870 function Effects 0.000 claims description 45
- 238000000034 method Methods 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 6
- 239000000872 buffer Substances 0.000 claims description 5
- 201000003478 cholangiolocellular carcinoma Diseases 0.000 description 27
- 238000012546 transfer Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000003750 conditioning effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
- G06F13/287—Multiplexed DMA
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30029—Logical and Boolean instructions, e.g. XOR, NOT
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/10—Decoders
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic 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/17724—Structural details of logic blocks
- H03K19/17728—Reconfigurable logic blocks, e.g. lookup tables
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computing Systems (AREA)
- Logic Circuits (AREA)
Abstract
一种微控制器具有中央处理单元、存储器、I/O端口和多个外围单元,其中该外围单元中的一者是可配置逻辑单元。该可配置逻辑单元由查找表形成,该查找表由多个存储器单元形成,该多个存储器单元接收预定数量的可从由该外围单元提供的内部信号以及由至少一个外部引脚提供的至少一个外部信号中选择的输入地址信号并且生成输出信号。该中央处理单元被配置成直接为查找表提供输入地址信号。
Description
相关专利申请
本申请要求2019年6月20日提交的美国临时专利申请62/864,198号的优先权,该申请的内容全文并入本文中。
技术领域
本公开涉及具有可配置逻辑单元的微控制器,并且更具体地涉及具有组合逻辑外围设备的微控制器。
背景技术
微控制器可包括中央处理单元(CPU)、程序和数据存储存储器、输入-输出(I/O)端口以及制成在集成电路(IC)晶粒(“芯片”)上的多个外围设备。IC晶粒可被包封(封装)在具有接线端子(“引脚”)的IC封装中,外部电路可连接到IC晶粒。IC晶粒上的电连接点可以是“焊盘”,并且可通过接合线连接到IC封装引脚。IC晶粒焊盘用于I/O端口,以及IC晶粒DC电源和接地。这些外围设备中的一些外围设备可以是核心独立外围设备(CIP),即不依赖于来自CPU的输入以进行操作的外围设备。
相对于由本申请的受让人制造的多种微控制器,微控制器中的可配置逻辑单元外围设备是已知的。例如,由Swathi Sridar于2015年公布的应用注释TB3133描述了可用于微控制器的可配置逻辑单元,该应用注释据此以引用方式并入。这些设备是多功能的,并且向微控制器提供可选择的逻辑功能而不存在典型的也可结合中央处理单元的FPGA的复杂性。与FPGA所需的不动产相比,这些逻辑单元外围设备较小并且增强了微控制器,使得在许多应用中不需要额外的外部逻辑部件或需要非常少的额外的外部逻辑部件。
许多微控制器包括这些核心独立外围设备,并且可提供多达8个可配置逻辑单元。每个可配置逻辑单元(CLC)可由8个不同的选项配置,如TB3133的图3所示。通过实现或添加触发器功能,特定配置具有有限的顺序功能性。因此,这些微控制器提供普遍的CLC外围设备,用于实现简单的组合逻辑功能和顺序逻辑功能。然而,组合元件尤其需要复杂的设置并且提供有限的选项。许多应用注释被迫使用多个CLC外围设备来创建所需的组合逻辑系统。CLC是强大的多功能外围设备,必须为简单的桥接需求分配一个CLC可能通常是浪费的。
因此,存在特定的限制,例如逻辑单元中只有预定数量的逻辑元件可用。
发明内容
因此,需要更灵活的逻辑单元外围设备。根据实施方案,微控制器可包括中央处理单元、存储器、I/O端口和多个外围单元,其中该外围单元中的一者是可配置逻辑单元,其中该可配置逻辑单元由查找表形成,该查找表由多个存储器单元形成,该多个存储器单元接收预定数量的可从由外围单元提供的多个内部信号或由至少一个外部引脚提供的外部信号中选择的输入地址信号并且生成输出信号,其中该中央处理单元被配置成直接为该查找表提供至少一个输入信号。
根据另一个实施方案,该可配置逻辑单元可包括输入多路复用器单元,该输入多路复用器单元被配置成从微控制器的所述内部信号和所述外部信号中选择预定数量的所述输入信号,并且还包括特殊功能输入寄存器,该特殊功能输入寄存器耦接在输入多路复用器的输出和查找表的地址输入之间,其中该特殊功能输入寄存器接收并缓存所选择的输入信号,并且其中该中央处理单元被配置成写入该特殊功能输入寄存器。
根据另一个实施方案,该可配置逻辑单元可包括输入多路复用器单元,该输入多路复用器单元被配置成从微控制器的所述内部信号和所述外部信号中选择预定数量的输入信号,并且还包括特殊功能输入寄存器,该特殊功能输入寄存器与输入多路复用器单元的输入耦接,其中该中央处理单元被配置成写入该特殊功能输入寄存器以直接向查找表提供输入信号。
根据实施方案,微控制器可包括中央处理单元、存储器、I/O端口和多个外围单元,其中该外围单元中的一者是可配置逻辑单元,其中该可配置逻辑单元由查找表形成,该查找表由多个存储器单元形成,该多个存储器单元接收预定数量的可从由外围单元提供的内部信号以及由至少一个外部引脚提供的至少一个外部信号中选择的输入地址信号并且生成输出信号,其中该中央处理单元被配置成直接为该查找表提供输入地址信号。
根据另一个实施方案,该可配置逻辑单元可包括输入多路复用器电路,该输入多路复用器电路被配置成从所述内部信号和至少一个外部信号中选择预定数量的输入地址信号,并且还包括特殊功能输入寄存器,该特殊功能输入寄存器耦接在输入多路复用器电路的输出和查找表的地址输入之间,其中该特殊功能输入寄存器接收并缓存所选择的输入信号,并且其中该中央处理单元被配置成从该特殊功能输入寄存器读取以及写入该特殊功能输入寄存器。根据另一个实施方案,该可配置逻辑单元可包括输入多路复用器电路,该输入多路复用器电路被配置成从所述内部信号和至少一个外部信号中选择预定数量的输入信号,并且还包括特殊功能输入寄存器,该特殊功能输入寄存器与输入多路复用器电路的输入耦接,其中该中央处理单元被配置成从该特殊功能输入寄存器读取以及写入该特殊功能输入寄存器以直接向查找表提供输入信号。根据另一个实施方案,该特殊功能寄存器可以被存储器映射到数据存储器。根据另一个实施方案,该查找表可包括多个1位存储器单元。根据另一个实施方案,该多个1位存储器单元可被存储器映射到数据存储器或被存储器映射到程序存储器,该程序存储器可以是闪存存储器。根据另一个实施方案,该微控制器还可包括直接存储器访问控制器,该直接存储器访问控制器被配置成能够将数据传输到多个1位存储器单元中。根据另一个实施方案,该微控制器还可包括多路复用器,该多路复用器具有与多个1位存储器单元耦接的多个输入,其中该多路复用器被控制以选择与所述输入地址信号相对应的存储器单元中的一者的输出。根据另一个实施方案,该微控制器还可包括地址解码器,该地址解码器被配置成选择与在地址解码器处接收的输入地址信号相对应的存储器单元中的一者。根据另一个实施方案,该微控制器还可包括与查找表的输出耦接的逻辑电路。根据另一个实施方案,该逻辑电路可包括模式多路复用器,该模式多路复用器具有与查找表的输出耦接的第一输入、与第一触发器的输出耦接的第二输入,其中该第一触发器的数据输入与查找表的输出耦接,并且该触发器的时钟输入与逻辑电路的时钟输入耦接,其中该模式多路复用器由模式寄存器控制。根据另一个实施方案,该多路复用器可包括与与门的输出耦接的第三输入,该与门具有与时钟输入耦接的第一输入以及与第二触发器的输出耦接的第二输入,其中该第二触发器的数据输入与查找表的输出耦接并且该第二触发器的时钟输入与异或门的输出耦接,其中该异或门的第一输入与该时钟输入耦接并且该异或门的第二输入与该第二触发器的输出耦接。
根据另一个实施方案,提供了一种操作微控制器的方法,该微控制器包括中央处理单元、存储器、I/O端口和多个外围单元,其中该外围单元中的一者是可配置逻辑单元,其中该可配置逻辑单元由查找表形成,该查找表由多个存储器单元形成,该多个存储器单元接收预定数量的输入地址信号并且生成输出信号,并且其中该中央处理单元被配置成直接为该查找表提供输入地址信号,该方法可包括:通过将预定义数据加载到该查找表的存储器单元中来配置该查找表;从由该外围单元提供的内部信号以及由至少一个外部引脚提供的外部信号中选择地址信号;将所选择的地址信号缓存在寄存器或锁存器中。
根据另一个实施方案,该方法还可包括由中央处理单元在程序控制下覆写该寄存器或锁存器。根据另一个实施方案,可通过由该中央处理单元或DMA控制器将数据传输到存储器单元中来执行配置查找表。根据另一个实施方案,可通过将该存储器单元存储器映射到闪存存储器以及通过对微控制器进行编程来执行配置查找表。
附图说明
通过参考以下结合附图进行的描述,可以获得对本公开的更完整的理解。附图中的类似数字指代类似元件,其中:
图1示出根据实施方案的具有查找表-可配置逻辑单元外围设备的微控制器;
图2A和图2B示出具有可配置逻辑单元外围设备的常规微控制器。
图3示出查找表-可配置逻辑单元外围设备的第一实施方案。
图4示出示例性查找表的框图;
图5示出查找表-可配置逻辑单元外围设备的第二实施方案。
具体实施方式
现在转到附图,并且特别注意图1,示出了根据本发明的实施方案的微控制器100的图表。微控制器100包括处理器内核(MCU)或CPU 102,其可具体体现为RISC内核。处理器内核102(通常经由总线106)耦接到一个或多个片上外围设备,诸如模拟外围设备108和数字外围设备110。这些外围设备108、110可通过一个或多个外部引脚连接件120、122连接到外部电路,并且通过这些相应的引脚接收输入信号和/或生成输出信号。然而,一些外围设备可能不需要任何外部信号或生成任何外部信号,或者可能仅接收一个或多个输入信号或仅生成一个或多个输出信号。MCU(或CPU)还通过如虚线所指示的总线106或通过独立的存储器总线与存储块103耦接。取决于实施架构,存储块103可包括独立的数据(RAM)和程序存储器(ROM或闪存存储器)。根据实施方案,可将用于配置和数据传输的各种外围设备的特殊功能寄存器存储器映射到数据存储器。可提供多个外部引脚116、118、120、122、124。这些引脚中的每一者可以是多功能引脚,并且与I/O端口和相应的多路复用器(未示出)耦接以提供相应引脚的多功能。图1仅示出一种配置,其中引脚120用作模拟外围设备108的模拟输入引脚,引脚122用作数字外围设备110的数字输入引脚,引脚124和引脚118用作查找表(LUT)-CLC 104的输入引脚和输出引脚,并且引脚116用作通用I/O引脚。
直接存储器访问(DMA)控制器140可根据各种实施方案来实现,并且可与系统总线106耦接。此类DMA控制器140被配置成能够在存储块103与包括LUT CLC外围设备104的任何外围设备之间或在各种外围设备中的任何外围设备之间传输数据。
可为所有外部引脚提供多种通用I/O端口,该多种通用I/O端口形成微控制器的基本I/O接口。图1仅示出与外部引脚116耦接的输出驱动器112。然而,如本领域中所理解的,GPIO端口可包括输入驱动器和输出驱动器以及多路复用器以用作多功能引脚,因此,外部引脚可在程序控制下与各种外围设备共享其功能。
此外,如将在下文更详细地解释,每个LUT-CLC 104包括查找表(LUT)而不是将在下文更详细地解释的实际逻辑部件。每个LUT-CLC 104用作外围设备并且耦接到总线106。根据各种实施方案,每个LUT-CLC 104可包括用于进一步配置的一个或多个特殊功能寄存器(SFR)105或与之相关联,如将在下文更详细地解释。此外,LUT可由专用存储器单元的块形成,其中这些单元也可被存储器映射到数据存储器103。另选地,这些专用存储器单元可在程序控制下通过CPU 102加载,或者通过将存储块103的专用RAM或闪存区域的内容复制到单元中来配置。根据一个实施方案,LUT-CLC 104专用存储器单元可被存储器映射到数据存储器或闪存存储器中,从而可由CPU 102直接配置或通过对微控制器100进行编程来直接配置。在将LUT-CLC 104的专用存储器单元存储器映射到闪存存储器的情况下,由微控制器102提供的闪存存储器写入例程可用于重新配置或初始化LUT-CLC 104的LUT。具体地,如上所述的DMA控制器140被配置成能够将数据传输到LUT-CLC 104的LUT的存储器单元中。
与其他外围设备类似,LUT-CLC 104的专用寄存器105是可寻址的,例如通过存储器映射,并且可为系统或应用程序提供逻辑功能。这些功能可包括例如将由查找表提供的任何逻辑功能,如将在下文更详细地解释。
在所示的实施方案中,LUT-CLC 104可经由总线105从数字外围设备108或模拟外围设备110中的任一者接收输入,并且接收通过一个或多个引脚124提供的外部信号以及来自处理器内核102的重置。如上所述,根据各种实施方案,引脚124可与GPIO端口引脚共享其功能。这些外围设备可包括例如脉宽调制(PWM)源、互补波形发生器(CWG)源、DSM源和DDS/定时器时钟输入或任何其他合适的外围设备。一般来讲,输入可来自I/O引脚、任何外围设备和/或内部时钟。如将更详细地解释,多种内部输入信号和外部输入信号可通过输入多路复用器(图1中未示出)选择并且可用于向LUT-CLC 104内的查找表提供地址,然后,该LUT-CLC根据查找表的编程生成相关联的输出信号,从而实现所需的逻辑功能。输出信号可以是可通过多路复用器(未示出)路由到目的地的单个信号,或者可以是可由相应的接收方选择的多个输出信号。图1示出多个输出信号126。信号126的第一输出信号和第二输出信号可以是触发,诸如A/D触发,或用于相应的模拟外围设备108或数字外围设备110的控制信号。第三输出信号可向CPU 102提供中断。第四输出信号可控制通用I/O端口112的输出驱动器。第五输出可直接路由或通过驱动器(未示出)路由到外部引脚118。可向端口驱动器112提供附加的输出和输出功能,诸如转换速率、上拉三态阈值等,而可向被配置成外部引脚118的引脚提供其他输出和输出功能。
图1示出一种示例性配置。然而,一般来讲,LUT-CLC 104可从任何子系统(诸如数字外围设备、I/O端口或内部状态位或重置信号,包括例如振荡器输出、系统时钟等)接收输入,并且向I/O引脚、外围设备、处理器内核中断、I/O端口控制功能、状态信号、系统时钟提供输出,并且甚至向其他LUT-CLC 104或常规CLC提供输出。
如上所述,在一些实施方案中,与其他外围设备类似,LUT-CLC 104被寻址,并且可在运行时通过总线106和/或通过存储器映射来配置。在一些实施方案中,可在运行时使用一个或多个特殊功能寄存器105配置LUT-CLC 104。因此,LUT-CLC 104被完全集成到处理器地址和数据总线中。可静态应用配置或基于应用的需要实时更新配置。
在一些实施方案中,LUT-CLC 104的LUT的配置可来自软件寄存器或非易失性存储器。在一些实施方案中,可读取非易失性存储器并通过CPU 102或DMA控制器140将数据传输到LUT-CLC 104的LUT。在其他实施方案中,可静态连接非易失性存储器以用于配置。此外,在一些实施方案中,在进行初始配置之后,软件可更新该配置。
具有CLC的常规微控制器不提供任何机制以从软件直接向CLC提供输入,而无需首先路由通过不同的引脚或外围设备。换句话讲,不存在输入覆盖功能性。相反,CPU只能从多种可用的输入信号中选择输入信号,但无法直接提供输入信号。
图2A和图2B示出具有输入多路复用器CLCxSELy和输入选择单元CLCxGLS的常规CLC外围设备,该输入选择单元CLCxGLS选择各种输入信号。通过特殊功能寄存器(未示出)提供配置,该特殊功能寄存器控制块MODE并且提供固定数量的不同配置,如块MODE所示。可选选项限于所示的八个不同的配置。除了这八个功能之外,没有其他逻辑功能可用。可存在一些其他信号调节。如图2A和图2B所示,可在内部路由或向外部引脚提供输出信号(OUT或CLCxCON.LCOUT)。
根据各种实施方案,例如,如图3所示,如图2A和图2B所示的具有MODE的常规CLC组合逻辑元件被替换为一个或多个查找表(LUT)元件230(仅示出一个)。图3表明,根据实施方案,可在微控制器内的单个LUT-CLC外围设备中实现四个LUT元件230。如上所述,LUT定义由软件配置。所提供的多个LUT可被配置成用于并行、唯一的输入处理,并且结果信号可用于控制具有更复杂功能(例如,具有4个输入的JK触发器)的顺序逻辑元件240(仅示出一个)。LUT输入可来自引脚、外围设备,此外还可来自允许直接软件控制的寄存器或锁存器220。该寄存器或锁存器220用作可由CPU访问的缓存器。如图3的实施方案所示,用于LUT 230的四个输入信号将可通过多路复用器210a…d选择,并且向LUT 230提供相应的地址。当实现多于一个LUT时,提供类似的输入选择电路。因此,将为四个LUT实现四个选择电路。这四个信号是用于LUT 230的地址信号,每个LUT 230选择例如16个1位存储器单元Mem_cell0…Mem_cell_15中的一者的输出。因此,每个LUT 230通过四个地址信号选择相应的存储器单元内容,并将其相应的输出信号提供给后续的可配置顺序逻辑部件240或输出引脚250。根据实施方案,该输出信号可形成在LUT-CLC的引脚250处可用的输出信号,如LUT 230中的一者的虚线所指示。然而,如图3所示,可为每个LUT 230提供可配置顺序逻辑部件240,该LUT 230在CPU控制下可提供另外的功能,如将在下文更详细地解释。然后,将可配置顺序逻辑部件240的输出信号馈送到外部引脚250。也可将每个LUT 230的输出信号或在可配置顺序逻辑部件240的输出处可用的输出信号作为在内部可用的一个或多个内部信号OUT、CLCxCON.LCOUT,以用于其他内部模块,如图3所示。可配置顺序逻辑部件240可接收可选择的时钟信号CLCxCLK或其他控制信号,以用于进一步同步或其他目的。
根据实施方案,例如,可提供通过多路复用器210a…d接收所选择的输入信号的特定四位输入寄存器220。如图3所示,将该寄存器220放置在输入选择多路复用器210a…d与LUT 230之间。寄存器220的每个寄存器位Ina..d与用于LUT的四个输入中的一者相关联。这些寄存器可被存储器映射到存储块103的数据存储器,从而可通过CPU 102对它们执行读取或写入。因此,CPU 102不仅可以读取提供给LUT 230的当前所选择的输入信号,而且可以覆盖此类信号,从而提供软件控制。另选地或除此之外,提供存储器映射的特殊功能寄存器(SFR)260,该特殊功能寄存器可被选择作为多路复用器210a…d的输入信号源,以向LUT230提供直接软件输入。可根据需要单独控制所有的多路复用器210,以向LUT 230提供任何四个输入信号。其他实施方案可具有多于四个或少于四个输入地址信号,并且相关联的LUT230可因此变得更复杂或没那么复杂。
LUT 230的用户配置允许与现有的CLC外围设备具有在功能上等效的向后兼容性,并且允许实现任意逻辑功能。这意味着大多数(如果不是全部的话)例如如图2A和图2B所示的多CLC组合逻辑电路可被替换为单个LUT解决方案。与常规逻辑单元外围设备相比,来自寄存器220或寄存器260的LUT输入增加了更大的灵活性。
图4示出LUT 230的更详细的示例。在该示例中,LUT 230包括具有n个1位存储器单元420a…n的存储块450以及接收多条地址线440的地址解码器410。地址解码器410根据所提供的地址选择存储器单元420a…b中的一者,该地址的输出信号随后被置于输出线430上。CPU 102可访问存储器单元420a…n以提供直接读写功能性。然而,也可通过存储器单元420a…n到数据存储器或存储块103的闪存存储器的地址空间中的存储器映射来提供此类访问。作为地址解码器410的替代,尤其是在小型LUT中,可使用如图3所示的在框230内的简单多路复用器,该多路复用器选择多个存储器单元中的一者。可根据各种实施方案实现任何其他常规查找表电路。
根据具体实施方案,LUT 230可由16单元1位字RAM形成,该RAM由4位选择电路寻址,如图3至图5所示。例如,根据实施方案,4个地址输入线中的每一者连接到多路复用器电路,该多路复用器电路包括例如四个多路复用器210a…d,该多路复用器允许从许多不同的源获取四个输入位。图3仅示出用于每个多路复用器的三个输入。然而,可由这些多路复用器选择多个不同的信号。此外,每个多路复用器210a…d可接收不同的或相同的输入信号集。在一些实施方案中,用于多路复用器210a…d的输入信号子集可重叠。
当寻求实现寄存器输入时,这可通过将寄存器260添加到如图3所示的多路复用器电路的选择列表中,或通过将寄存器220置于多路复用器210a…d的输出与相应的LUT输入之间来实现,如图3和图5所示。在第二种方式中,相对于LUT输入线,寄存器220占主导地位,并且充当允许软件轻松地覆盖硬件信号的缓存器。为此,CPU 102可例如在运行期间覆写寄存器220的任何内容。如上所述,可根据实施方案实现寄存器220和寄存器260两者。可将所有寄存器存储器映射到数据存储器。
根据一些实施方案的本解决方案向16元件LUT 230提供4个完全合格的输入。这允许实现4个变量的任何功能。输入多路复用器210a…d可各自具有相同的选择,从而形成对称输入选择,其中每个多路复用器210a…d可具有比图3所示的三个信号更多或更少的输入信号。然而,其他解决方案仅可提供例如不对称的多个输入,即,每个输入多路复用器210a…d可接收不同的输入信号集。在图3的实施方案中,这意味着仅可实现3个变量的有限功能。其他实施方案可实现每个输入多路复用器210a…d的更多数量的输入线和/或更多数量的到LUT 230的输入信号,这增加了实现LUT 230所需的存储器单元的数量。
来自寄存器220和/或寄存器260的输入允许软件控制。希望从多个不相交的外围设备生成事件的用户可在软件中这样做,并经由写入输入寄存器220/260将该事件发信号通知LUT 230。另外,外围设备如DMA 140(图1所示)可写入寄存器220/260,这意味着LUT-CLC甚至可在使用该功能的同时保持内核独立性。
图5示出可配置顺序逻辑部件240的可能的实施方式的更多细节。LUT 230在此处再次实现为多路复用器270和16个1位存储器单元265。输入多路复用器210a…d可接收多个内部/外部信号(图5中仅示出两个)并且由选择寄存器385控制,该选择寄存器是特殊功能寄存器105的一部分。寄存器220和寄存器260分别与图3的寄存器220和寄存器260相同。
模式多路复用器310将LUT 230的输出信号直接接收到其第一输入。模式多路复用器310可由寄存器380控制,该寄存器再次可以是特殊功能寄存器105的一部分。模式多路复用器310的第二输入接收来自D触发器320的输出信号,D触发器320的输入与LUT 230的输出耦接。D触发器320是时钟驱动的并且接收时钟信号CLCxCLK,该时钟信号可通过多路复用器360从可用的内部时钟选择,该多路复用器由时钟选择寄存器365控制,该时钟选择寄存器再次可以是特殊功能寄存器105的一部分。模式多路复用器310的第三输入接收与门340的输出,该与门的第一输入接收可选择的内部时钟信号CLCxCLK,并且该与门的第二输入接收D触发器330的输出信号。D触发器330接收LUT 230的输出信号作为输入信号,并且包括与异或门350的输出耦接的时钟输入。异或门350接收时钟信号CLCxCLK和D触发器330的输出信号。可单独实施D触发器320和D触发器330,或者可为两种操作模式使用和共享单个D触发器。可提供也可不提供模式多路复用器310的四个或更多个输入,并且可根据需要提供另外的顺序逻辑部件并因此提供LCMODE。图5的实施方案示出三个可能的LCMODE,其中第一LCMODE=0不具有顺序逻辑部件,第二LCMODE=1提供LUT加D触发器模式,并且第三LCMODE=2提供LUT加D触发器和反馈模式。该第三操作模式提供用于实现短时脉冲干扰滤波的顺序逻辑部件,由此具有CLC的常规微控制器将需要3个CLC来实现这一点,而本申请的实施方案可利用单个单元来完成这一任务。可实施任何数量的相对于附加的顺序逻辑部件的操作模式,并且不需要所示的模式LCMODE=1或模式LCMODE=2。
模式多路复用器310可由模式寄存器380控制,该模式寄存器可以是配置寄存器105中的一者并确定相应的LCMODE。输入选择多路复用器210由选择寄存器385控制,该选择寄存器可以是SFR 105的另一配置寄存器。可提供由又一个SFR 105控制的另外的逻辑部件370以调节模式多路复用器310的输出信号。由控制寄存器390控制的逻辑部件370可提供反相器、开漏控制、可控上拉或下拉电阻器和类似的功能,并且根据各种实施方案,可被完全省略。控制寄存器390再次可以是特殊功能寄存器105的一部分。特定SFR 105可根据需要共享功能。例如,单个32位SFR可控制所有配置选项或一些配置选项。SFR 105的寄存器的每个位可与打开或关闭特定功能或选项相关联。根据实施方式的复杂性,SFR 105的寄存器中的多个位或多个位组可用于控制输入选择多路复用器210和模式多路复用器310。然而,如图5所示的独立的寄存器385、380、365、390可用于输入选择、可配置逻辑部件240、逻辑部件370和时钟选择360的配置。
Claims (19)
1.一种微控制器,所述微控制器包括:
中央处理单元;
存储器;
I/O端口;以及
多个外围单元;
其中:
所述外围单元中的一者是可配置逻辑单元;
所述可配置逻辑单元由查找表形成,所述查找表由多个存储器单元形成,所述多个存储器单元接收预定数量的可从由所述外围单元提供的内部信号以及由至少一个外部引脚提供的至少一个外部信号中选择的输入地址信号并且生成输出信号;并且
所述中央处理单元被配置成直接为所述查找表提供输入地址信号。
2.根据权利要求1所述的微控制器,其中:
所述可配置逻辑单元包括:
输入多路复用器电路,所述输入多路复用器电路被配置成从所述内部信号和所述至少一个外部信号中选择所述预定数量的输入地址信号;以及
特殊功能输入寄存器,所述特殊功能输入寄存器耦接在所述输入多路复用器电路的输出和所述查找表的地址输入之间;
所述特殊功能输入寄存器被配置成接收和缓存所选择的输入信号;以及
所述中央处理单元被配置成从所述特殊功能输入寄存器读取以及写入所述特殊功能输入寄存器。
3.根据权利要求2所述的微控制器,其中所述特殊功能输入寄存器被存储器映射到数据存储器。
4.根据权利要求2至3中任一项所述的微控制器,其中:
所述可配置逻辑单元包括:
输入多路复用器电路,所述输入多路复用器电路被配置成从所述内部信号和所述至少一个外部信号中选择所述预定数量的输入信号;以及
另一个特殊功能输入寄存器,所述另一个特殊功能输入寄存器与所述输入多路复用器电路的输入耦接;并且
所述中央处理单元被配置成从所述另一个特殊功能输入寄存器读取以及写入所述另一个特殊功能输入寄存器以直接向所述查找表提供输入信号。
5.根据权利要求4所述的微控制器,其中所述另一个特殊功能输入寄存器被存储器映射到数据存储器。
6.根据权利要求2至3中任一项所述的微控制器,其中所述查找表包括多个1位存储器单元。
7.根据权利要求6所述的微控制器,其中所述多个1位存储器单元被存储器映射到数据存储器。
8.根据权利要求6所述的微控制器,其中所述多个1位存储器单元被存储器映射到程序存储器。
9.根据权利要求8所述的微控制器,其中所述程序存储器是闪存存储器。
10.根据权利要求9所述的微控制器,还包括直接存储器访问控制器,所述直接存储器访问控制器被配置成能够将数据传输到所述多个1位存储器单元中。
11.根据权利要求10所述的微控制器,还包括多路复用器,所述多路复用器具有与所述多个1位存储器单元耦接的多个输入,其中所述多路复用器被控制以选择与所述输入地址信号相对应的所述存储器单元中的一者的输出。
12.根据权利要求11所述的微控制器,还包括地址解码器,所述地址解码器被配置成选择与在所述地址解码器处接收的输入地址信号相对应的所述存储器单元中的一者。
13.根据权利要求12所述的微控制器,还包括逻辑电路,所述逻辑电路与所述查找表的输出耦接。
14.根据权利要求13所述的微控制器,其中:
所述逻辑电路包括模式多路复用器,所述模式多路复用器具有与所述查找表的所述输出耦接的第一输入以及与第一触发器的输出耦接的第二输入;
所述第一触发器的数据输入与所述查找表的所述输出耦接;
所述触发器的时钟输入与所述逻辑电路的时钟输入耦接;并且
所述模式多路复用器由模式寄存器控制。
15.根据权利要求14所述的微控制器,其中:
所述多路复用器包括与与门的输出耦接的第三输入,所述与门具有与所述时钟输入耦接的第一输入以及与第二触发器的输出耦接的第二输入,
所述第二触发器的数据输入与所述查找表的输出耦接,并且所述第二触发器的时钟输入与异或门的输出耦接;并且
所述异或门的第一输入与所述时钟输入耦接,并且所述异或门的第二输入与所述第二触发器的所述输出耦接。
16.一种操作微控制器的方法,所述微控制器包括中央处理单元、存储器、I/O端口和多个外围单元,其中所述外围单元中的一者是可配置逻辑单元,其中所述可配置逻辑单元由查找表形成,所述查找表由多个存储器单元形成,所述多个存储器单元接收预定数量的输入地址信号并且生成输出信号,并且其中所述中央处理单元被配置成直接为所述查找表提供输入地址信号,所述方法包括:
通过将预定义数据加载到所述查找表的存储器单元中来配置所述查找表;
从由所述外围单元提供的内部信号以及由至少一个外部引脚提供的外部信号中选择地址信号;
将所选择的地址信号缓存在寄存器或锁存器中。
17.根据权利要求16所述的方法,还包括:
由所述中央处理单元在程序控制下覆写所述寄存器或锁存器。
18.根据权利要求16所述的方法,其中通过由所述中央处理单元或DMA控制器将数据传输到所述存储器单元中来执行配置所述查找表。
19.根据权利要求16所述的方法,其中通过将所述存储器单元存储器映射到闪存存储器以及通过对所述微控制器进行编程来执行配置所述查找表。
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 US10949204B2 (en) | 2019-06-20 | 2019-09-11 | Microcontroller with configurable logic peripheral |
US16/568,058 | 2019-09-11 | ||
PCT/US2019/066709 WO2020256778A1 (en) | 2019-06-20 | 2019-12-17 | Microcontroller with configurable logic peripheral |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114026552A CN114026552A (zh) | 2022-02-08 |
CN114026552B true CN114026552B (zh) | 2024-04-12 |
Family
ID=74038858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980097558.7A Active CN114026552B (zh) | 2019-06-20 | 2019-12-17 | 具有可配置逻辑外围设备的微控制器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10949204B2 (zh) |
CN (1) | CN114026552B (zh) |
DE (1) | DE112019007474T5 (zh) |
WO (1) | WO2020256778A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116820015B (zh) * | 2023-08-29 | 2023-11-17 | 灵动集成电路南京有限公司 | 具有灵活可配置逻辑模块的微控制器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677616A (zh) * | 2016-03-17 | 2016-06-15 | 李晓波 | 处理器实现管脚附加输入/输出功能可配置的方法及装置 |
CN107704194A (zh) * | 2016-08-08 | 2018-02-16 | 北京忆恒创源科技有限公司 | 无锁io处理方法及其装置 |
CN107885681A (zh) * | 2016-09-29 | 2018-04-06 | 比亚迪股份有限公司 | 管脚控制装置和方法 |
CN108874709A (zh) * | 2017-05-11 | 2018-11-23 | 恩智浦美国有限公司 | 引脚分配电路 |
Family Cites Families (12)
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 |
-
2019
- 2019-09-11 US US16/568,058 patent/US10949204B2/en active Active
- 2019-12-17 CN CN201980097558.7A patent/CN114026552B/zh active Active
- 2019-12-17 WO PCT/US2019/066709 patent/WO2020256778A1/en active Application Filing
- 2019-12-17 DE DE112019007474.1T patent/DE112019007474T5/de active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677616A (zh) * | 2016-03-17 | 2016-06-15 | 李晓波 | 处理器实现管脚附加输入/输出功能可配置的方法及装置 |
CN107704194A (zh) * | 2016-08-08 | 2018-02-16 | 北京忆恒创源科技有限公司 | 无锁io处理方法及其装置 |
CN107885681A (zh) * | 2016-09-29 | 2018-04-06 | 比亚迪股份有限公司 | 管脚控制装置和方法 |
CN108874709A (zh) * | 2017-05-11 | 2018-11-23 | 恩智浦美国有限公司 | 引脚分配电路 |
Also Published As
Publication number | Publication date |
---|---|
WO2020256778A1 (en) | 2020-12-24 |
US20200401407A1 (en) | 2020-12-24 |
DE112019007474T5 (de) | 2022-04-28 |
CN114026552A (zh) | 2022-02-08 |
US10949204B2 (en) | 2021-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6314550B1 (en) | Cascaded programming with multiple-purpose pins | |
JP4891448B2 (ja) | プログラマブル論理集積回路 | |
JP4500772B2 (ja) | 集積回路のプログラマブル論理の再構成 | |
US5686844A (en) | Integrated circuit pins configurable as a clock input pin and as a digital I/O pin or as a device reset pin and as a digital I/O pin and method therefor | |
CN101055757B (zh) | 用于提供灵活的集成电路上片内终端控制的技术 | |
KR100196091B1 (ko) | 주변장치 선택 시스템 | |
US20100153676A1 (en) | Semiconductor device | |
US9946667B2 (en) | Microcontroller with configurable logic array | |
JPH10326254A (ja) | マイクロコントローラ・システムおよびインタフェース論理回路と通信するための方法 | |
US6430719B1 (en) | General port capable of implementing the JTAG protocol | |
WO2013081683A1 (en) | Circuit for and method of enabling the transfer of data by an integrated circuit | |
US6212591B1 (en) | Configurable I/O circuitry defining virtual ports | |
JPH11509950A (ja) | N本未満のi/oピンを伴うnビットのデータバス幅をもつマイクロコントローラ及びそのための方法 | |
CN114026552B (zh) | 具有可配置逻辑外围设备的微控制器 | |
KR20140013032A (ko) | 설정가능한 논리 셀들 | |
US10049071B2 (en) | Programmable logic unit | |
KR20140026447A (ko) | 다수의 인터럽트 소스들을 결합하여 단일 인터럽트 소스가 되게 하고 다수의 신호 소스들을 결합하여 구동 세기를 제어하는 논리 디바이스 | |
JPH02161820A (ja) | プログラマブル入出力回路及びプログラマブル論理素子 | |
US8116334B1 (en) | Dataflow FIFO communication buffer using highly-multiported memories | |
US6643793B1 (en) | Apparatus for transferring and holding data based on a selected clock rate | |
US20120268162A1 (en) | Configurable logic cells | |
JP4852149B2 (ja) | 半導体装置 | |
JP4614501B2 (ja) | 1以上の仮想ポートを規定する構成回路および集積回路 | |
EP1154353A1 (en) | Configurable i/o circuitry defining virtual ports |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |