CN106202604B - 用于配置和重新配置部分重新配置区域的方法和装置 - Google Patents

用于配置和重新配置部分重新配置区域的方法和装置 Download PDF

Info

Publication number
CN106202604B
CN106202604B CN201610338070.7A CN201610338070A CN106202604B CN 106202604 B CN106202604 B CN 106202604B CN 201610338070 A CN201610338070 A CN 201610338070A CN 106202604 B CN106202604 B CN 106202604B
Authority
CN
China
Prior art keywords
region
circuit
csr
signal
configuration
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
CN201610338070.7A
Other languages
English (en)
Other versions
CN106202604A (zh
Inventor
P·肖
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.)
Altera Corp
Original Assignee
Altera Corp
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 Altera Corp filed Critical Altera Corp
Priority to CN201810336776.9A priority Critical patent/CN108563871B/zh
Publication of CN106202604A publication Critical patent/CN106202604A/zh
Application granted granted Critical
Publication of CN106202604B publication Critical patent/CN106202604B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • 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/17748Structural details of configuration resources
    • H03K19/17756Structural details of configuration resources for partial configuration or partial reconfiguration
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/0008Arrangements for reducing power consumption
    • 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
    • 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/17736Structural details of routing resources
    • H03K19/17744Structural details of routing resources for input/output signals
    • 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/17748Structural details of configuration resources
    • H03K19/17758Structural details of configuration resources for speeding up configuration or reconfiguration
    • 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/17748Structural details of configuration resources
    • H03K19/1776Structural details of configuration resources for memories

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)

Abstract

本申请公开一种用于配置和重新配置配置移位寄存器(CSR)部分重新配置区域的集成电路。该集成电路包括被划分成一组CSR部分重新配置区域的CSR链。多路复用器电路被添加到每个PR区域的端部以允许PR区域被绕开或者连接到下一个PR区域。每个PR区域被连接到促进相应PR区域的CSR配置的PR电路。PR电路包括区域启动电路和区域控制电路。区域启动电路启动CSR PR区域的配置。区域控制电路生成局部重新配置控制信号以控制启动的CSR PR区域的配置操作。

Description

用于配置和重新配置部分重新配置区域的方法和装置
本申请要求2015年5月28日提交的美国专利申请No.14/723,876的优先权,其全部内容以引用方式并入本文。
背景技术
在复杂的嵌入式系统中常常包括诸如可编程逻辑器件(PLD)这样的可重新配置的集成电路器件。PLD通常由很多有时被称为逻辑阵列块(LAB)或可配置的逻辑块(CLB)的逻辑元件组成,这些块有时被称为逻辑元件。此类逻辑元件可以包括:查找表(LUT)或乘积项、进位输出链、寄存器和其它元件。多个逻辑元件或LAB可以被连接到水平和垂直导线,水平和垂直导线延伸PLD的核心逻辑区域的长度,并且连接到输入-输出(IO)和外围块。
随着器件容量和复杂性增加,部分重新配置已经变成PLD中重要的特征。缩短配置时间以更快地改进PLD的需求以及重新配置运行中的PLD以减少或消除系统停机时间的需求推动此类特征。一般来说,PLD配置可以包括核心逻辑配置和IO配置。一般来说,由于配置元件和结构的差异,所以IO配置与核心逻辑配置不同。例如,IO配置可以包括一组串联连接的配置移位寄存器(总体被称为配置移位寄存器链)。然而,配置移位寄存器仅能够以常规完整器件配置或重新配置进行完整地配置(例如,以与PLD的核心逻辑区域相同的方式进行配置)。因此,重新配置配置移位寄存器的任何部分可能需要将PLD断电(或者以其它方式使其停用或使其处于挂起状态)。结果,每次PLD的配置可能需要从头重新开始,这费力并且费时。
发明内容
根据本发明,提供用于配置和重新配置集成电路的部分重新配置区域的装置和方法。
应当理解,能够以诸如过程、装置、系统或器件这样的很多方式实施本发明。下面描述了本发明的几个创造性实施例。
公开一种集成电路。该集成电路包括一组串联连接的配置寄存器以形成配置移位寄存器(CSR)。一组CSR可以被划分成预定数量的CSR部分重新配置区域,其中每个CSR部分重新配置区域连接到部分重新配置(PR)电路。每个PR电路包括区域启动电路和区域控制电路。所述区域启动电路可以接收PR电路启动数据,并且基于所述PR电路启动数据,选择性地启动连接到所述PR电路的所述CSR部分重新配置区域的重新配置。因此,所述区域控制电路可以接收全局配置控制信号,并且当所述区域启动电路启动所述CSR部分重新配置区域的所述重新配置时生成选择性地启动CSR数据的局部重新配置控制信号。当所述CSR部分重新配置区域的所述重新配置被启动时,所生成的局部重新配置控制信号可以被用于选择性地使得CSR数据能够被写入到所述CSR部分重新配置区域中。
还公开一种配置集成电路的方法。所述方法包括用配置移位寄存器(CSR)部分重新配置区域接收输入-输出(IO)信号。在接收所述IO信号之前,使用部分重新配置(PR)电路接收配置数据,以基于所述配置数据确定所述CSR部分重新配置区域的状态。通过确定所述PR区域的配置数据部分是否存在于所述配置数据中,确定所述CSR部分重新配置区域的状态。随后,基于所述部分重新配置电路的所述状态,所述PR电路可以选择性地启动使用所述IO信号的信号移位功能。所述信号移位功能选择性地启动所述CSR部分重新配置区域。
公开一种重新配置集成电路的配置移位寄存器(CSR)部分重新配置区域的方法。所述方法包括用连接到所述CSR部分重新配置区域的部分重新配置(PR电路)接收配置数据。所述PR电路可以接收全局配置控制信号。通过确定所述CSR部分重新配置区域的配置数据部分是否存在于输入配置数据中,所述PR电路可以确定所述CSR部分重新配置电路是否被启动。当所述部分重新配置电路的所述配置数据部分存在于所述配置数据中时,所述PR电路可以基于所述配置数据部分生成局部重新配置控制信号以促进所述CSR部分重新配置区域的重新配置。
从附图和优选实施例的以下详细描述,本发明的进一步特征、它的本质和各种优势将更显而易见。
附图说明
图1是根据本发明的实施例的例示性可编程集成电路的图。
图2是根据本发明的实施例可以被用于实施基于计算机的软件工具的例示性计算机设备的框图。
图3是根据本发明的实施例具有配置移位寄存器链的例示性集成电路。
图4是根据本发明的实施例耦接到部分重新配置区域的部分重新配置电路的例示性电路图。
图5示出根据本发明的实施例用于能够被载入到可编程集成电路中的配置比特流的例示性比特流格式。
图6示出根据本发明的实施例的另一个例示性配置比特流格式。
图7是根据本发明的实施例示出部分重新配置电路的完整和初始部分配置移位寄存器(CSR)配置的输出的例示性时序图。
图8是根据本发明的实施例示出部分重新配置电路的部分配置移位寄存器(CSR)重新配置的输出的例示性时序图。
图9是根据本发明的实施例用于重新配置部分重新配置电路的例示性步骤的流程图。
具体实施方式
本文所提供的实施例包括集成电路结构和用于配置和重新配置集成电路的部分重新配置区域的方法。
然而,显而易见的是,对于本领域中的技术人员来说,没有这些具体细节中的一些或全部也可以实践本示例性实施例。在其它情况下,为了避免不必要地混淆本实施例,未详细描述众所周知的操作。
图1是根据本发明的实施例的例示性的集成电路10的图示。集成电路10具有用于驱动信号离开集成电路10且用于经由IO引脚14从其它电路或器件接收信号的输入-输出(IO)电路12。互连资源16诸如全局和局部垂直和水平导电线和总线可以被用于在集成电路10上路由信号。互连资源16包括固定的互连(导电线)和可编程的互连(例如,在相应的固定的互连之间的可编程连接)。与互连资源16相关联的可编程的互连可以被认为是可编程逻辑区域18的一部分。
可以使用互补金属氧化物半导体(CMOS)集成电路技术(作为示例)形成存储器元件20。在可编程逻辑器件的情况下,存储器元件20可以储存配置数据,并且因此有时被称为配置随机存取存储器(CRAM)单元。一般来说,可以以阵列模式布置配置随机存取存储器元件20。在可编程逻辑器件中,在单个器件上可以有数百万个存储器元件20。在编程操作期间,用户(例如,逻辑设计师)可以为存储器元件的阵列提供配置数据。一旦加载有配置数据,存储器元件20就可以选择性地控制(例如,打开或关闭)可编程逻辑区域18中的电路的部分,并且从而根据需要定制它的功能。
可以使用任何合适的架构组织集成电路10的电路。例如,可编程逻辑区域18可以被组织为较大的可编程逻辑区域的一系列的行和列,每个较大的可编程逻辑区域包含多个较小的区域。较大的区域有时被称为逻辑阵列块。较小的逻辑区域有时被称为逻辑元件。典型的逻辑元件可以包含查找表、寄存器和可编程的多路复用器。如果需要,可编程逻辑区域18可以被布置在更多级或层中,其中多个大的区域被互连以形成更大的逻辑部分。
当存储器元件20被布置成阵列时,水平和垂直导线和相关联的控制电路可以被用于访问存储器元件20。例如,控制电路可以被用于清除全部或一些存储器元件。控制电路还可以将数据写到存储器元件20,并且可以从存储器元件20读数据。例如,在CRAM阵列中,存储器元件20可以加载有配置数据。然后,在系统中的正常操作期间,在使用集成电路10之前,可以从存储器阵列读出所加载的配置数据,以确认正确的数据捕获。
除了图1中所示的可编程逻辑区域的相对大的块之外,集成电路10一般还包括与集成电路10上的IO电路12相关联的一些可编程逻辑部件。例如,IO电路12可以包含用于基于所接收的IO配置信息实行集成电路10中的IO和外围操作控制的串联耦接的配置移位寄存器(CSR),这些配置移位寄存器(CSR)总称为CSR链。然而,CSR链能够仅以常规完整配置或重新配置进行完整地配置(例如,以与集成电路10的核心逻辑区域相同的方式进行配置)。重新配置CSR链的任何部分需要将集成电路10断电(或者以其它方式使其停用或使其处于挂起状态)。结果,每次集成电路10的配置需要从头重新开始,这费力且费时。
在器件配置和重新配置两者期间和在用户模式下(例如,在正常操作期间),需要灵活的CSR配置机制以执行支持完整和部分CSR配置两者的电路操作。此类机制可以缩短用于集成电路的配置时间,以及提供重新配置运行中的集成电路的IO和外围块的能力,以减少或消除系统停机时间。通过灵活的CSR配置机制,CSR链可以被划分成一组移位寄存器部分重新配置(PR)区域(在下文中,其将被称为PR区域)。PR区域可以包括串联耦接到该组中下一个PR区域中的另一个配置移位寄存器的配置移位寄存器(例如,两个或更多连接的寄存器电路的分段)。一旦配置集成电路,将灵活的配置机制(其将在下面进行详细描述)付诸实施以确定PR区域中的任一是否被启动或禁用。
在典型的设计流程中,电路设计师会使用电子设计自动化(EDA)工具创建电路设计,并且EDA工具会生成配置数据(例如,配置比特流),然后配置数据可以被用于配置集成电路。图2是可以被用于该目的的例示性计算机设备。如图2所示,计算机设备256可以包括处理电路260。计算机设备256可以基于诸如个人计算机、工作站等这样的一个或更多个处理器。处理电路260可以包括用于执行各种所支持的指令的电路。处理电路260中的储存器254可以被组织用于形成共享和独立的数据库。储存器254中储存的信息可以包括输入和输出数据255。例如,输入数据可以包括由用户或软件库选择的设置。输出数据可以包括:建模结果、配置数据、报告和来自计算机设备256的任何其它合适的处理的输出。
在支持实施期望的定制逻辑功能时涉及的设计操作时,计算机设备256可以使用在处理电路260上运行的软件。该软件可以采取一个或更多个程序的形式。例如,软件是EDA工具。当程序运行于计算机设备256上时,计算机设备256有时被称为计算机辅助设计工具。
输入和输出器件257可以包括诸如指示器件和键盘这样的输入器件,并且可以包括诸如打印机和显示器这样的输出器件。如图2所示,计算机设备256可以在显示器上显示屏幕上的选项259。用户可以点击这些屏幕上的选项,或者可以基于所显示的信息以其它方式作出选择。用户还可以通过键入文本框、通过执行拖放操作、使用选项卡等提供输入。输入和输出数据261可以包括输入数据(例如,用户已经键入到文本框中或者使用下拉式菜单或其它可选择的选项已经选择的数据)和输出数据(例如,建模结果、报告、表示设计选择的信息等)。可以在显示器上显示输入和输出数据261,或者可以为用户打印输入和输出数据261。
通信电路262可以通过总线接口电路250促进在计算机设备256的各种电路之间的数据和信息交换。作为示例,根据需要,通信电路262可以提供各种协议功能(例如,传输控制协议/互联网协议(TCP/IP)(包括物理层或PHY)、用户数据报协议(UDP)等)。作为另一个示例,通信电路262可以与网络263(例如,以太网、令牌环网等)通信。网络263可以包括储存数据和信息的一个或更多个服务器264。在集成电路测试期间,通信电路262可以经配置用于将每个测试的集成电路的性能结果存储在服务器264上。如果需要,通信电路262可以被用于在网络263上发送诸如性能结果这样的数据和从服务器264接收诸如性能结果这样的数据。
图3根据本发明的实施例是具有配置移位寄存器(CSR)链308的例示性集成电路300。集成电路300包括核心逻辑区域303和CSR链308。CSR链308可以包括一个或更多个CSR,每个CSR包含一组串联耦接的配置寄存器335。如图3所示,CSR链308被耦接到形成于集成电路300的IO和外围区域305内的一组输入-输出(IO)电路(例如,IO块304A和IO块304B)。CSR链308经配置用于控制IO块304A和块304B以执行IO和外围功能(或操作)。
在一个实施例中,在器件配置阶段中或在用户模式下,可以完整或部分地配置(或重新配置)CSR链308。为此,CSR链308可以被划分(或分段)成预定数量的CSR部分重新配置区域(本文中,其可以被称为PR区域),用于个体PR区域启动。例如,CSR链308可以被划分成两个PR区域321A和PR区域321B。多路复用器(例如,多路复用器307)被添加到每个PR区域的端部,以允许一个PR区域(例如,PR区域321A)被连接到下一个PR区域(例如,PR区域321B),或者被跳过。在一个实施例中,被划分的PR区域(例如,PR区域321A和PR区域321B)中的每个可以被耦接到用于个体PR区域配置的部分重新配置(PR)电路。例如,PR区域321A被耦接到PR电路302A,并且PR区域321B被耦接到PR电路302B。在一个实施例中,PR电路可以包括区域启动电路351和区域控制电路352。如图3所示,区域启动电路351被布置成与CSR链308平行。区域启动电路351被添加到PR区域串联连接路径以形成启动移位寄存器(ESR)链356,用于每个个体PR区域启动。之后参考图4提供PR区域321A和PR电路302A的更详细的描述。
在一个实施例中,在器件配置(或重新配置)阶段和用户模式两者中,通过通用配置控制器(例如,控制电路301),PR电路302A和PR电路302B可以形成支持完整和部分CSR配置两者的灵活的CSR配置机制。外部配置数据(比特流)可以通过编程装置(图3中未示出)提供给集成电路300中的控制电路301。能够由控制电路301生成配置信号(例如,输入CSR信号DIN311、时钟信号CLK 312、CSR时钟启动信号CSR_CE 315、CSR完成信号CSR_Done 316、全局冻结信号Global_Freeze 314、PR电路启动数据信号Region_En_In 318、PR电路时钟启动信号Region_CE 317)。控制电路301还能够经由控制路径361从核心逻辑区域303接收配置信号,以允许由核心逻辑区域303驱动CSR链308的配置(或重新配置)。
举例来说,在器件配置(或重新配置)阶段和用户模式两者中,灵活的CSR配置机制可以经配置以以下方式支持完整和部分CSR配置两者。首先,使Global_Freeze 314有效以将IO块304A和块304B(每个在CSR 308的控制下)与核心逻辑区域303全局隔离。应当注意的是,该步骤仅发生于完整CSR配置或重新配置操作中。当使Region_CE 317有效时,CLK 312被启动,并且Region_En_In 318被移入以启用PR区域321A和PR区域321B。该步骤为CSR配置(或重新配置)限定实际CSR链,并且启用要被配置的PR区域321A和PR区域321B。一旦完成移位操作,就使Region_CE 317无效以将移位的Region_En_In 318施加到每个PR电路302A和PR电路302B的区域控制电路352。在该情况下,可以由区域控制电路352局部冻结(例如,隔离)PR区域321A和PR区域321B中的每个,以促进CSR配置。
在CSR配置期间,使CSR_Done 316无效以指示CSR配置的开始。当使CSR_CE 315有效时,CLK 312被启动,并且配置数据DIN 311被移入。该步骤驱动配置数据进入所限定的(或所启用的)PR区域321A和PR区域321B中。一旦完成移位操作,CSR_CE 315就被无效,并且使CSR_Done 316有效以将移位的DIN 311施加到要被控制的IO块304A和IO块304B。为了将先前启用的PR区域321A和PR区域321B从局部冻结中释放,使Region_CE 317有效以启动CLK312,并且移入Region_En_In 318以禁用PR区域321A和PR区域321B。一旦完成移位操作,Region_CE 317就被无效以将移位的Region_En_In 318施加到PR区域321A和PR区域321B,以将它们从局部冻结中释放。随后,Global_Freeze 314被无效,以将IO块304A和IO块304B从CSR配置的控制解除。应当注意的是,该步骤可以仅发生于完整CSR配置或重新配置操作完成之后。
图4示出耦接到PR区域321A的PR电路302A的一个实施例的例示性电路图。如上所述,PR电路302A可以包括区域启动电路351和区域控制电路352。在示例性实施例中,区域启动电路351可以包括具有耦接到影子启动寄存器(例如,影子启动寄存器420B)的输出的启动寄存器(例如,启动寄存器420A)。PR区域321A的这些启动寄存器被串联连接到下一个PR区域的启动寄存器以形成启动移位寄存器(ESR)链(例如,图3的ESR链356),其可以由图3的具有单独的时钟启动信号Region_CE 317的控制电路301驱动。
在一个实施例中,区域启动电路351可以接收ESR数据(还被称为PR电路启动数据)诸如Region_En_In 318作为输入,并且基于ESR数据选择性地启动PR区域321A的重新配置。例如,当使Region_CE 317有效时,时钟信号CLK 312被启动,并且区域启动电路351的启动寄存器420A被供应有启动PR区域321A的重新配置的Region_En_In 318。在该配置中,Region_En_In 318可以作为区域启动电路输出423移出启动寄存器420A。在一个实施例中,为了启动下一个PR区域的重新配置的相同的目的,区域启动电路输出423可以作为用于下一个PR区域(例如,图3的PR区域321B)的输入PR电路启动数据被传输出去。区域启动电路输出423的副本被传送到影子启动寄存器420B,使得仅储存与PR区域321A关联的配置数据。影子启动寄存器420B的移位操作由CLK 312和当Region_CE 317被无效时由反相器422产生的激活高控制信号(例如,控制信号461)定时。因此,区域启动电路输出(例如,Region_En411)与CLK 312同步地被移出影子启动寄存器420B。
所得的Region_En 411被供应给区域控制电路352。在示例性实施例中,区域控制电路352可以包括三个逻辑门(例如,逻辑门424、逻辑门425和逻辑门426)。每个逻辑门经配置以接收对应的全局配置控制信号(例如,Global_Freeze 314、CSR_CE 315和CSR_Done316)和Region_En 411以产生局部重新配置控制信号(例如,Region_CSR_CE 415、Region_Done 416和Region_Freeze 414)。这些局部重新配置控制信号可以一起用于执行控制PR区域321A的配置操作的区域启动操作。例如,区域启动操作包括但不局限于将PR区域321A从IO块304A局部冻结(例如,隔离)、启动所启动的PR区域321A的移位操作以及控制多路复用器307从PR区域321A选择要被传输到下一个PR区域用于配置的DIN 311或者DIN 311的移位版本。
如上所述,PR区域321A可以是形成图3的CSR链308的一组连接的CSR部分重新配置区域的一部分。参考图4,PR区域321A可以包括被连接作为移位寄存器的多个配置寄存器(例如,配置寄存器435A、配置寄存器435B和配置寄存器435C)。例如,当针对启动PR区域321A用于CSR配置时,CSR数据输入(例如,DIN 311)将被加载到配置寄存器435A、配置寄存器435B和配置寄存器435C上。在一个实施例中,配置寄存器435A、配置寄存器435B和配置寄存器435C由Region_CSR_CE 415和CLK 312定时,并且将移位的数据位输出提供给对应的逻辑门(例如,逻辑门436A、逻辑门436B和逻辑门436C)。由Region_Done 416控制这些逻辑门以配置IO块304A。
一旦完成移位操作,DIN 311的移位的数据输出被提供给多路复用器电路307的输入。多路复用器电路307的另一个输入由DIN 311驱动。多路复用器电路307的选择输入由区域启动电路351的Region_En 411控制。在一个实施例中,多路复用器电路307可以可操作地耦接到PR区域321A,以允许PR区域321A的输出作为输入数据信号被传输到下一个PR区域。在另一个实施例中,多路复用器电路307可以可操作地耦接到PR区域321A,以当禁止PR区域321A用于CSR配置时,允许DIN 311绕开(例如,跳过)PR区域321A。例如,当PR区域321A被启动时,多路复用器电路307可以基于Region_En 411选择DIN 311的移位的数据输出。在另一个示例中,当PR区域321A被禁用时,多路复用器电路307反而可以选择DIN 311。
在一个实施例中,PR电路302A和PR区域321A可以共同形成促进IO配置的灵活的CSR配置机制。此类机制能够被用于实施不同的CSR配置(例如,完整的CSR配置(或重新配置)、初始部分CSR配置和部分CSR重新配置)。在图4中所示的示例性实施例中,在器件配置(或重新配置)阶段期间,相同CSR链(例如,图3的CSR链308)中的PR区域321A和所有其它PR区域(例如,PR区域321B)被启动以执行完整的CSR配置(或重新配置)操作。为此,使全局冻结信号(例如,Global_Freeze 314)有效(例如,经由图3的控制电路301)以全局隔离CSR链中的所有的PR区域。之后,PR电路启动数据(例如,Region_En_In 318)通过区域启动电路351被移到集成电路中,以启动所有PR区域的配置(或重新配置)。将生成来自区域启动电路351的输出(例如,Region_En 411),并且该输出将被施加到区域控制电路352,以生成对应的局部配置(或重新配置)控制信号(例如,Region_CSR_CE 415、Region_Done 416和Region_Freeze 414),从而配置PR区域。一旦完成配置操作,ESR数据就再次被移到集成电路中,以禁用PR区域。
初始部分CSR配置可以具有与完整的CSR配置类似的电路操作,其中例外的是初始部分CSR配置启动集成电路的特定PR区域的初始功能。在图4中所示的示例性实施例中,在器件配置阶段期间,特定PR区域(例如,PR区域321A)可以被启动以执行初始部分CSR配置操作。CSR链308中的其它PR区域(例如,PR区域321B)将被禁用(例如,不被配置)。换句话说,将不针对个体PR区域启动激活在禁用的PR区域的每个中的灵活CSR机制。为此,使全局冻结信号(例如,Global_Freeze 314)有效(例如,经由图3的控制电路301)以将CSR链中的所有的PR区域从集成电路的核心逻辑区域(例如,图3的核心逻辑区域303)全局隔离。之后,Region_En_In 318通过区域启动电路351被移到集成电路中,以仅启动所启动的PR区域321A的配置。将生成来自区域启动电路351的输出(例如,Region_En 411),并且该输出将被施加到区域控制电路352以生成配置PR区域321A的对应的局部配置控制信号(例如,Region_CSR_CE 415、Region_Done 416和Region_Freeze 414)。一旦完成配置操作,ESR数据就再次被移到集成电路中,以禁用所启动的PR区域321A。
在用户模式期间,部分CSR重新配置能够被发起以实现集成电路中的IO重新配置。用户(例如,逻辑设计师)可以提供新的配置数据(这将在图5和图6中进行详细描述),新的配置数据限定在部分CSR重新配置操作期间要被重新配置的一个或更多个PR区域。在这种情况下,基于Region_Freeze 414,仅以新的配置数据限定的PR区域将被局部“冻结(例如,逻辑隔离)”,并且因此,允许用新的配置数据重新配置这些限定的PR区域。因此,禁用的PR区域将被跳过(例如,不进行配置),而不影响禁用的PR电路的操作。一般地,能够通过基于CLK 312将新的配置数据移到PR区域321A中实现IO重新配置,使得产生移位的配置数据信号。移位的配置数据信号可以被传输到要被重新配置的对应的IO块(由限定的PR区域控制)。
在CSR配置期间,每个PR区域的选择的输出数据信号(例如,DOUT 419)可以被传输到集成电路的下一个PR区域(例如,使用多路复用器电路307),以促进下一个PR区域的PR区域启动操作。因此,全局配置控制信号、CLK312和ESR控制信号(例如,Region_En_Out 430和Region_CE 317)也被传输到下一个PR区域用于相同的目的。
图5根据本发明的实施例示出用于集成电路的IO和外围CSR的配置比特流500的例示性比特流格式。一般地,通过从电子设计自动化工具接收数据来配置集成电路(例如,图3的集成电路300)。该数据可以被称为配置比特流,其可以被包括在程序目标文件(POF)中。配置比特流可以被加载到集成电路的配置存储器单元(例如,图1的存储器元件20)中。来自配置控制器(例如,图3的控制电路301)的配置比特流驱动集成电路的配置。
根据用户设计需求,可以限定CSR配置比特流的格式和内容,以在单个集成电路上实施不同类型的配置移位寄存器(CSR)配置。例如,如图5所示,用于完整的CSR配置或部分初始CSR配置的配置比特流500的格式可以以PR区域启动数据片段(例如,PR区域启动数据501)开始,PR区域启动数据片段(例如,PR区域启动数据501)限定(例如,启动)要被配置的CSR链(例如,图3的CSR链308)中的一个或更多个(N个)CSR部分重新配置区域(本文中可以被称为PR区域)。
然后,接着是包括用于配置限定的PR区域的PR数据部分的PR数据片段(例如,PR数据片段502)。例如,PR数据[1]可以配置CSR链中的第一CSR PR区域(例如,PR区域321A),PR数据[2]可以配置CSR链中的第二PR区域(例如,PR区域321B),并且PR数据[N]可以配置CSR链中的第N个PR区域。
最后,配置比特流500由末尾PR区域禁用数据片段(例如,PR区域禁用数据503)终止以禁用所有限定的PR区域。在一个实施例中,PR区域启动数据501和PR区域禁用数据503可以是被供应到集成电路的CSR PR电路启动数据(例如,图3的Region_En_In 318)的一部分,以促进个体CSR PR区域启动。
在一些情况下,可以针对部分CSR配置(或重新配置)启动特定的CSR部分重新配置区域(本文中,其可以被称为PR区域),以促进集成电路的IO配置。图6是根据本发明的实施例用于集成电路的配置比特流600的例示性比特流格式。应当理解,图3和图6可以被用作示例以说明以下描述。
在一个实施例中,仅启动的PR区域的配置数据部分可以被包括在配置比特流600中。作为示例,在图3中,在集成电路300中执行初始部分CSR配置或者部分CSR重新配置之前,可以启动CSR PR区域321B(本文中,将被称为PR区域),并且可以禁用PR区域321A。在这种情况下,用于CSR链308中的第一PR区域(例如,PR区域321A)的配置数据部分没有被包括在配置比特流600中,这意味着,在部分CSR配置操作期间,PR区域321A的配置将被跳过(例如,不进行配置)。
类似于图5的配置比特流500,用于初始部分CSR配置或部分CSR重新配置的配置比特流600的格式可以以CSR PR区域启动数据片段开始,接着是PR数据片段,并且以末尾PR禁用片段终止。在一个实施例中,配置比特流600的数据片段可以仅包含启动第二PR区域(例如,PR区域321B)的CSR配置的信息。例如,PR区域启动数据621可以包括仅启动第二PR区域的数据位,PR数据片段602可以包括配置第二PR区域的数据位,并且PR区域禁用数据623可以包括在完成部分CSR配置或部分CSR重新配置的操作之后禁用第二PR区域的数据位。
图7是根据本发明的实施例示出图3的集成电路300的启动的PR区域321A和PR区域321B的完整的和初始部分CSR配置的输出的例示性时序图700。应当理解,完整的CSR配置(或重新配置)和初始部分CSR配置可以共享相同的操作流程,并且因此,用于两个电路操作的时序图可以彼此共享相似性。
在一个实施例中,出于该目的,由被提供给器件的配置比特流的配置数据位控制集成电路(例如,图3的集成电路300)的IO配置。在该示例中,基于图5的配置比特流500,一组全局配置全局信号(通过图3的电路301)可以被提供给IO和外围区域305。如时序图700中所示的,该组信号可以包括:全局冻结信号(例如,Global_Freeze 314)、PR电路时钟启动信号(例如,Region_CE 317)、PR电路启动数据信号(例如,Region_En_In 318)、CSR时钟启动信号(例如,CSR_CE 315)、CSR完成信号(例如,CSR_Done 316)和CSR数据输入信号(例如,DIN 311)。图3的区域启动电路351和区域控制电路352可以生成如时序图700中所示的一组局部区域控制信号,包括PR电路启动控制信号(例如,Region_En 411)、区域时钟启动控制信号(例如,Region_CSR_CE 415)、区域完成控制信号(Region_Done 416)和区域冻结控制信号(例如,Region_Freeze 414)。因此,来自图3的控制电路301的时钟信号(例如,CLK312)可以被用于使CSR链308的PR区域321A和PR区域321B中的所有电路操作同步。应当理解,来自控制电路301的所有全局信号可以在CLK 312的下降(或负)沿上改变,并且IO电路305中的所有寄存器可以通过CLK 312的上升(或正)沿被锁存,以避免潜在的时序冲突。
当集成电路300被加电时,在图3的CSR链308中的PR区域321A和PR区域321B内的元件可以重置为它们的相应初始状态。例如,Global_Freeze314、Region_CE 317、Region_En411和CSR_CE 315的二进制值相应地被重置为“0”。因此,CSR_Done 316的二进制值相应地被重置为“1”。因此,局部生成的信号Region_CSR_CE 415、Region_Freeze 414和Region_Done 416的二进制值可以相应地被覆盖为CSR_CE 315(“0”)、Global_Freeze 314(“0”)和CSR_Done 316(“1”)的二进制值。
在完整的和初始部分CSR配置操作期间,基于图5的配置比特流500中的数据位信息,PR区域321A和PR区域321B中的每个可以执行特定的区域启动操作(其先前已经在图4中进行了描述)。例如,可以由配置比特流500的PR电路启动数据501指定在T1和T4之间的时间间隔期间由PR区域321A和PR区域321B执行的区域启动操作。因此,可以由PR数据片段502指定在T4和T5之间的时间间隔期间由PR区域321A和PR区域321B执行的区域启动操作。最后,可以由图5的PR区域禁用数据503指定在T5和T8之间的时间间隔期间由PR区域321A和PR区域321B执行的区域启动操作。
为了简化以下描述,尽管相同的CSR链(例如,CSR链308)内的所有其它PR区域(例如,PR区域321B)可以同时操作,但是仅PR区域321A的实施例将被用于描述时序图700。在T1到T7之间的时间间隔,使Global_Freeze 314对于PR区域321A有效(例如,设置为“1”),以将PR区域321A从图3的核心逻辑区域303全局隔离。在该实施例中,由Global_Freeze314覆盖Region_Freeze 414,并且因此,Region_Freeze414的相位是与Global_Freeze 314的相位相同。
在T2到T3之间的时间间隔,区域启动电路351的启动寄存器420A和启动寄存器420B可以由CLK 312和图4的PR电路时钟启动信号(例如,Region_CE 317)定时。例如,如图4所示,启动寄存器420A在CLK 312的每个上升沿处在启动移位寄存器(ESR)数据(例如,Region_En_In 318)上可以执行顺序位移位,使得输出数据信号(例如,参考输出数据423)从启动寄存器420A被移出。
在时间T3处,Region_CE 317被无效(例如,设置为“0”),并且保持无效直到时间T6。在该阶段,然后,可以由反相器422局部反转被无效的Region_CE 317,并且将被无效的Region_CE 317施加到影子启动寄存器420B的时钟启动端口。影子启动寄存器420B可以从启动寄存器420A接收参考输出数据423,并且对其执行顺序位移位以产生区域启动电路输出(例如,Region_En 411)。例如,如时序图700中所示,一旦图4的参考输出数据423通过CLK312从影子启动寄存器420B被移出,就使Region_En 411有效。在一个实施例中,基于Region_En 411,区域控制电路352可以通过发送指示区域启动操作的控制信号(例如,Region_CSR_CE 415)控制PR区域321A。
为了激活PR区域321A中的移位操作,使CSR_CE 315有效,并且在逻辑门425处将CSR_CE 315与Region_En 411一起进行与操作以变成Region_CSR_CE 415。当PR区域321A接收到Region_CSR_CE 415时,由Region_CSR_CE 415启动使用CLK 312以激活PR区域321A中的移位操作。在一个实施例中,使CSR_CE 315有效以确保来自DIN 311的数据位被移位到PR区域321A中的配置寄存器(例如,配置寄存器435A、配置寄存器435B和配置寄存器435C)的每个中。
在T4到T5之间的时间间隔,一旦DIN 311的最后的数据位被移入,PR区域321A中的每个配置寄存器就产生输出到它的对应的逻辑门(例如,逻辑门436A、逻辑门436B和逻辑门436C)的移位的数据位。因此,PR区域321A还可以生成DIN 311的移位的版本作为到多路复用器电路307的输入。在一个实施例中,当PR区域321A被启动用于CSR配置时,可以由Region_En 411控制图4的多路复用器电路307,以选择DIN 311的移位的数据信号输出。随后,来自多路复用器电路307的选择的移位数据输出作为图4的DOUT 419从PR区域321A被传输出去。
在时间T5,CSR_CE 315被无效以指示完成PR区域321A中的DIN 311的移位操作。在该阶段,PR区域321A被禁止移位以防止不希望的移位进入。因此,同时(例如,时间T5)使CSR_Done 316有效以指示完成CSR配置。响应于CSR_Done 316的有效,使Region_Done 416有效以控制逻辑门436A-逻辑门436C从它们的相应配置寄存器选择移位的数据位输出,并且将选择的移位的数据位输出传输到要被配置的IO块304A。
在T6到T7之间的时间间隔,Region_CE 317被再次设置为“1”以启动CLK 312的使用,使得能够通过启动寄存器420A和启动寄存器420B移位Region_En_In 318。
在T7到T8之间的时间间隔,Region_CE 317被再次无效,以将Region_En_In 318的移位的输出施加到PR区域321A。此类配置将针对PR区域321A的全区域冻结从逻辑隔离中释放,其中PR区域321A先前被启动,以促进CSR配置操作。因此,Global_Freeze 314被无效以将IO块304A从PR区域321A的控制中释放。
图8是根据本发明的实施例示出集成电路中启动的PR区域的部分CSR重新配置的输出的例示性时序图800。如上面所提到的,在用户模式期间,部分CSR重新配置能够被发起以实现集成电路(例如,图3的集成电路300)中的IO重新配置。应当理解,图3和图6可以被用作示例以说明以下描述。
在示例性实施方式中,在用户模式期间,为了促进IO重新配置,图3的PR区域321B可以被启动,并且可以禁用图3的PR区域321A。在这种情况下,集成电路300可以接收包含配置PR区域321B的PR区域321B的配置数据部分的新的配置比特流(例如,图6的配置比特流600)。
如时序图800中所示,除Global_Freeze 314可以始终保持低之外,在部分CSR重新配置的电路操作期间涉及的信号与先前参考图7所描述的相同。因此,应当理解,为了简明起见,将不再重复图7的时序图700中已经示出且上面已经描述的全局配置控制信号和局部重新配置控制信号(例如,时钟信号CLK 312、Region_CE 317、Region_En 411、CSR_CE 315、CSR_Done 316、Region_CSR_CE 415和Region_Done 416)。
如时序图800的实施例中所示,由于Global_Freeze 314可以始终是低,所以在PR区域321B的区域启动操作期间,Region_Freeze 414现在可以被Region_En 411覆盖。Region_Freeze 414的有效和无效可以取决于Region_En411,以将启动的PR区域321B从图3的核心逻辑区域303局部冻结(例如,隔离)。在T3到T8之间的时间间隔期间,当使Region_Freeze 414有效时(例如,设置为“1”),图3的PR区域321B和IO块304B两者彼此逻辑隔离。此类配置允许由PR电路302B重新配置PR区域321B。因此,新的未限定的(例如,禁用的)PR区域(例如,PR区域321A)将被跳过,而不会影响现有的禁用的PR区域的操作(若有的话)。在这种情况下,将通过CSR_Done 316对所有的禁用的PR区域进行门控(例如,断开或禁用)。
图9示出根据本发明的实施例用于重新配置集成电路的配置移位寄存器(CSR)部分重新配置区域的例示性步骤的流程图。在一个实施例中,在集成电路或用户设计的编辑期间,可以由电子设计自动化(EDA)工具执行图9中所示的步骤。应当理解,图3和图4可以被用作示例以描述下面的步骤。
在步骤901,接收输入配置数据。输入配置数据可以是诸如图5的配置比特流500和图6的配置比特流600这样的配置比特流。例如,输入配置数据可以包括促进集成电路的CSR配置的CSR数据和部分重新配置(PR)电路启动数据。
在步骤902,确定与配置移位寄存器PR区域关联的PR电路启动数据是否存在于输入配置数据中。在一个实施例中,配置移位寄存器PR区域或仅仅PR区域可以被连接到促进PR区域的CSR配置的PR电路。参考图3,PR电路(PR电路302A和PR电路302B)可以包括两个部件,即,区域启动电路(例如,区域启动电路351)和区域控制电路(例如,区域启动电路352)。区域启动电路启动PR区域的配置,并且区域控制电路控制PR区域的配置。
如果PR区域启动数据存在于输入配置数据中,则在步骤903处,基于生成的PR电路启动数据,生成局部重新配置控制信号。在图4中所示的示例性实施例中,在步骤904处,当通过区域启动电路351使Region_En 411对于区域控制电路352有效时,PR电路302A的区域控制电路352可以生成一组局部重新配置控制信号(例如,Region_CSR_CE 415、Region_Done 416和Region_Freeze 414)以激活和促进PR区域321A的配置操作。
在另一个实施例中,如果PR区域启动信号不存在于输入配置中,这意味着,在步骤905处,PR区域被禁止配置,并且将被跳过。例如,输入配置数据的CSR数据(例如,图3的DIN311)将通过多路复用器电路(例如,图3的多路复用器电路307)绕过禁用的PR区域,而不被写入到PR区域中。随后,CSR数据被传输到下一个PR区域(例如,图3的PR区域321B),用于启动下一个PR区域的重新配置的相同的目的。
本文所描述的方法和装置可以被并入到任何合适的电路中。例如,方法和装置可以被并入到多种类型的器件,诸如微处理器或其它集成电路中。示例性集成电路包括可编程阵列逻辑(PAL)、可编程逻辑阵列(PLA)、现场可编程逻辑阵列(FPLA)、电可编程逻辑器件(EPLD)、电可擦除可编程逻辑器件(EEPLD)、逻辑单元阵列(LCA)、现场可编程门阵列(FPGA)、专用标准产品(ASSP)、专用集成电路(ASIC),仅列出一些。
本文所描述的可编程逻辑器件可以是数据处理系统的一部分,数据处理系统包括以下部件中的一个或更多个:处理器、存储器、IO电路和外围器件。数据处理系统可以被用于各种各样的应用中,诸如计算机联网、数据联网、设备化、视频处理、数字信号处理或者期望使用可编程或可重编程逻辑的优势的任何合适的其它应用。可编程逻辑器件可以被用于执行各种不同的逻辑功能。例如,可编程逻辑器件可以经配置作为与系统处理器协调工作的处理器或控制器。可编程逻辑器件还可以被用作用于仲裁对数据处理系统中的共享资源的访问的仲裁器。在另一个示例中,可编程逻辑器件可以经配置作为处理器与系统中其它部件中的一个之间的接口。在一个实施例中,可编程逻辑器件可以是由受让人所拥有的一系列器件中的一个。
虽然以特定的顺序描述了方法操作,但应当理解,可以在所描述的操作之间执行其它操作,可以调整所描述的操作,使得它们可以于稍微不同的时间处发生,或者所描述的操作可以分布在系统中,所述系统允许处理操作发生于与处理相关联的不同时间间隔处,只要以期望的方式执行覆盖操作的处理。
额外的实施例:
额外的实施例1.一种集成电路,其包括:多个配置移位寄存器(CSR),其中在多个CSR中的每个CSR由多个串联耦接的配置寄存器形成,其中所述多个CSR被划分成预定数量的CSR部分重新配置区域,并且其中每个CSR部分重新配置区域被耦接到部分重新配置(PR)电路,所述部分重新配置(PR)电路包括:区域启动电路,所述区域启动电路接收PR电路启动数据,并且基于所述PR电路启动数据,选择性地启动所述CSR部分重新配置区域的重新配置;以及区域控制电路,所述区域控制电路接收全局配置控制信号,并且当由所述区域启动电路启动所述CSR部分重新配置区域的所述重新配置时,基于所述PR电路启动数据生成局部重新配置控制信号。
额外的实施例2.额外的实施例1的所述集成电路,其中当所选择的CSR部分重新配置区域的所述重新配置被启动时,所述局部重新配置控制信号被用于选择性地使得CSR数据能够被写入到所述CSR部分重新配置区域的所选择的一个中。
额外的实施例3.额外的实施例1的所述集成电路,其中所述区域启动电路确定区域启动信号是否对于所述区域启动电路有效,并且其中所述区域启动信号指示所述CSR部分重新配置区域是否处于激活状态。
额外的实施例4.额外的实施例3的所述集成电路,其中当使所述区域启动信号有效时,所述区域启动电路产生区域启动电路输出。
额外的实施例5.额外的实施例1的所述集成电路,其中所述区域启动电路进一步包括:启动寄存器电路,所述启动寄存器电路接收所述PR电路的配置数据;以及影子启动寄存器电路,所述影子启动寄存器电路从所述启动寄存器电路顺序地接收参考数据,并且产生区域启动电路输出,其中所述区域启动电路输出对应于所述CSR部分重新配置区域的状态。
额外的实施例6.额外的实施例5的所述集成电路,其中所述CSR部分重新配置区域接收输入-输出(IO)信号,并且传输移位的IO信号,所述集成电路进一步包括:多路复用器电路,所述多路复用器电路接收所述IO信号和所述移位的IO信号,其中响应于识别所述CSR部分重新配置区域的所述状态,所述多路复用器电路被所述区域启动电路控制以输出所述IO信号和所述移位的IO信号中所选择的一个。
额外的实施例7.额外的实施例6的所述集成电路,其中当所述区域启动信号被无效时,所述区域启动电路产生区域启动电路输出。
额外的实施例8.额外的实施例7的所述集成电路,其中所述区域启动电路将所述区域启动电路输出发送到所述多路复用器电路以选择所述IO信号作为输出信号。
额外的实施例9.一种配置集成电路的方法,其包括:用配置移位寄存器(CSR)部分重新配置区域接收输入-输出(IO)信号;用耦接到所述CSR部分重新配置区域的部分重新配置(PR)电路接收配置数据,并且基于所接收到的配置数据确定所述CSR部分重新配置区域的状态;以及响应于确定所述CSR部分重新配置区域的所述状态,用所述PR电路选择性地启动使用所述IO信号的功能。
额外的实施例10.额外的实施例9的所述方法,其中所述功能包括信号移位功能,并且其中选择性地启动所述功能包括选择性地启动所述CSR部分重新配置区域。
额外的实施例11.额外的实施例9的所述方法,其中确定所述CSR部分重新配置区域的所述状态包括确定所述部分重新配置CSR的配置数据部分是否存在于所述配置数据中。
额外的实施例12.额外的实施例11的所述方法,其中所述PR电路包括区域启动电路,所述方法进一步包括:响应于确定所述CSR部分重新配置区域的所述配置数据部分存在于所述配置数据中,用所述区域启动电路生成区域启动电路输出。
额外的实施例13.额外的实施例12的所述方法,进一步包括:用多路复用器电路接收所述IO信号和移位的IO信号。
额外的实施例14.额外的实施例13的所述方法,其中所述区域启动电路将所述区域启动电路输出发送到所述多路复用器电路以将输出信号耦接到所述IO信号或者耦接到所述移位的IO信号。
额外的实施例15.额外的实施例14的所述方法,进一步包括:用耦接到另一个PR电路的额外的CSR部分重新配置区域从所述部分重新配置CSR的所述多路复用器电路接收所述输出信号。
额外的实施例16.一种重新配置集成电路上的配置移位寄存器(CSR)部分重新配置区域的方法,其包括:用耦接到所述CSR部分重新配置区域的部分重新配置(PR)电路接收输入配置数据;以及通过确定所述CSR部分重新配置区域的配置数据部分是否存在于所述输入配置数据中,用所述PR电路确定所述CSR部分重新配置区域是否被启动。
额外的实施例17.额外的实施例16的所述方法,其中所述PR电路包括区域启动电路,所述方法进一步包括:响应于检测所述CSR部分重新配置区域的所述配置数据部分存在于所述输入配置数据中,用所述区域启动电路生成区域启动电路输出。
额外的实施例18.额外的实施例17的所述方法,进一步包括:用耦接到所述区域启动电路的区域控制电路接收全局配置控制信号,并且基于所述区域启动电路输出产生局部重新配置控制信号。
额外的实施例19.额外的实施例18的所述方法,进一步包括:用所述CSR部分重新配置区域接收输入-输出(IO)信号,并且基于所述局部重新配置控制信号输出移位的IO信号。
额外的实施例20.额外的实施例19的所述方法,进一步包括:用多路复用器电路接收所述IO信号和所述移位的IO信号;以及基于所述区域启动电路输出,用所述多路复用器电路从所述IO信号和所述移位的IO信号选择输出信号。
上述仅是本发明的原理的说明,并且在不脱离本发明的保护范围和精神的情况下,可以由本领域中的这些技术人员做出各种修改。

Claims (19)

1.一种集成电路,所述集成电路包括:
多个配置移位寄存器,即多个CSR,其中在所述多个CSR中的每个CSR由多个串联耦接的配置寄存器形成,其中所述多个CSR被划分成预定数量的CSR部分重新配置区域,并且其中每个CSR部分重新配置区域被耦接到部分重新配置电路,即PR电路,所述部分重新配置电路包括:
区域启动电路,所述区域启动电路接收PR电路启动数据,并且基于所述PR电路启动数据,选择性地启动所述CSR部分重新配置区域的重新配置;以及区域控制电路,所述区域控制电路接收全局配置控制信号,并且当由所述区域启动电路启动所述CSR部分重新配置区域的所述重新配置时,基于所述PR电路启动数据生成局部重新配置控制信号。
2.根据权利要求1所述的集成电路,其中当所选择的CSR部分重新配置区域的所述重新配置被启动时,所述局部重新配置控制信号被用于选择性地使得CSR数据能够被写入到所述CSR部分重新配置区域的所选择的一个中。
3.根据权利要求1所述的集成电路,其中所述区域启动电路确定区域启动信号是否对于所述区域启动电路有效,并且其中所述区域启动信号指示所述CSR部分重新配置区域是否处于激活状态。
4.根据权利要求3所述的集成电路,其中当使所述区域启动信号有效时,所述区域启动电路产生区域启动电路输出。
5.根据权利要求1所述的集成电路,其中所述区域启动电路进一步包括:
启动寄存器电路,所述启动寄存器电路接收所述PR电路的配置数据;以及影子启动寄存器电路,所述影子启动寄存器电路从所述启动寄存器电路顺序地接收参考数据,并且产生区域启动电路输出,其中所述区域启动电路输出对应于所述CSR部分重新配置区域的状态。
6.根据权利要求5所述的集成电路,其中所述CSR部分重新配置区域接收输入-输出信号,即IO信号,并且传输移位的IO信号,所述集成电路进一步包括:
多路复用器电路,所述多路复用器电路接收所述IO信号和所述移位的IO信号,其中所述多路复用器电路被所述区域启动电路控制,以响应于识别所述CSR部分重新配置区域的所述状态,输出所述IO信号和所述移位的IO信号中所选择的一个。
7.根据权利要求6所述的集成电路,其中当所述区域启动信号被无效时,所述区域启动电路产生区域启动电路输出。
8.根据权利要求7所述的集成电路,其中所述区域启动电路将所述区域启动电路输出发送到所述多路复用器电路以选择所述IO信号作为输出信号。
9.一种配置集成电路的方法,其包括:
用配置移位寄存器部分重新配置区域,即CSR部分重新配置区域接收输入-输出信号,即IO信号;
用耦接到所述CSR部分重新配置区域的部分重新配置电路,即PR电路接收配置数据,并且基于所接收到的配置数据确定所述CSR部分重新配置区域的状态;以及
响应于确定所述CSR部分重新配置区域的所述状态,用所述PR电路选择性地启动所述CSR部分重新配置区域,其中所述PR电路包括区域启动电路和区域控制电路。
10.根据权利要求9所述的方法,进一步包括:
响应于确定所述CSR部分重新配置区域的所述状态,用所述PR电路选择性地启动使用所述IO信号的信号移位功能。
11.根据权利要求9所述的方法,其中确定所述CSR部分重新配置区域的所述状态包括确定所述部分重新配置CSR的配置数据部分是否存在于所述配置数据中。
12.根据权利要求11所述的方法,所述方法进一步包括:
响应于确定所述CSR部分重新配置区域的配置数据部分存在于所述配置数据中,用所述区域启动电路生成区域启动电路输出。
13.根据权利要求12所述的方法,所述方法进一步包括:
用多路复用器电路接收所述IO信号和移位的IO信号。
14.根据权利要求13所述的方法,其中所述区域启动电路将所述区域启动电路输出发送到所述多路复用器电路以将输出信号耦接到所述IO信号或者耦接到所述移位的IO信号。
15.根据权利要求14所述的方法,所述方法进一步包括:
用耦接到另一个PR电路的额外的CSR部分重新配置区域从所述部分重新配置CSR的所述多路复用器电路接收所述输出信号。
16.一种重新配置集成电路上的配置移位寄存器部分重新配置区域,即CSR部分重新配置区域的方法,所述方法包括:
用耦接到所述CSR部分重新配置区域的部分重新配置电路,即PR电路接收输入配置数据;
通过确定所述CSR部分重新配置区域的配置数据部分是否存在于所述输入配置数据中,用所述PR电路确定所述CSR部分重新配置区域是否被启动;以及
响应于检测所述CSR部分重新配置区域的配置数据部分存在于所述输入配置数据中,用所述PR电路中的区域启动电路生成区域启动电路输出。
17.根据权利要求16所述的方法,所述方法进一步包括:
用耦接到所述区域启动电路的区域控制电路接收全局配置控制信号,并且基于所述区域启动电路输出产生局部重新配置控制信号。
18.根据权利要求17所述的方法,进一步包括:
用所述CSR部分重新配置区域接收输入-输出信号,即IO信号,并且基于所述局部重新配置控制信号输出移位的IO信号。
19.根据权利要求18所述的方法,进一步包括:
用多路复用器电路接收所述IO信号和所述移位的IO信号;以及
基于所述区域启动电路输出,用所述多路复用器电路从所述IO信号和所述移位的IO信号选择输出信号。
CN201610338070.7A 2015-05-28 2016-05-20 用于配置和重新配置部分重新配置区域的方法和装置 Active CN106202604B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810336776.9A CN108563871B (zh) 2015-05-28 2016-05-20 用于配置和重新配置部分重新配置区域的方法和装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/723,876 US9425802B1 (en) 2015-05-28 2015-05-28 Methods and apparatus for configuring and reconfiguring a partial reconfiguration region
US14/723,876 2015-05-28

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201810336776.9A Division CN108563871B (zh) 2015-05-28 2016-05-20 用于配置和重新配置部分重新配置区域的方法和装置

