CN104239259A - 用于与动态可重配置电路进行通信的桥接电路 - Google Patents
用于与动态可重配置电路进行通信的桥接电路 Download PDFInfo
- Publication number
- CN104239259A CN104239259A CN201410255083.9A CN201410255083A CN104239259A CN 104239259 A CN104239259 A CN 104239259A CN 201410255083 A CN201410255083 A CN 201410255083A CN 104239259 A CN104239259 A CN 104239259A
- Authority
- CN
- China
- Prior art keywords
- circuit
- interface
- communication
- bridgt
- affairs
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4009—Coupling between buses with data restructuring
- G06F13/4018—Coupling between buses with data restructuring with data-width conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/404—Coupling between buses using bus bridges with address mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/405—Coupling between buses using bus bridges where the bridge performs a synchronising function
- G06F13/4054—Coupling between buses using bus bridges where the bridge performs a synchronising function where the function is bus cycle extension, e.g. to meet the timing requirements of the target bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Bus Control (AREA)
- Logic Circuits (AREA)
Abstract
一种桥接电路可以在装置正常运行期间用于在动态可重配置电路与具有静态配置的专用电路或其他电路之间进行接口连接。该桥接电路可以包括耦合在与该动态可重配置电路和该专用电路进行通信的第一接口和第二接口之间的接口电路。控制电路可以在不中断与该专用电路在该第一接口处通信的情况下基于该第二接口的可变通信要求来控制该接口电路。这些可变通信要求可能取决于当前实施的是动态可重配置电路的哪种配置。
Description
本申请要求2013年6月17日提交的美国专利申请号13/919,899的优先权,通过引用将其全部内容合并到本文中。
背景技术
可编程集成电路是可以由用户配置以实施定制逻辑功能的一类集成电路。在典型情况下,逻辑设计人员使用计算机辅助设计(CAD)工具来设计定制逻辑电路。当设计过程完成时,CAD工具生成配置数据。该配置数据被加载到可编程集成电路中,以将该装置配置成执行期望的逻辑功能。
可编程集成电路可以包括在正常工作期间(例如在配置数据的初始加载后以及运行期间)能够被重新配置(编程)的电路。在正常工作期间能够被重新配置的电路在本文中有时可被称为动态可重配置电路。然而,在集成电路中容纳动态可重配置电路会成为一种挑战。例如,动态可重配置电路经常在正常工作期间与不可重新配置的其他电路进行通信。由于另一电路的多个接口通常是静态的并且只能处理具有预定属性的通信,所以另一电路可能不能适应动态可重配置电路的新配置。
在一些情况下,可以在动态可重配置电路和其他电路之间提供可编程接口。为了处理动态可重配置电路的新配置,就必须对可编程接口进行重新编程,这要求与动态可重配置电路进行通信的电路停止全部通信(以及潜在的所有操作),这是一种费时并且低效的解决方案。
发明内容
集成电路或其他电路可以包括在正常工作时在至少第一配置和第二配置之间可重新配置的动态可重配置电路。桥接电路可用于在装置的正常工作期间在动态可重配置电路与具有多个静态配置的专用电路或其他电路之间进行接口连接。该桥接电路可以包括第一接口和第二接口以及耦合在该第一接口和第二接口之间的接口电路。该第一接口可以耦合到专用电路,而该第二接口可以耦合到动态可重配置电路,这可以为桥接电路提供可变通信要求。控制电路可以在不中断该第一接口处的通信的情况下基于该第二接口的可变通信要求控制和/或调整该接口电路。桥接电路可以处理专用电路与动态可重配置电路的第一配置和第二配置之间的通信。可变通信要求可以取决于当前实施的是动态可重配置电路的哪种配置。
桥接电路的接口电路可以包括存储电路,如存储在桥接电路的第一接口处接收的多个事务的缓存器。该缓存器可以在动态可重配置电路正在执行重新配置操作时存储在第一接口处从专用电路接收的多个事务。重新配置操作完成后,可以将这些缓存的事务提供给动态可重配置电路,从而为专用电路提供一种无缝过渡(例如不中断专用电路的通信或其他操作)。
动态可重配置电路的每种配置都可能需要一组潜在不同的通信设定值以用于接口电路。接口电路可以包括接口类型(例如协议)转换电路、宽度转换电路、地址重新映射电路、延时补偿电路、时钟交叉电路、优先级排序电路和/或具有由控制电路控制以满足动态可重配置电路的通信需求的通信设定值的其他接口电路。可以在桥接电路的正常工作期间调整这些通信设定值。
本发明的进一步特征、其性质和各种优点将通过附图和下面的详细描述变得更加明显。
附图说明
图1是根据本发明的一个实施例的说明性可编程集成电路的示意图,该电路具有与可编程逻辑器件进行通信的专用电路。
图2是根据本发明的一个实施例的说明性集成电路的示意图,该电路具有在动态可重配置电路和其他电路之间进行接口连接的多个桥接电路。
图3是根据本发明的一个实施例的说明性集成电路封装件的示意图,该电路封装件具有多个桥接电路,这些桥接电路在多个集成电路和一个可动态重新配置的可编程集成电路之间进行接口连接。
图4是根据本发明的一个实施例的说明性集成电路的示意图,该电路具有多个桥接电路,这些桥接电路耦合到各自不同的电路以便与动态可重配置电路进行接口连接。
图5是根据本发明的一个实施例的说明性集成电路的示意图,该电路具有桥接电路,该桥接电路具有由控制电路控制以便处理动态可重配置电路和专用电路之间的通信的接口电路。
图6是根据本发明的一个实施例的说明性桥接电路的示意图,该电路具有接口电路和控制电路。
图7是根据本发明的一个实施例的说明性事务缓存器的示意图,桥接电路可以使用该缓存器存储在接口处接收的通信。
图8是根据本发明的一个实施例的说明性地址重新映射表,桥接电路可以使用该地址重新映射表将多个地址从第一地址域映射到第二地址域。
图9是根据本发明的一个实施例的说明性时序图,该时序图显示了桥接电路的接口处的通信如何受到延时要求约束。
图10是根据本发明的一个实施例的时钟交叉电路的示意图,该电路可以用于处理多个时钟域的桥接。
图11是根据本发明的一个实施例的说明性桥接电路的示意图,该电路可以包括用于在第一接口和第二接口之间进行双向通信的多个接口电路。
图12是根据本发明的一个实施例的说明性桥接电路的示意图,该电路可以包括用于在第一接口和第二接口之间进行单向通信的单个接口电路。
图13是根据本发明的一个实施例的说明性桥接电路的示意图,该电路可以包括用于在多个接口之间进行通信的多个接口电路。
图14是根据本发明的一个实施例的说明性接口请求的示意图,该接口请求可以由桥接电路接收。
图15是根据本发明的一个实施例的说明性步骤的流程图,桥接电路可以在不中断专用电路的情况下执行这些步骤以对专用电路和动态可重配置电路之间的通信进行桥接。
具体实施方式
本发明的实施例涉及接口电路。该接口电路可以在集成电路上的可配置(可编程)电路和专用电路之间进行接口连接。在一些情况下,该接口电路、可配置电路和专用电路可以形成一个或多个集成电路。这些集成电路可以是数字信号处理器、微处理器、专用集成电路、集成电路电桥或其他合适的集成电路。
举例来讲,集成电路(如可编程集成电路)可以包括接口电路。这仅是说明性的,并不用于限制本发明的范围。若需要,专用集成电路、微处理器和其他特定应用产品可以包含接口电路。图1是说明性可编程集成电路装置的示意图。如图1所示,装置10可以具有输入-输出(I/O)电路12,用于将信号驱离装置10并且用于经由输入-输入引脚14从其他装置处接收信号。互连资源16(如全局和本地的垂直和水平导线和总线)可以用来在装置10上对信号进行路由。互连资源16包括固定互连(导线)和可编程互连(即相应固定互连之间的可编程连接)。可编程逻辑器件18可以包括组合逻辑电路和时序逻辑电路。例如,可编程逻辑器件18可以包括查询表、寄存器和多路复用器。可编程逻辑器件18可以被配置成用于执行定制逻辑功能。与互连资源相关联的可编程互连可以被视为可编程逻辑器件18的一部分。
可编程逻辑器件18包含可编程元件20。可编程元件20可以基于任何适用的可编程技术,如熔丝、反熔丝、电可编程只读存储器技术、随机存取存储器单元、掩膜编程元件等。举例来讲,可编程元件20可以由存储器单元形成。在编程过程中,利用引脚14和输入-输出电路12将配置数据加载到这些存储器单元中。这些存储器单元通常是随机存取存储器(RAM)单元。由于这些RAM单元被加载了配置数据,所以它们有时被称为配置RAM单元(CRAM)。
可编程元件20可以用来提供一种静态控制输出信号,用于控制可编程逻辑器件18中的相关联的逻辑组件的状态。由多个元件20生成的输出信号通常被应用于金属氧化物半导体(MOS)晶体管(有时被称为通栅晶体管(passgate transistor))的栅极。该示例仅是说明性的。若需要,可编程元件20可用于提供静态输出信号来对装置10上的任何期望电路进行配置。
可以使用任何合适的体系架构来组织装置10的电路。举例来讲,可编程装置10的逻辑器件18可以被组织在较大可编程逻辑区域的一系列的行和列内,每个区域包含多个较小的逻辑区域。装置10的这些逻辑资源可以通过互连资源16如相关联的垂直和水平导体互连。这些导体可以包括基本交叉装置10的所有部分的全局导线、交叉装置10的一部分的分段线(如半线或四分之一线)、特定长度的交错线(例如足以对若干个逻辑区进行互连)、较小的局部线或其他任何适用的互连资源布置。若需要,装置10的逻辑器件可以用更多的级别或层次来布置,其中多个大区域被互连以形成逻辑器件的更大部分。其他装置布置可以使用不是按行和列的方式布置的逻辑器件。
装置10可以包括与可配置电路(如可编程逻辑区域18)进行通信的专用电路22。专用电路22可能不是可编程的(例如电路22可能不包括任何可编程元件20)。专用电路22可以包括电路(诸如中央处理器、专用集成电路或其他专用电路的电路。
专用电路22可以使用互连16与可编程逻辑区域18进行通信。例如,互连16可以被配置为总线,专用电路22和可编程逻辑区域20利用总线协议经由该总线进行通信。该示例仅是说明性的。专用电路22可以利用任何期望的协议或互连(例如可编程互连、专用互连等)与可编程电路进行通信。
专用电路22只能处理具有预定属性(如协议和时序)的通信(例如,原因是电路22是不可重新配置的)。因此,专用电路22与装置10上的可编程电路进行通信会是一种挑战。例如,可编程逻辑区域可以是可以在装置10的正常工作期间被编程的动态可重配置逻辑区域。在这种情况下,与专用电路22通信的可编程逻辑区域可以被重新配置,以便执行不同的功能或使用不同的协议进行通信。专用电路22可能不能够适应可编程逻辑区域的新配置(例如,原因是专用电路22是不可重新配置的并且只能处理其被设计用于的有限的通信协议集)。
专用电路(如电路22)可以设有适应具有潜在可变属性的通信的桥接电路。图2是集成电路10的示意图,该集成电路包括具有桥接电路24的专用电路22。在图2的示例中,桥接电路24可以在专用电路22和通信总线26之间进行接口连接。但是,该示例仅是说明性的。若需要,桥接电路24可以用于在专用电路22和任何期望电路之间进行接口连接。例如,该桥接电路24可以直接在专用电路22和可编程电路之间进行接口连接。
桥接电路24可以是单独实现或与相应电路(如专用电路22)整体实现的专用电路。例如,桥接电路24可以形成为专用电路22的一部分或可以耦合在专用电路22和图1中的互连16之间。
总线26可以耦合到经由总线26进行通信的多个电路上。在图2的示例中,专用电路22、可编程电路30和动态可编程电路28(即动态可重配置电路)可以经由总线26进行通信。动态可重配置电路(如耦合到总线26上的电路28)可以在装置10的正常工作期间用新配置来重新配置。电路28的新配置可以利用可能与专用电路22不兼容的协议和/或信号时序来经由总线26发送和接收信号。例如,专用电路22可能只处理第一通信协议,而电路28的新配置可以使用与第一协议不兼容的第二通信协议进行通信。作为另一个示例,电路28的新配置可以产生与专用电路22的时序要求不兼容的总线控制信号(且反之亦然)。
专用电路22的电桥24可以包括接口IF1和IF2。接口IF1可以处理与专用电路22的通信。接口IF2可以处理经由总线26进行的通信。接口IF2可以在装置10的正常工作期间是可调整的,以适应来自一个或多个来源的具有变化属性的通信。例如,接口IF2可以适应来自动态可编程电路28的多个不同配置的通信。
在一些情况下,可能期望的是提供可编程电路,如带有相应电桥24的电路30。例如,可编程电路30可能是不可动态重新配置的,因此在装置10的正常工作期间具有静态配置。在这种情况下,因为可编程电路30的配置是在装置10的正常工作之前确定的(例如电路30的可编程元件可以在装置10的正常工作之前加载静态控制值),所以可编程电路30可能不能够处理来自动态可编程电路28的不同配置的通信。可编程电路30的电桥24可以有助于适应可编程电路30和动态可编程电路(如电路28)之间的通信。
在图2中为集成电路10上的专用电路22实现桥接电路24的示例仅是说明性的。图3是说明性装置100,其中电桥24A和24B为衬底102上的专用集成电路32A和32B提供接口。装置100可以是封装式装置,其中集成电路(如专用集成电路32A、32B和10)被安装在衬底102上(例如封装衬底、内插件或其他衬底)。本示例仅是说明性的。若需要,装置100可以是印刷电路组装件。在这种情况下,衬底102可以是印刷电路板,在其上安装有集成电路32A、32B和10。该印刷电路板可以由诸如层压板和树脂等材料形成(例如填充玻璃纤维的环氧树脂如FR-4)。这些集成电路可以形成安装在印刷电路板上的表面安装技术(SMT)组件。作为示例,可以使用球栅阵列封装、针栅阵列封装或其他封装技术可以用于将一个或多个集成电路安装到印刷电路板上。
桥接电路可以单独形成或与相应的集成电路整体形成。电桥24A可以被形成为安装到衬底102上的集成电路。电桥24A可以经由互连104电耦合到专用集成电路32A和总线26上。电桥24B可以与专用集成电路32B整体形成(例如电桥24B可以形成为集成电路32B的一部分)。一个或多个互连106可以将电桥24B电耦合到总线26上。
与动态可编程电路进行通信的任何期望电路可以设有桥接电路。图4是一个示意图,其中在集成电路10上执行不同功能的专用电路可以设有桥接电路24。如图4所示,多个专用电路,如以太网电路112、通用串行总线(USB)电路114、特定应用电路116、处理电路118(例如,特定应用处理电路、通用处理单元如中央处理单元等)、存储电路120(例如,易失性和/或非易失性存储器,如随机存取存储器)。专用电路可以利用预定协议和/或信号时序经由总线26进行通信。换言之,要求专用电路所接收的通信信号的属性满足专用电路的预定要求。每个专用电路都可以有不同的或类似的通信要求。
每个专用电路可以设有相应的桥接电路24。给定的专用电路的桥接电路可以是可调整的,以便处理经由具有任何期望属性的总线26进行的通信。桥接电路从总线26接收的通信可以由该桥接电路进行修改,以满足相应的专用电路的通信要求。桥接电路可以类似地修改从相应的专用电路接收的通信,以满足通信总线的要求(例如协议和/或时序要求)。
若需要,单个桥接电路可以适应与多个专用电路进行的通信。例如,专用电路122和124均可以通过相应的桥接电路24连接到总线26上。专用电路122和124可以是任何期望的电路(例如I/O电路、处理电路、存储电路等)。专用电路122和124可以经由互连126耦合到相应的桥接电路24上。
可能不必为耦合到总线26上的每个专用电路提供桥接电路。例如,专用电路128可以不与动态可编程电路(如可编程逻辑器件18)进行通信。换言之,专用电路128可能从来不向可编程逻辑器件18发送或接收通信。在这种情况下,对于专用电路128而言,可以省略桥接电路24,从而使得专用电路128被直接连接到总线26上。只为与动态可编程电路进行通信的专用电路提供桥接电路可以帮助降低复杂度和成本。
在图4中具有各自桥接电路的多个专用电路被形成在集成电路上的示例仅仅是说明性的。若需要,各自具有桥接电路的专用电路可以被形成在封装衬底或印刷电路板上(例如,如图3所示)。
图5是插入在电路142和动态可重配置电路144之间的桥接电路24的示意图。桥接电路24可以包括接口IF1和IF2。接口IF1可以具有耦合在专用电路142和桥接电路24之间的控制和数据路径,而接口IF2可以具有耦合在动态可重配置电路144和桥接电路24之间的控制和数据路径。在图5的示例中,电路142可以是专用电路。然而,本示例仅是说明性的。电路142可以是在装置10的正常工作期间具有静态配置的任何电路(例如电路142可以是专用电路、不可动态重新配置的可编程电路等)。
如图5所示,桥接电路24可以包括控制电路146和接口电路148。接口电路148可以在专用电路142和动态可重配置电路144之间提供传输路径TX和接收路径RX。每个路径可以包括用于存储专用电路142和动态可重配置电路144之间的通信(例如事务)的各自缓存器150。例如,传输路径TX的缓存器150可以存储从专用电路142传输到动态可配置电路144的信息,而接收路径RX的缓存器150可以存储从动态可重配置电路144传输到专用电路142的信息。
接口电路148可以在专用电路142和动态可重配置电路144的潜在不同通信要求之间进行接口连接。例如,接口电路148可以使用具有与专用电路142相关联的预定通信属性(例如协议和/或时序设定值)的第一接口IF1提供信息并且从专用电路142接收信息。接口电路148可以利用相应的缓存器150缓存经由接收路径RX从专用电路142接收的信息。接口电路148在满足接口IF2的通信要求的同时,可以利用数据和/或控制信号经由传输路径TX传输所缓存的信息。类似地,可以利用满足接口IF1的通信要求的信号来缓存并且从接口IF1传输在接口IF2处从动态可重配置电路144接收的信息。由于电路144的动态重新配置,接口IF2的通信要求可以在装置10的正常工作期间改变,并且因此可被称为可变通信要求。
控制电路146可以控制接口电路148以适应专用电路142和动态可重配置电路144的通信要求。控制电路146可以通过调整接口电路的通信设定值的控制路径156提供控制信号来控制接口电路148。考虑动态可重配置电路144在装置10的正常工作期间被重新配置的情况。在这种情况下,动态可重配置电路144的新配置可以和与接口IF2的当前设置不兼容的新通信要求集合相关联。该新通信要求集合可以经由接口IF2(例如经由控制路径152)被传送到桥接电路24。控制电路146可以随后调整接口电路148以满足对接口IF2的更新要求。
若需要,专用电路142可以为接口IF1和/或接口IF2提供通信要求。例如,专用电路142可以控制动态可重配置电路的配置。在这种情况下,专用电路142可以向桥接电路24传送动态可重配置电路144的更新要求,以便用于调整接口IF2的设定值。本示例仅是说明性的。动态可重配置电路可以向桥接电路24传送更新要求(例如在重新配置操作之后)。
传输路径TX、接收路径RX和控制路径(如路径152和154)可以被形成为单独的互连或者可以共享互连。例如,一个或多个互连的第一集合可以在专用电路142和电桥24之间形成传输路径TX,而一个或多个互连的第二集合可以在电路142和电桥24之间形成接收路径RX。作为另一个示例,一个或多个互连的集合可以被共享,以在专用电路142和桥接电路24之间形成传输路径和接收路径。包括信息如通信要求的控制信号可以经由控制路径(如路径152和154)传送,或者可以经由传输路径和接收路径传送(例如可以省略控制路径152和/或154)。若需要,一个或多个互连的集合可以形成接口IF2所耦合的总线(例如图2、图3或图4中的总线26)。
图6是具有接口电路的桥接电路24的示意图,该接口电路在正常工作期间是可以调整的,以便适应信息从专用电路(如图5中的电路142)到动态可重配置电路(如电路144)的传输。例如,图6可以代表与图5中的传输路径TX相关联的电路。如图6所示,桥接电路24可以包括接口电路148'。接口电路148'可以包括缓存器150、优先级排序电路162、接口转换电路164以及时序电路166。
从专用电路接收的信息可以被划分成多个事务。例如,从专用电路接收的总线事务均可以包括事务数据。每个事务可以由缓存器150存储。例如,从专用电路接收的事务T1、T2和T3可以被存储在事务缓存器150中。若需要,只有针对每个事务的事务数据可以被存储在事务缓存器150中。存储事务数据的缓存器150在本文中有时可被称为事务缓存器。
事务缓存器150可以被实现为先进先出(FIFO)缓存器、可分类的缓存器、一个或多个队列、多个链接表或任何期望的存储结构。若需要,与事务缓存器150中的事务相关联的条目可以被赋予用于确定事务的处理顺序的优先级信息。
优先级排序电路162可以用于确定处理并从缓存器清除存储在缓存器150中的事务的顺序。例如,电路162可以基于与这些条目中的每个条目相关联的优先级信息对事务缓存器150中的条目进行排序或另外进行重新安排。若需要,每个条目的优先级信息可以基于经由控制路径152从控制电路146接收的控制信号来分配。
接口转换电路164可以包括接口类型转换电路172、宽度转换电路174以及地址重新映射电路176。接口转换电路164可以从控制电路146接收控制信号。接口类型转换电路172可以在接口类型(例如接口协议)之间进行转换。举例来讲,接口IF2在并联和串联总线类型之间是可以调整的。在这种情况下,接口类型转换电路172可以包括动态可调整以利用针对接口IF2的接口协议类型的第一协议对在接口IF1处接收的数据进行转换的串联到并联和/或并联到串联电路。该示例仅是说明性的。接口类型转换电路174可以用接口IF2的任何期望信息对在接口IF1处接收的事务进行修改。例如,接口类型转换电路174可以修改事务以包括一致性属性、安全属性、特权属性或任何期望的属性。一致性属性可以包括标识符,如有助于确保耦合到接口IF1的电路和/或耦合到接口IF2的装置之间的事务数据的一致性的标记(例如确保存储在不同电路处的数据是一致的)。安全属性可以包括有助于确保将事务从接口IF2安全地传输到耦合到接口IF2的电路的多个标签或标识符。
接口IF1和IF2可以由对应于在任何给定时间或对于任何给定事务经由这些接口可以传输多少位数据的相应宽度来表征。例如,接口IF1可以具有对应于在专用电路和接口IF1之间并联耦合的互连数量的宽度。作为另一个示例,接口IF1可以具有对应于针对一个事务传送的数据位数的宽度。在接口IF1和/或IF2耦合到相应总线的情况下,每个接口的宽度可以与相应总线的宽度(有时被称为总线宽度)匹配。接口和总线可以具有任何期望的宽度。例如,接口IF1可具有8位、16位、32位、64位的宽度或任何期望的宽度。
宽度转换电路174可以用于适应总线宽度的差异。考虑专用电路提供具有32位宽度的事务数据,而预计动态可重配置电路接收具有8位宽度的事务数据的情况。在这种情况下,宽度转换电路174可以将在接口IF1处接收的32位事务数据转换成8位数据以便在接口IF2处传输。宽度转换电路174可以将在接口IF1处接收的事务数据的宽度转换成接口IF2的宽度,同时确保所转换的事务数据满足接口IF2的地址对齐要求(例如大端地址对齐、小端地址对齐等)。
举例来讲,宽度转换电路174可以将从接口IF1接收的事务数据划分为各自具有接口IF2的宽度的多个部分。多路复用器可以接收事务数据的每个部分。多路复用器可以由状态机控制,该状态机确定在接口IF2处提供事务数据的每个部分的顺序(例如对于大端地址对齐来说最高有效字节排第一,而对于小端地址对齐来说最低有效字节排第一)。
专用电路和桥接电路24之间的每个通信事务可以包括事务数据和相应的地址信息。桥接电路24可以在接口IF1处从专用电路接收地址信息。地址信息可以经由接口IF1的专用地址互连来接收,或者可以经由与数据信号共享的互连来接收。地址信息可以指示动态可重配置电路应如何处理事务数据。例如,地址信息可以识别事务数据应存储在的动态可重配置电路的地址。但是,在一些情况下,由专用电路提供的地址信息可能与动态可重配置电路的期望地址信息不匹配。
举例来讲,可以将动态可重配置电路从利用第一地址空间(例如事务数据可以寻址到的一系列可接受地址)动态地重新配置到不同的第二地址空间。在这种情况下,专用电路可以继续提供目前与动态可重配置电路的地址空间(即第二地址空间)不匹配的第一地址空间的地址。
地址重新映射电路176可以将从专用电路接收的地址重新映射到与动态可重配置电路相关联的地址空间。地址重新映射电路176可以包括具有多个条目的地址重新映射表,所述条目将与专用电路相关联的第一地址空间的地址映射到与动态可重配置电路相关联的第二地址空间的地址。电路176可以在该表上执行查找操作,以识别与专用电路所提供的地址相对应的第二地址空间的地址。
接口IF2可能受到与动态可重配置电路相关联的时序要求和/或约束的限制。该时序要求可以用于确定何时由桥接电路24使接口IF2处的控制信号和数据信号有效和无效即认定(assert)和解除认定(de-assert)所述信号。该时序要求可以包括延时要求和时钟要求。时序电路166可以包括用于满足接口IF2的时序要求的延时补偿电路178和时钟交叉电路180。
延时补偿电路178可以包括延迟电路,如用于调整数据信号和控制信号(如就绪/有效信号)的时序的计数器和缓存电路。缓存电路可以用于暂时存储数据一段持续时间,该持续时间由计数器中存储的值(例如由控制电路146提供的值,该值对应于该数据应保持不变的时长)确定。
接口IF1和IF2可以使用各自的时钟信号来运行。时钟信号可以具有相应的时钟频率和时钟相位。接口IF1的时钟信号可以对应于专用电路(例如,接口IF1的时钟信号可以用于操作专用电路),而接口IF2的时钟信号可以对应于动态可重配置电路。接口IF1和IF2的时钟信号可以是同步时钟信号,其中这些时钟信号之一是另一时钟信号的整数倍。本示例仅是说明性的,并且接口IF1和IF2的时钟信号之间的关系可以取决于动态可重配置电路的配置。例如,这些时钟信号可以是准同步的,其中这些时钟信号之一是另一信号的已知比率。作为另一个示例,这些时钟信号可能是异步的,其中每个时钟信号之间的关系是未知的。时钟交叉电路180可以包括同步时钟交叉电路、准同步时钟交叉电路和/或异步时钟交叉电路,用于处理接口IF1和IF2的时钟信号之间的每种可能的关系。控制电路146可以经由能够启用时钟交叉电路的所选部分的控制路径156提供控制信号。
存储电路(如事务缓存器150)可以被实现为一个表、数据库或任何期望的存储结构。图7是包括与已经接收并存储在事务缓存器内的各自事务相对应的条目的说明性事务缓存器150的示意图。如图7所示,事务缓存器的每个条目可以包括具有相应优先级的事务。事务缓存器条目192可以包括具有优先级P1的事务T1,而条目194可以包括具有优先级P2的事务T2,并且条目196可以包括具有优先级P3的事务T3。可以按优先级顺序对事务缓存器进行排序(例如通过图6中的优先级排序电路162)。换言之,事务缓存器可以被布置成使得在较低优先级的事务之前处理较高优先级的事务。在图7的示例中,优先级P1可能高于优先级P2,而优先级P2可能高于优先级P3。每个事务(如存储在事务缓存器150中的事务T1)可以包括地址信息和数据信息。
在图7中将优先级信息存储在事务缓存器150中的示例仅是说明性的。若需要,可以从事务缓存器150中省略优先级信息。在这种情况下,每个事务的优先级可以隐含在事务缓存器的条目的顺序中(例如,优先级排序电路162可以通过对事务缓存器150的条目进行重新排序来为每个事务分配一个隐式的优先级)。
存储在事务缓存器150中的事务可以通过桥接电路24来检索,并且利用接口转换电路164来处理,以便针对接口IF2的通信要求适当地格式化这些事务。可以由地址重新映射电路176利用图8中的地址重新映射表202对存储在事务缓存器中的地址信息进行重新映射。
如图8所示,地址重新映射表202可以包括多个条目,如条目204、206和208。每个地址重新映射表条目可以包括接口IF1的地址和接口IF2的相应地址。例如,条目204包括接口IF1的地址ADRD1和接口IF2的地址ADRP1,而条目206包括相应接口IF1和IF2的地址ADRD2和ADRP2,并且条目208包括相应接口IF1和IF2的地址ADRD3和ADRP3。
考虑图7中的事务T1包括地址ADRD2的情况。在这种情况下,事务T1的条目192可以从事务缓存器150中检索到并由桥接电路24来处理。地址重新映射电路176可以在地址重新映射表202中执行查表操作来查找地址ADRD2,由此返回条目206(例如,地址重新映射电路176可以对表202进行搜索以确定哪个条目包括接口IF2的地址ADRD2)。条目206识别出应该使用地址ADRP2来映射(例如替换)事务T1的地址ADRD2,以便于在接口IF2处进行通信。从事务缓存器150中检索的数据随后可以在接口IF2处与地址ADRP2一起被传输。
控制电路146可以增加、删除或修改地址重新映射表202中的条目,以满足耦合到接口IF2的动态可重配置电路的通信要求。响应于动态可重配置电路的新配置,控制电路可以更新地址重新映射表202的映射,从而使得在接口IF1处接收的事务被映射以校正接口IF2处的地址。
在如接口IF1和IF2的接口处的通信可能需要在适当的时间通过这些接口传送的控制信号和/或数据信号。举例来讲,桥接电路24的接口IF2可以和动态可重配置电路进行通信,该动态可重配置电路需要为每个事务在接口IF2处认定预定的控制和数据信号序列。该信号序列有时可以被称为桥接电路24和动态可重配置电路之间的握手(handshake)。
图9是可以经由桥接电路24的接口IF2执行以处理事务的握手操作的说明性时序图。如图9所示,握手操作可以涉及控制信号如就绪和有效信号。就绪信号可以由从桥接电路24接收数据的动态可重配置电路控制,而有效信号和数据信号可以由桥接电路24控制。例如,可以通过将信号设置为逻辑1来认定就绪信号和有效信号,而可以通过将信号设置为逻辑0来解除认定这些信号。
在时间X1时,动态可重配置电路可以认定就绪信号,由此表明该可重配置电路准备接受来自桥接电路24的数据。然而,该可重配置电路可能额外需要在就绪信号的认定和数据传输之间有一个延迟D1(有时被称为就绪/有效延迟)。桥接电路24可以将数据传输从就绪信号的认定延迟就绪/有效延迟D1,直到时间X2。在时间X2时,桥接电路24可以在接口IF2处提供数据,同时认定有效信号(例如,该有效信号可以向动态可重配置电路表明桥接电路24在数据路径上提供的数据是有效的)。在随后的时间X3时,动态可重配置电路可以解除认定就绪信号,表明该可重配置电路将不再接受来自桥接电路24的数据。为了适应延时要求,在解除认定就绪信号后(即直到时间X4),桥接电路24可以继续为数据提供就绪/有效延迟D1。
在图9中握手操作使用就绪和有效控制信号的示例仅是说明性的。若需要,可以在桥接电路24和耦合到桥接电路24的接口上的电路之间的通信中使用任何控制信号。控制信号可能受到由动态可重配置电路的配置确定的延时要求的约束(例如,每种配置可能具有一组不同的一个或多个延时要求)。
桥接电路24的每个接口可以具有相关联的时钟信号。给定接口的时钟信号可以用于在该接口处传输和/或接收信号。可以在装置10处利用时钟生成电路生成时钟信号,或者可以由装置10通过接口接收时钟信号(例如,时钟信号可以由外部时钟电路生成)。这些接口的时钟信号可能在频率和/或相位上失配,这可能造成通信错误。图10是时钟交叉电路180的示意图,该电路可以用于使与不同时钟信号相关联的接口之间的通信同步。在图10的示例中,时钟信号CLKD可以与接口IF1相关联(例如,时钟信号CLKD可以用于从在接口IF1处耦合到桥接电路24的专用电路接收信号),而时钟信号CLKR可以与接口IF2相关联。
如图10所示,时钟交叉电路可以包括同步时钟交叉电路212、准同步时钟交叉电路214和异步时钟交叉电路216。电路212、214和216可以接收时钟信号CLKD和CLKR以及数据(例如已经从事务缓存器中检索到并由接口转换电路164处理的事务数据)。
在时钟信号CLKD和CLKR之一的频率是另一个的频率的整数倍的同步情况下,同步电路212可以处理时钟交叉。例如,时钟信号CLKD可以在第一频率下运行,而时钟信号CLKR可以在等于第一频率的整数N倍的第二频率下运行(或反之亦然)。同步电路212可以包括由时钟信号CLKR计时的寄存器。该寄存器可以基于时钟信号CLKR接收数据信号并产生输出信号Y1。
在时钟信号CLKD和CLKR之一的频率是另一个的频率的已知比率的情况下,准同步电路214可以处理时钟交叉。例如,准同步电路214可以包括同步器电路。该同步器电路可以包括串联耦合的多个触发器(例如,每个触发器的输出端耦合到相继的触发器的输入端)。这些串联触发器中的第一触发器可以接收数据(DATA)并且可以利用接口IF1的时钟频率(例如CLKD的频率)来计时,而这些串联触发器中的其余触发器中的至少两个可以利用接口IF2的时钟频率(例如CLKR的频率)来计时。
在时钟信号CLKD和CLKR之间的关系或者未知或者另外不能由准同步电路214处理的情况下,异步时钟交叉电路216可以处理时钟交叉。例如,异步时钟交叉电路216可以包括异步先进先出缓存器。在这种情况下,可以利用与接口IF1相对应的时钟信号CLKD来存储数据,而可以利用与接口IF2相对应的时钟信号CLKR检索所存储的数据并将其输出作为数据Y3。
时钟交叉电路180可以包括从同步、准同步和异步时钟交叉电路接收数据Y1、Y2和Y3的多路复用器218。多路复用器218可以经由用于选择提供哪个数据作为输出数据’(DATA’)的路径156(例如来自图6的控制电路146)接收控制信号CTL。例如,在接口IF1和IF2的时钟信号之间的关系是同步的情况下,控制信号CTL可以控制多路复用器218选择来自同步时钟交叉电路212的数据Y1。类似地,针对准同步和异步关系,控制信号CTL可以控制多路复用器218分别选择数据Y2和Y3。
桥接电路24可以用于适应桥接电路的每对接口之间的单方向(单向)或双方向(双向)通信。在图6的示例中,桥接电路24设有适应从接口IF1向接口IF2的传输(例如从接口IF1到接口IF2的单方向通信)的单个接口电路148’。如图11所示,桥接电路24可以针对每个通信方向利用单独的接口电路来处理双向通信。接口电路148’-1可以与图6的接口电路148’基本上相似,并且适应从接口IF1到接口IF2的传输。接口电路148’-2可以被布置在接口电路148’-1的反方向上,以适应从接口IF2到IF1的传输(例如,接口电路148’-2可以与图6的接口电路148’基本上相似,其中接口IF1和IF2被反转)。
在图11的示例中,控制电路146可以接收控制信息,如通信要求、约束或设定值(例如经由接口IF1和IF2)。该控制信息可以用来控制接口电路148’-1和148’-2。但是,本示例仅是说明性的。若需要,每个接口电路可以设有各自的控制电路。例如,接口电路148’-1可以设有耦合到接口IF2的第一控制电路,而接口电路148’-2可以设有耦合到接口IF1的第二控制电路。
若需要,如图12所示,可以省略接口电路148’-1。在图12的示例中,桥接电路24可以仅设有适应从接口IF2到接口IF1的传输的接口电路148’-2。例如,可以在如下情况下使用图12的接口电路24:如当耦合到接口IF2的动态可重配置电路向耦合到接口IF1的专用电路传输数据,但是该专用电路未向该动态可重配置电路传输任何数据时(例如从接口IF2到接口IF1的单方向通信)。
图13是可以用于在多个电路之间进行接口连接的桥接电路的示意图。如图13所示,桥接电路24可以包括接口IF1、IF2、IF3和IF4。接口IF1、IF3和IF4可以耦合到相应的电路(例如图4中的电路122、124等)。接口IF2可以耦合到动态可重配置电路。
桥接电路24可以包括适用于接口IF2与接口IF1、IF3和IF4之间的通信的期望布置的接口电路。在图13的示例中,接口IF1和IF2之间可能需要双方向通信,而从接口IF3到接口IF2以及从接口IF2到接口IF4可能需要单方向通信。桥接电路24可以包括适应接口IF1和IF2之间的双方向通信的接口电路148’-1和148’-2。桥接电路24可以包括处理从接口IF3到接口IF2的传输的接口电路148’-3以及处理从接口IF2到接口IF4的传输的接口电路148’-4。
在图13中桥接电路24在四个接口之间执行桥接操作的示例仅是说明性的。桥接电路24可以包括任何期望数量的接口(例如两个、三个、四个、五个或更多)。每个接口可以耦合到一个或多个相应的通信来源/目的地。例如,一个接口可以直接连接到单个通信来源/目的地。作为另一个示例,一个接口可以经由通信总线耦合到多个通信来源和目的地。桥接电路24可以包括用于多对接口之间的每个期望通信方向的接口电路。
桥接电路24可以从耦合到该桥接电路的接口的电路接收信息,如接口要求。图14是可以由桥接电路24接收的接口请求222的图示。例如,在装置正常工作期间,动态可重配置电路可以在该动态可重配置电路的重新配置之前或响应于该重新配置而传输该接口请求。该接口请求可以由控制电路经由相应接口来接收,或者经由与该相应接口相关联的控制路径来传输。
如图14所示,接口请求222可以包括多个接口参数,如要求或约束。这些接口参数可以包括总线宽度要求、带宽约束、时序要求、时钟属性、地址映射信息、优先级分配以及接口类型信息如接口协议信息。若需要,接口请求222可以包括这些接口要求或约束的任何期望的子集,或者可以包括多个附加接口参数。控制电路146可以在控制桥接电路的接口电路的运行时使用这些接口要求和约束。
接口请求222的总线宽度要求可以用于控制图6中的宽度转换电路174。例如,控制电路146可以经由控制路径156向宽度转换电路174提供控制信号,这些控制信号引导该宽度转换电路将在接口IF1处接收的事务数据划分成具有对应于这些总线宽度要求的位宽度的多个部分。
接口请求222的带宽约束可以识别能够经由相应接口传送数据的速率。控制电路146可以利用这些带宽约束来确定处理(例如利用接口转换电路和时序电路)并通过接口传输存储在事务缓存器内的事务的速度。
接口请求222的时序要求可以包括延时要求,例如就绪-有效延时要求或者与经由相应接口传送的控制信号和/或数据信号相关联的其他时序要求。控制电路146可以利用这些时序要求来控制时序电路166。例如,控制电路146可以利用就绪-有效延时要求来为延时补偿电路178的计数器179确定一个适当的起动计数器值。
接口请求222的时钟属性可以包括时钟频率信息。控制电路146可以在控制可配置的时钟交叉电路180时使用这些时钟属性。例如,控制电路146可以选择与时钟交叉电路的时钟属性匹配的时钟信号,以便用于向相应的接口提供信号。可以从由时钟生成电路提供的多个可用时钟信号中选择时钟信号。本示例仅是说明性的。若需要,针对给定接口的可配置时钟交叉电路所用的时钟信号可以被提供在那个接口处。
接口请求222的地址映射信息可以包括有待存储在地址重新映射表中的多个条目。控制电路146可以引导地址重新映射电路176在地址重新映射操作中使用该地址映射信息。例如,该地址映射信息可以包括图8中的条目204、206和208。在这种情况下,控制电路146可以将这些条目存储在地址重新映射表202中。可以附加于或替换该地址重新映射表的现有条目而存储这些条目(例如,可以删除或可以不删除这些现有条目)。
接口请求222的优先级分配信息可以包括表明应该被分配给每个事务或每个类型的事务的优先级的多个规则。这些规则可以包括可以与存储在事务缓存器中的所有或部分事务匹配的信息。例如,每个规则可以为具有匹配地址信息和/或数据的事务分配一个优先级值。控制电路146可以将这些规则提供给优先级排序电路162以便用于对事务缓存器150进行排序。
控制电路146可以使用接口请求222的接口类型信息(例如接口协议)来控制接口类型转换电路172。例如,该接口类型信息可以识别用于相应接口处的通信的协议(例如串行协议、并行协议等)。控制电路146可以控制接口类型转换电路172以产生适应所识别的协议的控制信号和数据信号。
桥接电路24可以运行,从而使得在不中断与该桥接电路进行通信的专用电路操作的情况下执行桥接操作。例如,图6的桥接电路24可以在不中断与接口IF1耦合的专用电路的操作的情况下对接口IF1和IF2之间的通信进行桥接。换言之,可以对与该桥接电路耦合的专用电路隐藏桥接电路24的操作。图15是可以由在动态可重配置电路和专用电路之间进行接口连接的桥接电路(如桥接电路24)执行的说明性步骤的流程图。
在步骤302的过程中,桥接电路可以从动态可重配置电路接收接口请求。例如,图14中的接口请求222可以由该桥接电路接收。
在步骤304的过程中,桥接电路可以从接口请求中识别多个接口参数,如通信要求、约束或设置。例如,可以从该接口请求中识别多个参数,如总线宽度信息、带宽约束、时序要求、时钟属性(如时钟速度或其他时钟参数)、寻址信息(如地址映射参数)、优先级分配信息、接口类型(如接口协议)或其他接口参数。
在步骤306的过程中,桥接电路可以基于所识别的接口参数来控制(例如调整)耦合在可重配置电路和专用电路之间的接口电路。例如,该桥接电路的控制电路146可以使用所识别的接口参数来控制该桥接电路的接口类型转换电路、宽度转换电路、地址重新映射电路、优先级排序电路、延时补偿电路、时钟交叉电路和/或其他接口电路。
在步骤308的过程中,桥接电路可以基于所识别的接口参数利用接口电路来桥接专用电路和动态可重配置电路之间的通信。若需要,桥接电路可以选择性地拒绝在未能与所识别的参数匹配的接口(如IF1、IF2等)处接收的事务。例如,可以拒绝和/或丢弃所接收的不与地址映射参数的任何地址匹配的事务。作为另一个示例,可以拒绝在未能与相应接口类型匹配的接口处接收的事务。
步骤308的操作可以包括利用与专用电路相关联的接口参数对从该专用电路接收的通信(例如事务)进行缓存。在步骤308的过程中,可以利用从该动态可重配置电路接收的所识别的接口参数将所缓存的通信提供给动态可重配置电路(例如步骤310)。
动态可重配置电路可以在接口请求之前提供重新配置请求。该重新配置请求可以表明动态可重配置电路将在正常工作期间被重新配置。可以通过与可重配置电路耦合的接口(如接口IF2)传送该重新配置请求。本示例仅是说明性的。若需要,专用电路可以通过与该专用电路耦合的接口(如接口IF1)提供该重新配置请求。例如,专用电路可以通过经由桥接电路向可重配置电路传送控制信息来控制可重配置电路的配置。在这种情况下,专用电路可以向可重配置电路发送重新配置请求。桥接电路可以检测从专用电路接收的重新配置请求。作为另一个示例,用户可以利用配置工具在正常工作期间对可重配置电路进行重新配置。在这种情况下,这些配置工具可以为桥接电路提供更新的通信设定值或要求。
桥接电路可以检测紧急重新配置事件,如在动态可重配置电路的操作错误或其他未预料到的重新配置的情况下。紧急重新配置事件可以由装置上的动态可重配置电路、其他电路或用户响应于紧急事件而发起。紧急事件可以包括:软错误,如单一事件翻转(例如由背景辐射造成的暂时错误);硬错误(例如动态可重配置电路的长期或永久故障);以及安全漏洞。举例来讲,装置上的错误校验或监测电路可以用于检测何时出现软错误或硬错误(例如通过监测数据路径或电路(如存储电路)来发现循环冗余校验错误、位翻转或其他错误)。错误校验或监测电路可以与桥接电路进行通信以识别这些错误。响应于检测到紧急重新配置事件,桥接电路可以执行步骤314中的操作。如果在步骤308的过程中,桥接电路接收到动态可重配置电路的重新配置请求,则可以执行步骤316中的操作。
在步骤314的过程中,当动态可重配置电路执行紧急重新配置操作时,桥接电路可以暂时终止与专用电路通信。可以通过删除事务缓存器中与专用电路和/或动态可重配置电路相关联的所有现有条目以及丢弃来自专用电路的所有输入事务来终止与专用电路通信。然后,该过程可以返回到步骤302,以处理可重配置电路的新配置。通过暂时终止与专用电路通信,桥接电路可以帮助预防通信错误(例如,因为可重配置电路的紧急重新配置可能不能够接收与可重配置电路的前一种配置相关联的事务)。
在步骤316的过程中,当可重配置电路正在被重新配置时,桥接电路可以对来自专用电路的通信进行缓存。可以在完成重新配置操作之后(例如在步骤310的过程中)向动态可重配置电路提供所缓存的通信。通过在重新配置操作期间缓存通信,桥接电路可以对专用电路隐藏动态可重配置电路的操作和状态,这允许专用电路不间断地运行。
附加实施例:
附加实施例1。一种电路,其包括:第一通信接口和第二通信接口;接口电路,其耦合在所述第一接口和所述第二接口之间;以及控制电路,其在不中断所述第一接口处的通信的情况下基于所述第二接口的可变通信要求对所述接口电路进行控制。
附加实施例2。如附加实施例1所述的设备,其中所述第一接口接收事务,并且其中所述接口电路包括存储所接收的事务的缓存器。
附加实施例3。如附加实施例2所述的设备,其中所述接口电路进一步包括基于所述第二接口的所述可变通信要求从所述第二接口处传输从所存储的事务中检索到的信息的接口转换电路。
附加实施例4。如附加实施例3所述的设备,其中利用第一协议在所述第一接口处接收所述事务,其中所述第二接口的所述可变通信要求识别第二协议,并且其中所述接口转换电路包括利用所述第二协议从所述第二接口处传输来自所存储的事务的所述信息的接口类型转换电路。
附加实施例5。如附加实施例4所述的设备,其中所述第一接口和所述第二接口具有各自的第一宽度和第二宽度,其中所述事务与所述第一宽度相关联,并且其中所述接口转换电路进一步包括将来自所存储的事务的所述信息转换成所述第二宽度的宽度转换电路。
附加实施例6。如附加实施例5所述的设备,其中在所述第一接口处接收的所述事务包括对应于第一地址空间的多个地址,其中所述第二接口与第二地址空间相关联,并且其中所述接口转换电路进一步包括将所述第一地址空间的地址映射到所述第二地址空间的地址重新映射电路。
附加实施例7。如附加实施例3所述的设备,其中在所述第二接口处传输的所述信息包括信号,其中所述第二接口的所述可变通信要求包括时序要求,并且其中所述接口电路进一步包括控制所传输的信号的时序以满足所述时序要求的时序电路。
附加实施例8。如附加实施例7所述的设备,其中所述时序电路包括延迟至少一部分所传输的信号以满足所述时序要求的延时补偿电路。
附加实施例9。如附加实施例7所述的设备,其中所述第一接口与第一时钟域相关联,其中所述第二接口与第二时钟域相关联,并且其中所述时序电路包括在所述第一时钟域与所述第二时钟域之间进行接口连接的时钟交叉电路。
附加实施例10。如附加实施例2所述的设备,其中所述可变通信要求包括优先级分配信息,其中接口电路以一定顺序处理所述缓存器中存储的所述事务,并且其中所述接口电路进一步包括基于所述优先级分配信息确定处理所存储的事务的顺序的优先级排序电路。
附加实施例11。如附加实施例1所述的设备,其中所述第一接口耦合到提供所述事务的专用电路,并且其中所述第二接口耦合到提供所述第二接口的所述可变通信要求的动态可重配置电路。
附加实施例12。一种操作具有耦合到各自电路的第一接口和第二接口的桥接电路的方法,该方法包括:利用接口电路在所述第一接口处接收通信;利用所述接口电路通过使用通信设定值在所述第二接口处传输所接收的通信;以及利用控制电路在不中断所述第一接口处的通信的情况下调整所述第二接口的所述通信设定值。
附加实施例13。如附加实施例12所述的方法,其进一步包括:利用存储电路缓存在所述第一接口处接收的通信。
附加实施例14。如附加实施例13所述的方法,其中耦合到所述第二接口的所述电路包括动态可重配置电路,该方法进一步包括:检测针对耦合到所述第二接口的所述动态可重配置电路的重新配置请求,其中缓存在所述第一接口处接收的通信包括在所述动态可重配置电路被重新配置时缓存在所述第一接口处接收的通信。
附加实施例15。如附加实施例13所述的方法,其进一步包括:利用所述控制电路在所述第二接口处接收接口请求;以及利用所述控制电路识别来自所述接口请求的多个接口参数,其中在不中断所述第一接口处的通信的情况下调整所述第二接口的所述通信设定值包括基于所识别的接口参数调整所述第二接口的所述通信设定值。
附加实施例16。如附加实施例15所述的方法,其中识别来自所述接口请求的所述接口参数包括识别从由以下各项组成的组中选择的至少一个接口参数:总线宽度参数、带宽参数、时序要求参数、时钟参数、地址映射参数和优先级分配参数。
附加实施例17。如附加实施例13所述的方法,其进一步包括:检测紧急重新配置事件;以及响应于检测到所述紧急重新配置事件,暂时终止所述第一接口处的通信。
附加实施例18。一种设备,其包括:电路;动态可重配置电路,其在所述电路的正常工作期间在至少第一配置和第二配置之间是可重新配置的;以及桥接电路,其具有耦合到所述电路的第一接口和耦合到所述动态可重配置电路的第二接口,其中所述桥接电路在不中断所述电路的情况下在所述电路与所述动态可重配置电路的所述第一配置和所述第二配置之间进行接口连接。
附加实施例19。如附加实施例18所述的设备,其进一步包括通信总线,所述通信总线耦合在所述桥接电路的所述第二接口与所述动态可重配置电路之间。
附加实施例20。如附加实施例19所述的设备,其中所述桥接电路包括第一桥接电路,所述设备进一步包括:第二桥接电路,其耦合在附加电路与所述通信总线之间,其中所述第二桥接电路在不中断所述附加电路的情况下经由所述通信总线在所述附加电路与所述动态可重配置电路的所述第一配置和所述第二配置之间进行接口连接。
附加实施例21。如附加实施例20所述的设备,其中所述附加电路包括利用所述第二桥接电路经由所述总线分别进行通信的多个电路。
附加实施例22。如附加实施例18所述的设备,其中所述桥接电路从所述电路接收通信,并且其中所述桥接电路包括在所述动态可重配置电路的重新配置操作期间存储从所述电路接收的通信的缓存器。
上述内容仅说明了本发明的原理,并且本领域技术人员可以在不脱离本发明的范围和精神的情况下进行各种修改。可以单个地或以任何组合的方式实现上述实施例。
Claims (20)
1.一种电路,其包括:
第一通信接口和第二通信接口;
耦合在所述第一接口和所述第二接口之间的接口电路;以及
控制电路,其在不中断所述第一接口处的通信的情况下基于所述第二接口的可变通信要求控制所述接口电路。
2.如权利要求1所述的电路,其中所述第一接口接收事务,并且其中所述接口电路包括存储所接收的事务的缓存器。
3.如权利要求2所述的电路,其中所述接口电路进一步包括基于所述第二接口的所述可变通信要求从所述第二接口处传输从所存储的事务中检索到的信息的接口转换电路。
4.如权利要求3所述的电路,其中利用第一协议在所述第一接口处接收所述事务,其中所述第二接口的所述可变通信要求识别第二协议,并且其中所述接口转换电路包括利用所述第二协议从所述第二接口处传输来自所存储的事务的所述信息的接口类型转换电路。
5.如权利要求4所述的电路,其中所述第一接口和所述第二接口具有各自的第一宽度和第二宽度,其中所述事务与所述第一宽度相关联,并且其中所述接口转换电路进一步包括将来自所存储的事务的所述信息转换成所述第二宽度的宽度转换电路。
6.如权利要求5所述的电路,其中在所述第一接口处接收的所述事务包括对应于第一地址空间的多个地址,其中所述第二接口与第二地址空间相关联,并且其中所述接口转换电路进一步包括将所述第一地址空间的地址映射到所述第二地址空间的地址重新映射电路。
7.如权利要求3所述的电路,其中在所述第二接口处传输的所述信息包括信号,其中所述第二接口的所述可变通信要求包括时序要求,并且其中所述接口电路进一步包括控制所传输的信号的时序以满足所述时序要求的时序电路。
8.如权利要求7所述的电路,其中所述时序电路包括延迟至少一部分所传输的信号以满足所述时序要求的延时补偿电路。
9.如权利要求7所述的电路,其中所述第一接口与第一时钟域相关联,其中所述第二接口与第二时钟域相关联,并且其中所述时序电路包括在所述第一时钟域与所述第二时钟域之间进行接口连接的时钟交叉电路。
10.如权利要求2所述的电路,其中所述可变通信要求包括优先级分配信息,其中接口电路以一定顺序处理所述缓存器中存储的所述事务,并且其中所述接口电路进一步包括基于所述优先级分配信息确定处理所存储的事务的顺序的优先级排序电路。
11.如权利要求1所述的电路,其中所述第一接口耦合到提供所述事务的专用电路,并且其中所述第二接口耦合到提供所述第二接口的所述可变通信要求的动态可重配置电路。
12.一种操作具有耦合到各自电路的第一接口和第二接口的桥接电路的方法,该方法包括:
利用接口电路在所述第一接口处接收通信;
利用所述接口电路通过使用通信设定值在所述第二接口处传输所接收的通信;以及
利用控制电路在不中断所述第一接口处的通信的情况下调整所述第二接口的所述通信设定值。
13.如权利要求12所述的方法,其进一步包括:
利用存储电路缓存在所述第一接口处接收的通信。
14.如权利要求13所述的方法,其中耦合到所述第二接口的所述电路包括动态可重配置电路,该方法进一步包括:
检测针对耦合到所述第二接口的所述动态可重配置电路的重新配置请求,其中缓存在所述第一接口处接收的通信包括在所述动态可重配置电路被重新配置时缓存在所述第一接口处接收的通信。
15.如权利要求13所述的方法,其进一步包括:
利用所述控制电路在所述第二接口处接收接口请求;以及
利用所述控制电路识别来自所述接口请求的多个接口参数,其中在不中断所述第一接口处的通信的情况下调整所述第二接口的所述通信设定值包括基于所识别的接口参数调整所述第二接口的所述通信设定值。
16.如权利要求15所述的方法,其中识别来自所述接口请求的所述接口参数包括识别从由以下各项组成的组中选择的至少一个接口参数:总线宽度参数、带宽参数、时序要求参数、时钟参数、地址映射参数和优先级分配参数。
17.如权利要求13所述的方法,其进一步包括:
检测紧急重新配置事件;以及
响应于检测到所述紧急重新配置事件,暂时终止所述第一接口处的通信。
18.一种设备,其包括:
电路;
动态可重配置电路,其在所述电路的正常工作期间在至少第一配置和第二配置之间是可重新配置的;以及
桥接电路,其具有耦合到所述电路的第一接口和耦合到所述动态可重配置电路的第二接口,其中所述桥接电路在不中断所述电路的情况下在所述电路与所述动态可重配置电路的所述第一配置和所述第二配置之间进行接口连接。
19.如权利要求18所述的设备,其中所述桥接电路包括第一桥接电路,所述设备进一步包括:
通信总线,其耦合在所述桥接电路的所述第二接口与所述动态可重配置电路之间;
第二桥接电路,其耦合在附加电路与所述通信总线之间,其中所述第二桥接电路在不中断所述附加电路的情况下经由所述通信总线在所述附加电路与所述动态可重配置电路的所述第一配置和所述第二配置之间进行接口连接,其中所述附加电路包括利用所述第二桥接电路经由所述总线分别进行通信的多个电路。
20.如权利要求18所述的设备,其中所述桥接电路从所述电路接收通信,并且其中所述桥接电路包括在所述动态可重配置电路的重新配置操作期间存储从所述电路接收的通信的缓存器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/919,899 US9465763B2 (en) | 2013-06-17 | 2013-06-17 | Bridge circuitry for communications with dynamically reconfigurable circuits |
US13/919,899 | 2013-06-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104239259A true CN104239259A (zh) | 2014-12-24 |
CN104239259B CN104239259B (zh) | 2018-06-12 |
Family
ID=50972458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410255083.9A Active CN104239259B (zh) | 2013-06-17 | 2014-06-10 | 用于与动态可重配置电路进行通信的桥接电路 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9465763B2 (zh) |
EP (1) | EP2816486B1 (zh) |
CN (1) | CN104239259B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111611183A (zh) * | 2019-02-25 | 2020-09-01 | 爱思开海力士有限公司 | 存储器控制器和包括存储器控制器的存储器系统 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150186317A1 (en) * | 2014-01-02 | 2015-07-02 | Lsi Corporation | Method and apparatus for detecting the initiator/target orientation of a smart bridge |
US10069933B2 (en) * | 2014-10-23 | 2018-09-04 | Cisco Technology, Inc. | System and method for creating virtual interfaces based on network characteristics |
US9990291B2 (en) * | 2015-09-24 | 2018-06-05 | Qualcomm Incorporated | Avoiding deadlocks in processor-based systems employing retry and in-order-response non-retry bus coherency protocols |
US10534541B2 (en) | 2016-09-20 | 2020-01-14 | Seagate Technology Llc | Asynchronous discovery of initiators and targets in a storage fabric |
US11301412B2 (en) * | 2017-12-22 | 2022-04-12 | Intel Corporation | Scaling interface architecture between memory and programmable logic |
US11709791B2 (en) * | 2020-09-21 | 2023-07-25 | Icron Technologies Corporation | Techniques for deconflicting USB traffic in an extension environment |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6766406B1 (en) * | 2001-10-08 | 2004-07-20 | Lsi Logic Corporation | Field programmable universal serial bus application specific integrated circuit and method of operation thereof |
CN1695127A (zh) * | 2002-09-16 | 2005-11-09 | 五级网络有限公司 | 网络接口和协议 |
WO2012070047A1 (en) * | 2010-11-24 | 2012-05-31 | Elta Systems Ltd. | Wireless device system-architecture |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5784291A (en) | 1994-12-22 | 1998-07-21 | Texas Instruments, Incorporated | CPU, memory controller, bus bridge integrated circuits, layout structures, system and methods |
US5754837A (en) | 1994-12-22 | 1998-05-19 | Texas Instruments Incorporated | Clock control circuits, systems and methods |
US5794062A (en) | 1995-04-17 | 1998-08-11 | Ricoh Company Ltd. | System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization |
US5848251A (en) | 1996-08-06 | 1998-12-08 | Compaq Computer Corporation | Secondary channel for command information for fibre channel system interface bus |
US5815677A (en) * | 1996-12-31 | 1998-09-29 | Compaq Computer Corporation | Buffer reservation method for a bus bridge system |
DE19819569B4 (de) | 1998-04-30 | 2005-09-22 | Siemens Ag | Elektronischer Schaltkreis für die Umwandlung von Daten |
US6681354B2 (en) | 2001-01-31 | 2004-01-20 | Stmicroelectronics, Inc. | Embedded field programmable gate array for performing built-in self test functions in a system on a chip and method of operation |
US7246194B2 (en) * | 2003-01-30 | 2007-07-17 | Rosemount, Inc. | Interface module for use with a fieldbus device network and with internet and non-internet based process control networks |
US7062589B1 (en) | 2003-06-19 | 2006-06-13 | Altera Corporation | Bus communication apparatus for programmable logic devices and associated methods |
DE10356127A1 (de) * | 2003-12-02 | 2005-07-07 | Robert Bosch Gmbh | Einrichtung zur Steuerung eines Speichers |
DE10360210A1 (de) * | 2003-12-20 | 2005-07-28 | Robert Bosch Gmbh | Netzwerkbrücke |
DE102005026436B4 (de) * | 2005-06-08 | 2022-08-18 | Austriamicrosystems Ag | Schnittstellenanordnung, insbesondere für ein System-on-Chip, und deren Verwendung |
US8390325B2 (en) | 2006-06-21 | 2013-03-05 | Element Cxi, Llc | Reconfigurable integrated circuit architecture with on-chip configuration and reconfiguration |
US7747889B2 (en) * | 2006-07-31 | 2010-06-29 | Freescale Semiconductor, Inc. | Bus having a dynamic timing bridge |
US7904629B2 (en) * | 2007-10-02 | 2011-03-08 | NVON, Inc. | Virtualized bus device |
US8774048B2 (en) * | 2009-01-29 | 2014-07-08 | Qualcomm Incorporated | Link management for multimedia content mobility |
US8489792B2 (en) * | 2010-03-12 | 2013-07-16 | Lsi Corporation | Transaction performance monitoring in a processor bus bridge |
US8271716B2 (en) * | 2010-02-01 | 2012-09-18 | Oracle America, Inc. | Virtualization of an input/output device for supporting multiple hosts and functions by using an ingress manager for accepting into a buffer communications identified by functions hosted by a single host |
US9780789B2 (en) * | 2010-05-13 | 2017-10-03 | Altera Corporation | Apparatus for automatically configured interface and associated methods |
-
2013
- 2013-06-17 US US13/919,899 patent/US9465763B2/en active Active
-
2014
- 2014-06-06 EP EP14171492.3A patent/EP2816486B1/en active Active
- 2014-06-10 CN CN201410255083.9A patent/CN104239259B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6766406B1 (en) * | 2001-10-08 | 2004-07-20 | Lsi Logic Corporation | Field programmable universal serial bus application specific integrated circuit and method of operation thereof |
CN1695127A (zh) * | 2002-09-16 | 2005-11-09 | 五级网络有限公司 | 网络接口和协议 |
WO2012070047A1 (en) * | 2010-11-24 | 2012-05-31 | Elta Systems Ltd. | Wireless device system-architecture |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111611183A (zh) * | 2019-02-25 | 2020-09-01 | 爱思开海力士有限公司 | 存储器控制器和包括存储器控制器的存储器系统 |
Also Published As
Publication number | Publication date |
---|---|
EP2816486A1 (en) | 2014-12-24 |
US9465763B2 (en) | 2016-10-11 |
CN104239259B (zh) | 2018-06-12 |
EP2816486B1 (en) | 2019-07-24 |
US20140372654A1 (en) | 2014-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104239259A (zh) | 用于与动态可重配置电路进行通信的桥接电路 | |
US9673824B2 (en) | Techniques and circuitry for configuring and calibrating an integrated circuit | |
CN103105889B (zh) | 一种fpga原型验证板堆叠的时钟同步装置及系统 | |
US8269524B2 (en) | General purpose input/output pin mapping | |
CN104424154A (zh) | 通用串行外围接口 | |
EP3611625A1 (en) | Inter-die communication of programmable logic devices | |
WO2015089058A1 (en) | Method and apparatus for transferring information within and between system-on-chips via intra-chip and inter-chip hopping buses | |
US11403023B2 (en) | Method of organizing a programmable atomic unit instruction memory | |
US12020062B2 (en) | Method of executing programmable atomic unit resources within a multi-process system | |
US11740929B2 (en) | Registering a custom atomic operation with the operating system | |
CN104156333A (zh) | 一种基于fpga的uart多接口扩展系统和方法 | |
CN108628784A (zh) | 串行通信器及串行通信系统 | |
CN114330191A (zh) | 一种信号复用传输的方法及装置 | |
CN104050140B (zh) | 用于混合通道停转或无锁总线架构的方法、设备、系统 | |
US11614942B2 (en) | Reuse in-flight register data in a processor | |
US20220121486A1 (en) | Rescheduling a failed memory request in a processor | |
CN103003769A (zh) | 向电子设备提供时钟信号的时钟电路、带有时钟电路的电子设备以及向电子设备提供时钟信号的方法 | |
US8659318B1 (en) | Systems and methods for implementing tristate signaling by using encapsulated unidirectional signals | |
US9148155B1 (en) | Clock distribution architecture for integrated circuit | |
US11704276B2 (en) | Propagation delay compensation for SPI interfaces | |
CN104678815B (zh) | Fpga芯片的接口结构及配置方法 | |
Adetomi et al. | Relocation-aware communication network for circuits on Xilinx FPGAs | |
US20140093003A1 (en) | Data transmission between asynchronous environments | |
US8355477B1 (en) | Multi-lane communication with measurable latency | |
CN105068961B (zh) | 一种以太网接口管理电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |