CN102857213A - 可重构逻辑块 - Google Patents

可重构逻辑块 Download PDF

Info

Publication number
CN102857213A
CN102857213A CN2012102289394A CN201210228939A CN102857213A CN 102857213 A CN102857213 A CN 102857213A CN 2012102289394 A CN2012102289394 A CN 2012102289394A CN 201210228939 A CN201210228939 A CN 201210228939A CN 102857213 A CN102857213 A CN 102857213A
Authority
CN
China
Prior art keywords
configuration logic
value
logic
logical block
mode flag
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
CN2012102289394A
Other languages
English (en)
Other versions
CN102857213B (zh
Inventor
D·W·孟德尔
G·赖
周璐
B·B·佩德森
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
Publication of CN102857213A publication Critical patent/CN102857213A/zh
Application granted granted Critical
Publication of CN102857213B publication Critical patent/CN102857213B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • 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/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

Landscapes

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

Abstract

本发明涉及可重构逻辑块。提供一种可编程逻辑器件,其包括可以被配置为随机存取存储器(RAM)或者查找表(LUT)的诸如逻辑阵列块(LAB)的逻辑块。提供模式标记以指示诸如在逻辑块部分重构期间使用的配置RAM(CRAM)的配置逻辑的操作模式。提供使能读取标记以指示在数据验证过程期间是否将读出存储在配置逻辑中的值或者是否将读出已知状态。因此,配置逻辑的区域部分被包括以及不被包括在数据验证和校正过程中允许配置逻辑的区域存储设计状态以及用户定义状态二者。此外,配置逻辑的区域可以动态地从一个状态重构至另一个状态而不引起验证错误。

Description

可重构逻辑块
相关申请的交叉引用
本申请要求David Mendel等人于2012年2月8日提交的题为“RECONFIGURABLE LOGIC BLOCK”的美国专利申请No.13/369,226(律师案卷号ALTRP281/A03571)的优先权权益,并且要求David Mendel等人于2011年7月1日提交的题为“RECONFIGURABLE LOGIC BLOCK”的共同未决且共同转让的美国临时专利申请No.61/504,115(律师案卷号ALTRP281P/A03571)的权益,在此通过参考将其全文引入并用于所有目的。
技术领域
本公开总地涉及集成电路。更具体地,本公开涉及用于实施集成电路的技术和系统。
背景技术
可编程逻辑器件(PLD)是包含了可以被编程以执行许多逻辑功能的固定逻辑电路的半导体集成电路。在通常情况下,逻辑设计者使用计算机辅助设计(CAD)工具以设计定制逻辑电路。这些工具使用关于给定可编程逻辑器件的硬件容量的信息来帮助设计者使用在该给定可编程逻辑器件上可获得的多个资源实施定制逻辑电路。
用户可以选择在PLD的一部分中实施设计状态。如果实施了设计状态,则PLD的该部分可以存储指示了特定设计配置的值,诸如查找表。备选地,用户可以选择在PLD的该部分中实施用户定义状态。如果实施用户设计状态,则PLD可以作为用户RAM而工作。传统PLD的能力限于,当需要验证或者校正配置中的潜在错误的能力时并行地存储设计状态和用户定义状态二者。传统PLD的能力也限于当PLD维持操作时可以从一个状态重构至另一个状态。因此,用户能力限于在可编程逻辑器件中实施逻辑电路。
发明内容
一种器件,诸如可编程逻辑器件(PLD),包括逻辑块,其中该逻辑块包括多个逻辑元件。器件可以进一步包括与逻辑块关联的配置逻辑,其中配置逻辑存储用于包含在逻辑块中的多个逻辑元件的值。器件也可以包括存储模式标记的第一存储器单元,其中模式标记标识配置逻辑存储的是用户定义状态还是设计状态,其中配置逻辑响应于存储用户定义状态而不被包括在数据验证和校正过程中,并且其中配置逻辑响应于存储设计状态而被包括在数据验证和校正过程中。器件可以进一步包括存储了使能读取标记的第二存储器单元,其中使能读取标记标识在数据验证和校正过程期间是否将要读出存储在配置逻辑中的值或者是否将要读出已知状态。
在各种实施例中,配置逻辑不被包括在数据验证和校正过程中防止了数据验证和校正过程修改配置逻辑。在特定实施例中,定位模式标记或者使能读取标记以减少在校正模式标记或者使能读取标记中的错误与修改和模式标记或者使能读取标记相关联的配置逻辑之间的时间。根据各种实施例,逻辑块响应于配置逻辑存储了用户定义状态而作为用户定义的随机存取存储器或者移位寄存器而操作。在特定实施例中,模式标记或者使能读取标记包括单个数据比特。根据各种实施例,通过三模冗余(triple modular redundancy)、更大的门面积、保护性电容器、或者使用增大的电压来保护模式标记或者使能读取标记。在特定实施例中,逻辑块是现场可编程门阵列(FPGA)块,并且其中存储器单元是随机存取存储器单元、锁存器或者寄存器。根据各种实施例,模式标记和使能读取标记与用于多于一个逻辑块的配置逻辑相关联。
另一方面,器件可以包括多个逻辑块,其中多个逻辑块的每一个逻辑块包括多个逻辑元件。器件可以进一步包括与多个逻辑块的至少一个逻辑块相关联的配置逻辑,其中配置逻辑标识存储在包含于多个逻辑块的至少一个逻辑块中的多个逻辑元件中的值,并且其中配置逻辑存储在包括多个配置随机存取存储器(CRAM)单元列的CRAM单元阵列中。配置逻辑可以包括存储模式标记的第一存储器单元,其中模式标记标识配置逻辑存储的是用户定义状态还是设计状态,其中配置逻辑响应于存储了用户定义状态而不被包括在数据验证和校正过程中,并且其中配置逻辑响应于存储了设计状态而被包括在数据验证和校正过程中。配置逻辑也可以包括存储使能读取标记的第二存储器单元,其中使能读取标记标识在数据验证和校正过程期间是否将要读出存储在配置逻辑块中的值或者是否将要读出已知状态。
在各种实施例中,配置逻辑占用CRAM单元阵列中多于一列的CRAM单元。在特定实施例中,模式标记和使能读取标记与多于一个的逻辑块相关联。根据各种实施例,逻辑块响应于配置逻辑存储了用户定义状态而作为用户定义的随机存取存储器或者移位寄存器而操作。在特定实施例中,通过三模冗余、更大的门面积、保护性电容器或者使用增大的电压来保护模式标记或者使能读取标记。根据各种实施例,配置逻辑被存储在存储与配置逻辑相关联的模式标记和使能读取标记的CRAM的列之外的CRAM的列中。
另一方面,器件可以包括逻辑块,其中逻辑块包括多个逻辑元件以及与逻辑块相关联的配置逻辑,其中配置逻辑存储标识存储在包含于逻辑块中的多个逻辑元件中的值的值。器件可以进一步包括根据编码方案编码的第一存储器单元和第二存储器单元,其中编码方案标识模式标记和使能读取标记。在各种实施例中,模式标记标识配置逻辑存储的是用户定义状态还是设计状态,其中配置逻辑响应于存储了用户定义状态而不被包括在数据验证和校正过程中,并且其中配置逻辑响应于存储了设计状态而被包括在数据验证和校正过程中。在特定实施例中,使能读取标记标识在数据验证和校正过程期间是否将要读出存储在配置逻辑中的值或者是否将要读出已知状态。
在各种实施例中,模式标记响应于第一存储器单元和第二存储器单元存储了第一值而标识查找表(LUT)模式。在各种实施例中,第一值可以通过分别存储在第一存储器单元和第二存储器单元中的1和0的值、0和1的值、或者0和0的值来标识。模式标记也可以响应于第一存储器单元和第二存储器单元存储了第二值而标识随机存取存储器(RAM)模式。在各种实施例中,第二值可以通过分别存储在第一存储器单元和第二存储器单元中的1和1的值来标识。使能读取标记可以响应于第一存储器单元和第二存储器单元存储了第三值而确定将要读出已知状态。在各种实施例中,第三值可以通过分别存储在第一存储器单元和第二存储器单元中的1和0的值、0和1的值、或者0和0的值来标识。使能读取标记也可以响应于第一存储器单元和第二存储器单元存储了第四值而确定将要读出存储在配置逻辑中的值。在各种实施例中,第四值可以通过分别存储在第一存储器单元和第二存储器单元中的0和0的值来标识。
根据各种实施例,第一存储器单元可以定位于配置逻辑的第一侧上,而第二存储器单元可以定位于配置逻辑的第二侧上。在一些实施例中,第一侧可以与第二侧相对。例如,第一存储器单元可以定位于配置逻辑的左侧上,而第二存储器单元可以定位于配置逻辑的右侧上。以该方式定位第一存储器单元和第二存储器单元允许从左至右或者从右至左地设定值以在LUT模式和RAM模式之间切换逻辑块。在特定实施例中,配置逻辑不被包括在数据验证和校正过程中防止了数据验证和校正过程修改配置逻辑。在各种实施例中,通过三模冗余、更大的门面积、保护性电容器或者使用增大的电压来保护第一存储器单元和第二存储器单元。
附图说明
图1是在部分重构期间可以使用的可编程逻辑器件的示例性示意图。
图2是根据本发明的一个实施例的在可编程逻辑器件中的配置随机存取存储器和逻辑块的示例性示意图。
图3是根据本发明的一个实施例的在逻辑块动态重构期间利用了模式标记和使能读取标记的重构的示例性过程。
图4是根据本发明一个实施例的在逻辑块动态重构期间利用了编码方案的重构的示例性过程。
图5示出了根据本发明一个实施例的用于实施可编程芯片的示例性技术。
图6示出了计算机系统的一个示例。
具体实施方式
现在将详细参考发明人设计用于执行本发明的本发明实施例。这些实施例的示例在附图中示出。尽管结合这些实施例来描述发明,但将要理解的是本发明并非意在限定于所述实施例。相反地,本发明意在涵盖可以包含在由所附权利要求限定的本发明的精神和范围之内的替代、修改和等同方案。
例如,在特定类型器件的环境中将描述本发明的技术和机制。然而,应当注意的是,本发明的技术和机制适用于各种不同类型的器件。在以下说明书中,阐述了大量特定细节以便提供本发明的全面理解。可以不采用一些或者所有这些特定细节而实施本发明的特定示例性实施例。在其他情形下,未详细描述公知的过程操作以避免不必要地混淆本发明。
有时为了清楚起见以单数形式描述本发明的各种技术和机制。然而,应当注意的是,各种实施例除非另作说明否则包括技术的多次迭代或者机制的多个示例。例如,系统在各种环境下使用处理器。然而,将理解到的是,除非另作说明,否则系统可以使用多个处理器而仍保持在本发明的范围内。此外,本发明的技术和机制将有时描述在两个实体之间的连接。应当注意的是,两个实体之间的连接并不一定意味着直接、无阻碍的连接,因为两个实体之间可以存在各种其他实体。例如,处理器可以连接至存储器,但是将理解到的是,处理器和存储器之间可以存在各种桥和控制器。因此,除非另作说明,否则连接并不一定意味着直接、无阻碍的连接。
在各种实施例中,部分重构是一种过程,其中包括在可编程逻辑器件(PLD)中的诸如逻辑阵列块的各种逻辑块可以重构以执行新功能,而包括在PLD中的其他逻辑块继续执行现有功能。部分重构可以涉及存储在配置逻辑中的值的周期性验证和校正,配置逻辑诸如配置随机存取存储器(CRAM),其可以存储与包含在PLD中的逻辑块相关联的配置数据。存储在配置逻辑中的值可以被读出至错误校正块。错误校正块可以基于存储在配置逻辑中的值而计算验证码。验证码可以是诸如循环冗余校验(CRC)的散列函数、诸如Turbo码的前向纠错码(FEC)或者用于计算验证码的任何其他函数。
稍后在验证过程中,错误校正块可以验证存储在配置逻辑中的值以确定这些值是否包括应当校正的错误。错误校正块可以读取存储在配置逻辑中的值并且基于这些值来计算错误校验值。错误校正块可以将之前计算的验证码与错误校验值比较。如果错误校验值与验证码不匹配,则错误校正块可以确定配置逻辑中存在错误。如果诸如单粒子翻转(SEU)事件的错误存在,则可能能够修改配置逻辑以通过与所使用的验证码类型相关联的传统错误校正技术来校正错误。
用于重构PLD的传统机制的能力限于同时存储设计状态和用户定义状态。当包括在PLD中的配置逻辑存储了设计状态时,与配置逻辑相关联的逻辑块可以作为查找表(LUT)而操作。当存储了设计状态时,配置逻辑可以被包括在数据验证和校正过程中而不引起验证错误。然而,当配置逻辑存储了用户定义状态时,用户对存储在配置逻辑中的值的修改使得在存储在配置逻辑中的值与和配置逻辑相关联的验证码之间产生不一致。这些不一致在数据验证和校正过程期间引起错误。因此,如果需要在设计状态下检测并且校正错误,则包括设计状态的配置逻辑的整个区域必须仅存储设计状态。
根据各种实施例,配置逻辑的区域可以存储设计状态和用户定义状态二者而不引起验证错误。如果与逻辑块相关联的配置逻辑存储了设计状态,则模式标记和使能读取标记可以指示配置逻辑将要被包括在数据验证和校正过程中。然而,如果与逻辑块相关联的配置逻辑存储了用户定义状态,则模式标记和使能读取标记可以指示已知状态将要被读出至错误校正块。因此,存储在与逻辑块相关联的配置逻辑中的值可以基于存储在模式标记和使能读取标记中的值而包括或者不包括在数据验证和校正过程中。不包括与逻辑块相关联的配置逻辑防止了发生验证错误,并且保留了存储在配置逻辑中的用户定义状态。
图1是可以在部分重构期间使用的可编程逻辑器件的示例性示意图。根据各种实施例,PLD 100包括以行和列设置的多个逻辑块101。每个逻辑块101可以包括逻辑元件102。PLD 100可以进一步包括与逻辑元件102相关联的多个CRAM单元103。局部互连106可以将逻辑元件102相互连接。局部互连106可以连接至布线互连107。布线互连107可以连接至器件接口108。
在各种实施例中,PLD 100内与逻辑块101相关联的CRAM单元103可以存储设计状态,诸如查找表(LUT),而与其他逻辑块相关联的其他CRAM单元可以存储用户定义状态,诸如用户RAM。例如,如果与逻辑块101相关联的CRAM单元103存储了设计状态,则逻辑块101作为LUT而操作。存储在CRAM单元103中的值可以标识逻辑元件102的值,逻辑元件102的值又可以标识LUT的值。因此,可以以使用CRAM实施逻辑功能的任何方式来配置逻辑元件102。例如,逻辑元件102可以是LUT、不完全LUT、或可编程CPU。当CRAM单元103存储了用户定义状态时,逻辑块101可以作为用户RAM操作。因此,存储在CRAM单元103中的值可以控制逻辑元件102的功能,逻辑元件102又可以控制逻辑块101的功能。可以通过改变存储在与特定逻辑块相关联的CRAM单元中的值而部分重构PLD 100,而与其他逻辑块相关联的其他CRAM单元保持不变并且根据现有编程继续执行现有功能。
图2是根据本发明一个实施例的可编程逻辑器件内的配置随机存取存储器和逻辑块的示例性示意图。在各种实施例中,逻辑块201可以包括逻辑元件202,可以按逻辑元件的列来设置逻辑元件202。逻辑块201也可以包括局部互连206,局部互连206允许逻辑元件202相互通信。CRAM单元203、模式标记204和使能读取标记205可以被包括在CRAM单元阵列207内并且可以与逻辑块201相关联。CRAM单元208、模式标记209和使能读取标记210可以包括在CRAM单元阵列207内并且可以与逻辑块214相关联。此外,CRAM单元211、模式标记212和使能读取标记213可以被包括在CRAM单元阵列207内。
在各种实施例中,模式标记204、209和212分别指示了CRAM单元203、208和211每一个是存储了设计状态还是存储了用户定义状态,以及CRAM单元的每一个组是否应当包括或者不包括在数据验证和校正过程中。例如,模式标记204可以标识CRAM单元203何时存储设计状态或者用户定义状态。因此,模式标记204可以标识逻辑块201何时作为LUT或者用户RAM而操作。在各种实施例中,当模式标记204指示了CRAM单元203存储设计状态时,CRAM单元203被包括在数据验证和校正过程中。因此,当它们存储了设计状态时,错误校正块可以读取并且修改存储在CRAM单元203中的值。然而,当模式标记204指示CRAM单元203存储用户定义状态时,CRAM单元203不被包括在数据验证和校正过程中。因此,当它们存储用户定义状态时,错误校正块可以不读取或者修改存储在CRAM单元203中的值。作为替代,错误校正块读取诸如全零的已知状态,并且防止错误校正块写入CRAM单元203。类似的过程可以适用于模式标记209和212。
在各种实施例中,使能读取标记205、210和213指示了在数据验证和校正过程期间是否应当读出存储在CRAM单元203、208和211中的值或者已知状态。与模式标记不同,使能读取标记指示的值与逻辑块是存储设计状态还是存储用户定义状态无关。如果使能读取标记205指示了在数据验证和校正过程期间应当将存储在CRAM单元203中的数据读出至错误校正块,则可以读出真实值并且将其与对应于CRAM单元203的验证码比较。如果使能读取标记205指示在数据验证和校正过程期间应当读出诸如全零的已知状态,则已知状态可以被读出至错误校正块。此外,当使能读取标记205指示将要读出已知状态时,存储在CRAM单元203中的值可以不被包括在数据验证和校正过程中,因为错误校正块可以不读取或者修改存储在CRAM单元203中的值。类似的过程可以适用于使能读取标记210和213。
在各种实施例中,标记可以包括单个数据比特,或者备选地多个比特。此外,标记可以与用于多个逻辑块的配置逻辑相关联。例如,模式标记可以指示5个逻辑块是存储设计状态还是存储用户定义状态。备选地,模式标记可以指示逻辑块内的单个逻辑元件是存储设计状态还是存储用户定义状态。这对于诸如使能读取标记的任何其他标记也可以适用。
此外,在特定实施例中,可以定位标记以在数据验证和校正过程期间减少标记和与标记相关联的CRAM单元的扫描和潜在校正之间的时间。这种定位减少了可能在已扫描模式标记之后但是在已扫描其关联的CRAM单元之前出现的诸如SEU的错误的实例。例如,模式标记可以放置于与模式标记相关联的CRAM单元的左侧或者右侧的一列。
在各种实施例中,CRAM单元203、208和211可以包括包含布线配置的值,数据验证和校正过程应当总是检查该布线配置。在该情形下,模式标记和使能读取标记在数据验证和校正过程期间将仅影响与诸如LUT配置的设计状态或者用户定义状态相关联的CRAM单元发生的情形。模式标记和使能读取标记将不影响包含了布线配置的CRAM单元。
在各种实施例中,CRAM单元阵列207可以包括CRAM单元的多个行和列,CRAM单元的多个行和列包括PLD 200所使用的所有CRAM。CRAM单元阵列207内的CRAM单元的单个列可以包括与PLD 200内多于一个逻辑块相关联的CRAM单元。如图2所示,与逻辑块201相关联的CRAM单元203可以被包括在与逻辑块214相关联的CRAM单元208相同的CRAM单元列中。此外,与单个逻辑块相关联的CRAM单元可以占据多于一个CRAM的列。例如,CRAM单元211可以与单个逻辑块相关联并且可以占据CRAM单元阵列207中CRAM单元的多于一列。
如图2所示,模式标记或者使能读取标记可以位于其相关联的配置逻辑的相同或者不同区域中。配置逻辑的区域可以是CRAM单元阵列207内的CRAM单元的列。配置逻辑的区域可以包括与多个逻辑块相关联的配置逻辑。例如,模式标记204和使能读取标记205可以位于与CRAM单元203分离的CRAM单元列中。这对于模式标记209和212以及使能读取标记210和213也适用。此外,根据各种实施例,每个标记可以位于与标记关联的配置逻辑相同的CRAM的列中。
在各种实施例中,可以保护CRAM单元阵列207或者CRAM单元阵列207内CRAM单元的子集以免于错误,错误诸如由于α粒子导致的单粒子翻转(SEU),这可以潜在地导致PLD 200操作中的灾难性错误。例如,可以通过诸如三模冗余的加固技术来保护模式标记和使能读取标记,其中,存储值的3个冗余副本并且将其提供至表决电路以使得一个单元中的错误将不影响由表决电路的输出代表的值。也可以使用其他技术,诸如使用更高电压、更大门面积、保护性电容器、或者使用12晶体管单元来取代6晶体管单元。
图3是根据本发明一个实施例的在逻辑块的动态重构期间利用了模式标记和使能读取标记的重构的示例性过程。在过程300中,控制器可以将逻辑块重构为作为LUT操作的LUT型逻辑块、或者作为用户RAM操作的RAM型逻辑块。根据各种实施例,针对每个类型逻辑块的重构均与逻辑决的初始配置无关。例如,如果逻辑块被重构为LUT型逻辑块,则不论逻辑块初始地被配置为RAM型逻辑块还是LUT型逻辑块,均发生重构。
在301处,外部控制器可以确定逻辑块是否将被重构为LUT型逻辑块或者RAM型逻辑块。如果逻辑块将被重构为RAM型逻辑块,则与逻辑块相关联的配置逻辑可以被初始化为初始值以使得用户RAM存储初始值。然而,在配置逻辑的初始化之前,与配置逻辑相关联的验证码可以被设置为已知状态。因此,数据验证和校正过程在逻辑块作为用户RAM操作时执行的比较期间使用基于已知状态的验证码。因此,在302处,可以设置模式标记以指示设计状态来使能写入访问。在使能了写入访问的情况下,在303处,配置逻辑可以被设置为已知状态。在304处,可以计算对应于已知状态的新验证码。
在各种实施例中,在305处,设置使能读取标记以指示存储在与逻辑块相关联的配置逻辑中的值将要作为已知状态被读出至错误校正块。因为存储在验证码中的值在304处已被设置为已知状态,所以数据验证和校正过程的未来迭代包括在由使能读取标记指示的已知状态与由验证码指示的已知状态之间的比较。因此,对于存储在配置逻辑中的值的后续修改不会影响该比较、或者引起验证错误。
在306处,模式标记可以仍然指示设计状态,并且配置逻辑可以被写入。因此,存储在配置逻辑中的值可以被设置为初始化的状态以便将用户RAM初始化为指定值。在308处,可以设置模式标记以指示用户定义状态,因此将逻辑块重构为RAM型逻辑块,RAM型逻辑块作为被设置为初始值的用户RAM操作。
如果需要LUT型逻辑块,则在309处,可以设置模式标记以指示设计状态。设置模式标记以指示设计状态,可以指示存储在配置逻辑中的真实值在数据验证和校正过程期间应当被读出至错误校正块。如果读出了存储在配置逻辑中的值,则可能发生验证错误,因为用户可能在设置指示设计状态的模式标记之前修改了存储在配置逻辑中的值。用户引入的对配置逻辑的修改并未包括在与配置逻辑相关联的验证码中,并且可能导致验证错误。
然而,在各种实施例中,利用了使能读取标记。使能读取标记可以指示甚至在设置模式标记以指示设计状态之后仍持续将已知状态读出至错误校正块。因此,使能读取标记的操作可以与配置逻辑中存储的状态无关并且可以与模式标记所指示的状态无关。因此,错误校正块可以在设置模式标记以指示设计状态之后以及在逻辑块已从RAM型逻辑块切换至LUT型逻辑块之后继续读取已知状态。因此,当逻辑块被重构为LUT型逻辑块时,使能读取标记防止了用户引入的修改被读出至错误校正块并且引起验证错误。
在310处,可以为后续存储设计状态做准备而将配置逻辑设置为已知状态。因此,配置逻辑可以在一种情形下被设置为全零。将配置逻辑设置为已知状态可以消除当逻辑块作为用户RAM操作时用户可能对存储在配置逻辑中的值做出的任何修改。在311处,可以通过基于存储在配置逻辑中的值计算验证码而将验证码设置为已知状态。
在312处,可以设置使能读取标记以指示错误校正块可以读取和写入存储在配置逻辑内的值。因此,配置逻辑可以被包括在数据验证和校正过程中并且后续对于存储在配置逻辑中的值的改变可以在与配置逻辑相关联的验证码中被更新。
在各种实施例中,可以重构LUT型逻辑块以包括新设计功能。在313处,可以将存储在配置逻辑中的值重构为新设计状态。例如,可以采用指示了新LUT的值的新设计状态来编程配置逻辑。在314处,可以计算对应于新设计状态的新验证码。
表1
 单元1  单元2   错误校正块读取的值   LUT型/RAM型逻辑块
  0   0   CRAM值   LUT型
  0   1   0   LUT型
  1   0   0   LUT型
  1   1   0   RAM型
根据各种实施例,表1代表了经由存储在存储器单元1和存储器单元2中的两个值的示例性编码实施模式标记和使能读取标记的功能。因此,存储在存储器单元中的已编码值可以指示与逻辑块相关联的配置逻辑何时存储设计状态并且作为LUT型逻辑块操作,以及配置逻辑何时存储用户定义状态并且作为RAM型逻辑块操作。已编码值也可以指示存储在配置逻辑中的值何时被读出至错误校正块以及已知状态何时被读出至错误校正块。
例如,当单元1和单元2均存储零值时,这表示配置逻辑存储设计状态并且逻辑块作为LUT型逻辑块而操作。此外,存储在配置逻辑中的值被读出至错误校正块。在各种实施例中,当单元1存储0而单元2存储1时,这表示配置逻辑存储设计状态并且逻辑块作为LUT型逻辑块而操作。此外,响应于单元1存储0而单元2存储1,诸如零的已知状态可以在数据验证和校正过程期间被读出至错误校正块。如表1进一步所示,当单元1存储1并且单元2存储0时,也可以是相同情况。根据各种实施例,单元1和单元2存储值1,这表示配置逻辑存储用户定义状态并且逻辑块作为RAM型逻辑块操作。此外,可以读出已知状态至错误校正块并且可以防止错误校正块修改存储在配置逻辑中的值。
在特定实施例中,两个单元可以位于与已编码单元相关联的配置逻辑不同的配置逻辑的区域中。例如,单元1可以位于紧邻其右侧包含了与其相关联的配置逻辑的CRAM列中。此外,单元2可以位于紧邻其左侧包含了与其相关联的配置逻辑的CRAM列中。因此,在数据验证和校正过程期间从左至右扫描CRAM单元阵列可以实现根据表1的编码。相同情况也适用于从右至左扫描。
图4是根据本发明一个实施例的在逻辑块动态重构期间利用了编码方案的重构的示例性过程。根据过程400,与逻辑块的初始配置无关,控制器可以将逻辑块重构为LUT型逻辑块或者RAM型逻辑块。
根据各种实施例,在401处,外部控制器可以确定逻辑块是否将被重构为LUT型逻辑块或者RAM型逻辑块。如果逻辑块将被重构为RAM型逻辑块,则在402处,可以设置单元1以存储值1。当存储值1时,单元1可以指示在数据验证和校正过程期间存储在配置逻辑中的值应当作为已知状态被读出至错误校正块。在403处,可以将存储在配置逻辑中的值设置为初始化的状态。在404处,可以设置单元2以存储值1。当将这两个单元均设置为存储值1时,单元可以指示配置逻辑存储用户定义状态并且与配置逻辑相关联的逻辑块可以工作在RAM模式下。
如果逻辑块将被重构为LUT型逻辑块,则在406处,可以将与配置逻辑相关联的单元1设置为存储值0。存储在单元1内的值0可以指示配置逻辑存储设计状态并且与配置逻辑相关联的逻辑块工作在LUT模式下。当工作在LUT模式下时,在数据验证和校正过程期间可以对逻辑块进行写入。
根据各种实施例,在407处,可以将存储在配置逻辑中的值设置为已知状态,诸如全0。如前所述,对配置逻辑进行调零可以消除可能已经由用户引入的对存储在配置逻辑内的值的修改。可以基于配置逻辑计算新验证码。因此,可以将验证码设置为已知状态。
在408处,可以将单元2设置为存储值0。当存储值0时,单元2可以指示错误校正块在数据验证和校正过程期间应当读取存储在配置逻辑中的值。因为存储在配置逻辑内的值以及验证码均是已知状态,所以在数据验证和校正过程中包含配置逻辑并不导致验证错误。
图5示出了根据本发明一个实施例的用于实施可编程芯片的示例性技术。输入阶段501通常从用户接收选择信息以用于在电子器件上实施的诸如处理器核心的逻辑以及其他部件。在一个示例中,接收的输入是高级语言程序的形式。生成器程序505创建逻辑描述并且将逻辑描述以及其他定制逻辑提供至各种综合工具、布图和布线程序以及逻辑配置工具的任一个以允许在电子器件上实施逻辑描述。
在一个示例中,输入阶段501经常允许选择和参数化将要用于电子器件上的部件。输入阶段501也允许对硬编码逻辑的配置。在特定示例中,提供至输入阶段的部件包括知识产权函数、宏函数(megafunction)、以及知识产权核心。在各种实施例中,知识产权函数、宏函数、以及知识产权核心可以指代先前已由第三方开发者产生的所有权逻辑函数、逻辑块以及处理器核心。输入阶段501可以是使用向导的图形用户界面以用于允许信息有效或者方便的输入。输入阶段也可以是文本界面或者读取诸如电子数据表、数据库表或者示意图的数据文件的程序以获取选择信息。输入阶段501产生包含了关于各种已选择模块的信息的输出。在该阶段,用户可以输入关于需要隔离的单个部件的安全信息。例如,可以输入部件的不同安全级别以及允许哪些部件相互通信。
在通常实施方式中,生成器程序505可以标识选择并且采用用于实施各种模块的信息来产生逻辑描述。生成器程序505可以是Perl脚本,从用户输入的模块信息中创建诸如Verilog、Abel、VHDL和AHDL文件的HDL文件。在一个示例中,生成器程序标识高级语言程序的一部分以加速。留下其余代码以在处理器核心上执行。根据各种实施例,生成器程序505标识指针并且为每个指针提供端口。具有生成器程序能力的一种工具是从San Jose,CA的Altera公司获得的可编程芯片上系统(SOPC)Builder。生成器程序505也为综合工具507提供信息以允许自动综合HDL文件。在特定示例中,设计者直接提供逻辑描述。生成器程序也互连了用户选择的各种部件之间的接线图(hookup)。一些可获得的综合工具是可从俄勒冈州Wilsonville的Mentor Graphics公司获得的Leonardo Spectrum,以及可从加利福尼亚州Sunnyvale的Synplicity Corporation公司获得的Synplify。HDL文件可以包含仅可由综合工具读取的技术特定码。在该点处HDL文件也可以被传输至仿真工具。
本领域技术人员将理解到的是,输入阶段501、生成器程序505、以及综合工具507可以是分立的程序。分立程序之间的接口可以是数据库文件、日志或者简单地是在程序之间传输的消息。例如,替代了将文件写入存储装置,输入阶段501可以直接将消息发送至生成器程序505以允许生成器程序创建逻辑描述。类似地,生成器程序可以直接将信息提供至综合工具而不是写入HDL文件。类似地,输入阶段501、生成器程序505和综合工具507可以被集成至单个程序中。
用户可以选择各种模块并且集成的程序随后可以采用用户的选择以及以综合过的网表而不是中间文件的形式输出逻辑描述。在此涉及的用于描述将要在电子器件上实施的逻辑的任何机制称作逻辑描述。根据各种实施例,逻辑描述是诸如VHDL、Abel、AHDL或者Verilog文件的HDL文件。逻辑描述可以处于在用户选择部件和参数至对器件的最终配置之间的各个处理阶段中。根据其他实施例,逻辑描述是诸如电子设计交互格式输入文件(EDF文件)这样的已综合网表。EDF文件是可以由综合工具507输出的已综合网表文件的一个示例。
综合工具507可以采用HDL文件并且输出EDF文件。综合用的工具允许在电子器件上实施逻辑设计。一些可获得的综合工具是可从俄勒冈州Wilsonville的Mentor Graphics公司获得的LeonardoSpectrum,以及可从加利福尼亚州Sunnyvale的Synplicity公司获得的Synplify。本领域技术人员将理解到各种已综合网表格式。
验证阶段513通常跟随着综合阶段507。验证阶段检查设计的精确度以确保中间或者最终设计实现预期的需求。验证阶段通常包括仿真工具以及时序分析工具。用于仿真的工具允许施加输入并且观测输出而无需实施物理器件。仿真工具为设计者提供了用于设计的功能和时序验证的成本效果合算以及有效的机制。功能验证涉及与时序考虑无关的电路逻辑操作。忽略诸如门延迟的参数。
时序验证涉及采用时间延迟来分析设计的操作。证实了建立、保持以及用于诸如触发器的时序器件的其他时序要求。一些可获得的仿真工具包括可从加利福尼亚州Sunnyvale的Synopsys公司获得的Synopsys VCS、VSS和Scirocco,以及可从加利福尼亚州San Jose的Cadence Design Systems公司获得的Cadence NC-Verilog和NC-VHDL。在验证阶段513之后,已综合网表文件可以提供至包括布图和布线以及配置工具的物理设计工具519。布图和布线工具将逻辑单元定位在目标硬件器件的特定逻辑元件上并且根据被提供以实施电子设计的逻辑和安全性而在各种逻辑元件的输入和输出之间连接引线。根据本发明的各种实施例,布图和布线工具可以执行本发明的技术以实施由用户定义的各种安全要求和规则。迭代技术对于用户可以是透明的,但是可以在523处物理测试所得到的器件。
对于可编程逻辑器件,可编程逻辑配置阶段可以采用布图和布线工具的输出以编程具有用户选定和参数化模块的逻辑器件。根据各种实施例,布图和布线工具以及逻辑配置阶段被提供在可从加利福尼亚州San Jose的Altera公司获得的Quartus开发工具中。本领域技术人员将理解到的是,可以通过使用本发明的各种技术来使用各种综合、布图和布线、以及可编程逻辑配置工具。
如上所述,可以以各种方式集成不同的阶段和程序。根据一个实施例,输入阶段501、生成器程序505、综合工具507、验证工具513以及物理设计工具519被集成至单个程序中。各种阶段自动运行并且对于用户透明。程序可以接收用户选定的模块,产生描述了用于实施各种选定模块的逻辑的逻辑描述,并且实施电子器件。本领域技术人员将理解到的是,HDL文件和EDF文件仅是逻辑描述的示例。其他文件格式以及内部程序表达是逻辑描述的其他示例。
图6示出了计算机系统的一个示例。计算机系统600包括任意数目的处理器602(也称作中央处理单元或者CPU),处理器602耦合至包括存储器606(通常是随机存取存储器或者“RAM”)、存储器604(通常是只读存储器或者“ROM”)的器件。可以配置处理器602以产生电子设计。如本领域已知的,存储器604用于单向传输数据和指令至CPU,而存储器606通常用于以双向方式传输数据和指令。
这些存储器器件均包括任何适当种类的如上所述计算机可读介质。大容量存储装置608也双向地耦合至CPU 602并且提供额外的数据存储容量,并且可以包括任何如上所述的计算机可读介质。大容量存储装置608可以用于存储程序、数据等等,并且通常是慢于存储器的诸如硬盘这样的辅助存储介质。大容量存储装置608可以用于保持已预封装逻辑或者知识产权函数的库或者数据库,以及关于产生特定配置的信息。将理解到的是,保持在大容量存储装置608内的信息可以在合适的情形下以标准方式并入作为虚拟存储器的存储器606的一部分。诸如CD-ROM 614的特定大容量存储装置也可以单向传输数据至CPU。
CPU 602也耦合至包括了一个或者多个输入/输出器件的接口610,输入/输出器件诸如视频监视器、轨迹球、鼠标、键盘、话筒、触控式显示器、感应读卡器、磁带或者纸带读取器、图形输入板、触针、语音或者手写识别器、或者诸如其他计算机的其他已知输入装置。CPU 602可以是设计工具处理器。最后,可以使用如在612处一般性地示出的网络连接而将CPU 602任选地耦合至计算机或者电信网。采用这种网络连接,预期的是CPU可以在执行上述过程步骤期间从网络接收信息、或者可以输出信息至网络。应当注意的是,系统600也可以与用于传输已完成设计至可编程芯片上的器件相关联。计算机硬件和软件领域的技术人员熟悉上述器件和材料。
备选实施例
本发明的其他实施例包括:
一种器件,包括:逻辑块,其中逻辑块包括多个逻辑元件;与逻辑块相关联的配置逻辑,其中配置逻辑可操作为标识存储在多个逻辑元件中的值;以及根据编码方案编码的第一存储器单元和第二存储器单元,其中编码方案标识模式标记值和使能读取标记值,其中模式标记值可操作为标识配置逻辑存储的是用户定义状态还是设计状态,其中响应于配置逻辑存储用户定义状态,而不将配置逻辑包括在数据验证和校正过程中,并且其中响应于配置逻辑存储设计状态,而将配置逻辑包括在数据验证和校正过程中,并且其中使能读取标记值可操作为标识在数据验证和校正过程期间是否将读出存储在配置逻辑中的值或者是否将读出已知状态。
在该器件中,模式标记值可以响应于存储了第一值的第一存储器单元和第二存储器单元、或者响应于存储了第二值的第一存储器单元或者第二存储器单元而标识查找表(LUT)模式,其中模式标记值响应于存储了第二值的第一存储器单元和第二存储器单元而标识随机存取存储器(RAM)模式,其中使能读取标记值响应于存储了第二值的第一存储器单元或者第二存储器单元而确定将读出已知状态,并且其中使能读取标记值响应于存储了对应于第二值的值的第一存储器单元和第二存储器单元而确定将读出存储在配置逻辑中的值。
或者,在该器件中,第一存储器单元可以定位于配置逻辑的第一侧上,其中第二存储器单元定位于配置逻辑的第二侧上,并且其中第一侧与第二侧相对以使得对值从左至右或从右至左的设置在查找表(LUT)模式和随机存取存储器(RAM)模式之间切换逻辑块。
或者,在该器件中,不将配置逻辑包括在数据验证和校正过程中可以防止数据验证和校正过程修改配置逻辑。
或者,在该器件中,可以使用三模冗余、更大门面积、保护性电容器或者使用增大的电压来实施第一存储器单元和第二存储器单元。
结论
尽管已为了方便以单数形式描述了许多部件和过程,但是本领域技术人员将理解到的是,也可以使用多个部件和重复的过程来实现本发明的技术。
尽管已参照本发明的具体实施例特别地示出和描述了本发明的特定实施例,但本领域技术人员将要理解的是,可以在不脱离本发明的精神或者范围的情况下对所公开实施例的形式和细节做出改变。例如,本发明的实施例可以通过多个部件来实现并且不应限定于上述的那些。因此旨在于将本发明解释为包括落入本发明精神和范围之内的所有变形和等同方案。

Claims (17)

1.一种器件,包括:
逻辑块,其中所述逻辑块包括多个逻辑元件;
配置逻辑,所述配置逻辑与所述逻辑块相关联,其中所述配置逻辑可操作为标识存储在所述多个逻辑元件中的值;
第一存储器单元,所述第一存储器单元存储模式标记值,其中所述模式标记值可操作为标识所述配置逻辑是存储用户定义状态还是存储设计状态,其中响应于所述配置逻辑存储所述用户定义状态,而不将所述配置逻辑包括在数据验证和校正过程中,并且其中响应于所述配置逻辑存储所述设计状态,而将所述配置逻辑包括在所述数据验证和校正过程中;以及
第二存储器单元,所述第二存储器单元存储使能读取标记值,其中所述使能读取标记值可操作为标识在所述数据验证和校正过程期间是否将读出存储在所述配置逻辑中的值或者是否将读出已知状态。
2.根据权利要求1所述的器件,其中,不将所述配置逻辑包括在所述数据验证和校正过程中防止了所述数据验证和校正过程修改所述配置逻辑。
3.根据权利要求1所述的器件,其中,定位所述模式标记值或者使能读取标记值,以减少在所述数据验证和校正过程期间扫描所述模式标记值或者使能读取标记值与扫描所述配置逻辑之间的时间。
4.根据权利要求1所述的器件,其中,所述用户定义状态具有随机存取存储器或者移位寄存器的功能。
5.根据权利要求1所述的器件,其中,所述模式标记值或者使能读取标记值包括单个数据比特。
6.根据权利要求1所述的器件,其中,通过使用三模冗余、更大门面积、保护性电容器或者使用增大的电压来实施所述模式标记值或者使能读取标记值。
7.根据权利要求1所述的器件,其中,所述逻辑块是现场可编程门阵列(FPGA)块,并且其中所述存储器单元是随机存取存储器单元、锁存器或者寄存器。
8.根据权利要求1所述的器件,其中,所述模式标记值和使能读取标记值与用于多于一个逻辑块的配置逻辑相关联。
9.根据权利要求1所述的器件,其中,所述模式标记值和使能读取标记值位于所述配置逻辑的不同区域中。
10.根据权利要求1所述的器件,进一步包括:
配置随机存取存储器(CRAM)单元阵列,其中所述配置逻辑、模式标记值以及使能读取标记值被存储在包含于所述CRAM单元阵列中的至少一列CRAM单元中。
11.根据权利要求10所述的器件,其中,所述配置逻辑占据多于一列的CRAM单元。
12.根据权利要求10所述的器件,其中,所述配置逻辑被存储在与所述模式标记值和使能读取标记值不同的CRAM单元列中。
13.一种方法,包括:
确定逻辑块被配置用于存储用户定义状态还是存储设计状态;
响应于确定所述逻辑块被配置用于存储用户定义状态:
设置使能读取标记值以指示应当在数据验证和校正过程期间读出已知状态;以及
设置模式标记值以指示所述配置逻辑应当不被包括在所述数据验证和校正过程中,其中所述配置逻辑可操作为标识存储在与所述逻辑块相关联的多个逻辑元件中的值;以及
响应于确定所述逻辑块被配置用于存储设计状态:
设置所述模式标记值以指示所述配置逻辑应当被包括在所述数据验证和校正过程中;以及
设置所述使能读取标记值以指示在所述数据验证和校正过程期间应当读出存储在所述配置逻辑中的值。
14.根据权利要求13所述的方法,其中,通过编码方案来标识所述使能读取标记值和所述模式标记值。
15.根据权利要求13所述的方法,其中,定位所述模式标记值或者使能读取标记值,以减少在所述数据验证和校正过程期间扫描所述模式标记值或者使能读取标记值与扫描所述配置逻辑之间的时间。
16.根据权利要求13所述的方法,其中,使用三模冗余、更大门面积、保护性电容器或者使用增大的电压来实施所述模式标记值或者使能读取标记值。
17.根据权利要求13所述的方法,进一步包括将存储在所述配置逻辑中的值设置为初始化的状态。
CN201210228939.4A 2011-07-01 2012-06-29 可重构逻辑块 Active CN102857213B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201161504115P 2011-07-01 2011-07-01
US61/504,115 2011-07-01
US13/369,226 2012-02-08
US13/369,226 US8572538B2 (en) 2011-07-01 2012-02-08 Reconfigurable logic block

Publications (2)

Publication Number Publication Date
CN102857213A true CN102857213A (zh) 2013-01-02
CN102857213B CN102857213B (zh) 2017-03-29

Family

ID=46545621

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210228939.4A Active CN102857213B (zh) 2011-07-01 2012-06-29 可重构逻辑块

Country Status (3)

Country Link
US (2) US8572538B2 (zh)
EP (1) EP2541773B1 (zh)
CN (1) CN102857213B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106445748A (zh) * 2016-09-27 2017-02-22 中国科学院空间应用工程与技术中心 一种三模冗余验证方法
CN107078740A (zh) * 2014-10-22 2017-08-18 太阳诱电株式会社 可重构设备
CN108829903A (zh) * 2017-11-09 2018-11-16 北京广利核系统工程有限公司 判定fpga冗余设计的代码与综合后电路一致性的方法和系统
CN105453436B (zh) * 2013-09-16 2019-01-01 太阳诱电株式会社 可重构逻辑器件

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8572538B2 (en) * 2011-07-01 2013-10-29 Altera Corporation Reconfigurable logic block
US8868820B2 (en) * 2011-10-31 2014-10-21 Microsemi SoC Corporation RAM block designed for efficient ganging
JP5500282B1 (ja) * 2013-02-28 2014-05-21 日本電気株式会社 障害修復装置、障害修復方法、及び、障害修復プログラム
DE102013225131A1 (de) * 2013-12-06 2015-06-11 Robert Bosch Gmbh Verfahren zur Fehlerüberprüfung einer hardware-konfigurierbaren Logikschaltung
JP6220972B2 (ja) * 2014-06-18 2017-10-25 株式会社日立製作所 集積回路およびプログラマブルデバイス
CN105677966B (zh) * 2016-01-05 2018-10-19 浪潮集团有限公司 一种对覆盖率进行数据挖掘加速验证收敛的方法
US10572430B2 (en) * 2018-10-11 2020-02-25 Intel Corporation Methods and apparatus for programming an integrated circuit using a configuration memory module
DE102020120488A1 (de) * 2019-12-20 2021-06-24 Taiwan Semiconductor Manufacturing Co. Ltd. Verfahren zur nachschlagtabellenfreien speicherreperatur

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6507211B1 (en) * 1999-07-29 2003-01-14 Xilinx, Inc. Programmable logic device capable of preserving user data during partial or complete reconfiguration
US20050071730A1 (en) * 2003-09-30 2005-03-31 Lattice Semiconductor Corporation Continuous self-verify of configuration memory in programmable logic devices
CN101578768A (zh) * 2007-11-12 2009-11-11 松下电器产业株式会社 可重构电路、复位方法及结构信息生成装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7702978B2 (en) * 2006-04-21 2010-04-20 Altera Corporation Soft error location and sensitivity detection for programmable devices
US7937647B2 (en) * 2007-07-27 2011-05-03 Actel Corporation Error-detecting and correcting FPGA architecture
WO2009039462A1 (en) * 2007-09-19 2009-03-26 Tabula, Inc. Method and system for reporting on a primary circuit structure of an integrated circuit (ic) using a secondary circuit structure of the ic
US8436646B1 (en) * 2011-07-01 2013-05-07 Altera Corporation Reconfigurable logic block with user RAM
US8572538B2 (en) * 2011-07-01 2013-10-29 Altera Corporation Reconfigurable logic block

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6507211B1 (en) * 1999-07-29 2003-01-14 Xilinx, Inc. Programmable logic device capable of preserving user data during partial or complete reconfiguration
US20050071730A1 (en) * 2003-09-30 2005-03-31 Lattice Semiconductor Corporation Continuous self-verify of configuration memory in programmable logic devices
CN101578768A (zh) * 2007-11-12 2009-11-11 松下电器产业株式会社 可重构电路、复位方法及结构信息生成装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105453436B (zh) * 2013-09-16 2019-01-01 太阳诱电株式会社 可重构逻辑器件
CN107078740A (zh) * 2014-10-22 2017-08-18 太阳诱电株式会社 可重构设备
CN106445748A (zh) * 2016-09-27 2017-02-22 中国科学院空间应用工程与技术中心 一种三模冗余验证方法
CN106445748B (zh) * 2016-09-27 2019-01-04 中国科学院空间应用工程与技术中心 一种三模冗余验证方法
CN108829903A (zh) * 2017-11-09 2018-11-16 北京广利核系统工程有限公司 判定fpga冗余设计的代码与综合后电路一致性的方法和系统
CN108829903B (zh) * 2017-11-09 2021-11-05 北京广利核系统工程有限公司 判定fpga冗余设计的代码与综合后电路一致性的方法和系统

Also Published As

Publication number Publication date
US8935645B2 (en) 2015-01-13
US20140047401A1 (en) 2014-02-13
US20130007679A1 (en) 2013-01-03
EP2541773B1 (en) 2014-06-25
CN102857213B (zh) 2017-03-29
EP2541773A1 (en) 2013-01-02
US8572538B2 (en) 2013-10-29

Similar Documents

Publication Publication Date Title
CN102857213A (zh) 可重构逻辑块
EP3076298B1 (en) Methods and apparatus for embedding an error correction code in memory cells
US8560927B1 (en) Memory error detection circuitry
US8869091B2 (en) Incremental clock tree synthesis
US9298865B1 (en) Debugging an optimized design implemented in a device with a pre-optimized design simulation
US20180046580A1 (en) Multi-mode radiation hardened multi-core microprocessors
Kyriakoulakos et al. A novel SRAM-based FPGA architecture for efficient TMR fault tolerance support
US10970167B2 (en) Memory device
US9575862B1 (en) Integrated circuits with error handling capabilities
Cardona et al. AC_ICAP: A flexible high speed ICAP controller
US9601217B1 (en) Methods and circuitry for identifying logic regions affected by soft errors
Baig et al. An island-style-routing compatible fault-tolerant FPGA architecture with self-repairing capabilities
US10360342B2 (en) Method, system, and storage medium for engineering change order scheme in circuit design
US8436646B1 (en) Reconfigurable logic block with user RAM
CN102460582B (zh) 嵌入式数字ip条芯片
US9298875B2 (en) Semiconductor circuit design method, memory compiler and computer program product
US7134104B2 (en) Method of selectively building redundant logic structures to improve fault tolerance
US11966676B2 (en) Soft error-mitigating semiconductor design system and associated methods
Ban et al. Critical Gates Identification for Fault‐Tolerant Design in Math Circuits
US20140189620A1 (en) Netlist abstraction
Niknahad et al. QFDR-an integration of Quadded Logic for modern FPGAs to tolerate high radiation effect rates
Alderighi et al. A preliminary study about SEU effects on programmable interconnections of SRAM-based FPGAs
US11132483B2 (en) Method and arrangement for forming an electronic circuit
Kamanu et al. A new architecture for single-event detection & reconfiguration of SRAM-based FPGAs
Foster et al. Applying partial fault tolerance with explicit area constraints

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