Publications (2)

Publication Number Publication Date
CN106202604A CN106202604A (zh) 2016-12-07
CN106202604B true CN106202604B (zh) 2019-08-09

Family

ID=55968926

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201610338070.7A Active CN106202604B (zh) 2015-05-28 2016-05-20 用于配置和重新配置部分重新配置区域的方法和装置
CN201810336776.9A Active CN108563871B (zh) 2015-05-28 2016-05-20 用于配置和重新配置部分重新配置区域的方法和装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201810336776.9A Active CN108563871B (zh) 2015-05-28 2016-05-20 用于配置和重新配置部分重新配置区域的方法和装置

Country Status (3)

Country Link
US (2) US9425802B1 (zh)
EP (2) EP3098966B1 (zh)
CN (2) CN106202604B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9722613B1 (en) * 2015-09-28 2017-08-01 Xilinx, Inc. Circuit arrangement for and a method of enabling a partial reconfiguration of a circuit implemented in an integrated circuit device
US9503094B1 (en) 2015-10-05 2016-11-22 Altera Corporation Programmable logic device virtualization
US9859874B2 (en) * 2015-10-30 2018-01-02 Sandisk Technologies Llc Loop delay optimization for multi-voltage self-synchronous systems
WO2017188416A1 (ja) * 2016-04-28 2017-11-02 Necソリューションイノベータ株式会社 回路装置、回路書き換え方法、及びコンピュータ読み取り可能な記録媒体
US10394990B1 (en) * 2016-09-27 2019-08-27 Altera Corporation Initial condition support for partial reconfiguration
US11487445B2 (en) 2016-11-22 2022-11-01 Intel Corporation Programmable integrated circuit with stacked memory die for storing configuration data
US10128851B1 (en) 2017-11-27 2018-11-13 Intel Corporation Techniques for programming circuits using mode decoding
US10651853B1 (en) * 2019-05-23 2020-05-12 Xilinx, Inc. Timing insulation circuitry for partial reconfiguration of programmable integrated circuits
CN112099390B (zh) * 2020-07-27 2022-04-12 深圳市风云实业有限公司 一种多级外设控制系统及方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6046603A (en) * 1997-12-12 2000-04-04 Xilinx, Inc. Method and apparatus for controlling the partial reconfiguration of a field programmable gate array
US6255849B1 (en) * 2000-02-04 2001-07-03 Xilinx, Inc. On-chip self-modification for PLDs
US6842039B1 (en) * 2002-10-21 2005-01-11 Altera Corporation Configuration shift register
CN1692367A (zh) * 2002-09-24 2005-11-02 阿纳洛格装置公司 重新配置集成电路芯片的器件引脚的测试模式控制电路
US7268582B1 (en) * 2005-11-22 2007-09-11 Altera Corporation DPRIO for embedded hard IP
CN101073074A (zh) * 2004-12-07 2007-11-14 松下电器产业株式会社 可重新配置的信号处理器

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4852095A (en) * 1988-01-27 1989-07-25 International Business Machines Corporation Error detection circuit
US6148390A (en) * 1996-06-12 2000-11-14 Quicklogic Corporation Techniques and circuits for high yield improvements in programmable devices using redundant logic
US6191613B1 (en) * 1999-07-29 2001-02-20 Xilinx, Inc. Programmable logic device with delay-locked loop
US6851047B1 (en) 1999-10-15 2005-02-01 Xilinx, Inc. Configuration in a configurable system on a chip
US7064577B1 (en) * 2003-05-02 2006-06-20 Altera Corporation Method and apparatus for supporting variable speed configuration hardware
US7196963B1 (en) * 2005-10-17 2007-03-27 Lattice Semiconductor Corporation Address isolation for user-defined configuration memory in programmable devices
US7477072B1 (en) * 2006-01-17 2009-01-13 Xilinx, Inc. Circuit for and method of enabling partial reconfiguration of a device having programmable logic
US7562273B2 (en) * 2006-06-02 2009-07-14 International Business Machines Corporation Register file cell with soft error detection and circuits and methods using the cell
US7852705B1 (en) * 2006-09-27 2010-12-14 Xilinx, Inc. Method of and circuit for configuring a plurality of memory elements
US7747423B1 (en) 2006-09-27 2010-06-29 Xilinx, Inc. Systems and methods of co-simulation utilizing multiple PLDs in a boundary scan chain
US7652498B2 (en) 2007-06-27 2010-01-26 Tabula, Inc. Integrated circuit with delay selecting input selection circuitry
US8539011B1 (en) * 2007-07-19 2013-09-17 Xilinx, Inc. Device having programmable logic for implementing arithmetic functions
US7737779B2 (en) * 2008-08-29 2010-06-15 Xilinx, Inc. Method of and circuit for reducing distortion in a power amplifier
US8415974B1 (en) * 2011-03-09 2013-04-09 Xilinx, Inc. Methods and circuits enabling dynamic reconfiguration
US8664975B1 (en) * 2011-04-13 2014-03-04 Altera Corporation Systems and methods for flexibly configuring a programmable logic device
US9543956B2 (en) * 2011-05-09 2017-01-10 Intel Corporation Systems and methods for configuring an SOPC without a need to use an external memory
US8797061B2 (en) * 2011-12-21 2014-08-05 Altera Corporation Partial reconfiguration circuitry
US8860458B2 (en) * 2012-07-20 2014-10-14 Altera Corporation Integrated circuits with logic regions having input and output bypass paths for accessing registers
US8704548B1 (en) * 2012-10-19 2014-04-22 Altera Corporation Methods and apparatus for building bus interconnection networks using programmable interconnection resources
US8941408B2 (en) * 2013-02-28 2015-01-27 Altera Corporation Configuring data registers to program a programmable device with a configuration bit stream without phantom bits
CN103677916A (zh) * 2013-12-10 2014-03-26 中国航空工业集团公司第六三一研究所 一种基于fpga的在线重配置系统及方法
US9438244B2 (en) * 2014-10-28 2016-09-06 Xilinx, Inc. Circuits for and methods of controlling power within an integrated circuit
US9588176B1 (en) * 2015-01-30 2017-03-07 Altera Corporation Techniques for using scan storage circuits
US9590635B1 (en) * 2015-12-03 2017-03-07 Altera Corporation Partial reconfiguration of programmable devices
US9584130B1 (en) * 2016-01-11 2017-02-28 Altera Corporation Partial reconfiguration control interface for integrated circuits

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6046603A (en) * 1997-12-12 2000-04-04 Xilinx, Inc. Method and apparatus for controlling the partial reconfiguration of a field programmable gate array
US6255849B1 (en) * 2000-02-04 2001-07-03 Xilinx, Inc. On-chip self-modification for PLDs
CN1692367A (zh) * 2002-09-24 2005-11-02 阿纳洛格装置公司 重新配置集成电路芯片的器件引脚的测试模式控制电路
US6842039B1 (en) * 2002-10-21 2005-01-11 Altera Corporation Configuration shift register
CN101073074A (zh) * 2004-12-07 2007-11-14 松下电器产业株式会社 可重新配置的信号处理器
US7268582B1 (en) * 2005-11-22 2007-09-11 Altera Corporation DPRIO for embedded hard IP

