CN105373493A - 具有多个扇区的可编程电路 - Google Patents

具有多个扇区的可编程电路 Download PDF

Info

Publication number
CN105373493A
CN105373493A CN201510501680.XA CN201510501680A CN105373493A CN 105373493 A CN105373493 A CN 105373493A CN 201510501680 A CN201510501680 A CN 201510501680A CN 105373493 A CN105373493 A CN 105373493A
Authority
CN
China
Prior art keywords
sector
control circuit
local control
circuit system
programmable
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.)
Granted
Application number
CN201510501680.XA
Other languages
English (en)
Other versions
CN105373493B (zh
Inventor
D·豪
S·R·阿特萨特
M·D·赫顿
H·H·施密特
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 CN201910114903.5A priority Critical patent/CN110086461A/zh
Publication of CN105373493A publication Critical patent/CN105373493A/zh
Application granted granted Critical
Publication of CN105373493B publication Critical patent/CN105373493B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • 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/007Fail-safe circuits
    • 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/17732Macroblocks
    • 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
    • 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
    • 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
    • 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/17764Structural details of configuration resources for reliability

Landscapes

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

Abstract

本公开的各个实施例涉及具有多个扇区的可编程电路。本发明公开了涉及可编程电路的系统和方法。该可编程电路包括多个扇区。每个扇区包括可配置功能块、可配置路由接线、用于存储针对可配置功能块和可配置路由接线的配置的配置位、以及用于与配置位进行接口以配置扇区的局部控制电路系统。该可编程电路可以包括用于与局部控制电路系统进行接口以配置扇区的全局控制电路系统。每个扇区是独立地可操作的并且/或者与其他扇区并行地可操作的。操作该可编程电路可以包括:使用局部控制电路系统来与配置位进行接口并且配置扇区。另外,操作该可编程电路可以包括:使用全局控制电路系统来与相应的局部控制电路系统进行接口并且配置扇区。

Description

具有多个扇区的可编程电路
技术领域
本公开涉及一种用于可编程电路诸如现场可编程门阵列(FPGA)的内部组织。
背景技术
可编程电路,诸如现场可编程门阵列(FPGA),可以通过使用在制造之后可对其行为和互连结构进行配置的部件来实现设计。然而,这种电路可能要求众多的并且可能是隐藏的支持功能,以便进行配置、测试、计时以及供电。另外,由于FPGA部件计算已经成熟,所以这些功能的面积成本已经保持不变或者已经增加,它们的带宽已经落后,并且它们的复杂性和刚性已经延误了时间表并且减少了客户特征。
发明内容
本公开涉及一种用于可编程电路诸如FPGA的新的内部组织,其中该电路被划分为“扇区(sector)”,每个扇区包含用于配置、测试、计时以及供电的局部资源。扇区是可编程电路诸如FPGA的区域,扇区包含用于配置、测试、计时以及供电中的一个或多个的局部资源。可编程电路可以具有多个这种扇区。这些扇区在大小和资源方面可以是相同的或者不同的。每个扇区可以包括诸如处理器、状态机、和/或总线等局部资源,这些局部资源有助于在晶片测试、封装体测试、初始化、配置、或者其他非用户功能期间的通信和操作。可以通过使用由独立存在的全局控制器控制的额外的全局布线,来将局部资源互连。扇区边界可以锚定新的计时、供电、数据传输以及其他合适的特征。如此,扇区可以根据共享时钟而操作,或者根据它们各自的独立时钟而操作。现有的实施方式已经按照全芯片级的单片方式,实现了支持功能。然而,将支持功能分解为更小的组分会简化它们的设计,并且新的互连结构增加了它们的带宽和灵活性。这些属性可以有助于生产更高的集成水平,并且具有降低的实施复杂性。
因此,描述了涉及具有扇区的可编程电路的系统和方法。在一些方面中,可编程电路包括多个扇区。每个扇区包括可配置功能块、可配置路由接线、用于存储针对功能块和路由接线的配置的配置位、以及用于与配置位进行接口以配置该扇区的局部控制电路系统(或者局部控制器)。在特定实施例中,可编程电路包括全局控制电路系统系统(或者全局控制器),其用于与局部控制电路系统进行接口,以配置该扇区。在特定实施例中,每个扇区独立地可操作并且/或者与其他扇区并行地可操作。
在一些方面中,描述了一种用于操作可编程电路的方法。用于操作可编程电路的该方法包括:通过使用局部控制电路系统,来与配置位进行接口并且配置扇区。另外,用于操作可编程电路的该方法包括:通过使用全局控制电路系统,来与用于相应的局部控制电路系统进行接口并且配置扇区。该过程可以由例如可编程逻辑器件的处理器实行,并且可以在暂时性或非暂时性机器可读介质上将其编码为由处理器执行的指令。
附图说明
本发明的以上优点和其他优点将由于考虑以下详细说明并且结合对应附图而变得显而易见,贯穿这些附图中,类似的附图标记表示类似的零部件,并且在附图中:
图1描绘了根据特定实施例的用于可编程电路的示意性平面图;
图2描绘了根据特定实施例的配置RAM(ConfigurationRAM,CRAM)阵列的示意图;
图3描绘了根据特定实施例的针对在多路复用器中的CRAM位而包括的“释抑(hold-off)”信号的示意图;
图4描绘了根据特定实施例的用于检测并且校正单粒子翻转(SEU)的硬件的示意图;
图5描绘了根据特定实施例的被划分为扇区的可编程电路的示意图;
图6描绘了根据特定实施例的包括冗余区域的扇区化的可编程电路的示意图;
图7描绘了根据特定实施例的具有增加的外部带宽的扇区化的可编程电路的示意图;
图8描绘了根据特定实施例的在扇区化的可编程电路中的扇区间通信的示意图;
图9描绘了根据特定实施例的具有基于网格的(mesh-based)片上网络(NoC)的扇区化的可编程电路的示意图;
图10描绘了根据特定实施例的具有用于检测并且校正SEU的电路系统的扇区的示意图;
图11描绘了根据特定实施例的具有功率控制装置的扇区化的可编程电路的示意图;
图12描绘了根据特定实施例的采用包含本公开的各个方面的集成电路器件的示意系统的简化框图;
图13描绘了根据特定实施例的配置扇区化的可编程电路以便进行操作的示意过程;以及
图14描绘了根据特定实施例的在扇区化的可编程电路中的局部控制器检测并且校正SEU的示意过程。
具体实施方式
图1描绘了可编程电路诸如FPGA的示意性平面图100。在FPGA中的典型功能块可以包括逻辑102(例如,查询表、D触发器、或者其他合适的部件)、存储器和数字信号处理(DSP)块104、内部存储器块106、锁相环(PLL)块108、高速串行收发器互连块110-114、通用操作I/O116(例如,DDR存储器接口或者其他合适的部件)、计时、以及其他合适的资源中的一个或多个。用于可编程电路的可编程互连结构(fabric)可以包括可编程开关和路由接线的网络,这些可编程开关由SRAM位或者其他合适的装置配置而成,以在各个块之间实施路由连接。可编程电路可以利用“点对点”路由,其中在源信号发生器与其目的地之间的路径在编译之时是固定的。在涉及部分重配置的特定实施例中,可编程电路可以利用其他合适的路由方法来实施块级替换。
为了明确其功能,可以使每个功能块与“配置RAM”位相关联,它们共同地形成配置RAM阵列202,如图2所示。这些位可以向配置其功能的逻辑提供恒定值204。图2也示出了附加的一个逻辑,即,包括数据寄存器206和地址寄存器208的配置机(ConfigurationMachine),该配置机可以在上电时用于通过独立存在的专用端口来接受位流、并且然后将该位流写入配置RAM位。
在特定实施例中,随着将位流写入CRAM阵列,与正在被写入的CRAM位相关联的逻辑的功能性可以动态地改变。取决于多路复用器和其他逻辑的电路级实施方式,该动态可能导致间歇性短路以及其他不期望的影响。因此,配置机可以生成多种“释抑”信号,以强制配置的逻辑处于静止,直到所有CRAM位已经被写入。图3描绘了被包括在具有输入302和输出310的多路复用器300中的这种“释抑”信号的说明性实施例。该实施例包括“独热(one-hot)”实施方式,其中每个开关306由独立的CRAM位304直接地并且独立地控制。字线驱动器和位线驱动器可以包括附加的电路系统和控制信号,从而可以强制它们所有分别地为HIGH和LOW。这可以强制所有CRAM位为零,并且从而可以切断在多路复用器中的所有支路,从而避免短路。然而,在这种情况下,多路复用器300中的汇聚点(pointofconvergence)可能没有被驱动,并且从而可能添加有晶体管308以将该节点驱动为HIGH。局部控制器可以在内部生成信号,这些信号可以将字线和位线强制为HIGH以及将多路复用器300驱动为HIGH。
在特定实施例中,可编程电路诸如FPGA在正常操作期间可能如其他数字逻辑一样易受单粒子翻转(SEU)的影响。在其他逻辑中,这些SEU可能不可预测地更改设计的状态;但是在使用可编程电路的情况下,由于设计自身的结构存储在存储器位中,所以SEU还可能不可预测地更改该设计,并且从而更改其功能。为此,对可编程电路诸如FPGA而言,对SEU的缓和(mitigation)是一个重要的考虑因素。为了解决这一问题,可以增强背景硬件以连续地重读(re-read)FPGA的配置、使用CRC和/或ECC技术以在这些位中检测并且校正SEU,并且然后在需要时写回(writeback)更新。图4描绘了这种背景硬件的说明性实施例。特别地,数据寄存器400可以包括擦除控制器408、以及用于接收位线402的读取锁存器404。擦除包括:检查扇区,以发现在存储的数据中的错误;并且通过使用之前存储的数据副本或者其他冗余信息,来校正该错误。CRC计算块406、CRC寄存器410和比较器块412可以协同地工作,并且使用CRC和/或ECC技术以在这些位中检测故障414并且校正SEU。这些技术可以由擦除控制器408管理,并且在需要时写回更新以对这些位进行校正。
在特定实施例中,可编程电路可以包括扇区化的配置存储器。图5描绘了被划分为4个扇区502的FPGA的配置存储器500的说明性实施例。每个扇区可以包括配置RAM位,这些配置RAM位指定了在该扇区中或跨该扇区的子部件和接线的功能和/或互连结构。每个扇区可以包括彼此成直角的位线512和字线514。可以使用这些位线和字线来修改并且读回配置RAM的内容。沿着扇区边缘,可以包括用于字线的字线驱动器以及用于位线的位线驱动器和感测放大器。它们可以通过相邻的移位寄存器506而被访问,这将可能的大量的字线和位线减少为仅仅几个时钟线508和数据线510。可以通过使用仅仅这几个时钟线508和数据线510,来完全地加载和卸载(读回)寄存器。为了控制移位寄存器506,每个扇区可以包括局部控制器504。这些控制器可以操纵并且观察时钟线508和数据线510。而且,局部控制器504可以经由简单的通信网络而连接至全局控制器。全局控制器可以连接至装置引脚,通过这些装置引脚,全局控制器能够与外部世界通信。若要求,全局控制器可以位于这些引脚和局部控制器之间,从而向局部控制器发送命令并且在控制器和装置引脚之间传送数据。
在非扇区化的FPGA中,仅仅存在左上方的“扇区”,并且全局控制器和单个局部控制器会组合为一个单个控制块。其字线和位线会跨整个芯片运行。扇区化的FPGA的第一个优点可以是:字线和位线短得多,并且从而操作更快、并且访问每个位所需要的功率更小。附加地,有利地,扇区化的局部控制器独立地可操作并且并行地可操作。全局控制器可以以高得多的速率来接受命令和数据,这是因为全局控制器负责了少得多的全局通信;这可以按照循环(round-robin)的方式发送至局部控制器,例如,其中每个局部控制器按照更低的速率但是并行地操作。该并行关系也可以有助于扇区化的FPGA在配置期间的更大操作速度和更大带宽。另外,在每个扇区中的局部控制器的内含物可以允许用一组全局接线替换所有的上述独立接线。本应已经在之前独立的接线上进行的活动现在被事务化(transactionalize),并且局部控制器可以将这些事务解码、并且执行适当的局部操作。由此,局部控制器可以用作解码器,该解码器可以用于大量地降低全局接线计数。
除了与配置位进行接口的字线和位线之外,局部控制器也可以控制“隐藏”模式控制信号和“释抑”信号,其负责使得在扇区中的逻辑平稳地脱离配置并且进入正常操作中等等。局部控制器的独立性和局部控制器所控制的扇区的独立性还可以提供其他优点。在接通电源后,可能需要相当一段时间来使所有配置数据进入FPGA中,并且这可能延迟了装置的全部既定功能。在一些应用中,要求其中一些功能比可以配置的FPGA的全部功能更加快速地呈现。该失配可以通过以下方式来校正:仅仅配置一个扇区,或者仅仅配置提供初始功能所要求的最小数量的扇区,并且然后仅仅在完成了该过程的情况下才解除“释抑”/冻结信号,从而初始功能可以开始操作。该“部分初始配置”能力意味着至少一部分芯片可以更加快速地开始发挥功能。
可以使用独立扇区以更加容易地支持部分重配置。在特定实施例中,选择在已经充分配置的部分中的一个或多个扇区,用于进行重配置。由于扇区的独立性,所以正被重配置的扇区可以接收并且存储配置数据,同时其他扇区可以像以前一样操作。该像以前一样的操作可以包括:擦除,以校正SEU(即,检查扇区以发现在存储的数据中的错误,并且通过使用之前存储的数据副本或者其他冗余信息来校正该错误),从而可以在对所感兴趣的扇区进行重配置的同时确保不相关的扇区的可靠操作。在没有独立扇区的FPGA中,该混合不能够得到支持。
部分初始配置和部分重配置两者,都是在FPGA中已经提供的特征。然而,迄今为止,它们的实施方式在全局控制器(配置机)中要求特殊模式和额外功能,并且甚少对该设计效果进行充分投入以使其恰当地发挥作用。而且,这两个特征都要求附加的专用软件支持;由于硬件支持的差异会导致客户需求的差异的影响,迄今为止尚未将附加专用软件支持的完成设定很高的优先级。利用扇区化的FPGA,所有的配置模式变得相同:完全配置、部分初始配置、和部分重配置,都由对一个或多个扇区的配置所组成。因此,支持所有这三种方式变得更加简单,并且要求更少的独特的附加支持。
许多因素都可以影响到扇区的最佳大小或扇区的大小。更小的扇区可以被更加迅速地与要求用于其自身组装的相同的时间的包含阵列(containingarray)组装在一起。然而,更大的扇区可以更加容易地包含如按客户偏好确定的期望比例的FPGA部件类型,但是这一更优匹配可能难以针对在一个FPGA产品系列中的其他器件所需的不同比例而再利用。另外,扇区不是最高级的FPGA设计中的唯一的大的块。在最高级的FPGA设计中的其他大的块有:包括高速串行收发器包的高速串行接口(HSSI)包、和多重常规I/O的I/O块。如果HSSI包、I/O块和扇区都具有相同的高度,那么对于芯片组装过程可能是有利的,这是由于该“间距匹配(pitch-matching)”可以使得更容易通过它们来组装完整的芯片。有利地,该布置可以扩展到可以被包括在该完整的芯片中的其他大块,诸如可选的处理器和其他合适的大块。
可以从图1发现:FPGA通常由多行更小的块组装而成。最后,当组装包含有更小的块的这些行时,在每组行中都包括进“备用行(sparerow)”可以是有利的,从而,如果在一个特定行中存在缺陷,那么可以使在该行和在该行以下的行中的这部分设计向下滑动,重新填充在该组的底部的备用行。由于在扇区之间滑动可能呈现出额外的复杂性,所以扇区的高度(在该扇区中的这样的行的数量)可以对应于这样一组行的高度,称为“冗余区域”。然后,在一行扇区中,如果发现任何子行(包含在一个扇区中的行)包含缺陷,那么在这行扇区内部可以将跨这行扇区的所有对应子行地向下移动。该布置可以在没有添加扇区间异常的情况下支持冗余,如图6所图示的。如图所示,可编程电路600包括扇区602和冗余区域604。扇区602的高度对应于冗余区域604的高度。
在特定实施例中,可编程电路被结构化,从而使得局部控制器从全局控制器接受命令和数据,并且通过使用受控信号(诸如,字线和位线)的适当排序来将该数据写入配置存储器中。同样,响应于来自全局控制器的命令,局部控制器可以安排对配置存储器的读取,并且然后将所得的数据发送回全局控制器。除了这些基本操作之外,局部控制器可以增加有许多附加能力。例如,这种能力可以包括:对读取和写入进行局部排序,以对配置RAM阵列实施错误检测和校正;以及对测试控制信号进行排序,以实现多种测试模式。
在特定实施例中,将局部控制器实施为状态机。在特定实施例中,将局部控制器实施为最小处理器。它们支持的每个操作可以被实施为在包含控制程序的存储器中的独立存在的例程。在特定实施例中,该控制程序存储器可以固定在例如只读存储器(ROM)中。ROM可以比实际所需的更大,从而使每个例程具有多种变型,这取决于局部控制器可以处于的“模式”。在特定实施例中,将控制程序存储器实施为随机存取存储器(RAM)。可以将该RAM与新的例程一起写入,以便将新的操作和功能实施到扇区中。这可以按照有效的并且容易理解的方式来提供可用的可扩展性。这可能是有用的,这是因为仅仅以在全局控制器和局部控制器之间的少量通信为代价,新命令就可以在扇区内产生大量局部活动。在无该可扩展性的情况下,新的功能可能需要借由预先存在的操作(并且很有可能是许多预先存在的操作)来实施。这可能增加了在全局处理器和局部处理器之间所需的通信量,并且阻止了局部控制器的完全地并行的使用。
由于全局控制器负责协调局部控制器的操作、确保在外部世界与局部控制器之间的数据传输、以及安全特征等等,所以全局控制器(或者,全局控制器的至少部分)也可以实施在处理器中。这可以是专用处理器、用于已经被包括在装置设计中的用户可见处理器的特殊启动码、或者另一合适的布置。
在特定实施例中,在配置和测试操作期间,特别是在晶片测试期间,局部控制器提供了增加在可编程电路与外部世界之间的带宽的机会。在将可编程电路(诸如,FPGA)运送给客户之前,要求对它们进行全面测试。它们的可配置性可以是有利的,这是由于可以将多重设计编程到可编程电路的每个部分中,直到已经测试了每个可能的操作。然而,这所导致的成本是:将不同的“测试设计”加载至每个部分中所需的时间、以及可能需要的测试向量和测试响应。首先执行最具区别性的(discriminating)测试以尽可能早地检测出不良部分,特别是在该不良部分上执行其他费时的操作之前检测出该不良部分,可能是有利的。除了测试之外,另一费时的操作是封装该部分。因此,可能期望尽可能地加速对未封装部分的测试。测试未封装部分的一种方式可以是:在已经将晶片划片为独立存在的裸片之前。在该步骤中的测试称为“晶片测试”,并且涉及将一组探头应用至晶片上的每个裸片位置。为了提高在该步骤期间的数据速率并且降低测试的时间和成本,可能期望支持尽可能多的探头(并且具有可能的最高的数据速率)。
有利地,以上描述的并且在图7图示的这种布置实施在扇区化的可编程电路700中,这是由于每个局部控制器704、706和708可以成为注入数据的自然位置(naturalplace)。非扇区化的可编程电路或者FPGA可能要求数据流经全局控制器。但是在扇区化的可编程电路或者FPGA中,局部控制器的阵列可以并行地接受数据并且将该数据向前传递至其扇区。每个局部控制器可以按照多种方式接受其自己的数据。在特定实施例中,可以通过附近的I/O引脚施加数据,该I/O引脚的键合焊盘可以由探头(例如,针对局部控制器706所图示的)接触。取决于稍后为该部分选择的封装选项地,这些I/O引脚中的一些可以不被键合(即,保留为不被连接),从而使得仅仅需要在晶片测试期间实现连接结构。可替代地,可以将探头焊盘添加至局部控制器,特别地并且仅仅针对晶片测试(例如,如针对局部控制器708所图示的)。局部控制器也可以并行地接受作为来自全局控制器的广播的配置数据。这可以使相同的扇区同时配置有相同的测试设计。作为另一种选择,可以在高速串行收发器(例如,在28Gb/s的速度下操作)和最近的局部控制器之间包括连接结构,以在极高的数据速率下传送数据,如受测试设备的限制的(例如,如针对局部控制器702所图示的)。
图8描绘了可编程电路800的说明性实施例,示出了在扇区806之间的扇区间通信。每个局部控制器804与全局控制器802通信。全局控制器802协调它们的操作并且传达从装置外部发起的命令。为了支持该通信,可能存在在全局控制器和每个扇区的局部控制器之间的连接结构的网络。该网络可以按照许多方式实施,并且也可以用于除了该基本通信之外的其他用途。在特定实施例中,扇区可以与其他类型的块(诸如面向I/O的(I/O-oriented)块)相邻并且被该其他类型的块包围。扇区可以具有如图8所示分布的面向I/O的块808和810的行或者列。在特定实施例中,控制器间的通信接线不仅定位在扇区的行与列之间,而且这些接线中的一些也出现在面向I/O的列或者行中。该布置可以节省空间并且也可以提供其他优点。在其他实施例中,这些接线可以流经扇区本身,特别是在扇区包含共同的对象(诸如,AR和/或DR)的地方,这些共同对象位于所有扇区中处在相同位置中。
通往以及来自I/O块的设计连接结构通常需要比一般的连接结构更长。如此,靠近I/O块可能需要更长的接线。可以通过沿着I/O块提供额外的通用接线,来至少部分地满足该需要。该实施方式可与已经被部分地推入I/O列或者行内部的扇区间通信接线相结合。在配置或者其他非设计操作期间,可以使用接线以在控制器(全局和/或局部的)之间传达信息。在设计操作期间,这些接线可以用于将I/O引脚连接至设计的核心。
图9描绘了在扇区906与面向I/O的块908和910之间具有基于网格的片上网络(NoC)的可编程电路900的说明性实施例。每个局部控制器904与全局控制器902通信。全局控制器902协调它们的操作并且传达从装置外面发起的命令。在该布置中,扇区间的、控制器到控制器的通信网络912在其已经被配置进该部分之后通常地(ingeneral)可用于用户设计。可以在标题为“ProgrammableLogicDevicewithIntegratedNetwork-on-Chip”的美国专利申请第2014/0126572号中找到有关片上网络和FPGA的进一步信息,其全部内容以引用的方式并入本文。NoC可以承载适度的带宽命令和状态流量。由于可以在用户设计正在运行的同时仍然将扇区间通信网络用于其原始的非用户功能,所以可以限制其分配给用户数据传送的这部分带宽。然而,也可以过度地提供该NoC,从而使得可以通过其发送更大量的用户数据。
图10描绘了具有用于检测和校正单粒子翻转(SEU)的电路系统1002的扇区1000的说明性实施例。在常规的FPGA中,可以连续地读回CRAM阵列,并且可以将CRC应用到数据流以便检测位是否已经由于SEU的影响而发生了改变(如参照图5所图示的)。对该方法的改进可以是在如图10所示的每列的中部包括CRC计算器,用于检测在输入数据1004中的SEU并且输出校正的数据1006。该CRC计算器可以通过使用移位位块1008、感测驱动块1010、移位寄存器1012和比较器1014来实施。这可以允许并行地使用于每列的CRC计算,从而大大加快了检测过程。在支持部分重配置的装置中,局部控制器也可以解决翻转位,并且经由部分重配置将擦除的位流施加回扇区,从而支持跨扇区的并行的擦除。在扇区化的FPGA中,可以在每个扇区中应用该布置。CRC计算器可以出现在在先芯片高(previously-chip-tall)列的每个扇区大小的(sector-sized)片段中,从而进一步提升并行性。作为并行CRC计算的另一优点,CRC计算的局部化减少了配置结构到数据寄存器所经过的总距离(从而,减少了电容和功耗),允许直接计算错误所在位置(局部化到该扇区),并且允许在局部等级进行擦除,从而进一步减少了数据传输和功耗。
扇区化的SEU缓和,可能存在附加的益处。在许多系统中,设计的特定部分比其他部分更为关键。虽然SEU同样地可能在同样大小的区域中,但是当SEU出现在这些部分中时具有更大的系统影响力。例如,在接线导线桥(wirelinebridge)中,在控制平面逻辑中的错误可能导致错误的分类以及对所有封装的错误处理或者对不正确路由器配置的错误封锁,而在数据净荷中的错误可能导致通过更高等级协议(诸如后面的CRC检查)而捕捉到的封装的瞬态错误。在特定实施例中,扇区包括配置存储(CRAM或者瞬态寄存器),该配置存储装置包含优先级设置,例如,K存储元件指示在当前扇区内的错误的优先级为2k等级。错误检测CRC电路针对该扇区的输出可以用作对全局控制器的中断,该中断可以向外部监视器发出信号。在一个示例中,针对在其CRC中观察到软错误的空扇区,指定0的优先级。这导致通过擦除处理永久地掩盖该错误,并且不会造成系统重置。在特定实施例中,将CRC输出接线改变为一组k+m个输出接线,从而向全局控制器指示回该错误的优先级和位置,其中指示2k优先级和2m扇区ID。
因为一些类型的配置错误可以指示不可恢复的错误状态或者危险的或者安全关键性的错误状态,所以,可以期望在检测到的特定优先级的错误与由在装置上的全局控制器或者其他逻辑执行的信号之间创建直接连接。在特定实施例中,将最新近的SEU粒子的优先级等级从全局控制器导出到用户逻辑(片上嵌入式处理器),或者作为外露的引脚导出到实施在FPGA中的用户硬件,以便处理。这可以允许FPGA操作的快速重置或者暂停,而不要求通过监测FPGA的外部处理器进行错误分类。
在特定实施例中,跨扇区操作的独立性可以提供多重益处。首先,可以期望降低并行性并且从而降低用于SEU缓和的功率。这可以通过减少在任何一个时候执行CRC检查的扇区的数量来实现,并且可以使活跃地执行检查的扇区子集轮换,从而随着时间的推移而通过由所有扇区组成的完整集合。由于由多扇区CRC引擎所提供的并行性的影响,所以小扇区可能可以按照非常快的速率执行CRC计算,例如,按照当前EPGA可达到的速率的1000倍的速率。然而,由于功耗方面的原因,不期望在所有扇区中执行该计算,这是由于这会使基本功率乘以比例数。在特定实施例中,常常可以使用紧急优先级来调度更经常地或更不经常地(moreorlessoften)执行CRC引擎。扇区可以包括CRAM或者其他模式存储装置,该其他模式存储装置被指定为指示局部控制器应该的执行CRC计算的速度,并且仅仅在快时钟速度下检测被指定为关键性的扇区,而更不经常地检查低优先级的扇区。指示CRC检查的频率的优先级位可以是或者可以不是与用于报告上面描述的错误的优先级的位相同的位。
接下来,可能期望在执行一些其他操作(例如,部分重配置)的同时禁用在特定扇区子集中的SEU的缓和。这可以允许SEU缓和进入装置的未经历重配置的该部分,这在常规的非扇区化的FPGA中是不可能的。而且,用户设计的特征可以指出特定扇区的内容更加容易受到SEU的影响并且需要比其他扇区更加频繁的检查。在扇区化的方法中,可以设计并且/或者配置局部控制器(或者,放置在模式中),从而使它们比其他扇区更加频繁地检查一些扇区。因此,用于SEU缓和的功率将用在最重要之处。
应该注意,虽然已经在上面的示例中已经使用了CRC计算,但是,无论使用了以下各项中的哪一种,都要应用相同的布置和设计结构:具有“好-坏”输出的CRC、具有唯一地识别单个位错误的校正子(syndrome)输出的编码、或者可以从中推导出待写回的正确数据的ECC代码。
在特定实施例中,由扇区组装可编程电路或者FPGA在逻辑表面中提供了更多的规则性(regularity)。例如,在附带设计软件(accompanydesignsoftware)中,可以维持叙述每个扇区的小得多的数据库而非叙述整个芯片表面的更大的单个数据库。随着物理优先级的增加,可能需要新的能力,用于软件物理设计和布局。在现有技术中存在多个软件机制,用于在待实施在FPGA上的HDL设计中标记关键的实体或信号。在特定实施例中,分层标记利用EDA软件(例如,当前由美国加利福尼亚圣何塞的Altera公司出售的软件,或者其他对位流的综合、布局、路由的软件)限定优先级,并且然后,根据在软件的配置中的选择,局部地放置高优先级实体的位置(locality),并且为扇区将正确的优先级分配到存储单元(CRAM或者寄存器)中。在特定实施例中,在放置期间指定高优先级扇区,并且然后为那些扇区限定高优先级逻辑限制,以使得能够快速报告和错误恢复,同时避免低优先级逻辑,以使得上述增强能够进行SEU检测。相似地,当装置不完全时,工具可以背提供有优先地生成空扇区的选项,由此允许针对CRC将大量扇区设置为低优先级,并且提高了EDCRC性能。
在特定实施例中,配置网络可以在扇区中向局部控制器发送指令,以暂时禁用其CRC检查或者执行其他功能。这种指令可以包括但不限于“停止CRC”、“重启CRC”、“改变扇区优先级”、“改变扇区CRC频率”、“将扇区配置重置为开始(即,全零)状态”、“更新存储在配置节点中的其他状态数据”、“准备接受长度为n的部分重配置流(跟随有流)”、“设置扇区以替代电源(Vdd或者反偏压)状态”、“通过对其进行与/或操作以进入现有位流帧中,而对指定的配置位或者位的组进行修改”、以及根据本公开而提出的其他合适的功率命令。配置命令可以采取<Sector_ID>、<OPCODE>、<OPERAND>的示例性格式。在特定实施例中,这些指令可以是复杂的,并且可以传送配置地址和新的值,从而使得局部控制器对扇区的配置进行特定改变,而非对配置数据的整个帧进行处理。这可以允许特定类型的位流更新显著地更小。
该机制可以用于多种应用。例如,可以将设计设置为提供具有不同ROM内容的两个小存储器,用于驱动DSP块(作为系数存储器)的输入。局部控制器并非在两个ROM内容之间进行多路复用,而是可以做出小的配置改变,以将输入翻转(flip)至路由,驱动DSP块对替代存储器进行改变。这使得稀有事件(诸如,系数ROM更新)不在装置中导致通过LUT资源的传播延迟,并且随着时间的推移,而允许ROM被重新写入新内容而不要求保留永久的FPGA路由资源。在另一示例中,对在很少改变的状态中的装置的操作进行动态的配置的ROM内容,可以经由这种指令由局部控制器“存数(poke)”到新的值。这减少了对结构互连的不必要的使用,以路由指示状态的常量。
在特定实施例中,全局控制器和局部控制器在设计的功能中可以起到积极的作用,诸如,将状态从应用处理器传播至局部控制器的组。在特定实施例中,这些命令可以采取广播命令的形式。例如,全局控制器可以执行如下形式的一组指令:“所有的P型扇区,准备新的位流作为部分重配置并且冻结”、“向每个扇区广播新的位流”、“解冻逻辑”、以及其他合适的指令。根据该机制,压缩版本的特定维护位流(例如,用于测试扇区的性能的简单环形振荡器)施加到给定类型的每个扇区,从而使用仅仅单个扇区实例而不要求整个芯片位流的外部存储。
在特定实施例中,在扇区中的局部控制器可以从用户逻辑接受路由的输入,然后通过配置网络将其传送到全局控制器或者嵌入式处理器。这可以允许从在设计中的单独位置传播低发错误状态,从而减轻用于极其稀有的信号的标准结构的负担。为了促进上述机制,可以设置MegaFunction。MegaFunction是一种设计部件,通常在其他设计部件的库中递送,由FPGA制造商提供,供它们的客户在用FPGA进行设计时使用。MegaFunction成为进入映射软件的输入的部分,该映射软件用于将客户的设计转换为在FPGA内部的特定组的资源和互联结构。MegaFunction在目标FPGA中可以成为一个大资源、许多小资源、或者其任何组合。在一些实施例中,MegaFunction是高度参数化的,并且可以提供附带软件以从更加容易被设计者理解的更小集合中指定参数。这可以允许将配置输入端口具体化到用户设计中。设计工具诸如软件(当前由美国加利福尼亚圣何塞的Altera公司出售)可以为配置输入端口创建可放置的对象,将其作为位置和路由的部分而放置在扇区的局部控制器上,并且提供用于寄存由软件所选择的用于应用嵌入式处理器的块的扇区ID的机制。这可以导致在配置网络上带外地(outofband)执行全局中断。
可编程电路或者FPGA可以包括多种类型的与调试有关的特征。在特定实施例中,将可编程电路扇区化可以按照许多方式来支持并且加强这些特征中的一些,主要通过扇区的独立性以及扇区间通信网络的包括。扇区的独立性可以导致扫描链更短以及多路复用器网络更浅,这是由于它们整个包含在一个更小扇区内。扇区间通信网络对于提供调试功能是有价值的。不需要稍后修改、重新编译并且重配置用户设计以包括调试连接,这是由于通信网络可以用于提供至少是扇区间等级的调试连接。即使一个扇区可以使得其逻辑被更改以便包括额外的局部调试连接,但这会是可以通过使用部分重配置而产生的局部改变。另外,每个扇区的局部控制器可以具有动态加载到其中的新的调试模式行为。例如,针对多种模式,可以期望监测在一种模式下的接线组、在另一种模式下的不同接线组,等等。可以将局部控制器的控制程序动态地扩展以执行该功能,这可以使在一些时间点处监测到的接线组比实际从扇区发出的用于外部监测和译释的位的数量大得多。
针对功率控制,扇区可以形成用于功率岛的自然边界。功率岛的目的是,允许在设计的不需要更高电压可提供的额外性能的那些子部分中降低电压并且因此降低功耗。在一些情况下,可以并且期望完全“截断”在整个岛中的电力。功率岛可以简单地具有其自身的电压供应,或者其可以使用首先流经功率开关或者调节器的公共电压供应。无论在哪种情况下,如果在岛之间的电压差可以足够大,那么需要将电平转换器插入跨功率岛的所有信号路径中。
可以通过设计软件诸如软件(当前由美国加利福尼亚圣何塞的Altera公司出售)来自动地管理将扇区边界用作功率岛的边界,但是也可以通过使用在软件中的平面布置步骤来手动地管理这些关系。具体地,可能期望迫使特定设计扇区位于在处于特定功率控制机制下的扇区的特定区域的内部或者外部。如在图11中描绘的可编程电路1100所图示的,每个扇区1102形成通过其自身的功率引脚1108供电的连接区域。每个扇区1102包括局部控制器1104,该局部控制器1104可以包括功率开关和/或调节器或者控制电路系统,以确定经由控制连接1106提供给扇区的用户逻辑的电压。除了新的功率特征之外,现有的功率特征可以被局部控制器直接理解。例如,在V系列的装置(当前由美国加利福尼亚圣何塞的Altera公司出售)和其他可编程装置中的CRAM设置,可以将用于在扇区之间流过的用户信号的电平转换器1110设置在不同电压下。CRAM设置可以将单独的逻辑阵列块(LAB)设置为不同的反偏压状态,从而使得能够进行高速的或者低功率的操作。可以将这些状态值移至局部控制器1104并且动态地修改。
在特定实施例中,可编程电路诸如FPGA需要将源自I/O引脚和/或PLL的时钟分布遍及核心逻辑。将扇区包括在时钟分布架构中,允许将其分为两个部件:扇区间时钟分布和扇区内时钟分布。在共同拥有的其标题为“ClockGridforIntegratedCircuit”的美国专利申请第14/137,086号中解决了前一种分布,该专利的全部内容以引用的方式并入本文。后一种分布是常规的,虽然小得多的,时钟分布问题。
扇区和局部控制器的独立性可以允许每个扇区在配置或者其他操作期间使用不同的时钟。在扇区化的FPGA中,在常规的全芯片配置期间,可以使用不同的时钟资源,诸如在FPGA内部的环形振荡器或者从外部提供的时钟。然而,扇区专用时钟可以在部分重配置期间极其有用,尤其是在该部分重配置正发生在FPGA设计的另一(未改变的)部分的控制下的情况下、和/或在存在可以同时经历部分重配置的多个区域的情况下。独立的时钟可以允许不同的操作完全独立,并且,若期望,甚至按照不同的频率操作。
图12图示了通过使用数据流向图实施的包括基本块模块的(例如,MAC的)电路或者其他装置1210,其利用具有如在数据处理系统1200内的扇区的可编程电路。在特定实施例中,集成电路或者装置1210可以是集成电路、应用专用标准产品(ASSP)、专用集成电路(ASIC)、可编程逻辑器件(PLD)(包括:现场可编程门真理(FPGA)、全定制芯片、或者专用芯片)。在特定实施例中,元件1210可以包括可编程电路500、600、700、800、900和/或1100。数据处理系统1200可以包括以下部件中的一个或多个:电路1210、处理器1212、存储器1214、I/O电路系统1208和外围装置1206。这些部件通过系统总线或者其他互连结构1216连接在一起,并且设置在包含在最终用户系统1202中的电路板1204上。
系统1200可以用于多种应用中,诸如,计算机组网、数据组网、仪表使用、视频处理、数字信号处理、或者使用可编程或者可再编程逻辑的优点是期望的任何其他应用。电路1210可以用于执行多种不同的逻辑功能。例如,可以将电路1210配置为与处理器1212协同地工作的处理器或者控制器。也可以将电路1210用作判优器,用于对在系统1200中的共享资源的判优访问。在又一示例中,可以将电路1210配置为在处理器1212与在系统1200中的其他部件中的一个部件之间的接口。应该注意,系统1200仅仅是示例性的,并且本发明的真实范围和精神由以下权利要求书指示。
虽然在上述公开中的部件被描述为彼此连接,但是它们可以可能地经由在它们之间的其他部件而连接至彼此。要理解,前述内容仅仅是对本发明的原理的图示,并且本领域的技术人员在不脱离本发明的范围和精神的情况下可以进行多种修改。本领域的技术人员要了解,可以通过所描述的实施例之外的实施例来实践本发明,所描述的实施例是为了说明而非限制的目的而提出的,并且本发明仅仅受以下权利要求书的限制。
在本公开中示出的实施例可以节省功率和面积,并且这样,也可以提高性能。虽然这些数量或许易于测量,但是特定电路系统在本公开中示出的实施例内的单独贡献或许难以与其他电路系统在实施该电路系统的任何装置或者芯片上的贡献分开。
交互式接口应用和/或用于布局或者使用在此处描述的任何实施例的电路设计的任何指令可以编码在计算机可读介质上。计算机可读介质包括能够存储数据的任何介质。计算机可读介质可以是暂时性的,包括但不限于,传播的电信号或者电磁信号,或者可以是非暂时性的,包括但不限于,易失性和非易失性计算机存储器或者存储装置,诸如硬盘、软盘、USB驱动器、DVD、CD、介质卡、寄存器存储器、处理器缓存、随机存取存储器(“RAM”)等。
图13描绘了对扇区化的可编程电路进行配置以进行操作的说明性过程1300。过程1300可以通过可编程逻辑器件诸如图12的数据处理系统1200来实施。该过程开始于步骤1302。在步骤1304中,用于每个扇区的局部控制电路系统与其配置位进行接口,以配置该扇区。在步骤1306中,全局控制电路系统与相应的局部控制电路系统进行接口,以配置该扇区。一旦配置了扇区,该过程在步骤1308处结束。
图14描绘了在扇区化的可编程电路中的局部控制器对SEU进行检测并且校正的说明性过程1400。过程1400可以通过可编程逻辑器件诸如图12的数据处理系统1200来实施。该过程开始于步骤1402。在步骤1404中,局部控制电路系统对存储在配置位中的数据进行检索。在步骤1406中,局部控制电路系统检测用于配置位的数据是否已经由于单粒子翻转的影响而改变。如果未改变,局部控制电路系统前进至步骤1412。如果已经改变,在步骤1408中,局部控制电路系统确定用于配置位的校正数据。参照图4和图10对此进行了描述。在步骤1410中,局部控制电路系统发送用于配置位的校正数据。在步骤1412中,局部控制电路系统确定是否余留有更多的配置位需要分析。如果是,局部控制电路系统前进至步骤1404。一旦已经分析了配置位,该过程结束在步骤1414中。
设想图13和图14的步骤或者说明可以与本公开的任何其他实施例一起使用。另外,参照图13和图14进行描述的步骤和说明可以按照替代的顺序或者并行地进行,以实现本公开的另外的目的。例如,这些步骤中的每个步骤可以按照任何顺序、或者并行地或者基本同时地执行,以减少迟滞或者提高系统或者方法的速度。而且,应该注意,可以使用任何合适的装置,诸如与参照图12所论述的数据处理系统1200相关联的这些装置,来执行在图13和图14中的一个或多个步骤。
要理解,前面对术语“可编程电路”和“FPGA”的使用是示例性的,并且这种使用可以适用于可编程逻辑器件和其他合适的电路,包括但不限于,商用FPGA、可配置ASSP装置、可配置DSP和GPU装置、混合ASIC/可编程装置、被描述为具有可编程逻辑核心的ASIC的装置、或者具有嵌入式ASIC或者ASSP核心的可编程逻辑器件。
要理解,前述内容仅仅是对本发明的原理的举例说明,并且本领域的技术人员在不脱离本发明的范围和精神的情况下可以进行多种修改,并且本发明仅仅受所附的权利要求书的限制。例如,此处已经论述的各个发明方面可以一起用在特定实施例中,或者其他实施例可以采用仅仅一个或多个(但是少于所有)发明方面。并且,如果采用了多个(但是少于所有)发明方面,可以涉及采用发明方面的任何组合。作为可能的修改例的另一示例,贯穿本公开,提到了特定的参数值。这些特定值仅仅是示例,并且若期望,也可以使用其他合适的参数值。

Claims (20)

1.一种可编程电路,包括:
多个扇区,其中每个扇区包括:
至少一个可配置功能块;
多个可配置路由接线;
至少一个配置位,用于存储用于所述至少一个可配置功能块和所述多个可配置路由接线的配置;以及
局部控制电路系统,用于与所述至少一个配置位进行接口,以配置所述扇区;以及
全局控制电路系统,用于与用于所述多个扇区中的每个扇区的相应的局部控制电路系统进行接口,以配置所述扇区。
2.根据权利要求1所述的可编程电路,其中所述全局控制电路系统进一步配置为:
向用于所述多个扇区中的每个扇区的相应的局部控制电路系统发送一个或多个全局信号,
其中所述一个或多个全局信号对用户是隐藏的,并且与用于每个扇区的配置模式、测试模式和时钟模式中的至少一个相关。
3.根据权利要求1所述的可编程电路,其中每个扇区进一步包括:
电源;以及
功率控制电路系统,与所述局部控制电路系统通信。
4.根据权利要求1所述的可编程电路,其中用于每个扇区的所述局部控制电路系统进一步配置为:
检索存储在所述至少一个配置位中的数据;
检测存储的所述数据是否已经由于单粒子翻转的影响而改变;以及
响应于检测到存储的所述数据已经改变,而发送用于所述至少一个配置位的校正数据。
5.根据权利要求1所述的可编程电路,其中所述局部控制电路系统和所述全局控制电路系统中的至少一个进一步配置为:
配置所述多个扇区中的第一扇区,从而使得所述第一扇区与所述多个扇区中的第二扇区大小不同。
6.根据权利要求1所述的可编程电路,其中所述局部控制电路系统和所述全局控制电路系统中的至少一个进一步配置为:
配置所述扇区的第一部分,从而使得所述第一部分与所述扇区的第二部分大小相同;以及
指定所述第一部分作为用于所述第二部分的冗余区域。
7.根据权利要求1所述的可编程电路,其中用于每个扇区的所述局部控制电路系统包括状态机和存储程序处理器中的至少一个。
8.一种用于操作可编程电路的方法,所述可编程电路包括全局控制电路系统和多个扇区,每个扇区包括至少一个可配置功能块、多个可配置路由接线、用于存储用于所述至少一个可配置功能块和所述多个可配置路由接线的配置的至少一个配置位、以及局部控制电路系统,所述方法包括:
通过使用所述局部控制电路系统,而与所述至少一个配置位进行接口,以配置所述扇区;以及
通过使用所述全局控制电路系统,而与用于所述多个扇区中的每个扇区的相应的局部控制电路系统进行接口,以配置所述扇区。
9.根据权利要求8所述的方法,进一步包括:
通过使用所述全局控制电路系统,向用于所述多个扇区中的每个扇区的相应的局部控制电路系统发送一个或多个全局信号,
其中所述一个或多个全局信号对用户是隐藏的,并且与用于每个扇区的配置模式、测试模式和时钟模式中的至少一个相关。
10.根据权利要求8所述的方法,其中每个扇区进一步包括电源、以及与所述局部控制电路系统通信的功率控制电路系统。
11.根据权利要求8所述的方法,进一步包括:
通过使用所述局部控制电路系统,来检索存储在所述至少一个配置位中的数据;
通过使用所述局部控制电路系统,来检测存储的所述数据是否已经由于单粒子翻转的影响而改变;以及
响应于检测到存储的所述数据已经改变,通过使用所述局部控制电路系统,来发送用于所述至少一个配置位的校正数据。
12.根据权利要求8所述的方法,进一步包括:
通过使用所述局部控制电路系统和所述全局控制电路系统中的至少一个,配置所述多个扇区中的第一扇区,从而使得所述第一扇区与所述多个扇区中的第二扇区大小不同。
13.根据权利要求8所述的方法,进一步包括:
通过使用所述局部控制电路和所述全局控制电路系统中的至少一个,配置所述扇区的第一部分,从而使得所述第一部分与所述扇区的第二部分大小相同;以及
指定所述第一部分作为用于所述第二部分的冗余区域。
14.根据权利要求8所述的方法,其中用于每个扇区的所述局部控制电路系统包括状态机和存储程序处理器中的至少一个。
15.一种可编程电路,包括:
多个扇区,其中每个扇区包括:
至少一个可配置功能块;
多个可配置路由接线;
至少一个配置位,用于存储用于所述至少一个可配置功能块和所述多个可配置路由接线的配置;并且
其中每个扇区独立地可操作并且与其他扇区并行地可操作。
16.根据权利要求15所述的可编程电路,其中每个扇区进一步包括:
电源;以及
功率控制电路系统,与所述局部控制电路系统通信。
17.根据权利要求15所述的可编程电路,其中用于每个扇区的所述局部控制电路系统进一步配置为:
检索存储在所述至少一个配置位中的数据;
检测存储的所述数据是否已经由于单粒子翻转的影响而改变;以及
响应于检测到存储的所述数据已经改变,而发送用于所述至少一个配置位的校正数据。
18.根据权利要求15所述的可编程电路,其中所述局部控制电路系统进一步配置为:
配置所述多个扇区中的第一扇区,从而使得所述第一扇区与所述多个扇区中的第二扇区大小不同。
19.根据权利要求15所述的可编程电路,其中所述局部控制电路系统进一步配置为:
配置所述扇区的第一部分,从而使得所述第一部分与所述扇区的第二部分大小相同;以及
指定所述第一部分作为用于所述第二部分的冗余区域。
20.根据权利要求15所述的可编程电路,其中用于每个扇区的所述局部控制电路系统包括状态机和存储程序处理器中的至少一个。
CN201510501680.XA 2014-08-15 2015-08-14 具有多个扇区的可编程电路 Active CN105373493B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910114903.5A CN110086461A (zh) 2014-08-15 2015-08-14 具有多个扇区的可编程电路

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/460,548 2014-08-15
US14/460,548 US10523207B2 (en) 2014-08-15 2014-08-15 Programmable circuit having multiple sectors

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201910114903.5A Division CN110086461A (zh) 2014-08-15 2015-08-14 具有多个扇区的可编程电路

Publications (2)

Publication Number Publication Date
CN105373493A true CN105373493A (zh) 2016-03-02
CN105373493B CN105373493B (zh) 2019-03-12

Family

ID=53836482

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201510501680.XA Active CN105373493B (zh) 2014-08-15 2015-08-14 具有多个扇区的可编程电路
CN201910114903.5A Pending CN110086461A (zh) 2014-08-15 2015-08-14 具有多个扇区的可编程电路

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201910114903.5A Pending CN110086461A (zh) 2014-08-15 2015-08-14 具有多个扇区的可编程电路

Country Status (3)

Country Link
US (2) US10523207B2 (zh)
EP (2) EP3664297A1 (zh)
CN (2) CN105373493B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108228395A (zh) * 2016-12-22 2018-06-29 英特尔公司 用于绕开电路行中的缺陷的技术
CN109213726A (zh) * 2017-06-29 2019-01-15 英特尔公司 可编程装置的区域部分重新配置
CN111426935A (zh) * 2018-12-20 2020-07-17 爱德万测试公司 自动化测试设备装置
US20210110069A1 (en) * 2020-09-25 2021-04-15 Intel Corporation Enabling secure state-clean during configuration of partial reconfiguration bitstreams on fpga
CN113614707A (zh) * 2019-03-27 2021-11-05 赛灵思公司 用于配置和部分重新配置集成电路设备的功能块的电路和方法

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10523207B2 (en) * 2014-08-15 2019-12-31 Altera Corporation Programmable circuit having multiple sectors
US9483599B1 (en) * 2014-09-23 2016-11-01 Xilinx, Inc. Circuit design-specific failure in time rate for single event upsets
US9697318B2 (en) 2015-10-08 2017-07-04 Altera Corporation State visibility and manipulation in integrated circuits
US9698794B1 (en) * 2015-12-22 2017-07-04 Altera Corporation Systems and methods for coalescing regions on a virtualized programmable logic device
KR102289220B1 (ko) * 2016-03-18 2021-08-13 가부시키가이샤 한도오따이 에네루기 켄큐쇼 표시 장치
US10135447B2 (en) 2016-07-21 2018-11-20 Andapt, Inc. Compensation memory (CM) for power application
US10248484B2 (en) * 2017-02-21 2019-04-02 Intel Corporation Prioritized error-detection and scheduling
US10148270B2 (en) 2017-03-15 2018-12-04 Quicklogic Corporation Switchable power islands having configurably on routing paths
US10218358B2 (en) * 2017-06-16 2019-02-26 Intel Corporation Methods and apparatus for unloading data from a configurable integrated circuit
US10055526B1 (en) 2017-06-27 2018-08-21 Intel Corporation Regional design-dependent voltage control and clocking
US10884976B2 (en) * 2018-05-22 2021-01-05 Morumi Co., Ltd. Parallel processing unit and device for parallel processing
US10740523B1 (en) * 2018-07-12 2020-08-11 Xilinx, Inc. Systems and methods for providing defect recovery in an integrated circuit
US10909292B1 (en) * 2019-02-14 2021-02-02 Xilinx, Inc. Implementing circuit designs on multi-die programmable devices
US10673439B1 (en) 2019-03-27 2020-06-02 Xilinx, Inc. Adaptive integrated programmable device platform
US10735004B1 (en) * 2019-04-01 2020-08-04 Microchip Technology Inc. LUT-based focused ion beam friendly fill-cell design
US11960734B2 (en) 2020-09-25 2024-04-16 Intel Corporation Logic fabric based on microsector infrastructure with data register having scan registers
US11372700B1 (en) 2020-12-08 2022-06-28 Xilinx, Inc. Fault-tolerant data transfer between integrated circuits
US20220014202A1 (en) 2021-09-24 2022-01-13 Rahul Pal Three-Dimensional Stacked Programmable Logic Fabric and Processor Design Architecture
US20220011811A1 (en) 2021-09-24 2022-01-13 Intel Corporation Flexible instruction set architecture supporting varying frequencies
US20220044123A1 (en) 2021-09-24 2022-02-10 Rajesh Vivekanandham Embedded Programmable Logic Device for Acceleration in Deep Learning-Focused Processors
US20220013488A1 (en) 2021-09-24 2022-01-13 Mahesh K. Kumashikar Homogenous Die Stacking With Increased Element Density
US11941336B2 (en) * 2021-11-10 2024-03-26 Oppstar Technology Sdn Bhd Three-dimensional FPGA with structure ASIC hardening capability
US20220116373A1 (en) 2021-12-22 2022-04-14 Choon Yip Soo Systems and methods for communicating encrypted time-related data
US20220113694A1 (en) 2021-12-22 2022-04-14 Intel Corporation Systems and methods to reduce voltage guardband
US20220113350A1 (en) 2021-12-22 2022-04-14 Intel Corporation Segmented row repair for programmable logic devices
US20230108339A1 (en) 2022-12-07 2023-04-06 Intel Corporation Circuit Implementation on Processing Circuitry

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0678985A2 (en) * 1994-04-20 1995-10-25 Xilinx, Inc. A programmable logic device which stores more than one configuration and means for switching configurations
WO2011156038A2 (en) * 2010-03-17 2011-12-15 University Of Virginia Patent Foundation A sub-threshold fpga and related circuits and methods thereof
CN102692991A (zh) * 2011-01-14 2012-09-26 苹果公司 协调多个电路中的性能参数
CN103366034A (zh) * 2012-03-29 2013-10-23 阿尔特拉公司 具有多级逻辑区域的集成电路
CN103390425A (zh) * 2012-05-08 2013-11-13 阿尔特拉公司 电阻开关阵列的路由和编程
CN103677077A (zh) * 2013-12-18 2014-03-26 西安智多晶微电子有限公司 强化时钟管理的复杂可编程逻辑器件
CN103971732A (zh) * 2014-04-30 2014-08-06 浙江大学 监控fpga的单粒子翻转效应并纠正重加载的方法及系统

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6100714A (en) * 1998-01-15 2000-08-08 Ict, Inc. High density PLD structure with flexible logic built-in blocks
US6150841A (en) * 1999-06-06 2000-11-21 Lattice Semiconductor Corporation Enhanced macrocell module for high density CPLD architectures
US6888371B2 (en) * 2001-10-29 2005-05-03 Leopard Logic, Inc. Programmable interface for field programmable gate array cores
US6924663B2 (en) * 2001-12-28 2005-08-02 Fujitsu Limited Programmable logic device with ferroelectric configuration memories
US6693452B1 (en) * 2002-02-25 2004-02-17 Xilinx, Inc. Floor planning for programmable gate array having embedded fixed logic circuitry
US7064579B2 (en) 2002-07-08 2006-06-20 Viciciv Technology Alterable application specific integrated circuit (ASIC)
US7571303B2 (en) * 2002-10-16 2009-08-04 Akya (Holdings) Limited Reconfigurable integrated circuit
DE102005023118B3 (de) * 2005-05-19 2006-12-21 Infineon Technologies Ag Schaltungsanordnung zum Zuführen von Konfigurationsdaten in FPGA-Einrichtungen
US7236000B1 (en) * 2005-10-18 2007-06-26 Xilinx, Inc. Method and apparatus for error mitigation of programmable logic device configuration memory
US7408381B1 (en) * 2006-02-14 2008-08-05 Xilinx, Inc. Circuit for and method of implementing a plurality of circuits on a programmable logic device
US7463060B1 (en) * 2006-06-13 2008-12-09 Lattice Semiconductor Corporation Programmable logic device and method of testing
WO2007149494A2 (en) * 2006-06-21 2007-12-27 Element Cxi, Llc. Resilient integrated circuit architecture
US7772872B2 (en) * 2008-09-08 2010-08-10 Altera Corporation Multi-row block supporting row level redundancy in a PLD
US7973556B1 (en) * 2009-03-05 2011-07-05 Xilinx, Inc. System and method for using reconfiguration ports for power management in integrated circuits
US7852107B1 (en) * 2010-02-18 2010-12-14 Xilinx, Inc. Single event upset mitigation
US8996906B1 (en) * 2010-05-13 2015-03-31 Tabula, Inc. Clock management block
KR101638976B1 (ko) * 2010-08-25 2016-07-13 삼성전자주식회사 재구성 가능한 논리 장치
US8493089B2 (en) * 2011-04-06 2013-07-23 International Business Machines Corporation Programmable logic circuit using three-dimensional stacking techniques
US8941409B2 (en) * 2011-07-01 2015-01-27 Tabula, Inc. Configurable storage elements
US8704548B1 (en) * 2012-10-19 2014-04-22 Altera Corporation Methods and apparatus for building bus interconnection networks using programmable interconnection resources
US9479456B2 (en) * 2012-11-02 2016-10-25 Altera Corporation Programmable logic device with integrated network-on-chip
US8937491B2 (en) * 2012-11-15 2015-01-20 Xilinx, Inc. Clock network architecture
KR101920719B1 (ko) * 2012-11-19 2019-02-13 삼성전자주식회사 논리 장치, 논리 장치를 포함하는 디지털 필터 및 논리 장치를 제어하는 방법
TW201502621A (zh) * 2013-07-15 2015-01-16 Hon Hai Prec Ind Co Ltd 光通訊裝置
JP6426437B2 (ja) * 2013-11-22 2018-11-21 株式会社半導体エネルギー研究所 半導体装置
EP3457293B1 (en) * 2014-04-03 2021-06-30 Huawei Technologies Co., Ltd. Field programmable gate array and communication method
US10523207B2 (en) * 2014-08-15 2019-12-31 Altera Corporation Programmable circuit having multiple sectors

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0678985A2 (en) * 1994-04-20 1995-10-25 Xilinx, Inc. A programmable logic device which stores more than one configuration and means for switching configurations
WO2011156038A2 (en) * 2010-03-17 2011-12-15 University Of Virginia Patent Foundation A sub-threshold fpga and related circuits and methods thereof
CN102692991A (zh) * 2011-01-14 2012-09-26 苹果公司 协调多个电路中的性能参数
CN103366034A (zh) * 2012-03-29 2013-10-23 阿尔特拉公司 具有多级逻辑区域的集成电路
CN103390425A (zh) * 2012-05-08 2013-11-13 阿尔特拉公司 电阻开关阵列的路由和编程
CN103677077A (zh) * 2013-12-18 2014-03-26 西安智多晶微电子有限公司 强化时钟管理的复杂可编程逻辑器件
CN103971732A (zh) * 2014-04-30 2014-08-06 浙江大学 监控fpga的单粒子翻转效应并纠正重加载的方法及系统

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108228395A (zh) * 2016-12-22 2018-06-29 英特尔公司 用于绕开电路行中的缺陷的技术
CN109213726A (zh) * 2017-06-29 2019-01-15 英特尔公司 可编程装置的区域部分重新配置
CN111426935B (zh) * 2018-12-20 2022-07-08 爱德万测试公司 自动化测试设备装置
CN111426935A (zh) * 2018-12-20 2020-07-17 爱德万测试公司 自动化测试设备装置
CN113614707A (zh) * 2019-03-27 2021-11-05 赛灵思公司 用于配置和部分重新配置集成电路设备的功能块的电路和方法
US11537761B2 (en) 2020-09-25 2022-12-27 Intel Corporation Transparent network access control for spatial accelerator device multi-tenancy
US20210110069A1 (en) * 2020-09-25 2021-04-15 Intel Corporation Enabling secure state-clean during configuration of partial reconfiguration bitstreams on fpga
US11556677B2 (en) 2020-09-25 2023-01-17 Intel Corporation Scalable runtime validation for on-device design rule checks
US11651112B2 (en) 2020-09-25 2023-05-16 Intel Corporation Enabling stateless accelerator designs shared across mutually-distrustful tenants
US11651111B2 (en) * 2020-09-25 2023-05-16 Intel Corporation Enabling secure state-clean during configuration of partial reconfiguration bitstreams on FPGA
US11763043B2 (en) 2020-09-25 2023-09-19 Intel Corporation Enabling late-binding of security features via configuration security controller for accelerator devices
US11783096B2 (en) 2020-09-25 2023-10-10 Intel Corporation Broadcast remote sealing for scalable trusted execution environment provisioning
US11816253B2 (en) 2020-09-25 2023-11-14 Intel Corporation Enabling secure communication via attestation of multi-tenant configuration on accelerator devices
US11853468B2 (en) 2020-09-25 2023-12-26 Intel Corporation Transparent network access control for spatial accelerator device multi-tenancy

Also Published As

Publication number Publication date
EP3664297A1 (en) 2020-06-10
CN105373493B (zh) 2019-03-12
EP2985914A2 (en) 2016-02-17
US10523207B2 (en) 2019-12-31
US20200136624A1 (en) 2020-04-30
CN110086461A (zh) 2019-08-02
US20160049941A1 (en) 2016-02-18
EP2985914A3 (en) 2016-06-01

Similar Documents

Publication Publication Date Title
CN105373493A (zh) 具有多个扇区的可编程电路
US7576557B1 (en) Method and apparatus for mitigating one or more event upsets
US7702978B2 (en) Soft error location and sensitivity detection for programmable devices
US9141747B1 (en) System level tools to support FPGA partial reconfiguration
US7302625B1 (en) Built-in self test (BIST) technology for testing field programmable gate arrays (FPGAs) using partial reconfiguration
US9323876B1 (en) Integrated circuit pre-boot metadata transfer
CN103354977B (zh) 在集成电路内进行处理器系统的扩展
US7409610B1 (en) Total configuration memory cell validation built in self test (BIST) circuit
US8694931B1 (en) Systems and methods for super-threading of integrated circuit design programs
US9990212B2 (en) Testing and repair of a hardware accelerator image in a programmable logic circuit
US8065574B1 (en) Soft error detection logic testing systems and methods
US9455715B2 (en) Apparatus for improving reliability of electronic circuitry and associated methods
US20050242834A1 (en) Reconfiguration port for dynamic reconfiguration - sub-frame access for reconfiguration
US7529998B2 (en) Runtime reconfiguration of reconfigurable circuits
US9298865B1 (en) Debugging an optimized design implemented in a device with a pre-optimized design simulation
JP2007200300A (ja) 方法、プロセッサ・システム、情報処理システム(プロセッサ・システムでエラー情報を処理し、エラーを注入する方法および装置)
US9098662B1 (en) Configuring a device to debug systems in real-time
KR102596637B1 (ko) 상호작용형 다단계 물리적 합성
US20130007679A1 (en) Reconfigurable logic block
JP2012143000A (ja) プログラマブル・ゲートアレイ部を備えたマスクプログラマブル論理装置
US10218359B2 (en) Regional partial reconfiguration of a programmable device
US8436646B1 (en) Reconfigurable logic block with user RAM
US10956638B1 (en) Programmable integrated circuits for emulation
Bolchini et al. An integrated flow for the design of hardened circuits on SRAM-based FPGAs
US10319459B1 (en) Customizable built-in self-test testplans for memory units

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