CN211531080U - 集成电路 - Google Patents

集成电路 Download PDF

Info

Publication number
CN211531080U
CN211531080U CN202020207091.7U CN202020207091U CN211531080U CN 211531080 U CN211531080 U CN 211531080U CN 202020207091 U CN202020207091 U CN 202020207091U CN 211531080 U CN211531080 U CN 211531080U
Authority
CN
China
Prior art keywords
boundary
logic
line segment
logic interface
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202020207091.7U
Other languages
English (en)
Inventor
R·C·卡马罗塔
U·S·韩
W·卢
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.)
Xilinx Inc
Original Assignee
Xilinx Inc
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 Xilinx Inc filed Critical Xilinx Inc
Application granted granted Critical
Publication of CN211531080U publication Critical patent/CN211531080U/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17736Structural details of routing resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking

Landscapes

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

Abstract

本文描述的示例涉及集成电路。示例IC包括可编程逻辑区域和边界逻辑接口。可编程逻辑区域包括布置在逻辑元件的列之间的互连元件的列。边界逻辑接口在互连元件的列的相应的端处并且通信地连接到该互连元件的列。边界逻辑接口在可编程逻辑区域的边界之外。边界逻辑接口中的第一边界逻辑接口(BLI)被配置成通信地连接到外部电路。第一BLI包括被配置成在外部电路与可编程逻辑区域之间传输信号的接口。

Description

集成电路
技术领域
本公开的示例总体上涉及集成电路(IC),并且具体地,涉及到IC中的可编程逻辑区域的边界逻辑接口(BLI)。
背景技术
诸如现场可编程门阵列(FPGA)的可编程逻辑器件(PLD)通常是包括可编程逻辑的集成电路(IC)。可编程逻辑可以在IC的区域中,诸如可编程逻辑区域。IC的可编程逻辑区域也可以被称为IC内的结构。可编程逻辑区域可以是可编程的,以被配置成实施各种逻辑功能、应用或内核。逻辑功能等可以在由可编程逻辑区域从可编程逻辑区域之外的某个电路接收的信号上执行,并且可以生成要从可编程逻辑区域传送到可编程逻辑区域之外的某个电路的信号。在一些情况下,可编程逻辑区域的架构可能给将信号路由到可编程逻辑区域和从可编程逻辑区域路由信号产生挑战。
实用新型内容
本文描述的示例提供了至少部分解决现有技术中的技术问题的集成电路(IC)。更具体地,一些示例提供了到IC中的可编程逻辑区域的边界逻辑接口(BLI)。
在第一方面,提供了一种集成电路。所述集成电路包括:可编程逻辑区域,包括布置在逻辑元件的列之间的互连元件的列;以及边界逻辑接口,在所述互连元件的列的相应的端处并且通信地连接到所述互连元件的列,所述边界逻辑接口在所述可编程逻辑区域的边界之外,所述边界逻辑接口的第一边界逻辑接口被配置成通信地连接到外部电路,所述第一边界逻辑接口包括被配置成在所述外部电路与所述可编程逻辑区域之间传输信号的接口。
在一些实施例中,所述集成电路还包括:配置互连,所述配置互连通信地耦合到所述可编程逻辑区域,所述可编程逻辑区域的所述逻辑元件和所述互连元件能够使用通过所述配置互连传输的配置帧而进行配置;以及外围互连,所述边界逻辑接口中的至少一些包括可配置逻辑,所述可配置逻辑能够通过所述外围互连进行配置。
在一些实施例中,所述集成电路还包括配置互连,所述配置互连通信地耦合到所述可编程逻辑区域,所述可编程逻辑区域的所述逻辑元件和所述互连元件能够使用通过所述配置互连传输的配置帧而进行配置,所述可编程逻辑区域的所述边界由所述配置帧的整数倍定义。
在一些实施例中,所述第一边界逻辑接口具有垂直于所述互连元件的列中的第一列的第一宽度,所述第一边界逻辑接口通信连接到所述第一列,所述第一列具有第二宽度,所述第一宽度大于所述第二宽度。
在一些实施例中,所述集成电路还包括通信地连接到所述第一边界逻辑接口的所述外部电路,其中第一数目的线段连接在所述第一边界逻辑接口与所述互连元件的列中的第一列之间,并且第二数目的线段在平行于所述第一列的方向上从所述第一边界逻辑接口向所述外部电路延伸,所述第二数目大于所述第一数目。
在一些实施例中,所述第一边界逻辑接口电连接到所述互连元件的列中的第一列,所述第一边界逻辑接口包括:第一多路复用器,具有第一输入节点,所述第一输入节点电连接到被配置成传输与从所述第一列接收的信号相对应的相应信号的输入线段,并且所述第一多路复用器具有第一输出节点,所述第一输出节点连接到被配置成向所述外部电路传输所选择的信号的输入线段;以及第二多路复用器,具有第二输入节点,所述第二输入节点电连接到被配置成传输与从所述外部电路接收的信号相对应的相应信号的输出线段,并且所述第二多路复用器具有第二输出节点,所述第二输出节点连接到被配置成向所述第一列传输所选择的信号的输出线段。
在一些实施例中,所述输入线段中的至少一个电连接到所述第二多路复用器的所述第二输入节点中的至少一个。
在一些实施例中,所述第一边界逻辑接口电连接到所述边界逻辑接口的第二边界逻辑接口,所述第二边界逻辑接口与所述第一边界逻辑接口相邻;所述第二边界逻辑接口包括:第三多路复用器,具有第三输出节点,所述第三输出节点连接到被配置成向一电路传输所选择的信号的输入线段;和第四多路复用器,具有第四输出节点,所述第四输出节点连接到被配置成向所述可编程逻辑区域传输信号的输出线段;所述第一边界逻辑接口的所述输入线段中的至少一个电连接到所述第三多路复用器的输入节点中的至少一个;并且所述第一边界逻辑接口的所述输出线段中的至少一个电连接到所述第四多路复用器的输入节点中的至少一个。
在一些实施例中,所述第一边界逻辑接口包括同步级,所述同步级在所述第一边界逻辑接口的每个输入路线和每个输出路线中包括至少一个触发器。
在一些实施例中,所述第一边界逻辑接口包括同步级,所述同步级在所述第一边界逻辑接口的每个输入路线和每个输出路线中包括多级流水线。
在一些实施例中,所述第一边界逻辑接口包括同步级,所述同步级包括:第一触发器和第二触发器,具有相应的数据输入节点,所述相应的数据输入节点电连接到被配置成从所述外部电路接收双倍数据速率信号的第一线段,所述第一触发器和所述第二触发器具有相应的数据输出节点,所述相应的数据输出节点分别电连接到所述第一边界逻辑接口中的第二线段和第三线段,所述第一触发器和所述第二触发器被配置成将所述第一线段上的所述双倍数据速率信号转换为所述第二线段和所述第三线段上的相应的单倍数据速率信号;以及第三触发器、第四触发器和多路复用器,所述第三触发器具有电连接到所述第一边界逻辑接口中的第四线段的数据输入节点,所述第四触发器具有电连接到所述第一边界逻辑接口中的第五线段的数据输入节点,所述第三触发器和所述第四触发器具有电连接到所述多路复用器的相应输入节点的相应数据输出节点,所述多路复用器具有电连接到第六线段的输出节点,所述第三触发器、所述第四触发器和所述多路复用器被配置成将所述第四线段和所述第五线段上的相应的单倍数据速率信号转换为所述第六线段上的双倍数据速率信号。
在一些实施例中,所述第一边界逻辑接口包括从所述互连元件的列中的第一列延伸远离所述可编程逻辑区域的线段,其中所述线段被配置成在所述第一列与所述外部电路之间传输相应的信号,而无需通过所述第一边界逻辑接口的逻辑电路传输所述相应的信号。
在第二方面,提供了一种集成电路。所述集成电路包括:由边界定义的可编程逻辑区域,所述可编程逻辑区域包括:可编程互连元件的第一列;电连接到所述第一列的可编程逻辑元件的第二列;可编程互连元件的第三列;以及电连接到所述第三列的可编程逻辑元件的第四列;第一边界逻辑接口,电连接到所述第一列并且在所述边界之外,所述第一边界逻辑接口被配置成电连接到第一外部电路;以及第二边界逻辑接口,电连接到所述第三列并且在所述边界之外,所述第二边界逻辑接口被配置成电连接到第二外部电路。
在一些实施例中,所述第一边界逻辑接口被配置成将信号从所述第一列传输到所述第一外部电路,而无需通过逻辑电路传输所述信号。
在一些实施例中,所述第一边界逻辑接口直接连接到所述第二边界逻辑接口,所述第一边界逻辑接口和所述第二边界逻辑接口被配置成在所述第一边界逻辑接口与所述第二边界逻辑接口之间传输信号。
在一些实施例中,所述第一边界逻辑接口和所述第二边界逻辑接口中的每个包括具有流水线的同步级。
在一些实施例中,所述第一边界逻辑接口和所述第二边界逻辑接口中的每个包括同步级,所述同步级具有:第一转换电路,被配置成将与从可编程逻辑区域接收的信号相对应的两个第一单倍数据速率信号转换为第一双数据速率信号;以及第二转换电路,被配置成将从相应的外部电路接收的第二双倍数据速率信号转换为两个第二单倍数据速率信号。
可以实现各种示例的许多好处和优点。在一些示例中,BLI在可编程逻辑区域之外。可编程逻辑区域之外的BLI可以为BLI提供灵活性,并且可以不对可编程逻辑区域内的资源造成不利影响。BLI可以具有灵活的物理和/或逻辑宽度和高度,这可以允许BLI单元的增加的均匀性、改善的水平到垂直逃出(escape)线段比率以及包括用以灵活地传输信号的逻辑。在一些示例中,BLI可以直接访问可编程逻辑区域的全局路由网络,并且可以通过BLI直接传输信号(例如,数据信号和/或时钟信号),而无需通过逻辑电路传输这些信号,这可能会增加这些信号的传播的延时(但可以通过电平移位器来传输信号以允许跨电源域)。在一些示例中,BLI可以包括同步级,该同步级可以形成各种水平的流水线(例如,形成先进先出(FIFO)缓冲器)和/或可以包括被配置成将单倍数据速率信号转换为双倍数据速率信号(反之亦然)的电路。
参考以下详细描述可以理解这些和其他方面。
附图说明
为了可以详细地理解上述特征的方式,可以通过参考示例实施方式来获得上面简要概述的更具体的描述,其中一些示例实施方式在附图中图示。然而,应当注意,附图仅图示了通常的示例实施方式,因此不应当视为对其范围的限制。
图1是描绘根据一些示例的片上系统(SoC)的框图。
图2是根据一些示例的可以被实施成图1的SoC的FPGA的布局。
图3是根据一些示例的更详细的列的一些块。
图4是根据一些示例的具有外边界的可编程逻辑区域的总体布局。
图5是根据一些示例的在可编程逻辑区域的水平边界处的示例边界区域的布局。
图6示出了根据一些示例的来自互连元件的线段,该线段延伸到边界逻辑接口(BLI)中。
图7A和图7B是根据一些示例的可以被实施在BLI中的逻辑。
图8是根据一些示例的同步级的第一示例。
图9是根据一些示例的同步级的第二示例。
图10是根据一些示例的同步级的第三示例。
图11是根据一些示例的用于操作IC的方法的流程图。
为了便于理解,在可能的地方使用了相同的附图标记来表示图中共有的相同元件。可以预期,一个示例的元件可以被有益地合并在其他示例中。
具体实施方式
本文描述的示例提供了集成电路(IC)和操作IC的方法。更具体地,一些示例提供了到IC中的可编程逻辑区域的边界逻辑接口(BLI),以及用于操作这种IC的方法。在一些示例中,BLI在可编程逻辑区域之外。可编程逻辑区域之外的BLI可以为BLI提供灵活性,并且可以不对可编程逻辑区域内的资源造成不利影响。BLI可以具有灵活的物理和/或逻辑宽度和高度,这可以允许BLI单元的增加的均匀性、改善的水平到垂直逃出(escape)线段比率以及包括用以灵活地传输信号的逻辑。在一些示例中,BLI可以直接访问可编程逻辑区域的全局路由网络,并且可以通过BLI直接传输信号(例如,数据信号和/或时钟信号),而无需通过逻辑电路传输这些信号,这可能会增加这些信号的传播的延时(但可以通过电平移位器来传输信号以允许跨电源域)。在一些示例中,BLI可以包括同步级,该同步级可以形成各种水平的流水线(例如,形成先进先出(FIFO)缓冲器)和/或可以包括被配置成将单倍数据速率信号转换为双倍数据速率信号(反之亦然)的电路。通过本文描述的各种特征和方面可以实现其他优点和好处,并且本领域普通技术人员将容易认识到。
在下文中参考附图描述各种特征。应当注意,附图可以按比例绘制,也可以不按比例绘制,并且贯穿附图,相似结构或功能的元件由相似的附图标记表示。应当注意,附图仅旨在有助于对特征的描述。它们不旨在作为所要求保护的实用新型的详尽描述或对所要求保护的实用新型的范围的限制。另外,所图示的示例不必具有所示的所有方面或优点。结合特定示例描述的方面或优点不必限于该示例,并且可以在任何其他示例中实践,即使未如此图示或未如此明确描述。此外,可以以特定的操作顺序来描述本文描述的方法,但是可以以具有更多或更少的操作的各种其他顺序(例如,包括各种操作的不同串行或并行执行)来实施根据其他示例的其他方法。甚至更进一步的,各种方向或定向被描述为例如垂直和水平,或者列和行。这些指定是为了便于描述通常垂直的方向或定向,并且可以实施其他方向或定向。
图1是描绘根据一些示例的片上系统(SoC)102的框图。SoC 102是集成电路(IC),其是可编程逻辑器件,诸如现场可编程门阵列(FPGA)。SoC 102包括处理系统104、片上网络(NoC)106、配置互连108、一个或多个可编程逻辑区域110a至110n(通常,单独地或共同地,“可编程逻辑区域110”)、存储器控制器112、多千兆位收发器(MGT)116、输入/输出块(IO)118和其他IP电路120。
通常,处理系统104通过配置互连108连接到(一个或多个)可编程逻辑区域110。处理系统104、(一个或多个)可编程逻辑区域110、存储器控制器112、MGT 116、IO 118和其他IP电路120也连接到NoC 106,并且因此可以经由NoC 106相互通信耦合。处理系统104、存储器控制器112、MGT 116、IO 118和其他IP电路120也是连接(例如,直接)到(一个或多个)可编程逻辑区域110的相应的子集。例如,处理系统104、IO 118和其他IP电路120中的每个连接到可编程逻辑区域110a,并且存储器控制器112和MGT 116中的每个连接到可编程逻辑区域110n。在一些示例中,不是所有的(一个或多个)可编程逻辑区域110都连接到IO 118或MGT 116。电路可以连接到(一个或多个)可编程逻辑区域110的任何子集,并且电路可以与任何其他电路组合地连接到可编程逻辑区域110的给定子集。附加地,存储器控制器112连接到IO 118中的至少一个,IO 118又连接到外部存储器114,并且因此,存储器控制器112通信地耦合到外部存储器114。因此,IO 118中的至少一些可以通过存储器控制器112通信地耦合到NoC 106。
处理系统104可以包括一个或多个处理器核。例如,处理系统104可以包括多个基于ARM的嵌入式处理器核。(一个或多个)可编程逻辑区域110可以包括任意数目的可配置逻辑块、查找表(LUT)、数字信号处理块、随机存取存储器块、UltraRAM块和可编程互连元件,诸如下面所描述的。(一个或多个)可编程逻辑区域110可以通过配置互连108使用处理系统104来编程或配置。例如,配置互连108可以使能例如由处理系统104(诸如,平台管理控制器(PMC))的处理器核进行的例如(一个或多个)可编程逻辑区域110的结构的基于帧的编程。
NoC 106通常包括路由网络和NoC外围互连(NPI)。路由网络在不同系统或电路之间提供NoC分组的路由。路由网络包括通过线段互连的NoC分组交换机,该些线段在NoC主单元(NMU)和NoC从单元(NSU)之间。每个NMU是将主电路连接到NoC 106的入口电路。每个NSU是将NoC 106连接到从端点电路的出口电路。每个NoC分组交换机执行NoC分组的交换。因此,NMU、NoC分组交换机和NSU可以被配置成提供通道,以用于经由NMU、由线段互连的NoC分组交换机和NSU,在主端点电路到从端点电路之间进行通信。NMU、NoC分组交换机和NSU也包括寄存器块,它们被写入以配置相应的NMU、NoC分组交换机和NSU。可以经由NPI写入寄存器块。例如,PMC可以经由NPI向NMU、NoC分组交换机和NSU传送存储器映射的写入请求,以写入寄存器块来配置NMU、NoC分组交换机和NSU。NPI可以包括互连的NPI交换机,这些交换机可以将存储器映射的写入请求路由到适当的寄存器块。
如所图示的,外部存储器114在SoC 102的片外,并且在其他示例中,存储器可以在SoC 102中。外部存储器114可以是任何存储器,诸如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)(例如双倍数据速率同步DRAM(DDR SDRAM))或其他存储器。IO 118可以是任何输入/输出电路,以将SoC 102与其他电路和/或系统通信地耦合。在一些示例中,IO118可以包括高密度输入/输出(HDIO)电路、外围组件互连快速(PCIe)电路、极限性能输入/输出(XPIO)电路等等。其他IP电路120可以是例如数字时钟管理器、模数转换器、系统监控逻辑和/或用于给定实施方式的任何电路。在一些示例中,存储器控制器112、MGT 116、IO118和/或其他IP电路120中的至少一些是可配置的。例如,存储器控制器112、MGT 116、IO118和/或其他IP电路120可以经由NoC 106的NPI能够进行配置。
图2图示了可以被实施成图1的SoC 102的FPGA的布局。为了便于参考,图示了水平方向和垂直方向。FPGA包括可编程逻辑区域110(未具体编号),该可编程逻辑区域110包括各种逻辑块的列。任何可编程逻辑区域110可以包括数字信号处理(DSP)块130、随机存取存储器块(BRAM)132、UltraRAM块(URAM)134、可配置逻辑块(CLB)136(例如LUT)和可编程互连元件138的列的任何数目和组合。可编程互连元件138的列通常被布置在其他逻辑块的相邻的列之间。图2的布局通常具有五个可编程逻辑区域110,这将在下面进一步描述。
NoC 106具有下部水平NoC部分106a、上部水平NoC部分106b和两个垂直NoC部分106c、106d。存储器控制器112和一些其他IP电路120被布置在下部水平NoC部分106a的区域中。IO 118沿着布局的底部边缘并且在下部水平NoC部分106a与布局的底部边缘之间布置。上部水平NoC部分106b沿着布局的顶部边缘。处理系统104沿着布局的第一横向边缘并且沿着下部水平NoC部分106a。MGT 116沿着从处理系统104延伸到上部水平NoC部分106b的布局的第一横向边缘。MGT 116还沿着从下部水平NoC部分106a延伸到上部水平NoC部分106b的布局的第二横向边缘(与第一横向边缘相反)。配置互连108沿着处理系统104的一侧延伸并且从下部水平NoC部分106a延伸到上部水平NoC部分106b。IO 118和其他IP电路120的列沿着第二横向边缘邻近MGT 116,并且从下部水平NoC部分106a延伸到上部水平NoC部分106b。时钟和其他控制逻辑的行122跨该布局水平延伸。行122用于跨FPGA的宽度分配时钟和其他控制信号。
可编程逻辑区域110中的第一可编程逻辑区域在处理系统104与上部水平NoC部分106b之间和在配置互连108与沿着布局的第一横向边缘的MGT 116之间的区域中。该区域中的可编程逻辑区域110包括一列DSP块130、两列BRAM 132、某个数目的列的CLB 136以及某个数目的列的可编程互连元件138。可编程逻辑区域110中的第二可编程逻辑区域在下部水平NoC部分106a与上部水平NoC部分106b之间和在配置互连108与垂直NoC部分106c之间的区域中。在该区域中的可编程逻辑区域110包括一列BRAM 132、某个数目的列的CLB 136以及某个数目的列的可编程互连元件138。可编程逻辑区域110中的第三可编程逻辑区域在下部水平NoC部分106a与上部水平NoC部分106b之间和在垂直NoC部分106c、106d之间的区域中。该区域中的可编程逻辑区域110包括两列DSP块130、一列BRAM 132、某个数目的列的CLB136以及某个数目的列的可编程互连元件138。可编程逻辑区域110的第四可编程逻辑区域在下部水平NoC部分106a与上部水平NoC部分106b之间和在垂直NoC部分106d与IO 118和其他IP电路120的列之间的区域中。该区域中的可编程逻辑区域110包括一列DSP块130、一列BRAM 132、一列URAM 134、某个数目的列的CLB 136以及某个数目的列的可编程互连元件138。可编程逻辑区域110的第五可编程逻辑区域在下部水平NoC部分106a与上部水平NoC部分106b之间和在IO 118与其他IP电路120的列与沿着布局的第二横向边缘的MGT 116之间的区域中。该区域中的可编程逻辑区域110包括某个数目的列的CLB 136和某个数目的列的可编程互连元件138。
在图2的布局中标识了边界区域140。边界区域140在可编程逻辑区域110中的逻辑块的列的末端。随后将更详细地描述该边界区域140的各方面。
其他电路和组件可以被包括在FPGA中。例如,数据处理引擎(DPE)的阵列可以沿着在上部水平NoC部分106b处的布局的顶部边缘。
图3更详细地图示了根据一些示例的列的一些块。列中的每个逻辑块具有通过互连段152到相邻列的至少一个可编程互连元件138的连接。每个可编程互连元件138包括通过互连段154到相同列中的垂直相邻的可编程互连元件138的连接。每个可编程互连元件138还包括通过互连段156到可编程互连元件138的相应的相邻列中的可编程互连元件138的连接。由垂直互连段154和水平互连段156互连的可编程互连元件138在可编程逻辑区域110中形成全局路由网络,该全局路由网络可以被配置成在可编程逻辑区域110内路由各种时钟信号和数据信号。例如,可以通过互连段154将在可编程逻辑区域110的边界处的可编程互连元件138连接到如下面描述的边界逻辑接口(BLI)。
在示例实施方式中,CLB 136可以包括可配置逻辑元件,该可配置逻辑元件可以被编程为实施用户逻辑并且通过互连段152连接到单个可编程互连元件138。如出于方便而共同图示的(例如,将被分离地实施),DSP块130、BRAM 132和URAM 134分别可以包括DSP逻辑元件、BRAM逻辑元件和URAM逻辑元件,并且均可以通过相应的互连段152连接到一个或多个可编程互连元件138。通常,通过互连段152连接到逻辑块的可编程互连元件138的数目取决于逻辑块的高度。在图示的示例中,DSP块130、BRAM 132和URAM 134具有与五个CLB相同的高度,但是也可以使用其他数目(例如四)。
利用图2中图示的架构的一些FPGA可以包括附加逻辑块,该附加逻辑块打乱了构成FPGA的很大一部分的规则柱状结构。附加逻辑块可以是可编程块和/或专用逻辑。注意,图2仅旨在说明一个示例FPGA架构。例如,列中的逻辑块的数目、列的相对宽度、列的数目和顺序、列中包括的逻辑块的类型、逻辑块的相对大小以及图2中所包括的互连/逻辑实施方式仅是一个示例。
图4图示了根据一些示例的具有外边界202的可编程逻辑区域110的总体布局。该布局示出了可编程逻辑区域110,其包括结构逻辑块204的列和可编程互连元件138的列。结构逻辑块204可以是DSP块130、BRAM 132、URAM 134和CLB 136中的任何一个。可编程互连元件138的列在结构逻辑块204的每对相邻列之间。相应的边界逻辑接口(BLI)206在边界202的顶部或边界202的底部处与可编程互连元件138的每个列相邻并且电连接。
BLI 206在可编程逻辑区域110的边界202之外。例如,可编程逻辑区域110的边界在逻辑块的列的末端。在一些示例中,可编程逻辑区域110的高度以及因此水平边界可以被定义为由配置帧的整数倍配置的逻辑块和可编程互连元件138的面积,该配置帧被实施成经由配置互连108来配置可编程逻辑区域110。在一些示例中,可编程逻辑区域110的高度可以由互连段154环回的位置来定义,尽管一些示例预期环回可以在可编程逻辑区域110之外的BLI中实施。
图5图示了根据一些示例的在可编程逻辑区域110的边界202处的示例边界区域140的布局。可以沿着可编程逻辑区域110的边界202(例如,在底部和顶部)重复或复制相似的布局。
在可编程逻辑区域110中和在边界202处示出了结构逻辑块(LOG)204和可编程互连元件(INT)138。在可编程逻辑区域110中以及在相应的列的末端处的结构逻辑块204和可编程互连元件138在边界202处并且与边界202相邻。BLI 206被布置在可编程逻辑区域110之外的薄片(shim)区域208中,例如,在与结构逻辑块204和可编程互连元件138相反的边界202的一侧上。如将在下面进一步描述的,每个BLI 206例如通过互连段154连接到跨边界202的可编程互连元件138中的对应的一个可编程互连元件。在一些示例中,薄片区域208是SoC 102的布局中的专用区域,其中布置了BLI 206。在一些示例中,薄片区域208与诸如NoC106、存储器控制器112和/或其他IP电路120的其他区域重叠或重合。在另外的示例中,薄片区域208可以是专用区域和/或与其他区域重叠或重合的任何组合。
每个BLI 206包括将相应的可编程互连元件138与可编程逻辑区域110外部的电路对接的电路系统。例如,BLI 206可以向存储器控制器112、NoC 106和/或其他电路提供接口。如所图示的,一些BLI 206提供到IO 118中的物理接口块(PHY)210和/或锁相环块(PLL)212的接口。在该示例中,BLI 206经由各种线段电连接到PHY 210和PLL212。
BLI 206可以包括电平移位器,实施电平移位器以允许在可编程逻辑区域110中实施的电源域与在可编程逻辑区域110之外实施的另一电源域之间传送信号。BLI 206可以包括逻辑电路,以控制哪些信号以及信号如何从BLI 206输入到可编程互连元件138,以及从BLI206输出到可编程逻辑区域110之外的电路。逻辑电路可以可配置以选择性地输入和/或输出信号。这些方面中的任何一个或多个可以被包括在任何BLI 206中。
在一些示例中,当BLI 206包括可配置逻辑电路时,可以经由NPI配置BLI 206。例如,每个BLI 206可以包括可以被写入以存储相应的BLI 206的配置数据的寄存器块。处理系统104上的PMC可以使用存储器映射的写入请求通过NoC 106的NPI来写入BLI 206的寄存器块。因此,在这种示例中,BLI 206是通过NPI而不是通过配置互连108配置的。
根据一些示例,在可编程逻辑区域110之外实施BLI 206可以在BLI 206的设计中提供灵活性。相对于在相应的可编程逻辑区域110内实施BLI 206,在可编程逻辑区域110之外的BLI 206的面积和/或尺寸可以更大,而对可编程逻辑区域110几乎没有或没有不利影响。如所图示的,BLI 206可以具有BLI高度206H(例如,在平行于柱状逻辑结构的列的垂直方向上)。BLI高度206H可以在各种实施方式之间变化,而不会引起可编程逻辑区域110丢失逻辑资源。例如,如果BLI 206在可编程逻辑区域110中,则由于较大的BLI 206可能会置换一些逻辑资源,因此增加BLI高度206H会导致可编程逻辑区域110丢失逻辑资源。如果BLI206在可编程逻辑区域110之外,则增加BLI高度206H通常不会导致可编程逻辑区域110丢失逻辑资源。
另外,如所图示的,BLI 206可以具有BLI宽度206W(例如,在垂直于柱状逻辑结构的列的水平方向上)。BLI宽度206W可以大于相应的BLI 206连接到的可编程互连元件138的列的宽度,诸如所图示的那样。如果BLI 206在可编程逻辑区域110中,则BLI 206的宽度可能受BLI 206所驻留的可编程互连元件138的列的宽度的限制。基于对应的可编程互连元件138所连接的每种类型的逻辑,这可以导致不同的BLI 206具有不同的布局。例如,在这种情况下,连接到CLB136的列的可编程互连元件138的列可以连接到BLI,该BLI具有不同于与连接到DSP模块130等的可编程互连元件138连接的BLI的布局。在可编程逻辑区域110之外,BLI 206可以不限于可编程逻辑区域110中的可编程互连元件138的对应的列的宽度。在去除该限制的情况下,更统一的BLI单元可以实施为连接到不同逻辑的跨各种可编程互连元件138的BLI 206。例如,在一些实施方式中,沿着可编程逻辑区域110的底部边界,针对每个BLI 206使用一个BLI单元,并且沿着可编程逻辑区域110的顶部边界,针对每个BLI 206使用另一BLI单元。
当BLI 206在可编程逻辑区域110之外时,由于可能增加的BLI宽度206W,BLI高度206H可以相对于可编程逻辑区域110内的BLI减小。作为示例,与可以具有118μm(宽度)乘以77μm(高度)面积的用于可编程逻辑区域110之外的BLI 206的BLI单元相比,用于可编程逻辑区域110中的BLI的最小的BLI单元可以具有76μm(宽度)乘以120μm(高度)的面积。可以实施其他尺寸,尤其是在减小的技术节点的情况下。
与可编程逻辑区域110中的BLI相比,增加的BLI宽度206W还可以允许逃出或进入BLI 206的线段的水平线段与垂直线段之比降低。图6图示了来自可编程互连元件138的互连段154,互连段154延伸到BLI 206中。垂直线段220逃出到外部电路或从外部电路进入BLI206。由于BLI宽度206W大于可编程互连元件138的宽度,因此与从可编程互连元件138垂直延伸到BLI 206的互连段154的数目相比,更多的垂直线段220可以从BLI 206垂直延伸,虽然图6图示了相等的数目。可编程互连元件138与BLI 206之间的互连段154的数目可能由可编程互连元件138的宽度的限制,而垂直线段220的数目不被可编程互连元件138的宽度限制。诸如下面所描述的,各种逻辑可以允许比在BLI 206与可编程互连元件138之间延伸的更大数目的垂直线段在BLI 206与另一电路之间延伸。
具有实施各种大小的BLI单元的灵活性可以允许能够灵活地传输信号的各种逻辑,诸如多路复用器(可以是网状或漏斗状的)。任何给定的信号可以被导向在多个线段中的任何一个上。这可以允许在SoC 102上实例化的设计中的灵活性。可以在任何一个或多个目标线段上将信号从BLI 206传送到外部电路或可编程互连元件138,这允许接收和处理信号的方式上的灵活性。
BLI 206的BLI单元的大小的灵活性可以使能超额预订(oversubscription)。在一些示例中,从可编程互连元件138到BLI 206的线段(例如,用于信号逃出或进入可编程逻辑区域110)的数目可以小于从BLI 206到目标外部电路的线段的数目。因此,在一些情况下,BLI 206可以接收比其可以直接传输给可编程互连元件138更多的信号。BLI 206中的逻辑可以允许不同的BLI 206被电连接(例如,相邻的BLI 206可以被电连接)。因此,BLI 206可以被配置成将信号传输到另一(例如,相邻的)BLI 206,并且接收BLI 206然后可以将该信号传输到目标外部电路。在BLI 206之间具有连接允许超额预订。
图7A和图7B图示了根据一些示例的可以被实施在BLI 206中的逻辑。图7A和图7B示出了两个相邻的BLI 206a、206b,以图示在BLI 206中可以存在的各个方面。每个BLI206a、206b包括各种逻辑和线段、同步级302以及至少一个电平移位器304a、304b。如所图示的,每个BLI 206a、206b电连接在可编程互连元件138的相应的列与相应的外部电路306(其可以经由NoC 106的NPI而可配置)之间。图7A和图7B中图示的各种逻辑和线段作为示例而被图示;其他BLI206可以具有逻辑和/或线段的不同配置。由BLI 206a、206b图示的模式以及对其的任何修改都可以跨多个BLI 206复制。
BLI 206a、206b包括线段310,输入线段312a、312b、312c、312d、312e、312f、312g(共同地或单独地,输入线段312),输入线段314a、314b、314c(共同地或单独地,输入线段314),输出线段316a、316b、316c、316d、316e、316f(共同地或单独地,输出线段316)以及输出线段318a、318b、318c(共同地或单独地,输出线段318)。BLI 206a、206b还包括输入多路复用器(IMUX)320a、320b、320c(共同地或单独地,IMUX 320)和输出多路复用器(OMUX)322a、322b、322c(共同地或单独地,OMUX 322)。附加地,输入交叉线段324a、324b、324c(共同地或单独地,输入交叉线段324)和输出交叉线段326a、326b、326c(共同地或单独地,输出交叉线段326)在相邻的BLI 206a、206b之间横贯(例如,水平)。
线段310可以包括承载从可编程逻辑区域110逃出的信号(例如,远离可编程互连元件138到外部电路306)的线段和/或承载进入可编程逻辑区域110中的信号的线段(例如,远离外部电路306到可编程互连元件138)。线段310可以承载时钟信号和/或数据信号。线段310不通过例如多路复用器或逻辑电路传输信号。线段310可以允许更快的信号传播,因为例如信号不通过逻辑电路通信,逻辑电路可以导致延时延迟。
在BLI 206b的上下文中描述了到和来自IMUX 320和OMUX 322的连接,以说明交叉线段324、326到相邻的BLI 206a的各种连接。BLI 206a包括到另一相邻的BLI 206(未示出)的类似连接。另外,BLI 206b通过类似的连接而连接到另一BLI 206(未示出)。图示了BLI206a、206b之间的各种连接以将信号从BLI 206a提供给BLI 206b。在一些示例中,可以在BLI 206a、206b之间包括附加的和/或不同的连接。例如,BLI 206a、206b之间的各种连接可以将信号从BLI 206b提供给BLI 206a。在另外的示例中,不相邻的BLI 206可以通过类似的连接来连接。
BLI 206b的输入线段312b、312c、312d、312e和BLI 206a的输入线段312c(经由输入交叉线段324a)连接到BLI 206b的IMUX 320a的相应的输入节点,IMUX 320a具有连接到BLI 206b的输入线段314a的输出节点。BLI 206b的输入线段312c、312d、312e、312f和BLI206a的输入线段312d(经由输入交叉线段324b)连接到BLI 206b的IMUX320b的相应的输入节点,IMUX 320b具有连接到BLI 206b的输入线段314b的输出节点。BLI 206b的输入线段312d、312e、312f、312g和BLI 206a的输入线段312e(经由输入交叉线段324c)连接到BLI206b的IMUX 320c的相应的输入节点,IMUX 320c具有连接到BLI206b的输入线段314c的输出节点。
BLI 206b的输入线段312b、BLI 206b的输出线段316a、316b、316c、316d和BLI206a的输出线段316b(经由输出交叉线段326a)连接到BLI 206b的OMUX 322a的相应的输入节点,OMUX 322a具有连接到BLI 206b的输出线段318a的输出节点。BLI 206b的输入线段312c、BLI 206b的输出线段316c、316d、316e、316f和BLI 206a的输出线段316d(经由输出交叉线段326b)连接到BLI 206b的OMUX322b的相应的输入节点,OMUX 322b具有连接到BLI206b的输出线段318b的输出节点。BLI 206b的输入线段312d、BLI 206b的输出线段316b、316c、316d、316e和BLI 206a的输出线段316c(经由输出交叉线段326c)连接到BLI 206b的OMUX 322c的相应的输入节点,OMUX 322c具有连接到BLI 206b的输出线段318c的输出节点。
IMUX 320和OMUX 322以及其相应的连接可以在从编程逻辑区域110传输信号和将信号传输到可编程逻辑区域110时提供灵活性。例如,IMUX 320和OMUX 322及其相应的连接可以允许超额预订。
BLI 206a、206b中的同步级302连接到线段310、314、316并且连接到线段340、344、346。同步级302可以包括在可编程逻辑区域110与可编程逻辑区域110之外的相应的外部电路306之间提供信号的同步或流水线(例如,先进先出(FIFO)缓冲)的逻辑。同步级302还可以包括用于增加的数据速率的逻辑,诸如用于双倍数据速率(DDR)的逻辑。在随后的附图中提供了同步级302的示例。
电平移位器304a被布置在可编程逻辑区域110中的相应的可编程互连元件138与BLI 206a、206b的逻辑之间(例如,IMUX 320和OMUX 322)之间的BLI 206a、206b中。电平移位器304b被布置在同步级302与可编程逻辑区域110之外的相应的外部电路306之间的BLI206a、206b中。在一些示例中,在每个BLI 206中实施一个电平移位器304a或304b,并且当跨越不同电源域之间时,可以移位在不同功率或电压水平之间的信号。例如,当BLI 206的逻辑(例如,IMUX320和OMUX 322)在外部电路306的电源域(该电源域与可编程逻辑区域110的电源域不同)中时,可以实施电平移位器304a。此外,当BLI 206的逻辑(例如,IMUX 320和OMUX 322)在可编程逻辑区域110的电源域(该电源域与相应的外部电路306的电源域不同)中时,可以实施电平移位器304b。
在一些示例中,相应的线段310上的时钟和/或数据信号从可编程互连元件138输出,并且输出到可编程逻辑区域110和BLI 206a、206b外部的外部电路306。信号可以被电平移位器304a或304b电平移位。时钟信号可以进一步输入到同步级302中(例如,以提供用于数据采样的同步)和/或可以穿过或旁路同步级302。线段330从相应的可编程互连元件138延伸到BLI 206a、206b或从BLI 206a、206b延伸到相应的可编程互连元件138(例如,到或从电平移位器304a)。线段310在BLI 206a、206b内延伸(例如,从电平移位器304a到同步级302或从同步级302到电平移位器304a)。线段340在BLI 206a、206b内延伸(例如,从同步级302到电平移位器304b或从电平移位器304b到同步级302)。线段350从BLI 206a、206b延伸到相应的外部电路306,或从相应的外部电路延伸到BLI 206a、206b(例如,从或到电平移位器304b)。在一些示例中,各种对应的线段可以是相同的线段。例如,如果省略电平移位器304a,则线段330、310可以是相同的线段,和/或如果省略电平移位器304b,则线段340、350可以是相同的线段。另外,如果信号旁路同步级302,则线段310、340可以是相同的线段。
相应的输入线段312上的数据和/或时钟信号从相应的可编程互连元件138输出。输入线段332从相应的可编程互连元件138延伸到BLI 206a、206b中(例如,到电平移位器304a)。输入线段312在BLI 206a、206b内延伸(例如,从电平移位器304a到IMUX 320)。在一些示例中,各种对应的输入线段可以是相同的输入线段。例如,如果省略了电平移位器304a,则输入线段332、312可以是相同的线段。
相应的输入线段312上的数据和/或时钟信号被输入到在该BLI206a、206b中的IMUX 320和OMUX 322中的各个中,和/或经由输入交叉线段324被传送到相邻的BLI 206。输入到IMUX 320的信号对应于该BLI 206或连接到如上所述的IMUX 320的相应的输入节点的相邻BLI 206的输入线段312。从IMUX 320输出到输入线段314上的信号被输入到同步级302。IMUX 320均具有选择控制节点(未示出),在其上施加相应的控制信号以基于该控制信号来选择性地输出信号。控制信号可以是被存储在BLI 206a、206b的寄存器块的寄存器中的值。
在输入线段344上从同步级302输出信号,该信号与被输入到同步级302的输入线段314上的信号相对应,这在随后将变得更加明显。输入线段344在BLI 206a、206b内延伸(例如,从同步级302到电平移位器304b)。输入线段354从BLI 206a、206b(例如,从电平移位器304b)延伸到相应的外部电路306。在一些示例中,各种对应的输入线段可以是相同的输入线段。例如,如果省略了电平移位器304b,则输入线段344、354可以是相同的线段,和/或如果省略或旁路了同步级302,则输入线段314、344可以是相同的线段。如所指示的,从可编程互连元件138输入到BLI 206的信号可以被电平移位器304a电平移位,和/或从同步级302输出到外部电路306的信号可以被电平移位器304b电平移位。
从相应的外部电路306输出相应的输出线段356上的信号。输出线段356从相应的外部电路306延伸到BLI 206a、206b(例如,到电平移位器304b)。输出线段346在BLI 206a、206b内延伸(例如,从电平移位器304b到同步级302)。输出线段316在BLI 206a、206b内延伸(例如,从同步级302到OMUX 322)。从同步级302将信号输出在输出线段316上,该信号与被输入到同步级302的输出线段346上的信号相对应,这在随后将变得更加明显。在一些示例中,各种对应的输出线段可以是相同的输出线段。例如,如果省略电平移位器304b,则输出线段356、346可以是相同的线段,和/或如果省略或旁路了同步级302,则输出线段346、316可以是相同的线段。
相应的输出线段316上的信号被输入到该BLI 206a、206b中的OMUX 322中的各个OMUX中,和/或经由输出交叉线段326被传送到相邻的BLI 206。输入到OMUX 322的信号对应于该BLI 206的输出线段316和输入线段312,和/或对应于连接到如前所述的IMUX 320的相应的输入节点的相邻BLI 206的输出线段316。从OMUX 322输出到输出线段318上的信号可以被输入到电平移位器304a。OMUX322均具有选择控制节点(未示出),在该选择控制节点上施加控制信号以基于该控制信号选择性地输出信号。控制信号可以是被存储在BLI 206a、206b的寄存器块的寄存器中的值。
输出线段338从BLI 206a、206b(例如,从电平移位器304a)延伸到相应的可编程互连元件138。在一些示例中,各种对应的输出线段可以是相同的输出线段。例如,如果省略了电平移位器304a,则输出线段318、338可以是相同的线段。如所指示的,从BLI 206输出到可编程互连元件138的信号可以被电平移位器304a电平移位,和/或从外部电路306输入到同步级302的信号可以被电平移位器304b电平移位。
BLI 206a、206b可以被配置成以环回模式操作。在输入线段332、312中的任何一个上从相应的可编程互连元件138输入到BLI 206a、206b的信号可以被OMUX 322选择性地输出到输出线段318、338,以将该信号从BLI 206a、206b输出到相应的可编程互连元件138。信号中的任何一个或多个可以被循环回到相应的可编程互连元件138。例如,信号可以在输入线段312b上被传输到OMUX 322a,OMUX 322a可以将信号传输到输出线段318a。
图7A和图7B的多路复用器模式是可以由可编程逻辑区域110之外的BLI获得的灵活性的一个示例。所图示的示例能够基于BLI206之间的连接将信号扇出到外部电路306。可以在BLI中实施不同模式的多路复用器。由于可编程逻辑区域110中的资源可以不必受不同大小的BLI的影响(例如,在增加了BLI的大小的情况下,不会从可编程逻辑区域110中失去资源),因此可以实施BLI的任何面积大小以适应任何模式的多路复用器(例如,包括任何网状或漏斗状的多路复用器)。
图8图示了根据一些示例的同步级302a的一个示例。同步级302a包括触发器402、404(例如,D触发器)、配置多路复用器(CMUX)406、408和驱动器410。图8图示了针对一个输入路线和一个输出路线的配置,可以分别针对同步级302a的每个输入路线和输出路线(例如,针对每个比特)重复该配置。图8的同步级302a是单个触发器数据路径同步方案。
在输入路线中,输入线段314连接到触发器402的数据输入节点(D),并且连接到CMUX 406的第一输入节点。触发器402的输出节点(Q)连接到CMUX 406的第二输入节点。CMUX 406的输出节点连接到驱动器410的输入节点,并且驱动器410的输出节点连接到输入线段344。时钟使能线段412、复位线段414和时钟线段416分别连接到触发器402的时钟使能输入节点、复位输入节点和时钟输入节点。时钟使能线段412、复位线段414和时钟线段416可以是输入到同步级302a中和/或连接到BLI 206的寄存器的任何线段(例如,线段310和/或线段340)。选择线段418连接到CMUX 406的选择控制输入节点。
基于选择线段418上的控制信号,输入路线可以以同步模式或旁路(或异步模式)操作。在同步模式中,CMUX 406可以输出从触发器402的输出节点输入到CMUX 406的信号。基于输入到触发器402的时钟输入节点的时钟线段416上的时钟信号,触发器402可以将信号作为同步信号输出。在旁路模式中,通过旁路触发器402,输入线段314上的信号与时钟线段416上的时钟信号无关地被CMUX 406输出。
在输出路线中,输出线段346连接到触发器404的数据输入节点(D),并且连接到至CMUX 408的第一输入节点。触发器404的输出节点(Q)连接到CMUX 408的第二输入节点。CMUX 408的输出节点连接到输出线段316。时钟使能线段412、复位线段414和时钟线段416分别连接到触发器404的时钟使能输入节点、复位输入节点和时钟输入节点。选择线段420连接到CMUX 408的选择控制输入节点。
基于选择线段420上的信号,输出路线可以以同步模式或旁路(或异步模式)操作。在同步模式中,CMUX 408可以输出从触发器404的输出节点输入到CMUX 408的信号。基于输入到触发器404的时钟输入节点的时钟线段416上的时钟信号,触发器404可以将信号作为同步信号输出。在旁路模式中,通过旁路触发器404,输出线段346上的信号与时钟线段416上的时钟信号无关地被CMUX 408输出。
图9图示了根据一些示例的同步级302b的另一示例。同步级302b包括触发器432、434、436、438(例如,D触发器)和CMUX 440、442。图9图示了针对一个输入路线和一个输出路线的配置,可以分别针对同步级302b的每个输入路线和输出路线(例如,针对每个比特)重复该配置。图9的同步级302b是多触发器数据路径(例如,多延迟)同步方案,诸如所图示的两个触发器数据路径同步方案。例如,图9的方案可以实施可以被选择性地旁路的FIFO缓冲器。
在输入路线中,输入线段314连接到触发器432的数据输入节点(D),并且连接到至CMUX 440的第一输入节点。触发器432的输出节点(Q)连接到触发器434的数据输入节点(D)并且连接到CMUX440的第二输入节点。触发器434的输出节点(Q)连接到CMUX 440的第三输入节点。CMUX 440的输出节点连接到输入线段344。时钟使能线段444和复位线段446分别连接到触发器432、434的时钟使能输入节点和复位输入节点。时钟使能线段444和复位线段446可以是输入到同步级302b和/或连接到BLI 206的寄存器的任何线段。时钟线段448连接到触发器432、434的时钟输入节点。为简单起见,示出了时钟线段448。在一些实施方式中,时钟线段448包括多个时钟线段448,诸如用于多个时钟信号,其中单独的时钟信号连接到同步级302b的相应的流水线级(例如,包括连接到时钟信号CLK0的触发器432、436的级,以及包括连接到时钟信号CLK1的触发器434、438的级)。选择线段450连接到CMUX 440的选择控制输入节点。基于选择线段450上的信号,输入路线可以以一级流水线同步模式、两级流水线同步模式或旁路(或异步)模式操作。
在两级流水线同步模式中,CMUX 440可以输出从触发器434的输出节点输入到CMUX 440的信号。触发器434可以基于输入到触发器432、434的时钟输入节点的时钟线段448上的时钟信号,在输入在输入线段314上的信号穿过触发器432、434之后,输出该信号。通过使信号穿过两个触发器432、434,可以实现两级流水线。
在一级流水线同步模式中,CMUX 440可以输出从触发器432的输出节点输入到CMUX 440的信号。触发器432可以基于输入到触发器432的时钟输入节点中的时钟线段448上的时钟信号,而输出该信号。
在旁路模式中,通过旁路触发器432、434,输入线段314上的信号与时钟线段448上的时钟信号无关地被CMUX 440输出。
在输出路线中,输出线段346连接到触发器436的数据输入节点(D),并且连接到至CMUX 442的第一输入节点。触发器436的输出节点(Q)连接到触发器438的数据输入节点(D),并且连接到CMUX 442的第二输入节点。触发器438的输出节点(Q)连接到CMUX 442的第三输入节点。CMUX 442的输出节点连接到输出线段316。时钟使能线段444和复位线段446分别连接到触发器436、438的时钟使能输入节点和复位输入节点。如上关于触发器432、434所描述的,时钟线段448连接到触发器436、438的时钟输入节点。选择线段452连接到CMUX 442的选择控制输入节点。基于选择线段452上的信号,输出线可以以一级流水线同步模式、两级流水线同步模式或旁路(或异步)模式操作。
在两级流水线同步模式中,CMUX 442可以输出从触发器438的输出节点输入到CMUX 442的信号。触发器438可以基于输入到触发器436、438的时钟输入节点中的时钟线段448上的时钟信号,在输入在输出线段346上的信号穿过触发器436、438之后,输出该信号。通过使信号穿过两个触发器436、438,可以实现两级流水线。
在一级流水线同步模式中,CMUX 442可以输出从触发器436的输出节点输入到CMUX 442的信号。触发器436可以基于输入到触发器436的时钟输入节点中的时钟线段448上的时钟信号,而输出该信号。
在旁路模式中,通过旁路触发器436、438,输出线段346上的信号与时钟线段448上的时钟信号无关地被CMUX 442输出。
如前所述,图9图示了两级流水线。在其他示例中,可以通过在输入路线和输出路线中包括触发器的附加级来实施附加的流水线级。每级中的触发器的输出节点可以连接到CMUX的相应输入节点,以允许在信号通过任意数目的流水线级之后,选择性地输出该信号。可以分别通过与时钟线段448上的时钟信号同步或异步的状态机来控制选择线段450、452上的信号。控制CMUX 440或442的状态可以创建FIFO功能的弹性缓冲器,以用于在可编程逻辑区域110和边界时钟域之间进行数据传递。
图10图示了根据一些示例的同步级302c的另一示例。同步级302c包括触发器462、464、466、468(例如,D触发器)和CMUX 470。图10图示了针对一个DDR输入路线转换和一个DDR输出路线转换的配置,可以分别对同步级302c的多个输入路线转换和多个输出路线转换重复该配置。图10的同步级302c是DDR数据路径同步方案。
在输入路线中,相应的输入线段314(为简单起见,图示为输入线段314a和314b)连接到触发器462、464的数据输入节点(D)。触发器462、464的输出节点(Q)连接到CMUX 470的相应的输入节点。CMUX 470的输出节点连接到输入线段344。时钟使能线段472和复位线段474分别连接到触发器462、464的时钟使能输入节点和复位输入节点。时钟使能线段472和复位线段474可以是输入到同步级302c中和/或连接到BLI 206的寄存器的任何线段。时钟线段476连接到触发器462、464的时钟输入节点。时钟线段476还连接到CMUX 470的选择控制输入节点。随着时钟线段476上的时钟信号在高逻辑状态和低逻辑状态之间切换,CMUX470在输出由触发器462输出的数据信号和输出由触发器464输出的数据信号之间切换。因此,由CMUX 470输出的数据信号可以是DDR信号。
在输出路线中,输出线段346连接到触发器466、468的数据输入节点(D)。触发器466的输出节点(Q)连接到输出线段316(为简单起见,图示为输出线段316a)。触发器468的输出节点(Q)连接到输出线段316(为简化起见,图示为输出线段316a)。时钟使能线段472和复位线段474分别连接到触发器466、468的时钟使能输入节点和复位输入节点。时钟线段476连接到反相器478的输入节点,并且连接到触发器466的时钟输入节点。反相器478的输出节点连接到触发器468的时钟输入节点。
当时钟线段476上的时钟信号上升时,触发器466将输出线段346上的数据信号输出到输出线段316a,并且当时钟线段476上的时钟信号下降时(由于使时钟信号反相的反相器478的存在),触发器468将输出线段346上的数据信号输出到输出线段316b。因此,输出线段346上的DDR信号可以被转换成输出线段316a、316b上的两个单倍数据速率信号。
图11是根据一些示例的用于操作IC的方法500的流程图。该IC可以是或包括图1的SoC 102、图2的FPGA或具有可编程逻辑区域的另一IC。该IC包括可编程逻辑区域和BLI。BLI在IC的可编程逻辑区域的边界之外,诸如之前所描述的。可编程逻辑区域可以包括可编程互连元件的列,并且每个BLI可以连接到可编程互连元件的相应列,诸如之前所描述的。
在框502处,配置可编程逻辑区域。可以通过经由配置互连(例如,基于帧的互连)从处理系统(例如,PMC)传送配置数据来配置可编程逻辑区域。配置可编程逻辑区域可以实例化可编程逻辑区域中的任何逻辑功能、程序、内核等。
在框504处,可选地,配置外部电路。例如,当外部电路可配置时,可以通过存储器映射的写入请求经由NoC的NPI来配置外部电路。配置外部电路可以允许外部电路适应在可编程逻辑区域中实例化的逻辑功能、程序、内核等。
在框506处,配置BLI。BLI可以是可配置的,诸如包括用于传输各种信号和/或用于同步信号已进行流水线和/或单倍到双倍(或双倍到单倍)数据速率转换的多路复用器。在一些示例中,可以使用被实施成配置可编程逻辑区域的相同方案(例如,配置帧方案)来配置BLI。在一些示例中,可以使用与用于配置可编程逻辑区域的配置方案不同的配置方案来配置BLI,诸如使用外围互连,诸如之前所述的NoC中的NPI。
在框508处,在可编程互连元件的相应列与BLI之间路由一个或多个信号。例如,参考图7A和图7B,信号从可编程互连元件138的列经由线段330、332被路由到BLI 206,并且信号从BLI 206经由线段330、338被传输到可编程互连元件138的列并且在可编程互连元件138的列中被路由。
在框510处,在相应的BLI与外部电路之间传输一个或多个信号。例如,参考图7A和图7B,经由线段350、354将信号从BLI 206被传输到外部电路306,并且经由线段350、356将信号从外部电路306传输到BLI 206。在BLI和外部电路之间传输信号可以包括在相应的BLI内对信号电平移位(例如,通过电平移位器304a或304b)。
根据一些示例,可以直接通过BLI 206传输一个或多个信号(例如,从可编程互连元件138到外部电路306),而无需通过逻辑电路传输一个或多个信号。可以通过电平移位器传输一个或多个信号,以允许跨越电源域。
根据一些示例,可以从BLI选择性地传输一个或多个信号。例如,参考图7A和图7B,可以通过选择性地从IMUX 320输出信号来经由输入线段314、344、354,将信号从BLI 206选择性地传输到外部电路306,IMUX 320具有输入节点,从可编程互连元件138接收的信号经由输入线段332、312被提供在该输入节点上。类似地,通过从OMUX 322选择性地输出信号,可以经由输出线段318、338将信号从BLI 206选择性地传输到可编程互连元件138,OMUX322具有输入节点,从外部电路306接收的信号经由输出线段356、346、316被提供在该输入节点上。
根据一些示例,可以在BLI之间传输一个或多个信号,诸如无需通过可编程逻辑区域中的任何可编程互连元件传输一个或多个信号。例如,参考图7A和图7B,可以经由交叉线段324、326将信号从BLI206a传输到BLI 206。作为示例,经由输入交叉线段324a,将经由BLI206a中的输入线段332、312c从可编程互连元件138接收的信号传输到BLI 206b,其中该信号被输入到BLI 206b的IMUX 320a,并且可以经由输入线段314a、344、354被选择地输出到外部电路306。同样作为示例,经由输出交叉线段326c,将经由BLI 206a中的输出线段356、346、316c从外部电路306接收的信号传输到BLI 206b,其中该信号被输入到BLI 206b的OMUX 322c,并且可以经由输出线段318c、338被选择地输出到可编程互连元件138。BLI之间的信号的这种传输可以使能超额预订。
根据一些示例,从可编程互连元件接收的一个或多个信号可以被循环回到可编程互连元件。例如,参考图7A和图7B,可以经由输入线段312b从可编程互连元件138接收信号。信号被输入到OMUX322a,该OMUX 322a在输出线段318a上选择性地输出,以将信号循环回到可编程互连元件138。
本公开的一个示例是一种IC。该IC包括可编程逻辑区域、边界逻辑接口和外部电路。可编程逻辑区域包括布置在逻辑元件的列之间的互连元件的列。边界逻辑接口在互连元件的列的相应端处并且通信地连接到该互连元件的列。边界逻辑接口在可编程逻辑区域的边界之外。外部电路通信地连接到边界逻辑接口的第一边界逻辑接口(BLI)。第一BLI包括被配置成在外部电路与可编程逻辑区域之间传输信号的接口。边界逻辑接口可以具有之前描述的任何方面或特征。
本公开的另一个示例是一种IC。该IC包括可编程逻辑区域、边界逻辑接口和外部电路。可编程逻辑区域包括布置在逻辑元件的列之间的互连元件的列。互连元件的列是可配置的,以在可编程逻辑区域中形成全局路由网络。相应的水平互连段在水平相邻的互连元件之间水平延伸,并且相应的垂直互连段在垂直相邻的互连元件之间垂直延伸。边界逻辑接口在互连元件的列的相应端处并且通信地连接到该互连元件的列。外部电路通信地连接到边界逻辑接口的第一边界逻辑接口(BLI)。第一BLI包括被配置成在外部电路与可编程逻辑区域之间传输信号的接口。第一BLI包括线段,该线段在第一BLI中延伸并且电连接到第一BLI通信连接到的互连元件的相应列的相应垂直互连段。线段被配置成通过第一BLI传输来自互连元件的相应列的信号,而无需通过逻辑电路传输信号。线段可以直接连接到互连元件,以提供到全局路由网络的直接连接。线段可以直接访问来自全局路由网络的数据信号和/或时钟信号。边界逻辑接口可以在或可以不在可编程逻辑区域的边界之外。边界逻辑接口可以均附加地包括用于选择性地传输信号的逻辑。边界逻辑接口可以在边界逻辑接口中的相邻边界逻辑接口之间具有直接连接。边界逻辑接口可以具有之前描述的任何方面或特征。
本公开的另一示例是一种IC。该IC包括可编程逻辑区域、边界逻辑接口和外部电路。可编程逻辑区域包括布置在逻辑元件的列之间的互连元件的列。边界逻辑接口在互连元件的列的相应端处并且通信地连接到该互连元件的列。边界逻辑接口中的任何一个或多个可以均包括同步级。同步级可以包括单个流水线级或多个流水线级,同步级还可以配置有旁路。同步级可以包括转换电路,该转换电路被配置成将信号从单倍数据速率转换为双倍数据速率,反之亦然。边界逻辑接口可以在或可以不在可编程逻辑区域的边界之外。边界逻辑接口可以具有之前描述的任何方面或特征。
尽管前述内容针对特定示例,但是在不脱离其基本范围的情况下可以设计其他和另外的示例,并且其范围由所附权利要求确定。

Claims (17)

1.一种集成电路,其特征在于,包括:
可编程逻辑区域,包括布置在逻辑元件的列之间的互连元件的列;以及
边界逻辑接口,在所述互连元件的列的相应的端处并且通信地连接到所述互连元件的列,所述边界逻辑接口在所述可编程逻辑区域的边界之外,所述边界逻辑接口的第一边界逻辑接口被配置成通信地连接到外部电路,所述第一边界逻辑接口包括被配置成在所述外部电路与所述可编程逻辑区域之间传输信号的接口。
2.根据权利要求1所述的集成电路,其特征在于,还包括:
配置互连,所述配置互连通信地耦合到所述可编程逻辑区域,所述可编程逻辑区域的所述逻辑元件和所述互连元件能够使用通过所述配置互连传输的配置帧而进行配置;以及
外围互连,所述边界逻辑接口中的至少一些包括可配置逻辑,所述可配置逻辑能够通过所述外围互连进行配置。
3.根据权利要求1所述的集成电路,其特征在于,还包括配置互连,所述配置互连通信地耦合到所述可编程逻辑区域,所述可编程逻辑区域的所述逻辑元件和所述互连元件能够使用通过所述配置互连传输的配置帧而进行配置,所述可编程逻辑区域的所述边界由所述配置帧的整数倍定义。
4.根据权利要求1所述的集成电路,其特征在于,所述第一边界逻辑接口具有垂直于所述互连元件的列中的第一列的第一宽度,所述第一边界逻辑接口通信连接到所述第一列,所述第一列具有第二宽度,所述第一宽度大于所述第二宽度。
5.根据权利要求1所述的集成电路,其特征在于,还包括通信地连接到所述第一边界逻辑接口的所述外部电路,其中第一数目的线段连接在所述第一边界逻辑接口与所述互连元件的列中的第一列之间,并且第二数目的线段在平行于所述第一列的方向上从所述第一边界逻辑接口向所述外部电路延伸,所述第二数目大于所述第一数目。
6.根据权利要求1所述的集成电路,其特征在于,所述第一边界逻辑接口电连接到所述互连元件的列中的第一列,所述第一边界逻辑接口包括:
第一多路复用器,具有第一输入节点,所述第一输入节点电连接到被配置成传输与从所述第一列接收的信号相对应的相应信号的输入线段,并且所述第一多路复用器具有第一输出节点,所述第一输出节点连接到被配置成向所述外部电路传输所选择的信号的输入线段;以及
第二多路复用器,具有第二输入节点,所述第二输入节点电连接到被配置成传输与从所述外部电路接收的信号相对应的相应信号的输出线段,并且所述第二多路复用器具有第二输出节点,所述第二输出节点连接到被配置成向所述第一列传输所选择的信号的输出线段。
7.根据权利要求6所述的集成电路,其特征在于,所述输入线段中的至少一个电连接到所述第二多路复用器的所述第二输入节点中的至少一个。
8.根据权利要求6所述的集成电路,其特征在于,
所述第一边界逻辑接口电连接到所述边界逻辑接口的第二边界逻辑接口,所述第二边界逻辑接口与所述第一边界逻辑接口相邻;
所述第二边界逻辑接口包括:
第三多路复用器,具有第三输出节点,所述第三输出节点连接到被配置成向一电路传输所选择的信号的输入线段;和
第四多路复用器,具有第四输出节点,所述第四输出节点连接到被配置成向所述可编程逻辑区域传输信号的输出线段;
所述第一边界逻辑接口的所述输入线段中的至少一个电连接到所述第三多路复用器的输入节点中的至少一个;并且
所述第一边界逻辑接口的所述输出线段中的至少一个电连接到所述第四多路复用器的输入节点中的至少一个。
9.根据权利要求1所述的集成电路,其特征在于,所述第一边界逻辑接口包括同步级,所述同步级在所述第一边界逻辑接口的每个输入路线和每个输出路线中包括至少一个触发器。
10.根据权利要求1所述的集成电路,其特征在于,所述第一边界逻辑接口包括同步级,所述同步级在所述第一边界逻辑接口的每个输入路线和每个输出路线中包括多级流水线。
11.根据权利要求1所述的集成电路,其特征在于,所述第一边界逻辑接口包括同步级,所述同步级包括:
第一触发器和第二触发器,具有相应的数据输入节点,所述相应的数据输入节点电连接到被配置成从所述外部电路接收双倍数据速率信号的第一线段,所述第一触发器和所述第二触发器具有相应的数据输出节点,所述相应的数据输出节点分别电连接到所述第一边界逻辑接口中的第二线段和第三线段,所述第一触发器和所述第二触发器被配置成将所述第一线段上的所述双倍数据速率信号转换为所述第二线段和所述第三线段上的相应的单倍数据速率信号;以及
第三触发器、第四触发器和多路复用器,所述第三触发器具有电连接到所述第一边界逻辑接口中的第四线段的数据输入节点,所述第四触发器具有电连接到所述第一边界逻辑接口中的第五线段的数据输入节点,所述第三触发器和所述第四触发器具有电连接到所述多路复用器的相应输入节点的相应数据输出节点,所述多路复用器具有电连接到第六线段的输出节点,所述第三触发器、所述第四触发器和所述多路复用器被配置成将所述第四线段和所述第五线段上的相应的单倍数据速率信号转换为所述第六线段上的双倍数据速率信号。
12.根据权利要求1所述的集成电路,其特征在于,所述第一边界逻辑接口包括从所述互连元件的列中的第一列延伸远离所述可编程逻辑区域的线段,其中所述线段被配置成在所述第一列与所述外部电路之间传输相应的信号,而无需通过所述第一边界逻辑接口的逻辑电路传输所述相应的信号。
13.一种集成电路,其特征在于,包括:
由边界定义的可编程逻辑区域,所述可编程逻辑区域包括:
可编程互连元件的第一列;
电连接到所述第一列的可编程逻辑元件的第二列;
可编程互连元件的第三列;以及
电连接到所述第三列的可编程逻辑元件的第四列;
第一边界逻辑接口,电连接到所述第一列并且在所述边界之外,所述第一边界逻辑接口被配置成电连接到第一外部电路;以及
第二边界逻辑接口,电连接到所述第三列并且在所述边界之外,所述第二边界逻辑接口被配置成电连接到第二外部电路。
14.根据权利要求13所述的集成电路,其特征在于,所述第一边界逻辑接口被配置成将信号从所述第一列传输到所述第一外部电路,而无需通过逻辑电路传输所述信号。
15.根据权利要求13所述的集成电路,其特征在于,所述第一边界逻辑接口直接连接到所述第二边界逻辑接口,所述第一边界逻辑接口和所述第二边界逻辑接口被配置成在所述第一边界逻辑接口与所述第二边界逻辑接口之间传输信号。
16.根据权利要求13所述的集成电路,其特征在于,所述第一边界逻辑接口和所述第二边界逻辑接口中的每个包括具有流水线的同步级。
17.根据权利要求13所述的集成电路,其特征在于,所述第一边界逻辑接口和所述第二边界逻辑接口中的每个包括同步级,所述同步级具有:
第一转换电路,被配置成将与从可编程逻辑区域接收的信号相对应的两个第一单倍数据速率信号转换为第一双数据速率信号;以及
第二转换电路,被配置成将从相应的外部电路接收的第二双倍数据速率信号转换为两个第二单倍数据速率信号。
CN202020207091.7U 2019-02-26 2020-02-25 集成电路 Active CN211531080U (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/285,588 2019-02-26
US16/285,588 US10763862B1 (en) 2019-02-26 2019-02-26 Boundary logic interface

Publications (1)

Publication Number Publication Date
CN211531080U true CN211531080U (zh) 2020-09-18

Family

ID=72142102

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202020207091.7U Active CN211531080U (zh) 2019-02-26 2020-02-25 集成电路

Country Status (3)

Country Link
US (1) US10763862B1 (zh)
CN (1) CN211531080U (zh)
TW (1) TWM600865U (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI761012B (zh) * 2020-12-31 2022-04-11 新唐科技股份有限公司 事件控制裝置及其操作方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7015719B1 (en) * 2000-09-02 2006-03-21 Actel Corporation Tileable field-programmable gate array architecture
US7199608B1 (en) * 2005-02-17 2007-04-03 Xilinx, Inc. Programmable logic device and method of configuration
EP3497722B1 (en) 2016-08-15 2021-02-24 Xilinx, Inc. Standalone interface for stacked silicon interconnect (ssi) technology integration

Also Published As

Publication number Publication date
US10763862B1 (en) 2020-09-01
US20200274536A1 (en) 2020-08-27
TWM600865U (zh) 2020-09-01

Similar Documents

Publication Publication Date Title
US6486705B2 (en) Signal distribution scheme in field programmable gate array (FPGA) or field programmable system chip (FPSC) including cycle stealing units
US8350590B1 (en) Method and apparatus for distributing clock signals
US6081473A (en) FPGA integrated circuit having embedded sram memory blocks each with statically and dynamically controllable read mode
US7057413B1 (en) Large crossbar switch implemented in FPGA
JP6364015B2 (ja) 構成可能な混載メモリシステム
US20170005662A1 (en) Programmable High-Speed I/O Interface
CN103534692B (zh) 对接混合集成器件中的硬逻辑和软逻辑的系统和方法
US7091890B1 (en) Multi-purpose source synchronous interface circuitry
EP3975429A1 (en) Mixed-radix and/or mixed-mode switch matrix architecture and integrated circuit
US7589557B1 (en) Reversible input/output delay line for bidirectional input/output blocks
USRE39510E1 (en) FPGA integrated circuit having embedded sram memory blocks with registered address and data input sections
US7145362B1 (en) Clock signal-distribution network for an integrated circuit
US7617472B1 (en) Regional signal-distribution network for an integrated circuit
CN211531080U (zh) 集成电路
US9606572B2 (en) Circuits for and methods of processing data in an integrated circuit device
JP2011514065A (ja) プログラマブル論理ファブリック
US9577615B1 (en) Circuits for and methods of reducing duty-cycle distortion in an integrated circuit implementing dual-edge clocking
US9537491B1 (en) Leaf-level generation of phase-shifted clocks using programmable clock delays
US8988125B1 (en) Circuits for and methods of routing signals in an integrated circuit
US10541686B1 (en) Circuit and method for ensuring a stable IO interface during partial reconfiguration of a reprogrammable integrated circuit device
US9729153B1 (en) Multimode multiplexer-based circuit
US11749368B2 (en) Quick configurable universal register for a configurable integrated circuit die
US7928764B2 (en) Programmable interconnect network for logic array
US9331701B1 (en) Receivers and methods of enabling the calibration of circuits receiving input data
US10855283B2 (en) Routing network for reconfigurable circuit

Legal Events

Date Code Title Description
GR01 Patent grant
GR01 Patent grant