Also Published As

Publication number Publication date
EP3098966B1 (en) 2020-08-19
EP3098966A2 (en) 2016-11-30
US9859897B2 (en) 2018-01-02
CN106202604A (zh) 2016-12-07
US9425802B1 (en) 2016-08-23
EP3373454A1 (en) 2018-09-12
EP3098966A3 (en) 2017-02-15
CN108563871B (zh) 2022-05-27
EP3373454B1 (en) 2021-02-24
US20160352338A1 (en) 2016-12-01
CN108563871A (zh) 2018-09-21

Similar Documents

Publication Publication Date Title
CN106202604B (zh) 用于配置和重新配置部分重新配置区域的方法和装置
CN102971966B (zh) 多裸片集成电路的配置
US7420392B2 (en) Programmable gate array and embedded circuitry initialization and processing
US8415974B1 (en) Methods and circuits enabling dynamic reconfiguration
CN103812502B (zh) 具有冗余电路的可编程集成电路
US5952846A (en) Method for reducing switching noise in a programmable logic device
US9166599B1 (en) Methods and apparatus for building bus interconnection networks using programmable interconnection resources
CN108028654A (zh) 用于 fpga 的测试和配置的系统和方法
CN103155414B (zh) 硬化的可编程器件
EP3885925A1 (en) Programmable integrated circuit configured as a remote trust anchor to support multitenancy
US8860458B2 (en) Integrated circuits with logic regions having input and output bypass paths for accessing registers
CN107045879A (zh) 集成电路中的状态可见性和操纵
JPH09181599A (ja) 時間多重書込可能論理装置
JPH08503111A (ja) 改良型コンフィギャラブルセルアレイ
US10855285B2 (en) Field programmable transistor arrays
CN110018853A (zh) 用于可编程逻辑器件的快速启动系统和方法
CN108090021A (zh) 用于可编程集成电路协处理器区段管理的方法和装置
Tian et al. A field programmable transistor array featuring single-cycle partial/full dynamic reconfiguration
CN110506393A (zh) 具有逻辑瓦片的虚拟阵列的fpga及其配置和操作的方法
EP1697867A1 (en) Template-based domain-specific reconfigurable logic
CN104636290B (zh) 基于多配置链组的fpga芯片配置结构和配置方法
CN106030582A (zh) 用于金属/过孔可编程门阵列集成电路的可编程宏
US6249149B1 (en) Apparatus and method for centralized generation of an enabled clock signal for a logic array block of a programmable logic device
US11916551B2 (en) Process of routing tile-to-tile interconnects of an FPGA, and method of manufacturing an FPGA
CN104572554B (zh) 用于更新集成电路中的配置数据的电路和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant