CN113039722B - 用于在可重新编程的集成电路器件部分重配置期间确保io接口稳定的电路和方法 - Google Patents
用于在可重新编程的集成电路器件部分重配置期间确保io接口稳定的电路和方法 Download PDFInfo
- Publication number
- CN113039722B CN113039722B CN201980075460.1A CN201980075460A CN113039722B CN 113039722 B CN113039722 B CN 113039722B CN 201980075460 A CN201980075460 A CN 201980075460A CN 113039722 B CN113039722 B CN 113039722B
- Authority
- CN
- China
- Prior art keywords
- circuit
- input
- data
- receive
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17736—Structural details of routing resources
- H03K19/17744—Structural details of routing resources for input/output signals
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17748—Structural details of configuration resources
- H03K19/17752—Structural details of configuration resources for hot reconfiguration
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17748—Structural details of configuration resources
- H03K19/17756—Structural details of configuration resources for partial configuration or partial reconfiguration
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17748—Structural details of configuration resources
- H03K19/1776—Structural details of configuration resources for memories
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Logic Circuits (AREA)
- Dc Digital Transmission (AREA)
Abstract
本申请描述了一种在集成电路器件中用于路由数据(Data)的电路(300)。电路(300)包括:输入/输出端口(307);接口电路(301),接口电路(301)耦接至输入/输出端口并被配置为接收数据(Data),所述接口电路包括选择电路(310),选择电路(310)使能数据和预定值(Constant 2)的选择;以及控制电路(311),控制电路(311)被耦接以控制选择电路(310);在集成电路器件的部分重配置期间(hold),响应于控制信号(311out),控制电路使输入/输出端口保持在预定值(Constant 2)。本申请还描述了一种在集成电路器件中配置电路以路由数据的方法。
Description
技术领域
本发明总体上涉及集成电路器件,并且具体地,涉及用于在可重新编程的集成电路器件部分重配置期间确保IO接口稳定的电路和方法。
背景技术
可编程逻辑器件是使集成电路的用户能通过用户选择的电路设计对器件进行编程的集成电路器件。可编程逻辑器件可以根据需要重新配置,并通常会经历部分重配置(partial reconfiguration,PR)。尽管部分重配置是有益的,但也会存在缺点或者导致不良后果。在大多数使用部分重配置的系统中,外部输入/输出(IO)接口是固定的且无法被重配置。但是,连接到这些接口的可编程逻辑可能依赖多个部分重配置而作为正常系统操作的一部分。
因此,在部分重配置期间,在IO电路中提供可预测以及可接受的性能是有必要的。
发明内容
本申请描述了用于在集成电路器件中提供稳定值的电路,例如在部分重配置期间在外部输入/输出接口上提供稳定值。输入/输出电路包括:输入/输出端口;接口电路,所述接口电路耦接到所述输入/输出端口并被配置为接收数据,所述接口电路包括选择电路,所述选择电路使能所述数据或预定值的选择;以及控制电路,所述控制电路被耦接以控制所述选择电路;其中响应于控制信号,所述控制电路在所述集成电路器件的部分重配置期间使所述输入/输出端口保持在所述预定值。
本申请还描述了用于在集成电路器件中提供稳定值的方法,例如在部分重配置期间在外部输入/输出接口上提供稳定值。所述方法包括将接口电路耦接至输入/输出端口,其中所述输入/输出端口被配置为接收数据,所述接口电路包括选择电路,所述选择电路使能所述数据和预定值的选择;配置控制电路以控制所述选择电路;以及响应于来自所述控制电路的控制信号,在所述集成电路器件的部分重配置期间使所述输入/输出端口保持在所述预定值。
附图简述
图1是具有IO电路的集成电路的框图;
图2是集成电路器件的IO电路的框图;
图3是用于集成电路器件的异步IO电路的框图;
图4是用于集成电路器件的同步IO电路的框图;
图5是图4的同步IO电路操作的时序图;
图6是集成电路器件的另一IO电路的框图;
图7是集成电路器件与集成电路器件的输入/输出焊盘(IO Pads)有关的部分的框图;
图8是示出IO电路耦接到存储器元件的实施方式的框图;
图9是示出在保持操作(Hold operation)期间IO电路耦接至存储器元件的实施方式的框图;
图10是可编程逻辑装置的另一框图;
图11是图10的可编程逻辑器件的可重配置逻辑元件的框图;
图12是示出在集成电路器件中实现IO电路的方法的流程图;
具体实施方式
在PR事件期间,本申请实现IO接口的电路和方法使集成电路输出处的值保持在一个特定的电压。根据一些实施方式,在PR事件期间,通过使用输出路径的现有时钟,输出值可以被同步切换成可编程常数值(constant value)。也就是说,当保持信号有效时(asserted),IO接口使预定的常数值被同步切换。在PR事件期间,通过使用三态路径的现有时钟,IO接口的三态缓冲器的三态控制值也可以被同步切换为可编程的常数值。因此,IO编程可以在PR事件期间被保留,并且可以基于每个IO对被选择。根据其他实施方式,可以采用异步操作,其中当保持信号有效时,被切换为常数值。正如下文所述的,在集成电路器件部分重配置期间,所述电路和方法通过将IO接口处的值保持为固定值而提供稳定的IO。
尽管说明书包括权利要求,并且权利要求限定了新颖发明的一个或多个实施方式的特征,但是可以相信,通过结合附图参阅具体实施方式可以更好地理解电路和方法。尽管各种电路和方法已经被公开,但是应该理解,这些电路和方法仅仅是本发明布置的示例,而它们可以以各种形式体现。因此,在本说明书中公开的特定结构和功能细节不应被解释为是限制性的,而是应仅仅作为权利要求的基础以及作为教导本领域技术人员的代表性基础,从而在实际中以任何合适的细节性结构实施本发明的布置。此外,本文所使用的术语和短语不是为了限制,而是提供电路和方法的可以被理解的描述。
首先转向图1,示出了具有IO电路的集成电路器件100的框图。具体地,输入/输出端口102耦接到控制电路104,控制电路104控制具有可重制逻辑元件109的可编程资源106以及其他可编辑资源,例如输入/输出模块(IOB)以及随机存取存储器模块(BRAM)。配置数据可以由配置控制器110提供给配置存储器108。配置数据使能可编程资源106的操作。存储器113可以耦接到控制电路104以及可编程资源106。收发器电路114包括发送器和接收器,其可以耦接到控制电路104、可编程资源106以及存储器113,并且可以通过I/O端口116和117在集成电路处接收信号。其他I/O端口可以耦接到集成电路器件的电路,例如如图所示,I/O端口118可以耦接到控制电路104。时钟网络120耦接到图1电路的各种元件上。尽管以示例的方式提供了图1的电路,但是也可以使用其它在部分重配置期间要求保持数据值的实施IC电路的其他电路。
现在转向图2,示出了集成电路器件的IO电路200的框图。控制电路202耦接到输入/输出端口204。控制电路202在时钟输入206处接收时钟信号并生成保持(HOLD)信号和保持数据(HOLD DATA),其中保持信号被提供给控制输入208,保持数据被提供给第一数据输入210。正如将在下面更详细描述的,保持数据(HOLD DATA)是IO端口204的输出数据(OUTPUT)处要被保持的电压。除了接收保持信号和保持数据,在第二数据输入212处向IO电路提供数据,从而在常规操作(例如,部分重配置操作外的操作)期间在输出214处作为输出数据(Output)被生成。IO端口204还可以在第二时钟输入216处接收时钟信号。
尽管示出了输入/输出端口,但是应当理解,输入/输出端口204可以作为专用输入电路或专用输出电路。例如,图2的电路可以在图1的IO模块或在图10的输入输出逻辑(IOL)中实现。如下文的细节所描述的,输出214生成的输出数据可以用于在另一个电路的节点上保持电压,例如存储器电路(例如,作为具有输入/输出电路200的集成电路的一部分,或与具有输入/输出电路200的集成电路相独立)。图2以及在下文中详细描述的图3-6描述了在部分重配置期间将作为输入/输出端口的输出的值保持在固定值。应当理解的是,电路和方法可以被用于保持输入/输出端口,其中输入/输出端口意在以预定值作为输入端口运行。例如,在图2的实施方式中,输入数据可以耦接至端口214(即,输入/输出端口作为输入运行),输入数据在212处(即,输入212用作输出)生成,或212能生成固定值。也就是说,控制电路202可以控制输入/输出端口204以使其作为输入端口运行,其中路由接收的数据的节点被保持在固定值(例如,输入212作为输入/输出端口204的输出而运行)。
现在转向图3,示出了用于集成电路器件的异步IO电路300的框图。根据图3的实施方式,接口电路301是耦接到输入/输出端口的电路,其包括第一寄存器302,此处作为示例,第一寄存器302被表示为触发器,其被配置为在输入303处接收三态(TRISTATE)信号以及在时钟输入处接收时钟(CLK)信号。寄存器302的输出耦接至选择电路304,选择电路304的输出选择三态控制信号(IO_T_VAL),三态控制信号控制三态缓冲器306。三态缓冲器的输出耦接至IO焊盘307。选择电路304的控制端用于选择由寄存器302生成的三态控制信号或选择常数(CONSTANT1)值(其为预定电压)。正如下文所详细描述的,在部分重配置期间可以选择常数值。
数据通过寄存器308被路由到IO焊盘307,其中寄存器308具有输入309,用于接收在集成电路的正常操作(例如,部分重配置以外的操作)期间生成于IO端口处的数据(DATA)。时钟输入还接收时钟信号。选择电路310(也示例性地显示为多路复用器)可以选择寄存器308生成的数据或常数(CONSTANT2)值作为IO_OUT_VAL信号提供到三态缓冲器306的数据输入。例如在部分重配置操作期间,常数值可以由选择电路310选择以及作为IO_OUT_VAL信号提供给三态缓冲器306的数据输入,以使得IO焊盘307处的电压保持在预定电压(例如,逻辑“0”或逻辑“1”)。
选择电路304以及选择电路310由控制信号控制,其中控制信号由控制电路311生成并被提供至选择电路的控制端。更具体来说,控制电路311的逻辑电路312的输出(在此被示例性的表示为包括“与”门312)被配置为接收保持(HOLD)信号和完成(COMPLETE)信号。HOLD信号可以作为部分重配置的请求,COMPLETE信号可被用作指示初始配置的状态已完成,然后可以执行部分重配置。在操作期间,保持信号和完成信号被用于生成输出,该输出将选择在正常操作期间使用的三态和数据信号,以向IO焊盘307提供数据或向IO焊盘提供固定的预定值(例如在部分重配置期间)。
现在转向图4,示出了用于集成电路器件的同步IO电路400的框图。根据图4的实施方式,控制电路401也包括逻辑电路402(在此作为示例表示为“与”门)。在逻辑电路402的输出处,寄存器404和406被串联地实施,以确保在选择电路304和310生成的信号中选择的信号与到寄存器302和308的三态和数据输入同步。如图5的时序图所示,在控制电路401的输出处生成的恒定同步(CONSTANT_SYNC)信号在部分重配置期间使三态控制和数据值(IO_OUT_VAL和IO_T_VAL)同步。
现在转向图6,示出了用于集成电路器件的另一个IO电路600的框图。IO电路600包括由控制电路602控制的接口电路601。控制电路602的逻辑电路603(在此作为示例表示为“与”门)被配置为接收保持(HOLD)信号和完成(COMPLETE)信号。逻辑电路603的输出是部分重配置保持(PR_HOLD)信号和由延迟元件606生成的延迟部分配置保持(PR_HOLD_Delayed)信号,部分重配置保持(PR_HOLD)信号耦接到逆变器604,逆变器604被配置为生成逆变的部分配置保持(PR_HOLD_B)信号。部分配置保持信号,包括PR_Hold、PR_HOLD_B以及PR_HOLD_Delayed,用于控制多个选择电路(在此作为示例表示为多路复用器)。
第一选择电路608被配置为接收终端(Termination)值和部分重配置(PR_constant)值(例如,在部分重配置期间输出要保持的值),其中响应于提供至选择电路608的选择输入的PR_Hold_Delayed信号而生成输出。第一选择电路608的输出和延迟输出(通过延迟元件610生成)耦接至另一个选择电路612,其中响应于提供至选择电路612的控制端的PR_Hold信号而生成到IO端口614的数据输入。当Termination值被选择电路608选择时,可以控制IO端口614的阻抗,从而在IO端口处接收输入数据(DATA)。当选择电路608选择PR_Constant时,IO端口614的输出可以被保持在预定值,例如在部分重配置期间。
在IO电路600中提供了其他的电路元件,从而使能IO端口614。选择电路616被耦接以接收用于正常操作的使能信号(Data_EN)以及部分重配置使能信号(PR_Constant)。延迟元件618生成的输出和延迟输出被提供给选择电路620的输入,其中响应于提供至选择电路620的控制端的PR_Hold_B信号,选择电路620生成用于IO端口614的使能(Enable)信号。使能信号使IO端口614根据提供至IO电路614的数据(Date)或者选择电路612的输出而生成输出。也即是说,在IO接口的输出处生成的数据可以包括IO电路614的正常操作期间生成的数据或者包括预定的固定值,其中预定的固定值用于保持IO电路输出处的值,例如在部分重配置期间用于外部电路(例如,存储器)。值得注意的是,Termination值、PR_constant值以及Data_En值可以存储在输出耦接至选择电路608和616的寄存器中。
可以包括延迟元件以确保存在先通后断连接(make-before-break connection)。更具体地说,延迟元件606用于生成延迟PR Hold信号,从而在612和620被选择前不选择选择电路608和616的输出。延迟元件618可以用于延迟数据使能值(例如,Data_En),从而在正常操作期间发送的数据(DATA)不可用前使终端值(例如,Termination)准备就绪。因此,延迟元件618确保输出信号总是在逻辑0或1。而且,当PR保持期间输出处的值脱离保持时,使选择电路608的输出处生成的终端值延迟是有利的,例如通过使用延迟元件618。还应当注意,选择电路612和620的操作是相反的,在进入PR Hold模式时,多路复用器608的延迟输出被使用;在退出PR Hold模式时,多路复用器616的延迟输出被使用。如以上参考图2所描述的,图3、图4以及图6的输入/输出端口307和614可以用作输入端口,其中输入端口处的值被保持为固定值。
现在转向图7,示出了与集成电路器件的IO焊盘操作相关的集成电路器件的部分的框图。图7的集成电路的部分包括结构(fabric)702,结构702包括可编程逻辑设备的可编程资源,例如参考图10、图11所描述的,物理接口(PHY)704、物理IO(PIO)706以及接触元件708,例如集成电路器件的接触焊盘或其他用于在一个电路和另一电路之间建立电气连接的连接元件。例如,在接触元件708处保持电压值的电路和方法可以在PIO 706中实现,并由结构702中的电路和PHY 704控制。根据其他实施例,IO接口可以布置在结构(Fabric)和PHY之间,这可能需要更多的多路复用器和恒定编程值。IO接口电路可以与不同的IO接口类型一起使用。例如,IO可以通过物理接口(PHY)连接到硬双倍数据速率存储控制器(DDRMC,其中不需要至结构的连接),例如通过PHY到可编程逻辑器件的结构、通过PHY(组件)结构、以及通过PHY引线到结构。
现在转向图8,示出了耦接到存储器元件的IO电路的实施方式的框图。第一电路802耦接到第二电路,其中例如,第一电路802可以是类似可编程逻辑器件之类的集成电路,第二电路可以是类似双倍数据速率4(DDR4)存储器的存储电路。包括存储器逻辑接口的可重配置逻辑模块806在多个输出处生成逻辑值(例如,逻辑“1”或“0”),在此以示例的方式示出为配置接收数据和三态控制信号的三态缓冲器。第一电路802的多个输出焊盘以及对应的第二电路804的输入焊盘包括耦接到对应时钟使能输入焊盘812的时钟使能(CKE)输出焊盘810、耦接到对应芯片选择焊盘816的芯片选择焊盘(CS_n)814、耦接到对应激活开放行焊盘820的激活开放行(ACT_n)焊盘818、耦接到对应列地址选择焊盘824的列地址选择(CAS_n)焊盘822、耦接到对应行地址选择焊盘828的行地址选择(RAS_n)焊盘826以及耦接到对应写入使能焊盘832的写入使能(WE_n)焊盘830。
根据一种实施方式,上述电路和方法可以用于在自刷新模式中保持存储设备的值。如图8所示,接口控制器首先将自刷新进入命令(CS_n、RAS_n、CAS_n以及带有WE_n和ACT_n HIGH的CKE held LOW)应用到缓冲器808,如图9所示包括由部分重配置保持(PR_Hold)信号(由重配置逻辑模块806生成)的激活而强制的值,以在接口控制器被重配置时使存储器保持自刷新模式。也就是说,在部分重配置期间,输出焊盘808、810、814、818、822、826以及830的值被保持在特定值,以维持自刷新模式。可以理解的是,电路802和804可以实现在单个IC芯片(die)上、实现在单个器件的单独IC芯片上(例如,具有直接连接IC芯片的多芯片模块和板)、实现在印制电路板(PCB)上的单独芯片上(例如,直接连接芯片)或实现在单独的IC封装上。
电路和方法通过消除在IO接口和可编程逻辑之间实现分离逻辑(这可能需要使用原本可以用于其他更好应用的可编程逻辑)的需求而提供改进的性能,并且在PR即将发生时激活去耦合控制信号。电路和方法在可重构模块中阻止IO接口的实施,而在IO接口实施的案例中,在再次使用前,接口必须关闭、重新编辑并重新校准。这种IO接口的实施是不被期待的,原因是,例如,在部分重配置过程中会增加额外的时间,同时可能导致外部存储器中的数据损失。
现在转向图10,示出了具有IO电路的可编程逻辑器件的框图。尽管在任何类型的集成电路器件中均可以实现具有可编程资源的器件,例如具有可编程资源的专用集成电路(ASIC)、其他包括专用可编程逻辑器件(PLD)的设备。其中一种类型的PLD是复杂可编程逻辑器件(CPLD)。CPLD包括两个或更多个“功能块”,它们通过互连开关矩阵连接在一起并连接到输入/输出(I/O)资源。CPLD的每一个功能块均包括两层的“与/或”结构,类似于在可编程逻辑阵列(PLA)或可编程阵列逻辑设备(PAL)中使用的。另一种类型的PLD是现场可编程门阵列(FPGA)。在典型的FPGA中,可配置逻辑块(CLB)的阵列耦接到可编程输入/输出模块(IOB)。CLB和IOB通过可编程路由资源的层次结构互连。通过加载配置比特流(通常从片外存储器到FPGA的配置存储单元中),这些CLB、IOB和可编程路由资源可以被定制。对于这些类型的可编程逻辑器件,器件的功能性由提供给该器件的配置比特流的配置数据比特(或在部分重配置期间发送的配置数据比特)控制。配置数据比特可以存储在易失性存储器(例如,在FPGA和一些CPLD中的静态存储单元)、非易失性存储器(例如,在一些CPLD中的闪速存储器)或其他类型的存储单元中。
图10示出的器件包括FPGA架构1000,该FPGA架构1000包括大量不同的可编程片(programmable tile),包括多千兆比特收发器(MGT)1001、CLB 1002、随机存取存储块(BRAM)1003、输入输出模块(IOB)1004、配置和时钟逻辑(CONFIG/CLOCKS)1005、数字信号处理模块(DSP)1006、专用输入/输出块(I/O)1007(例如,配置端口以及时钟端口)以及其他可编程逻辑1008,例如数字时钟管理器、数模转换器、系统监视逻辑等。一些FPGA还包括专用处理器块(PROC)1010,例如其可以用于实现软件应用。
在一些FPGA中,每个可编程片包括可编程的互连元件(INT)1011,可编程的互连元件1011具有到和来自每个相邻片中对应互连元件的标准化连接。因此,可编程互连元件一起实现了用于所示FPGA的可编程互连结构。可编程互连元件1011还包括到和来自相同片的可编程逻辑元件的连接,如图10顶部的示例所示。
例如,CLB 1002可以包括可配置逻辑元件(CLE)1012,其可以被编程以实现用户逻辑以及单个可编程互连元件1011。除了一个或多个可编程互连元件外,BRAM1003还可以包括BRAM逻辑元件(BRL)1013。BRAM包括独立于可配置逻辑块的分布式RAM的专用存储器。通常,片(tile)中互连元件的数量取决于片的高度。在图示的实施例中,BRAM片的高度相当于5个CLB,但也可以使用其他数量。DSP片1006除了适当数量的可编程互连元件外,还可以包括DSP逻辑元件(DSPL)1014。例如,除了可编程互连元件1011的一个实例外,IOB 1004还可以包括输入/输出逻辑元件(IOL)1015的两个实例。电路和方法可以通过使用IOL 1015来实现。器件的连接位置由提供给器件的配置比特流的配置数据比特控制。响应于配置比特流的比特,可编程互连使包括互连线的连接用于将各种信号耦接至可编程逻辑中实现的电路或其他电路,例如BRAM或处理器。
在图示的实施例中,靠近芯片中心的列区域被用于配置、时钟和其他控制逻辑。从该列延伸的配置/时钟分配区域1009被用于在FPGA的整个宽度上分配时钟和配置信号。利用图示10中结构的FPGA包括其他逻辑块,这些逻辑块破坏了构成大部分FPGA的常规列结构。其他逻辑块可以是可编程模块和/或专用逻辑。例如,图10中示出的处理器块PROC 1010横跨了几列CLB和BRAM。
图10仅意在说明FPGA架构的一个示例。列中逻辑块的数量、列的相对宽度、列的数量和顺序、列中逻辑块的种类、逻辑块的相对大小以及包含在图10顶部的互连/逻辑实现仅仅是示例性的。例如,在实际的FPGA中,在CLB出现的任何地方都包括多于一列的相邻CLB,以方便用户逻辑的有效实现。图10的实施方式与包括可编程资源的集成电路有关,应当理解,上述电路和方法可以在具有可编程资源和硬模块(hard block)结合的任何类型的设备中实现。
现在转向图11,示出了可在图10中实现的可配置逻辑元件的框图。具体地,图11示出了简化形式的可配置逻辑元件,其为图10可配置逻辑块1002的可编程逻辑的示例。在图11的实施方式中,切片M(slice M)1101包括四个查找表(LUTM)1101A-1101D,每个查找表都由六个LUT数据输入端A1-A6、B1-B6、C1-C6、D1-D6驱动,每个查找表分别提供两个LUT输出信号O5和O6。LUT 1101A-1101D的O6输出端分别驱动切片输出端A-D。LUT数据输入信号由FPGA互连结构通过输入多路复用器提供,FPGA互连结构可以由可编程互连元件1111实现,LUT输出信号还被提供至互连结构。切片M还包括:输出选择复用器1111A-1111D、它们驱动输出端AMUX-DMUX;多路复用器1112A-1112D,它们驱动存储器元件1102A-1102D的数据输入端;组合多路复用器1116、1118和1119;反弹多路复用器1122-1123;由逆变器1105和多路复用器1106代表的电路(共同在输入时钟路径上提供可选的逆变);以及具有多路复用器1114A-1114D、1115A-1115D、1120-1121以及异或门1113A-1113D的进位逻辑(carrylogic)。如图11所示,所有的这些元件被耦接在一起。图11所示的多路复用器未显示选择输入,选择输入由配置存储器单元控制。也即是说,存储在配置存储器单元中的配置比特流的配置比特耦接到多路复用器的选择输入,以选择到多路复用器的合适输入。为了清楚显示,图11以及其他选择的图省略了众所周知的配置存储器单元。
在图示的实施方式中,每个存储器元件1102A-1102D都可以被编程为同步或异步触发器或锁存器(latch)。通过对同步/异步选择电路1103进行编程,可以对切片中的所有四个存储器元件进行同步和异步功能的选择。当对存储器元件进行编程以使S/R(设置/复位)输入信号提供设置功能时,REV输入端提供复位功能。当对存储器元件进行编程以使S/R输入信号提供复位功能时,REV输入端提供设置功能。存储器元件1102A-1102D由时钟信号CK计时,时钟信号CK可以由全球时钟网络或互连结构提供。这种可编程存储器元件在FPGA设计领域是众所周知的。每个存储器元件1102A-1102D将寄存输出信号AQ-DQ提供给互连结构。因为每个LUT 1101A-1101D提供两个输出信号O5及O6,LUT可以被配置作为为具有5个共享输入信号(IN1-IN5)的两个5-输入LUT,或配置作为为具有输入信号IN1-IN6的一个6-输入LUT。
在图示11的实施例中,每个LUTM 1101A-1101D可以在任何几种模式下运行。在查找表模式下,每个LUT具有六个数据输入信号IN1-IN6,这些信号由FPGA互连结构通过输入多路复用器提供。基于信号IN1-IN6的值,可从配置存储器单元中编程地选择64个数据值中的一个数据值。在RAM模式中,每个LUT用作单个64位RAM或两个具有共享地址的32位RAM。RAM写入数据通过输入端DI1(通过用于LUT1101A-1101C的多路复用器1117A-1117C)提供至64位RAM,或经由输入端DI1和DI2提供至两个32位RAM。LUT RAM中的RAM写入操作由来自多路复用器1106的时钟信号CK以及来自多路复用器1107的写入使能信号WEN控制,它们可以选择性地通过时钟使能信号CE或写入使能信号WE。在移位寄存器模式下,每个LUT用组两个16位移位寄存器,或者与两个16位移位寄存器串联耦接组成单个32位移位寄存器。通过一个或两个输入端DI1及DI2提供移入信号。通过LUT输出端提供16位和32位移出信号,以及更直接的通过LUT输出端MC31提供32位移出信号。通过输出选择多路复用器1111D以及CLE输出端DMUX将LUT 1101A的32位移出信号MC31提供至用于移位寄存器链接的通用互连结构。因此,以上的电路和方法可以在如图10和图11的器件或者其他合适的器件中实现。
现在转向图12,示出了在集成电路器件中实现IO电路的方法的流程图。在块1202处,接口电路耦接至输入/输出端口,其中输入/输出端口被配置为接收数据,接口电路包括使能数据和预定值选择的选择电路。例如,输入/输出端口可以是图2、3、4和6的输入/输出端口。在块1204处,控制电路被配置为控制接口电路的选择电路。例如,控制电路可以是图2、3、4和6的控制电路。在块1206处,在部分重配置期间响应于来自控制电路的控制信号,输入/输出端口被保持在预定值,例如逻辑0或逻辑1。
根据一个实施方式,配置接口电路可包括配置多路复用器,该多路复用器包括接收数据的第一输入以及接收预定值的第二输入。方法可进一步包括配置寄存器,该寄存器具有接收数据的数据输入以及响应于时钟信号生成数据的数据输出。方法还可以包括在选择电路的输出及输入/输出端口之间耦接三态缓冲器,以及配置第二寄存器以接收缓冲器控制信号,其中缓冲器控制信号用于控制三态缓冲器。可实现第二选择电路,其中第二选择电路具有被配置为通过第二寄存器接收缓冲器控制信号的第一输入以及配置为接收第二预定值的第二输入。配置第二选择电路包括配置多路复用器,多路复用器具有通过第二寄存器接收缓冲器控制信号的第一输入以及接收第二预定值的第二输入。控制电路的输出耦接至第二选择电路的控制端。方法还可以包括配置寄存器以接收数据以及时钟信号,以及配置同步电路以接收时钟信号和生成耦接至选择电路的同步控制信号。配置同步电路可以包括配置多个串联的寄存器,以在数据输入处接收控制信号以及接收时钟信号,其中同步控制信号在多个寄存器的输出处生成。正如图8和9中描述的,存储器可以耦接至输入/输出端口,其中输入/输出端口处的值在部分重配置期间被保持在预定值。
图12的方法可以通过使用图1-11的电路或其他适合的电路来实现。尽管描述了该方法的特定元件,应当理解该方法的其他元件或其他元件相关的细节可以根据图1-图6公开的内容来实现。
例如,在集成电路器件中用于路由数据的电路包括:输入/输出端口;耦接至输入/输出端口并被配置为接收数据的接口电路,接口电路包括选择电路,选择电路使能数据和预定值的选择;以及被耦接以控制选择电路的控制电路,其中控制电路在集成电路器件的部分重配置期间将输入/输出端口保持在预定值;
例如,选择电路包括多路复用器,多路复用器具有被配置为接收数据的第一输入和被配置为接收预定值的第二输入。例如,电路进一步包括寄存器,寄存器具有被配置为接收数据的数据输入以及被配置为响应于时钟信号生成数据的数据输出,其中数据耦接至选择电路的第一输入。例如,电路进一步包括三态缓冲器,三态缓冲器耦接在选择电路的输出和输入/输出端口之间。例如,电路进一步包括第二寄存器,第二寄存器具有用于接收缓冲器控制信号的输入,其中缓冲器控制信号用于控制三态缓冲器。例如,电路进一步包括第二选择电路,第二选择电路具有被配置为通过第二寄存器接收缓冲器控制信号的第一输入以及配置为接收第二预定值的第二输入。例如,第二选择电路包括多路复用器,多路复用器具有被配置为通过第二寄存器接收缓冲器控制信号的第一输入以及被配置为接收第二预定值的第二输入,控制电路的输出耦接至第二选择电路控制的控制端。例如,电路进一步包括寄存器,寄存器被配置为接收数据和时钟信号,电路进一步包括同步电路,同步电路配置为接收时钟信号和生成耦接至选择电路的同步控制信号。例如,同步电路包括多个串联耦接的寄存器,以在数据输出处接收同步控制信号以及接收时钟信号,其中同步控制信号在多个寄存器的输出处生成。
例如,在集成电路器件中配置电路用于路由数据的方法包括:将接口电路耦接至输入/输出端口,其中输入/输出端口被配置为接收数据,接口电路包括选择电路,选择电路使能数据和预定值的选择;配置控制电路以控制选择电路;以及在集成电路器件的部分重配置期间使输入/输出端口保持在预定值。
例如,配置接口电路包括配置多路复用器,多路复用器具有接收数据的第一输入和接收预定值的第二输入。例如,方法进一步包括配置寄存器,寄存器具有接收数据的数据输入以及响应于时钟信号生成数据的数据输出。例如,方法进一步包括在选择电路的输出和输入/输出端口之间耦接三态缓冲器。例如,方法进一步包括配置寄存器以接收数据和时钟信号,以及配置同步电路以接收时钟信号和生成耦接至选择电路的同步控制信号。例如,方法进一步包括将存储器耦接至输入/输出端口,其中在部分重配置期间,输入/输出端口处的值被保持在预定值。
因此可以理解,本文已经描述了用于实施集成电路中的IO接口的新电路和方法。本领域技术人员可以理解,存在包含所公开的发明的许多替代方案和等同方案。因此,本发明不受前述实施方式的限制而仅受本申请权利要求的限制。
Claims (15)
1.一种用于在集成电路器件中路由数据的电路,其特征在于,所述电路包括:
输入/输出端口;
接口电路,所述接口电路耦接至所述输入/输出端口并被配置为接收数据,所述接口电路包括选择电路,所述选择电路使得能够基于控制信号选择所述数据或预定值;以及
控制电路,所述控制电路被耦接以控制所述选择电路,所述控制电路被配置为:
接收第一信号和第二信号,所述第一信号指示初始配置已完成,所述第二信号指示部分重新配置已请求;
基于所述第一信号和所述第二信号生成所述控制信号,其中所述控制信号指示所述初始配置已完成并且所述部分重新配置已请求,并将所述控制信号输出到所述选择电路;
在所述初始配置已完成后,在所述集成电路器件的部分重新配置期间,将所述输入/输出端口保持在所述预定值;以及
在所述部分重新配置之后,将所述数据提供给所述输入/输出端口。
2.根据权利要求1所述的电路,其特征在于,所述选择电路包括多路复用器,所述多路复用器具有被配置为接收所述数据的第一输入和被配置为接收所述预定值的第二输入。
3.根据权利要求1所述的电路,其特征在于,所述电路进一步包括寄存器,所述寄存器具有被配置为接收所述数据的数据输入以及被配置为响应于时钟信号生成所述数据的数据输出,其中所述数据耦接至所述选择电路的第一输入。
4.根据权利要求1所述的电路,其特征在于,所述电路进一步包括三态缓冲器,所述三态缓冲器耦接在所述选择电路的输出和所述输入/输出端口之间。
5.根据权利要求4所述的电路,其特征在于,所述电路进一步包括第二寄存器,所述第二寄存器具有用于接收缓冲器控制信号的输入,其中所述缓冲器控制信号用于控制所述三态缓冲器。
6.根据权利要求5所述的电路,其特征在于,所述电路进一步包括第二选择电路,所述第二选择电路具有被配置为通过所述第二寄存器接收所述缓冲器控制信号的第一输入以及被配置为接收第二预定值的第二输入。
7.根据权利要求6所述的电路,其特征在于,所述第二选择电路包括多路复用器,所述多路复用器具有被配置为通过所述第二寄存器接收所述缓冲器控制信号的第一输入以及被配置为接收所述第二预定值的第二输入,所述控制电路的输出耦接至所述第二选择电路的控制端。
8.根据权利要求1所述的电路,其特征在于,所述电路进一步包括寄存器,所述寄存器被配置为接收所述数据和时钟信号,所述电路进一步包括同步电路,所述同步电路被配置为接收所述时钟信号和生成同步控制信号,所述同步控制信号耦接至所述选择电路。
9.根据权利要求8所述的电路,其特征在于,所述同步电路包括多个寄存器,所述多个寄存器串联耦接以在数据输入处接收所述同步控制信号以及接收所述时钟信号,其中所述同步控制信号在所述多个寄存器的输出处生成。
10.一种在集成电路器件中配置电路以路由数据的方法,其特征在于,所述方法包括:
将接口电路耦接至输入/输出端口,所述输入/输出端口被配置为接收数据,所述接口电路包括选择电路,所述选择电路使得能够基于控制信号选择所述数据或预定值;
配置控制电路以生成所述控制信号并将所述控制信号输出到所述选择电路,其中所述控制电路被配置为接收第一信号和第二信号,所述第一信号指示初始配置已完成,所述第二信号指示部分重新配置已请求,并且其中所述控制信号是基于所述第一信号和所述第二信号生成的,所述控制信号指示所述初始配置已完成并且所述部分重新配置已请求;
在所述初始配置已完成后,在所述集成电路器件的部分重新配置期间,使所述输入/输出端口保持在预定值;以及
在所述部分重新配置之后,将所述数据提供给所述输入/输出端口。
11.根据权利要求10所述的方法,其特征在于,配置接口电路包括配置多路复用器,所述多路复用器包具有接收所述数据的第一输入和接收所述预定值的第二输入。
12.根据权利要求10所述的方法,其特征在于,所述方法进一步包括配置寄存器,所述寄存器具有接收所述数据的数据输入以及响应于时钟信号生成所述数据的数据输出。
13.根据权利要求10所述的方法,其特征在于,所述方法进一步包括将三态缓冲器耦接在所述选择电路的输出和所述输入/输出端口之间。
14.根据权利要求10所述的方法,其特征在于,所述方法进一步包括配置寄存器以接收所述数据和时钟信号,以及配置同步电路以接收所述时钟信号和生成同步控制信号,所述同步控制信号耦接至所述选择电路。
15.根据权利要求10所述的方法,其特征在于,所述方法进一步将存储器耦接至所述输入/输出端口,其中在所述部分重新配置期间,所述输入/输出端口处的值被保持在所述预定值。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/192,053 US10541686B1 (en) | 2018-11-15 | 2018-11-15 | Circuit and method for ensuring a stable IO interface during partial reconfiguration of a reprogrammable integrated circuit device |
US16/192,053 | 2018-11-15 | ||
PCT/US2019/056497 WO2020101834A1 (en) | 2018-11-15 | 2019-10-16 | Circuit and method for ensuring a stable io interface during partial reconfiguration of a reprogrammable integrated circuit device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113039722A CN113039722A (zh) | 2021-06-25 |
CN113039722B true CN113039722B (zh) | 2024-10-29 |
Family
ID=69167278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980075460.1A Active CN113039722B (zh) | 2018-11-15 | 2019-10-16 | 用于在可重新编程的集成电路器件部分重配置期间确保io接口稳定的电路和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10541686B1 (zh) |
EP (1) | EP3850753A1 (zh) |
JP (1) | JP2022513057A (zh) |
KR (1) | KR102688777B1 (zh) |
CN (1) | CN113039722B (zh) |
WO (1) | WO2020101834A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111610732B (zh) * | 2020-04-28 | 2021-09-24 | 同方泰德国际科技(北京)有限公司 | 更换可配置型输入/输出模块的方法、装置及设备 |
US11736107B2 (en) * | 2021-08-19 | 2023-08-22 | Wuxi Esiontech Co., Ltd. | Field-programmable gate array (FPGA) for using configuration shift chain to implement multi-bitstream function |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8324930B1 (en) * | 2010-09-27 | 2012-12-04 | Xilinx, Inc. | Methods of implementing output ports and an integrated circuit having programmable output ports |
US8476926B1 (en) * | 2012-02-08 | 2013-07-02 | Altera Corporation | Method and apparatus for implementing periphery devices on a programmable circuit using partial reconfiguration |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5869979A (en) * | 1996-04-05 | 1999-02-09 | Altera Corporation | Technique for preconditioning I/Os during reconfiguration |
US6119200A (en) | 1998-08-18 | 2000-09-12 | Mylex Corporation | System and method to protect SDRAM data during warm resets |
US6507211B1 (en) * | 1999-07-29 | 2003-01-14 | Xilinx, Inc. | Programmable logic device capable of preserving user data during partial or complete reconfiguration |
US6836842B1 (en) | 2001-04-24 | 2004-12-28 | Xilinx, Inc. | Method of partial reconfiguration of a PLD in which only updated portions of configuration data are selected for reconfiguring the PLD |
US6810514B1 (en) | 2002-07-03 | 2004-10-26 | Xilinx, Inc. | Controller arrangement for partial reconfiguration of a programmable logic device |
US7804719B1 (en) * | 2005-06-14 | 2010-09-28 | Xilinx, Inc. | Programmable logic block having reduced output delay during RAM write processes when programmed to function in RAM mode |
US7546572B1 (en) | 2005-09-20 | 2009-06-09 | Xilinx, Inc. | Shared memory interface in a programmable logic device using partial reconfiguration |
US7302625B1 (en) | 2005-11-21 | 2007-11-27 | Xilinx, Inc. | Built-in self test (BIST) technology for testing field programmable gate arrays (FPGAs) using partial reconfiguration |
US7538574B1 (en) * | 2005-12-05 | 2009-05-26 | Lattice Semiconductor Corporation | Transparent field reconfiguration for programmable logic 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 |
US7375549B1 (en) * | 2006-02-09 | 2008-05-20 | Lattice Semiconductor Corporation | Reconfiguration of programmable logic devices |
US7640527B1 (en) | 2006-06-29 | 2009-12-29 | Xilinx, Inc. | Method and apparatus for partial reconfiguration circuit design for a programmable device |
US7836331B1 (en) | 2007-05-15 | 2010-11-16 | Netapp, Inc. | System and method for protecting the contents of memory during error conditions |
US8656198B2 (en) | 2010-04-26 | 2014-02-18 | Advanced Micro Devices | Method and apparatus for memory power management |
US8358148B1 (en) * | 2010-10-01 | 2013-01-22 | Xilinx, Inc. | Programmable integrated circuit and method of asynchronously routing data in an integrated circuit |
US8294490B1 (en) * | 2010-10-01 | 2012-10-23 | Xilinx, Inc. | Integrated circuit and method of asynchronously routing data in an integrated circuit |
US8913601B1 (en) * | 2010-10-01 | 2014-12-16 | Xilinx, Inc. | Programmable integrated circuit and method of asynchronously routing data in a circuit block of an integrated circuit |
US8560996B1 (en) | 2011-02-15 | 2013-10-15 | Xilinx, Inc. | Method and system for preparing modularized circuit designs for dynamic partial reconfiguration of programmable logic |
US8415974B1 (en) * | 2011-03-09 | 2013-04-09 | Xilinx, Inc. | Methods and circuits enabling dynamic reconfiguration |
US8788756B2 (en) * | 2011-11-28 | 2014-07-22 | Xilinx, Inc. | Circuit for and method of enabling the transfer of data by an integrated circuit |
US8786310B1 (en) | 2012-08-17 | 2014-07-22 | Xilinx, Inc. | Partially programming an integrated circuit using control memory cells |
US9500700B1 (en) * | 2013-11-15 | 2016-11-22 | Xilinx, Inc. | Circuits for and methods of testing the operation of an input/output port |
US9153311B1 (en) | 2014-05-27 | 2015-10-06 | SRC Computers, LLC | System and method for retaining DRAM data when reprogramming reconfigurable devices with DRAM memory controllers |
US9606572B2 (en) * | 2014-10-01 | 2017-03-28 | Xilinx, Inc. | Circuits for and methods of processing data in an integrated circuit device |
US9183339B1 (en) | 2014-11-11 | 2015-11-10 | Xilinx, Inc. | System and method for preparing partially reconfigurable circuit designs |
US9660847B2 (en) * | 2014-11-26 | 2017-05-23 | Rambus Inc. | Equalized multi-signaling mode driver |
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 |
US10069497B2 (en) * | 2016-06-23 | 2018-09-04 | Xilinx, Inc. | Circuit for and method of implementing a scan chain in programmable resources of an integrated circuit |
-
2018
- 2018-11-15 US US16/192,053 patent/US10541686B1/en active Active
-
2019
- 2019-10-16 WO PCT/US2019/056497 patent/WO2020101834A1/en unknown
- 2019-10-16 JP JP2021526681A patent/JP2022513057A/ja active Pending
- 2019-10-16 CN CN201980075460.1A patent/CN113039722B/zh active Active
- 2019-10-16 EP EP19853274.9A patent/EP3850753A1/en active Pending
- 2019-10-16 KR KR1020217014634A patent/KR102688777B1/ko active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8324930B1 (en) * | 2010-09-27 | 2012-12-04 | Xilinx, Inc. | Methods of implementing output ports and an integrated circuit having programmable output ports |
US8476926B1 (en) * | 2012-02-08 | 2013-07-02 | Altera Corporation | Method and apparatus for implementing periphery devices on a programmable circuit using partial reconfiguration |
Also Published As
Publication number | Publication date |
---|---|
KR102688777B1 (ko) | 2024-07-25 |
CN113039722A (zh) | 2021-06-25 |
JP2022513057A (ja) | 2022-02-07 |
EP3850753A1 (en) | 2021-07-21 |
US10541686B1 (en) | 2020-01-21 |
KR20210084500A (ko) | 2021-07-07 |
WO2020101834A1 (en) | 2020-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9722613B1 (en) | Circuit arrangement for and a method of enabling a partial reconfiguration of a circuit implemented in an integrated circuit device | |
US6472904B2 (en) | Double data rate input and output in a programmable logic device | |
US7576561B1 (en) | Device and method of configuring a device having programmable logic | |
US7477072B1 (en) | Circuit for and method of enabling partial reconfiguration of a device having programmable logic | |
US7548089B1 (en) | Structures and methods to avoiding hold time violations in a programmable logic device | |
US8788756B2 (en) | Circuit for and method of enabling the transfer of data by an integrated circuit | |
EP2243220B1 (en) | A circuit for and method of minimizing power consumption in an integrated circuit device | |
US10528513B1 (en) | Circuit for and method of providing a programmable connector of an integrated circuit device | |
JP6718442B2 (ja) | 集積回路内の電力を制御するための回路およびその方法 | |
US9685957B2 (en) | System reset controller replacing individual asynchronous resets | |
US7489163B2 (en) | FPGA powerup to known functional state | |
US10069497B2 (en) | Circuit for and method of implementing a scan chain in programmable resources of an integrated circuit | |
CN113039722B (zh) | 用于在可重新编程的集成电路器件部分重配置期间确保io接口稳定的电路和方法 | |
US6975154B1 (en) | Reduced power consumption clock network | |
US9606572B2 (en) | Circuits for and methods of processing data in an integrated circuit device | |
US7268581B1 (en) | FPGA with time-multiplexed interconnect | |
US9007110B1 (en) | Register circuits and methods of storing data in a register circuit | |
US7239173B1 (en) | Programmable memory element with power save mode in a programmable logic device | |
US8324930B1 (en) | Methods of implementing output ports and an integrated circuit having programmable output ports | |
US7876125B1 (en) | Register data retention systems and methods during reprogramming of programmable logic devices | |
US7268582B1 (en) | DPRIO for embedded hard IP | |
US9331701B1 (en) | Receivers and methods of enabling the calibration of circuits receiving input data | |
US7724029B1 (en) | Power management for integrated circuits such as programmable logic devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |