有源接有源可编程器件的制作方法

文档序号:16362649发布日期:2018-12-22 08:15阅读:249来源:国知局
有源接有源可编程器件的制作方法

本公开的示例大体涉及电子电路,并且具体地涉及有源接有源(active-by-active)可编程器件。

背景技术

现代可编程器件,例如现场可编程门阵列(fgpa),其尺寸在增长并变得更加异构。由于更昂贵的工艺技术以及不需要所有异构电路模块的大多数应用的可编程性的增大的开销,它们的成本也快速增加。许多这些大型电路模块,如通用输入/输出(io)或多千兆位串行收发器(mgt),不需要新工艺技术具有的益处。因此,传统的单片架构不再满足市场的成本要求,这导致了封装内系统(sip)器件的发展。然而,大多数sip解决方案依赖于先进的封装技术,例如使用昂贵的中介层(interposer)或复杂的三维裸片堆栈。因此,这些sip解决方案的额外成本限制了低产量的高端或利基(niche)应用的优势。



技术实现要素:

描述了用于提供有源接有源(active-by-active)可编程器件的技术。在一个示例中,集成电路(ic)系统包括封装衬底,其具有安装在其上的可编程集成电路(ic)裸片和配套ic裸片,可编程ic裸片包括可编程结构,并且配套ic裸片包括应用电路。ic系统还包括封装内系统(sip)桥,其包括设置在可编程ic裸片中的第一sipio电路、设置在配套ic裸片中的第二sipio电路,以及在封装衬底上使第一sipio电路和第二sipio电路电耦接的导电互连。ic系统还包括被耦接在可编程结构和第一sipio电路之间的可编程ic裸片中的第一聚合电路(aggregationcircuit)和第一分散电路(dispersalcircuit)。ic系统还包括被耦接在应用io和第二sipio电路之间的配套ic裸片中的第二聚合电路和第二分散电路。

在另一示例中,可编程集成电路(ic)包括通过外部导电互连耦接到配套ic的封装内系统(sip)输入/输出(io)电路;包括不具有至少一部分应用电路的可编程结构;还包括在可编程结构和sipio电路之间耦接的聚合电路和分散电路。

在另一示例中,从ic系统中的可编程集成电路(ic)传输数据的方法包括通过可编程ic中的聚合电路的多个通道将数据耦接到第一封装内系统(sip)io电路。该方法还包括通过可编程ic和配套ic之间的较少数量的物理通道发送来自多个通道的数据。该方法还包括在配套ic中的第二sipio电路处从多个物理通道接收数据。该方法还包括通过配套ic中的分散电路的多个通道将来自第二sipio电路的数据耦接到配套ic中的应用电路。该方法还包括从应用io电路发送数据。

在另一示例中,描述了用于为可编程集成电路提供系统级互连环的技术。在一个示例中,可编程集成电路(ic)包括可编程结构,其具有可编程互连和与可编程结构的至少一个边缘相邻的引线轨道。可编程ic还包括与可编程结构的至少一个边缘集成的至少一个环节点,该至少一个环节点被耦接在可编程互连和引线轨道之间。可编程ic还包括被耦接到引线轨道的封装内系统(sip)输入/输出(io)电路。

在另一示例中,集成电路(ic)系统包括封装衬底,其具有被安装在其上的可编程集成电路(ic)裸片和配套ic裸片,可编程ic裸片包括可编程结构和配套ic,配套ic包括应用电路。ic系统还包括封装内系统(sip)桥,其包括设置在可编程ic裸片中的第一sipio电路、设置在配套ic裸片中的第二sipio电路,以及在封装衬底上电耦接第一sipio电路和第二sipio电路的导电互连。可编程ic裸片包括可编程结构,其具有可编程互连、与可编程结构的至少一个边缘相邻的引线轨道,以及与至少一个边缘集成的至少一个环节点,所述引线轨道被耦接到第一sipio电路,所述至少一个环节点被耦接在可编程互连和引线轨道之间。

在另一示例中,从ic系统中的可编程集成电路(ic)发送数据的方法包括将数据耦接到与可编程ic的可编程结构的边缘集成的环节点,该环节点被耦接在可编程结构的可编程互连和与边缘相邻的引线轨道之间。该方法还包括通过引线轨道的多个通道将来自环节点的数据耦接到第一封装内系统(sip)io电路。该方法还包括通过可编程ic和配套ic之间的较少数量的物理通道发送来自多个通道的数据。

参考以下详细描述可以理解这些和其他方面。

附图说明

为使上述特征能以更详细的方式被理解,对上文概述内容的具体描述可以通过参考具体实施例获得,,其中一些实施例在附图中示出。然而,应当注意的是,附图仅示出了典型的示例性实施例,因此不应视为限制其范围。

图1是描绘根据一个示例的集成电路(ic)系统的框图。

图2是根据一个示例的多芯片模块(mcm)的横截面。

图3示出了示例性现场可编程门阵列(fpga)架构。

图4是描绘根据另一示例的ic系统的框图。

图5是描绘根据一个示例的图4的ic裸片的更详细视图的框图。

图6是描绘根据一个示例的封装内系统(sip)堆栈(stack)的框图。

图7是根据一个示例更详细地描绘数据链路层的框图。

图8是描绘根据一个示例的sip桥的数据链路层内的仲裁方法的流程图。

图9是描绘根据另一示例的sip桥的数据链路层内的仲裁方法的流程图。

图10是描绘根据一个示例的从ic系统中的可编程ic发送数据的方法的流程图。

图11是描绘根据一个示例的向ic系统中的可编程ic接收数据的方法的流程图。

图12是描绘根据示例性实施例的物理层逻辑的框图。

图13是描绘根据一个示例的系统级互连与可编程结构的水平边缘的集成的框图。

图14是描绘根据一个示例的系统级互连与可编程结构的垂直边缘的集成的框图。

图15是描绘根据一个示例的系统级互连的环子节点的框图。

图16a到16f示出了示例性系统级互连环(sir)的实施例。

图17是描绘根据示例的从ic系统中的可编程ic发送数据的方法的流程图。

为了便于理解,在可能的情况下,使用相同的附图标记来表示附图中共有的相同元件。能够预期的是,一个示例的元件可有利地并入其他示例中。

具体实施方式

在下文中参考附图描述了各种特征。应当注意的是,附图可以按比例或不按比例绘制,并且在所有附图中相似结构或功能的元件由相同的附图标记表示。应当注意,附图仅旨在便于描述特征。它们并非旨在作为对要求保护的发明的穷尽描述,或作为对要求保护的发明的范围的限制。另外,所阐述的示例不需要具有示出的所有方面或优点。结合特定示例描述的方面或优点不必限于该示例,并且即便未如此示出,或者如果没有如此明确地描述,也可以在任何其他示例中实践。

如下描述了一种有源接有源(active-by-active)可编程器件。在示例中,基于封装内系统(sip)的可编程器件采用多芯片模块(mcm)封装。mcm封装包括可编程集成电路(ic),例如现场可编程门阵列(fpga),以及设置在封装衬底上的一个或多个配套集成电路(ic)器件。可编程ic和配套ic被并排设置在封装衬底上(例如,有源接有源)。可编程ic与每个配套ic器件之间的连接使用高带宽sip桥来实施。sip桥可以使用少量导线实施,从而使得可以使用mcm封装而不是昂贵的中介层。将要从一个器件发送到另一个器件的数据聚合到一个集合带宽中,并通过sip桥传送。在sip桥上接收的聚合数据通过系统分散机制传送到目的地。在本文描述的示例中,使用包括至少物理层和数据链路层的协议栈来实施sip桥。也可以使用更高的层,例如传输层。物理层可以是满足本文详述的特定要求的任何超短距离(usr)串行器/解串器(serdes)技术。如本文进一步描述的,数据链路层以避免目的地拥塞的方式被配置为跨越可用的物理通道对聚合数据进行时分复用。每个器件可以包括系统级互连,以便于在应用电路和sip桥之间聚合和分散数据。

在示例中,配套ic裸片包括sip器件的一些或全部应用输入/输出(io)电路。因此,可以在没有这种应用io电路的情况下构造可编程ic。从可编程ic中移除应用io电路可以释放裸片面积以供其他电路使用。此外,可编程ic可以使用较新的工艺技术制造,以利用较新的工艺技术特征,而具有应用io电路的配套ic可以使用较旧的、较便宜的工艺技术制造。因此,整体解决方案将以更低的成本提供相同的功能。可编程ic和配套ic器件通过sip桥连接。每个可编程ic和配套ic器件包括确定sip桥端点的sipio电路。每个可编程ic和配套ic可以包括系统级互连,以在应用电路和sipio电路之间提供数据的聚合和分散。用于可编程ic的系统级互连的一个示例是系统级互连环(sir)。如本文进一步描述的,sir考虑到可编程结构的最小增强和用于实施可编程ic的电路的设计工具。参考以下附图可以理解这些和其他方面。

图1是描绘根据一个示例的集成电路(ic)系统100的框图。ic系统100包括被耦接到ic裸片103的ic裸片101。在一个示例中,ic裸片101和ic裸片103是形成封装内系统(sip)的多芯片模块(mcm)的一部分。ic裸片101包括应用电路105、聚合电路110、分散电路112和sip输入/输出电路(sipio140)。在一个示例中,应用电路105包括各种组件,例如一个或多个处理元件(pe102)、存储器(mem104)、支持电路(sc106)和输入/输出电路(io108)。在其他示例中,可以从应用电路105中省去组件102-108中的一个或多个。应用电路105的组件102到108中的每一个可以被耦接到聚合电路110和分散电路112。或者,组件102-108中的一个或多个可以仅仅被耦接到聚合电路110或分散电路112中的一个。聚合电路110和分散电路112的每个都被耦接到sipio140的内部接口。

在一个示例中,sipio140实施了具有传输逻辑114、数据链路逻辑116和物理逻辑118的多路复用io逻辑。在所示的示例中,多路复用io逻辑完全在sipio140内实施。在其他示例中,多路复用io逻辑的给定层或其一部分可以在应用电路105中实施。在一个示例中,传输逻辑114在应用电路105中实施,数据链路逻辑116和物理逻辑118在sipio140中实施。在一个示例中,数据链路逻辑116的仲裁部分在应用电路105中实施,用于数据链路逻辑116的复用逻辑在sipio140中实施。

ic裸片103可以包括与ic裸片101类似的电路。在图1所示的示例中,ic裸片103包括应用电路107、聚合电路126、分散电路128和sipio142。在一个示例中,应用电路107包括各种组件,例如pe120、存储器(mem132)、支持电路(sc134)和输入/输出电路(io136)。在其他示例中,可以从应用电路107中去除组件130-136中的一个或多个。应用电路107的组件130至136中的每一个可以被耦接到聚合电路126和分散电路128。或者,组件130-136中的一个或多个可以仅仅被耦接到聚合电路126或分散电路128中的一个。聚合电路126和分散电路128均被耦接到sipio142的内部接口。类似于sipio140,sipio142实施具有传输逻辑124、数据链路逻辑122和物理逻辑120的多路复用io逻辑。在所示的示例中,多路复用io逻辑完全在sipio142内实施。在其他示例中,如上述关于ic裸片101所描述的,多路复用io逻辑的给定逻辑层或其一部分可以在应用电路107中实施。

ic裸片101和ic裸片103通过sip桥144耦接。sip桥144包括sipio140、sipio142和信号路径138。sipio140的外部接口通过信号路径138被耦接到sipio142的外部接口。物理逻辑118/120实施sip桥144的物理层并支持多个物理通道。数据链路逻辑116/122实现sip桥144的数据链路层并支持sip桥144的每一侧上的多个通道(称为聚合通道和分散通道)。传输逻辑114/124实施sip桥144的传输层。可以采用各种传输层,包括无连接(connection-less)或基于连接(connection-based)的传输层。传输层可以提供本领域中已知的封包、解包、纠错、数据包排序等。

应用电路105可以包括被耦接到聚合电路110的通道的多个输出。聚合电路110选择性地将应用电路105的输出耦接到sipio140的内部输入(称为源端口)中。例如,sipio140可以包括被耦接到聚合电路110的m个聚合通道的m个源端口,其中m是正整数。聚合电路110可以通过m个聚合通道选择性地将应用电路105的输出耦接到sipio140的m个源端口。sipio140可以包括k个外部输出,其驱动在信号路径138上实施的k个物理通道,其中k是正整数。在一个示例中,k小于m并且sipio140在k个外部输出中多路复用m个源端口。sipio142可以包括从k个物理通道接收的k个外部输入。sipio142在n个内部输出之间对k个外部输入进行解复用,其中n是正整数(称为目的端口)。在一个示例中,n大于k。分散电路128通过n个分散通道选择性地将sipio142的n个目的端口耦接到应用电路107的输入中。

同样地,应用电路107可以包括被耦接到聚合电路126的聚合通道的多个输出。聚合电路126选择性地将应用电路107的输出耦接到sipio142的源端口中。例如,sipio142可以包括被耦接到聚合电路126的n'个聚合通道的n'个源端口,其中n'是正整数。聚合电路126可以通过n'个聚合通道选择性地将应用电路107的输出耦接到sipio142的n'个源端口。sipio142可以包括k'个外部输出,其驱动在信号路径138上实施的k'个物理通道,其中k'是正整数。在一个示例中,k'小于n',并且sipio142在k'个外部输出中多路复用n'个源端口。sipio140可以包括从k'个物理通道接收的k'个外部输入。sipio140在m'个目的端口之间对k'个外部输入进行解复用,其中m'是正整数。在一个例子中,m'大于k'。分散电路112通过m'个分散通道选择性地将sipio140的m'个目的端口耦接到应用电路105的m'个输入中。

在一些示例中,k=k'使得sip桥144在ic裸片101和ic裸片103之间的每个方向上支持相同数量的物理通道。为了从ic裸片101发送数据,聚合电路110将应用电路105的输出聚合成m个聚合通道,并且sipio140在k个物理通道上复用m个聚合通道。为了在ic裸片103处接收数据,sipio142将k个物理通道解复用为n个通道,并且分散电路128将n个分散通道分散到应用电路107的输入。同样,为了从ic裸片103发送数据,聚合电路126将应用电路107的输出聚合成n'个聚合通道,并且sipio142在k'个物理通道上复用n'个聚合通道。为了在ic裸片101处接收数据,sipio140将从k'个物理通道接收的k'个通道解复用为m'个分散通道,并且分散电路112将m'个分散通道分散到应用电路105的输入。在一些示例中,m=m'且n=n',使得聚合电路110和分散电路112向应用电路105提供总共2*m个通道,并且聚合电路126和分散电路128向应用电路107提供总共2*n个通道。在一些示例中,m=m'=n=n'。

在一个示例中,应用电路105和应用电路107通过sip桥144交换封包数据。传输逻辑114将应用电路105的输出封包到每个包括w比特的数据包中,其中w是正整数。传输逻辑114还对从分散电路112接收的数据进行解包。传输逻辑124可以与传输逻辑114起类似作用。

数据链路逻辑116将聚合电路110的输出组织成多个聚合通道(例如,m个聚合通道),其中每个聚合通道为w比特宽,以提供w比特数据包。也就是说,聚合电路110包括多通道输出。同样,数据链路逻辑116将分散电路112的输入分成多个分散通道(例如,m'个分散通道),其中每个分散通道为w比特宽,以接收w比特数据包。也就是说,分散电路112包括多通道输入。数据链路逻辑116维护每个聚合通道的发送队列。数据链路逻辑116在发送队列之间进行仲裁,以通过物理逻辑118选择要在可用物理通道上发送的数据包。数据链路逻辑116还将物理通道解复用到分散电路112的可用分散通道中。数据链路逻辑122可以与数据链路逻辑116起类似作用。

物理逻辑118可以将可用输出物理通道中的数据包串行化,以作为信号路径138上的信号进行发送。物理逻辑118还可以将从信号路径138接收的信号解串行化为可用的输入物理通道。物理逻辑120可以与物理逻辑118类似地工作。

在一个示例中,应用电路105可以直接通过一个或多个直接信号路径146耦接到应用电路107。也就是说,ic裸片101和ic裸片103之间可以存在一些不通过sip桥144的通信。此外,ic裸片101可以包括外部接口147,其可以用于向其他外部电路发送和接收信号,以及接收电源和接地。同样,ic裸片103可以包括外部接口148,其可以用于向其他外部电路发送和接收信号,以及接收电源和接地。

在图1所示的示例中,ic裸片101包括从一个sip桥到另一个ic裸片的sipio。在其他示例中,ic裸片可以包括从多个sip桥到多个ic裸片的多个sipio。在这样的实施例中,ic裸片可以包括聚合和分散电路的多个实例,以将其中的应用电路耦接到多个sip桥。

图2是根据一个示例的mcm200的横截面。mcm200可以实施上述ic系统100。mcm200包括被安装在封装衬底202上的ic裸片101和ic裸片103。ic裸片101通过触点214被电和机械地耦接到封装衬底202。ic裸片103通过触点216被电和机械地耦接到封装衬底202。触点214和触点216可以是焊球、焊料凸块等。封装衬底202包括被设置在ic裸片101和ic裸片103所安装的表面处或附近的导电互连208。封装衬底202包括被设置在相对表面处或附近的导电互连206。导电互连208和导电互连206均包括具有特定图案的一个或多个金属层。ic裸片101的一些触点214被电耦接到导电互连208。ic裸片103的一些触点216被电耦接到导电互连208。触点214中的其他触点通过通孔218被电耦接到导电互连206。触点216中的其他触点通过通孔220被电耦接到导电互连206。导电互连206被电耦接到触点204。触点204可以是焊球,焊料凸点等。

触点204包括mcm200的外部引脚。mcm200可以被安装到电路板上。电路板上的导体可以通过封装衬底202的触点204被电耦接到ic裸片101和ic裸片103。在mcm200内,ic裸片101通过导电互连208被电耦接到ic裸片103。为了实施上述ic系统100,导电互连208被图案化(patterned)以在ic裸片101和ic裸片103之间形成信号路径138。在一个示例中,导电互连208也被图案化以形成专用信号路径146(如果存在的话)。sipio140的外部接口通过一些触点214被耦接到形成在导电互连208中的信号路径138。同样地,sipio142的外部接口通过一些触点216被耦接到形成在导电互连208中的信号路径138。

在一个示例中,ic裸片101和ic裸片103中的至少一个包括可编程ic,例如现场可编程门阵列(fpga)等。图3示出了fpga架构300,其包括大量不同的可编程片,可编程片包括多千兆位收发器(“mgt”)301、可配置逻辑块(“clb”)302、随机存取存储器块(“bram”)303、输入/输出块(“iob”)304、配置和时钟逻辑(“config/clocks”)305、数字信号处理块(“dsp”)306、专用输入/输出块(“i/o”)307(例如,配置端口和时钟端口)、以及其他可编程逻辑308,例如数字时钟管理器、模数转换器、系统监视逻辑等。一些fpga还包括专用处理器块(“proc”)310。

在一些fpga中,每个可编程片可包括至少一个可编程互连元件(“int”)311,其具有到相同片内的可编程逻辑元件的输入和输出端320的连接,如图3顶部包括的示例所示。每个可编程互连元件311还可以包括到相同片或其他片中的相邻可编程互连元件的互连段322的连接。每个可编程互连元件311还可以包括到互连逻辑块(未示出)之间的通用布线资源的互连段324的连接。通用布线资源可以包括逻辑块(未示出)之间的布线通道,其包括互连段(例如,互连段324)的轨道和用于连接互连段的开关块(未示出)。通用布线资源的互连段(例如,互连段324)可以跨越一个或多个逻辑块。可编程互连元件311与通用布线资源一起实施用于所示fpga的可编程互连结构(“可编程互连”)。

在一个示例性实施例中,clb302可以包括可被编程为实施用户逻辑的可配置逻辑元件(“cle”)312和单个可编程互连元件(“int”)311。除了一个或多个可编程互连元件之外,bram303还可以包括bram逻辑元件(“brl”)313。通常,片中包括的互连元件的数量取决于片的高度。在图示的示例中,bram片具有与五个clb相同的高度,但是也可以是其他数量(例如,四个)的高度。除了适当数量的可编程互连元件之外,dsp片306还可以包括dsp逻辑元件(“dspl”)314。除了可编程互连元件311的一个实例之外,iob304还可以包括例如输入/输出逻辑元件(“iol”)315的两个实例。如本领域技术人员所清楚了解的,被连接到例如i/o逻辑元件315的实际i/o焊盘通常不限于输入/输出逻辑元件315的区域。

在图示的示例中,靠近裸片中心的水平区域(如图3所示)用于配置、时钟和其他控制逻辑。从该水平区域或列延伸的垂直列309用于在fpga的宽度上分布时钟和配置信号。

一些利用图3所示架构的fpga包括额外的逻辑块,这些逻辑块会打乱构成fpga大部分的常规列状结构。附加逻辑块可以是可编程块和/或专用逻辑。例如,处理器块310跨越几列clb和bram。处理器块310可以是从单个微处理器到由微处理器、存储器控制器、外围设备等组成的完整可编程处理系统的各种组件。

需要注意的是图3旨在仅仅示出示例性fpga架构。例如,一行中的逻辑块的数量、行的相对宽度、行的数量和顺序、行中包括的逻辑块的类型、逻辑块的相对大小以及包括在图3顶部的互连/逻辑实施纯粹是示例性的。例如,在实际fpga中,通常在clb出现的任何地方包括多于一个相邻行的clb,以助于用户逻辑的有效实施,但是相邻clb行的数量随fpga的总体大小而变化。

在一个示例中,ic裸片101包括具有fpga架构300的可编程结构。因此,ic裸片101还包括sipio140和系统级互连350。系统级互连350包括聚合电路110和分散电路112。在示例中,系统级互连350包括系统级互连环(sir)。下文描述sir的各种示例。通常,系统级互连350提供可编程结构和sipio140之间的接口。在示例中,系统级互连350可以以与可编程结构类似的方式配置(例如,通过加载配置比特流)。在其他示例中,系统级互连350可以在ic裸片101的运行期间被动态编程。

在一个示例中,sipio140提供io接口,在可编程结构中配置的电路可以用于通过sip桥144与ic裸片103通信。电路可以使用fpga架构300的应用io,例如iob304、mgt301、以及任何其他io(例如,存储器io、定制io等),用于到其他外部电路的附加io。在图3的示例中,fpga架构300包括sipio140和应用io。

在下文更详细描述的其他示例中,应用io的至少一部分可以被布置在fpga外部,例如在mcm的配套ic中。例如,具有fpga架构的ic裸片101可以仅用sipio140构建。也就是说,从fpga架构300中移除iob304和mgt301。所有应用io可以被设置在ic裸片103中。ic裸片101中的可编程结构可以使用sip桥144访问ic裸片103中的应用io。在一些示例中,具有fpga架构的ic裸片101除了sipio之外还可以包括一些专用io,例如配置io、jtagio等。该专用io用于编程和/或测试fpga,而不用作可编程结构中配置的电路的应用io。

图4是描绘根据另一示例的ic系统400的框图。图4中的元件与图1和图3中的相同或相似并用相同的标号表示。在ic系统400中,ic裸片101a是具有被耦接到系统级互连350的可编程结构404的fpga裸片。ic裸片103a是包括应用io107a的专用集成电路(asic)裸片(也称为“配套ic”)。虽然ic裸片103a被描述为具有应用io107a,但是通常,ic裸片103a可以包括应用电路,其可以包括io电路和/或其他类型的电路。系统级互连350被耦接到sipio140a的内部接口。系统级互连350执行上述聚合电路110和分散电路112的功能。sipio140a类似于上述的sipio140,但不具有传输逻辑114和数据链路逻辑116的一部分。相反,传输逻辑114在可编程结构404中实施。例如,可编程结构404可以由诸如pe102的电路配置为可以实现传输逻辑114的电路。pe102可以耦接并使用存储器104(例如,bram303)和/或支持电路106(例如,dsp306)。在另一示例中,pe102、存储器104和支持电路106还可以实现用于数据链路逻辑116的仲裁逻辑406。sipio140a包括数据链路逻辑116和物理逻辑118的复用逻辑。在另一示例中,可编程结构404可以实施仲裁逻辑406和传输逻辑114。

在图4的示例中,系统级互连350被示为围绕可编程结构404的所有四个边的环。可编程结构404在其顶部、底部、左侧和右侧被耦接到系统级互连350。在下文进一步讨论的其他示例中,系统级互连350可以具有其他形式,例如sir的不同实施。在另一示例中,系统级互连350可以包括片上网络(noc)等。

在示例中,可编程结构404不包括任何应用io。相反,ic裸片103a中的应用io107a包括应用io,例如iob304、mgt301和任何其他io402(例如,存储器io、定制io等)。应用io107a被耦接到聚合电路126和分散电路128。可编程结构404中配置的电路可以通过系统级互连305和sip桥144与应用io107a交换数据。在一些示例中,ic裸片101a还包括专用io108,例如配置io、jtagio等。该专用io108中的一些或全部也可以被耦接到ic裸片103a。

图5是描绘根据示例的ic裸片104a的更详细视图的框图。特别地,可编程结构404被示为包括九个结构子区域(fsr)508a、508b、...,508i(统称为fsr508)。通常,可编程结构404可包括任何数量的fsr。每个fsr408包括多列clb、bram、dsp等,类似于图3中所示的可编程结构。此外,fsr508中的每一个包括零个或多个环节点(rn)504。结构中心的fsr508(例如,fsr508e)不包括任何rn504。沿着结构的内边缘的fsr508包括一个rn504(例如,fsr508b、508d、508f和508h)。在结构的角落处的fsr508包括两个rn504。每个rn504包括多个环子节点(rsn)506。如下文进一步描述的,rn504移除了相应fsr508中的一些结构组件。

rn504被耦接到引线轨道502。在本示例中,引线轨道502围绕可编程结构404形成环。如下文所述,可以采用其他互连结构。rn504和引线轨道502一起形成可以实现系统级互连350的系统级互连。在示例中,系统级互连支持两个通道组,一组用于从结构发送数据,一组用于接收数据到结构。例如,引线轨道502可以配置成256个轨道,使得接收通道组和传输通道组每个具有128个轨道的宽度。当然,引线轨道502可以配置为多于或少于256个轨道。每个rn504被耦接到引线轨道502。每个rn504包括路由开关,其在可编程结构404和系统级互连之间提供双向接口。通过对rn504进行编程,在可编程结构404中配置的电路可以被耦接到特定的引线轨道502。rn504可以使用被加载到fpga中的配置数据来编程,或者在fpga的运行期间动态地编程。

每个rsn506包括rn504的可重复部分。例如,如果引线轨道(wiretrack)502被配置成256个轨道,则rn504可以包括8个rsns506,并控制32个线轨。当然,rn504可以包括更多或更少的rsns506,并且rsn506可以控制多于或少于32个线路轨道。每个rsn506可以具有相同的布局,而不管它是沿着可编程结构404的水平边缘的rn504的一部分还是沿着可编程结构404的垂直边缘的rn504的一部分。以这种方式,用于设计用于在fpga中实现的电路的设计工具不必区分沿水平边缘的rns504和沿垂直边缘的rns504。下面描述rsn506的示例结构。

图6是描绘根据示例的sip堆栈(stack)601和603的框图。sip堆栈601可以是sipio的一部分(例如,sipio140或140a),并且sip堆栈603可以是另一个sipio的一部分(例如,sipio142或142a)。为了清楚起见,未示出传输逻辑114/124。

sip堆栈601包括数据链路电路602和物理电路604。sip堆栈603包括实现数据链路逻辑的数据链路电路608和实现物理逻辑的物理电路606。物理电路604和606形成物理层。数据链路电路602和608形成数据链路层。

在该示例中,sip堆栈601包括m*w源端口和m*w目的端口。数据链路电路602的源端口和目的端口分别耦接到聚合电路110和分散电路112(例如,系统级互连350)。数据链路电路602包括k*w外部输出和k*w外部输入。数据链路电路602的外部输出和外部输入耦接到物理电路604。物理电路604通过信号路径138耦接到物理电路606。根据物理层,信号路径138可以包括大约2*k个信号路径。数据链路电路608包括k*w外部输入和k*w外部输出。数据链路电路608的外部输入和输出耦接到物理电路606。数据链路电路608包括n*w个目的端口和n*w个源端口。数据链路电路608的源端口和目的端口分别耦接到聚合电路126和分散电路128。

在运行中,数据链路电路602将宽度为w的m个聚合通道复用为宽度为w的k个物理通道。物理电路604将k个物理通道上的数据包串行化到信号路径138上。物理电路606将来自信号路径138的信号反串行化为宽度为w的k个物理通道。数据链路电路608将k个物理通道解复用为宽度为w的n个分散通道。当从数据链路电路608发送到数据链路电路602(即,反向)时的操作是相同的。

图7是根据示例更详细地描绘数据链路层的框图。在图7的示例中,m=n=3并且k=2。数据链路电路602包括发送队列702-1到702-3(统称为发送队列702),多路复用器704-1和704-2(统称为多路复用器704)和仲裁逻辑406。数据链路电路608包括多路复用器706-1到706-3(统称为多路复用器706)。发送队列702-1到702-3的输入分别耦接到源端口708-1到708-3(统称为源端口708)。多路复用器706-1到706-3的输出分别耦接到目的端口710-1到710-3(统称为目的端口710)。多路复用器704的控制输入耦接到仲裁逻辑406的输出。仲裁逻辑406的输入耦接到发送队列702的输出。在一个示例中,仲裁逻辑406与sipio分开实现,例如在可编程结构404中。

在运行中,仲裁逻辑406控制多路复用器704,使得在k个物理通道上发送的数据包不存在目的地冲突。发送的每个数据包包括目的端口。仲裁逻辑406执行仲裁算法以确保在k个物理通道上并行发送的两个数据包不具有相同的目的端口。下面描述示例仲裁算法。

图8是描绘根据一个示例的sip桥的数据链路层内的仲裁方法800的流程图。方法800可以由仲裁逻辑406执行。方法800开始于步骤802,其中仲裁逻辑406将所有目的端口标记为未使用。在图7的示例中,目的端口包括输出710-1到710-3。通常,可以有n个目的端口,每一个用于相应分散电路的每个输入通道。

在步骤804,仲裁逻辑406选择用于调度的多路复用器。在图7的示例中,有两个多路复用器704-1和704-2由仲裁逻辑406调度。通常,可以有k个多路复用器704,每个物理通道一个。

在步骤806,仲裁逻辑406识别准备发送的每个发送队列的目的端口。在图7的示例中,存在三个发送队列702-1到702-3。通常,可以存在m个发送队列,一个用于相应聚合电路的每个输出通道。如果发送队列不为空,则仲裁逻辑406可以认为发送队列已准备好发送。每个发送队列702存储具有特定目的端口的一个或多个数据包。仲裁逻辑406解析数据包以识别目的端口。

在步骤808,仲裁逻辑406调度一个或多个以未使用的目的端口为目标的发送队列以进行发送。在示例中,可以使用最大匹配算法的变形来并行地进行调度。如果发送队列包括用于瞄准所使用的目的地端口的数据包,则仲裁逻辑406保持发送队列。在步骤810,仲裁逻辑406将所识别的目的端口标记为正在使用。在步骤812,仲裁逻辑确定是否还有更多的多路复用器要调度。如果是这样,则方法800返回到步骤804并选择下一个多路复用器。否则,方法800返回到步骤802并将所有目的地端口标记为未使用。这样,仲裁逻辑406对要调度的每个多路复用器(例如,每个多路复用器704)执行步骤804-812。仲裁逻辑406针对多个调度轮(schedulinground)执行步骤802到812。以这种方式,仲裁逻辑406生成并实施用于控制多路复用器704的调度,使得多路复用器704多路复用发送队列702的输出,使得通过物理通道并行发送的数据包具有不同的目的端口并且在多路复用706处不存在拥塞或冲突。

图9是描绘根据另一示例的sip桥的数据链路层内的仲裁方法900的流程图。方法900可以由仲裁逻辑406执行。方法900与方法800的不同之处在于仲裁逻辑406向每个发送队列702分配权重,并且除了管理目的端口冲突之外,还基于权重从物理通道中选择来自发送队列的数据包以进行发送。

方法900开始于步骤902,其中仲裁逻辑406将所有目的地端口标记为未使用。在图7的示例中,目的端口包括输出710-1到710-3。通常,可以有n个目的端口,每个目的端口用于一个相应分散电路的输入通道。

在步骤904,仲裁逻辑406基于分配的权重更新每个发送队列的不足计数(deficitcount)。也就是说,仲裁逻辑406可以向每个发送队列分配权重。某些发送队列可以比其他发送队列具有更多权重(更高优先级)。不足计数用于控制在调度期间在给定时间从给定发送队列中选择多少数据包。

在步骤906,仲裁逻辑406选择用于调度的多路复用器。在图7的示例中,有两个多路复用器704-1和704-2由仲裁逻辑406调度。通常,可以有k个多路复用器704,每个物理通道对应一个。

在步骤908,仲裁逻辑406选择发送队列(例如,发送队列702之一)。在步骤910,仲裁逻辑406确定所选择的发送队列中的数据包的目标目的端口是否未被使用。如果不是,则方法900返回到步骤908,并且仲裁逻辑406选择下一个发送队列。否则,方法900前进到步骤912。

在步骤912,仲裁逻辑406将所识别的目的端口标记为正在使用中。在步骤914,仲裁逻辑406调度所选择的发送队列以进行发送直到空或直到相应的不足计数满足阈值。相比较低的不足计数,较高的不足计数允许从给定的发送队列中选择更多的数据包。

在步骤916,仲裁逻辑406确定所选择的发送队列是否为空。如果是,则方法900前进到步骤918,其中仲裁逻辑406将所选发送队列的不足计数重置为初始值。如果所选择的发送队列不为空,则方法900转而进行到步骤920。

在步骤920,仲裁逻辑406确定在该次迭代中是否还有更多的发送队列要处理。如果已经处理了所有发送队列,则方法900前进到步骤922。否则,方法900返回到步骤908并选择下一个发送队列。在步骤922,仲裁逻辑406确定是否还有更多的多路复用器被调度。如果是,则方法900返回到步骤906并选择下一个多路复用器。否则,方法900返回到步骤902并将所有目的端口标记为未使用。这样,仲裁逻辑406对要调度的每个多路复用器(例如,每个多路复用器704)执行步骤906-922。仲裁逻辑406在给定所选多路复用器的情况下为每个发送队列执行步骤908-920。仲裁逻辑406针对多个调度轮执行步骤902-922。以这种方式,仲裁逻辑406生成并实施用于控制多路复用器704的调度,使得多路复用器704多路复用发送队列702的输出,使得在物理通道上并行发送的数据包具有不同的目的端口,并且在多路复用器706处不存在拥塞或冲突。仲裁逻辑406还使用加权方案来考虑队列优先级和公平性。

图10是描绘根据一个示例的从ic系统中的可编程ic发送数据的方法1000的流程图。方法1000可以由ic裸片101执行,以从ic系统400的可编程结构404发送数据。方法1000开始于步骤1002,其中系统级互连350通过其聚合通道将数据耦接到sipio140a。在示例中,可编程结构404包括传输逻辑114,其被配置为将数据分成数据包(步骤1004)。

在步骤1006,sipio140a通过sip桥144的较少数量的物理通道从聚合通道发送数据。例如,在步骤1008,数据链路逻辑116将来自聚合通道的数据排队到发送队列中。在步骤1010,数据链路逻辑116在物理通道之间多路复用发送队列,而仲裁逻辑406管理目的地冲突。在步骤1012,仲裁逻辑406还可以将权重分配给发送队列,并基于权重选择用于发送的数据包。

在步骤1014,ic裸片103中的sipio142从sip桥144接收数据。在步骤1016,分散电路128通过分散通道将来自sipio142的数据耦接到应用io107a。在步骤1018,应用io107a消费数据和/或将数据发送到外部电路。

图11是描绘根据一个示例的向ic系统中的可编程ic接收数据的方法1100的流程图。方法1100可以由ic裸片101执行以从应用电路107接收数据。方法1100开始于步骤1102,其中聚合电路126通过聚合通道将来自应用电路107的数据耦接到sipio142。在示例中,sipio142包括传输逻辑124,其被配置为将数据划分为数据包(步骤1104)。

在步骤1106,sipio142通过sip桥144的较少数量的物理通道发送来自聚合通道的数据。例如,在步骤1108,数据链路逻辑122将来自聚合通道的数据排队到发送队列中。在步骤1110,数据链路逻辑122在物理通道之间复用发送队列,同时管理目的地冲突。在步骤1112,数据链路逻辑122还可以将权重分配给发送队列,并基于权重选择用于发送的数据包。也就是说,数据链路逻辑122可以包括类似于仲裁逻辑406的仲裁逻辑。

在步骤1114,ic裸片101中的sipio140a从sip桥144接收数据。在步骤1116,系统级互连350通过分散通道将来自sipio140a的数据耦接到可编程结构404。在步骤1118,可编程结构404消费数据。

图12是描绘根据一个示例性实施例的物理逻辑1200的框图。物理逻辑1200包括多个serdes收发器1201,例如serdes收发器1201-1到1201-k。每个serdes收发器1201支持k个输出物理通道和k个输入物理通道。每个serdes收发器1201包括并行接口1204,其包括多个信号线,例如信号线1204-1到1204-w。每个serdes收发器1201包括串行接口1202。如上所述,并行接口1204被耦接到数据链路电路的外部端口。每个serdes收发器1201被配置为串行化其并行输入或解串行化其串行输入。

如上所述,文中描述的ic系统可以使用满足某些要求的任何类型的usrserdes技术。按优先级顺序考虑物理层的三个参数:(1)每个引脚的带宽;(2)每比特的功耗;(3)面积。可以为包括前两个因素的任何物理逻辑定义品质因数(fom):fom=(每个引脚的带宽)/(每比特的功耗)。在示例中,这里描述的物理逻辑可以包括大于或等于20(gb/s)(pj/bit)的fom。

图13是描绘根据一个示例的系统级互连350与可编程结构404的水平边缘的集成的框图。在示例中,可编程结构404包括由互连元件311和cle312组成的结构。每个cle312包括片312l和片312m。cle片312l和312m可以包括查找表(lut)、多路复用器、触发器、组合逻辑等。互连元件311被配置为将cle312耦接到可编程互连(在上文图3中示出和描述)。

系统级互连350包括可编程结构404的水平边缘(水平结构边缘1308)和引线轨道502。水平结构边缘1308包括互连元件311a和rsn506。每个rsn506占据相当于一对cle312l和312m的区域。每个rsn506包括被耦接到引线轨道502的一部分的开关电路。具体地,每个rsn506包括通过引线轨道502到相邻电路的顺时针(cw)链路1304。每个rsn506还包括通过引线轨道502到相邻电路的逆时针(ccw)链路1302。相邻电路可以是另一个rn或sipio140a中的rsn,这取决于rsn506的位置。互连元件311a被配置为将rsn506耦接到可编程结构404的可编程互连。

在示例中,引线轨道502包括256个轨道,如以上示例中所述。rsn506在cw和ccw方向上被耦接到引线轨道502的一部分。例如,rsn506可以在cw和ccw方向中的每一个方向上都被耦接到的32个引线轨道502上(例如,总共64个链路)。多个rsn506组合以形成rn504,其被耦接到所有引线轨道502。例如,如果rsn506控制32个引线轨道,那么rn504包括8个rsn506。

如图13所示,可以将一组或多组rsn506集成到可编程结构404中,以沿着水平边缘构建一个或多个rn504。例如,可编程结构404的每个fsr508可以包括一个rn504。一部分cle312从结构边缘1308移除并由rsn506的电路替换。移除可编程互连的一部分(例如,水平长导线)以容纳引线轨道502。

图14是描绘根据一个示例的系统级互连350与可编程结构404的垂直边缘的集成的框图。在该示例中,可编程结构404包括互连元件311和cle312的结构。每个cle312包括片312l和片312m。cle片312l和312m可以包括查找表(lut)、多路复用器、触发器、组合逻辑等。互连元件311被配置为将cle312耦接到可编程互连(在上文图3中示出和描述)。

系统级互连350包括可编程结构404(垂直结构边缘1408)的垂直边缘和引线轨道502。垂直结构边缘1408包括互连元件311a和rsn506。每个rsn506占据相当于一对cle312l和312m的区域。每个rsn506包括被耦接到引线轨道502的一部分的开关电路。特别地,每个rsn506包括通过引线轨道502到相邻电路的cw链路1404。每个rsn506还包括通过引线轨道502到相邻电路的ccw链路1402。根据rsn506的位置,相邻电路可以是另一个rn或sipio140a中的rsn。互连元件311a被配置为将rsn506耦接到可编程结构404的可编程互连。

在一个示例中,引线轨道502可以包括256个轨道,如以上示例中所述。rsn506在cw和ccw方向上被耦接到引线轨道502的一部分。例如,rsn506可以在cw和ccw中的每一个方向上都被耦接到32个引线轨道502(例如,总共64个链路)。多个rsn506组合以形成rn504,其被耦接到所有引线轨道502。例如,如果rsn506控制32个引线轨道,则rn504包括8个rsn506。

如图14所示,可以将一组或多组rsn506集成到可编程结构404中,以沿着垂直边缘构造一个或多个rn504。例如,可编程结构404的每个fsr508可沿其一个或两个垂直边缘包括一个rn504。从垂直结构边缘1408移除一部分cle312并用rsn506的电路替换。移除可编程互连的一部分(例如,垂直长导线)以容纳引线轨道502。

图15是描绘根据一个示例的rsn506的框图。rsn506包括仲裁器1502、缓冲器1504、触发器1506、触发器1508、缓冲器1510、缓冲器1512、触发器1514、多路复用器1516、多路复用器1518和多路复用器1520。缓冲器1510从左侧rsn接收16比特输入(例如,在相同的rn或相邻的rn中)。同样,缓冲器1504从右侧rsn(例如,在相同的rn或相邻的rn中)或从sipio140接收16比特输入。缓冲器1510和缓冲器1504的输出被耦接到多路复用器1518的输入。多路复用器1518的输出被耦接到触发器1514的输入。触发器1514包括被耦接到互连元件311a的16比特输出。

缓冲器1512包括被耦接到互连元件311a的16比特输入。缓冲器1512的输出被耦接到多路复用器1520的输入和多路复用器1516的输入。多路复用器1520的另一输入被耦接到缓冲器1504的输出。多路复用器1516的另一输入被耦接到缓冲器1510的输出。多路复用器1520的输出被耦接到触发器1508的输入。多路复用器1516的输出被耦接到触发器1506的输入。触发器1508包括被耦接到左侧rsn的16比特输出。触发器1506包括被耦接到右侧rsn或sipio140a的16比特输出。多路复用器1516、1518和1520的控制输入被耦接到仲裁器1502的输出。仲裁器1502的输入被耦接到缓冲器1504、1510和1512的输出。

在运行中,rsn506使用缓冲器1512以缓冲来自可编程结构404并通过互连元件311a的输入。仲裁器1502将缓冲的输入路由到触发器1508或触发器1506。触发器1506通过cw链路被耦接到引线轨道502。触发器1508通过ccw链路被耦接到引线轨道502。触发器1506和1508寄存数据以便发送到相邻电路(例如,相邻的rsn或sipio140a)。rsn506还使用缓冲器1504和1510缓冲来自相邻电路(例如,相邻rsn或sipio140a)的输入。缓冲器1504通过ccw链路被耦接到引线轨道502。缓冲器1510通过cw链路被耦接到引线轨道502。仲裁器1502将缓冲的输入从缓冲器1504或缓冲器1510路由到触发器1514。触发器1514通过互连元件311a向可编程结构404提供寄存的输出。由此,rsn506实施16比特开关。在其他示例中,rsn504可以实施宽度小于或大于16比特的开关。图15中所示的rsn506的布局允许沿着可编程结构404的水平边缘或垂直边缘使用相同的rsn实施。

图16a到16f示出了系统级互连350的示例性sir实施例。如图16a所示,引线轨道502包括围绕可编程结构404的轨道环。rn504沿着可编程结构404的两个水平边缘和两个垂直边缘集成。引线轨道502被耦接在rn504和sipio140a之间。配置在可编程结构404中的电路1602可以通过沿任何边缘设置的任何rn504被耦接到sipio140a。

如图16b所示,引线轨道(引线轨道502a)的另一实施例包括围绕可编程结构的部分轨道环。在所示的示例中,引线轨道502a围绕可编程结构404的两个水平边缘和一个垂直边缘。在其他示例中,引线轨道502a可以围绕可编程结构404的两个垂直边缘和一个水平边缘。在其他示例中,引线轨道502a可以与一个垂直边缘和一个水平边缘相邻。引线轨道502a被耦接在rn504和sipio140a之间。配置在可编程结构404中的电路1604可以通过任何rn504被耦接到sipio140a。

如图16c所示,引线轨道(引线轨道502b)的另一实施例包括与可编程结构404的一个水平边缘相邻的轨道。引线轨道502b被耦接在rn504和sipio140a之间。配置在可编程结构404中的电路1606可以通过任何rn504被耦接到sipio140a。

如图16d所示,引线轨道(引线轨道502c)的另一实施例包括与可编程结构404的一个垂直边缘相邻的轨道。引线轨道502c被耦接在rn504和sipio140a之间。配置在可编程结构404中的电路1608可以通过任何rn504被耦接到sipio140a。

如图16e所示,sir的另一实施例包括两组引线轨道502a和502c。引线轨道502a与可编程结构404的一侧或多侧相邻(例如,如图所示两个水平侧和一个垂直侧)。引线轨道502c与可编程结构404的一侧或多侧相邻(例如,如图所示的一个垂直侧)。引线轨道502a被耦接在rn504和sipio140a之间。引线轨道502c被耦接在另一组rn504和另一个sipio电路104b之间。配置在可编程结构404中的电路1610可以通过被耦接到引线轨道502a的任何rn504而被耦接到sipio140a。配置在可编程结构404中的电路1612可以通过被耦接到引线轨道502c的任何rn504被耦接到sipio电路140b。

如图16f所示,sir的另一实施例包括引线轨道502的网格(例如,引线轨道502-1到502-4)。每组引线轨道502围绕可编程结构404的一个或多个fsr508。引线轨道502被互连形成网格。每个fsr508包括沿其一个或多个边缘设置的rn504。rn504被耦接到相应的引线轨道502-1到502-4。引线轨道502的网格被耦接到sipio140a。配置在任何fsr508中的电路(未示出)可以通过一个或多个rn504和一个或多个引线轨道502-1到502-4被耦接到sipio140a。虽然示出了四个引线轨道环,但sir可包括多于或少于四个引线轨道环。

图17是描绘根据示例的从ic系统中的可编程ic发送数据的方法1700的流程图。方法1700可以由ic裸片101执行,以从ic系统400发送来自可编程结构404的数据。方法1700开始于步骤1702,可编程结构中的电路将数据耦接到与可编程结构的边缘集成的环节点504。在步骤1703,环节点504通过引线轨道502的通道将数据耦接到sipio140a。在示例中,可编程结构404包括传输逻辑114,传输逻辑114被配置为将数据划分成数据包(步骤1704)。

在步骤1706,sipio140a通过sip桥144的较少数量的物理通道从总线通道发送数据。例如,在步骤1708,数据链路逻辑116将来自总线通道的数据排队到发送队列中。在步骤1710,数据链路逻辑116在物理通道之间复用发送队列,而仲裁逻辑406管理目的地冲突。在步骤1712,仲裁逻辑406还可以将权重分配给发送队列,并基于权重选择用于发送的数据包。

在步骤1714,ic裸片103中的sipio142从sip桥144接收数据。在步骤1716,分散电路128通过分散通道将来自sipio142的数据耦接到应用io107a。在步骤1718,应用io107a将数据发送到外部电路。

以下是另外一些示例。

在示例中,可以提供集成电路(ic)系统,这样的系统可以包括:封装衬底,其具有可编程集成电路(ic)裸片和安装在其上的配套ic裸片,可编程ic裸片包括可编程结构,配套ic裸片包括应用电路;封装内系统(sip)桥,其包括设置在可编程ic裸片中的第一sipio电路、设置在配套ic裸片中的第二sipio电路、以及封装衬底上将第一sipio电路与第二个sipio电路电耦接的导电互连;被耦接在可编程结构和第一sipio电路之间的可编程ic裸片中的第一聚合和第一分散电路;被耦接在应用io和第二sipio电路之间的配套ic裸片中的第二聚合和第二分散电路。

在这种ic系统中,第一和第二sipio电路可以被配置为:分别将第一和第二聚合电路的多通道输出多路复用到在导电互连上实施的第一多个物理通道上;将来自在导电互连上实施的第二多个通道的输入分别多路解复用到第一和第二分散电路的多通道输入上。

在这种ic系统中,第一聚合电路和第一分散电路可以包括被耦接在可编程结构的可编程互连和sipio电路之间的系统级互连。

在这种ic系统中,系统级互连可以包括片上网络(noc)。

在这种ic系统中,可编程ic裸片可以包括与配套ic裸片的直接连接,该直接连接与sip桥分离。

在这种ic系统中,可编程ic裸片可以包括仲裁逻辑,并且第一sipio电路可以包括数据链路电路和收发器电路,其中:数据链路电路的内部接口可以被耦接到第一聚合电路和第一分散电路;数据链路电路的外部接口可以被耦接到收发器电路的内部接口;收发器电路的外部接口可以被耦接到导电互连;数据链路电路的控制接口可以被耦接到仲裁逻辑。

在这种ic系统中,仲裁逻辑可以在可编程ic裸片的可编程结构内实施。

在这种ic系统中,可编程ic裸片可以包括传输逻辑,所述传输逻辑被配置为将发送到所述第一聚合电路的数据封包并对从所述第一分散电路接收的数据进行解包。

在这种ic系统中,传输逻辑可以在可编程ic裸片的可编程结构内实施。

在另一个示例中,可以提供可编程ic。这种可编程ic可以包括:封装内系统(sip)输入/输出(io)电路,其被配置为通过外部导电互连耦接到配套ic;没有至少一部分应用电路的可编程结构;以及被耦接在可编程结构和sipio电路之间的聚合电路和分散电路。

在这种可编程ic中,聚合电路和分散电路可以包括被耦接在可编程结构的可编程互连和sipio电路之间的系统级互连。

在这种可编程ic中,系统级互连可以包括片上网络(noc)。

在这种可编程ic中,可编程结构可以被直接连接到配套ic,该直接连接与sipio电路分离。

在这样的ic中,可编程结构可以被配置为实施仲裁逻辑,并且sipio电路可以包括数据链路电路和收发器电路,其中:数据链路电路的内部接口可以被耦接到聚合电路和分散电路;数据链路电路的外部接口可以被耦接到收发器电路的内部接口;收发器电路的外部接口可以被耦接到外部导电互连;数据链路电路的控制接口可以被耦接到仲裁逻辑。

在这样的可编程ic中,可编程结构可以被配置为实施传输逻辑,该传输逻辑将发送到聚合电路的数据封包并且对从分散电路接收的数据进行解包。

在另一示例中,可以提供一种从ic系统中的可编程ic传输数据的方法。该方法可以包括:通过可编程ic中的聚合电路的多个通道将数据耦接到第一封装内系统(sip)io电路;通过可编程ic和配套ic之间的较少数量的物理通道发送来自多个通道的数据;在配套ic中的第二sipio电路处从多个物理通道接收数据;并通过配套ic中的分散电路的多个通道将来自第二sipio电路的数据耦接到配套ic中的应用电路。

在一些这样的方法中,数据可以被分成数据包。

在一些这样的方法中,第二sipio电路可以包括被耦接到分散电路的相应多个通道的多个内部输出端口,并且每个数据包具有从多个内部输出端口之一中选择的目的端口。

在一些这样的方法中,发送步骤可以包括:在相应的多个发送队列中对来自聚合电路的多个通道的数据进行排队;多路复用多个物理通道之间的发送队列的输出,使得在多个物理通道上并行发送的数据包具有不同的目的端口。

在一些这样的方法中,多路复用步骤还可以包括:为多个发送队列中的每一个分配权重;并且基于权重从发送队列中选择用于在多个物理通道上发送传输的数据包。

在另一个示例中,可以提供可编程ic。这种可编程ic可以包括:具有可编程互连的可编程结构;与可编程结构的至少一个边缘相邻的引线轨道;与可编程结构的至少一个边缘集成的至少一个环节点,所述至少一个环节点被耦接在可编程互连和引线轨道之间;以及被耦接到引线轨道的封装内系统(sip)输入/输出(io)电路。

在这种可编程ic中,引线轨道与可编程结构的两个水平边缘和两个垂直边缘相邻,并且至少一个环节点可以包括与可编程结构的两个水平边缘和两个垂直边缘集成的多个环节点。

在这种可编程ic中,引线轨道可以与可编程结构的三个边缘相邻,并且至少一个环节点可以包括与可编程结构的三个边缘集成的多个环节点。

在这种可编程ic中,引线轨道可以包括第一引线轨道,至少一个环节点可以包括至少一个第一环节点,并且可编程ic还可以包括:与可编程结构的至少一个边缘相邻的第二引线轨道;与可编程结构的至少一个边缘集成在一起的至少一个第二环节点,所述至少一个第二环节点被耦接在可编程互连和第二引线轨道之间。

在这种可编程ic中,sipio电路可以包括第一sipio电路,并且可编程ic还可以包括:被耦接到第二引线轨道的第二sipio电路。

在这种可编程ic中,至少一个环节点中的每一个可以包括:多个环子节点,每个子节点在可编程结构内具有相同的布局。

在这种可编程ic中,多个环子节点中的每一个可以包括被耦接到可编程结构的互连元件的开关电路。

在另一个示例中,可以提供另一个ic系统。这种ic可以包括:封装衬底,其具有被安装在其上的可编程集成电路(ic)裸片和配套ic裸片,可编程ic裸片包括可编程结构,配套ic包括应用电路;封装内系统(sip)桥,其包括设置在可编程ic裸片中的第一sipio电路、设置在配套ic裸片中的第二sipio电路、以及封装衬底上的电耦接第一sipio电路和第二个sipio电路的导电互连;可编程ic裸片包括:具有可编程互连的可编程结构;与可编程结构的至少一个边缘相邻的引线轨道,引线轨道被耦接到第一sipio电路;与可编程结构的至少一个边缘集成的至少一个环节点,该至少一个环节点被耦接在可编程互连和引线轨道之间。

在一些这种ic中,引线轨道可以与可编程结构的两个水平边缘和两个垂直边缘相邻,至少一个环节点可以包括与可编程结构的两个水平边缘和两个垂直边缘集成的多个环节点。

在一些这样的ic中,引线轨道可以与可编程结构的三个边缘相邻,并且至少一个环节点可以包括与可编程结构的三个边缘集成的多个环节点。

在一些这样的ic中,引线轨道可以包括第一引线轨道,并且至少一个环节点可以包括至少一个第一环节点,并且可编程ic还可以包括:与可编程结构的至少一个边缘相邻的第二引线轨道;与可编程结构的至少一个边缘集成在一起的至少一个第二环节点,所述至少一个第二环节点被耦接在可编程互连和第二引线轨道之间。

在一些这样的ic中,sipio电路可以包括第一sipio电路,并且可编程ic还可以包括被耦接到第二引线轨道的第二sipio电路。

在一些这样的ic中,至少一个环节点中的每一个可以包括多个环子节点,每个环子节点在可编程结构内具有相同的布局(layout)。

在一些这样的ic中,多个环子节点中的每一个可以包括被耦接到可编程结构的互连元件的开关电路。

在另一示例中,可以提供一种从可编程ic发送数据的方法。这种方法可以包括:将数据耦接到与可编程ic的可编程结构的边缘集成的环节点,环节点被耦接在可编程结构的可编程互连和与边缘相邻的引线轨道之间;通过引线轨道的多个通道将来自环节点的数据耦接到第一封装内系统(sip)io电路;在可编程ic和配套ic之间通过较少数量的物理通道发送来自多个通道的数据。

这种方法可以包括在配套ic中的第二sipio电路处从多个物理通道接收数据;以及通过配套ic中的分散电路的多个通道将来自第二sipio电路的数据耦接到配套ic中的应用电路。

在一些这样的方法中,数据可以被分成数据包。

在一些这样的方法中,第二sipio电路可以包括被耦接到分散电路的相应多个通道的多个内部输出端口,并且其中每个数据包具有从多个内部输出端口中的一个选择的目的端口。

在一些这样的方法中,发送步骤可以包括对来自相应多个发送队列中的多个通道的数据进行排队;多路复用多个物理通道之间的发送队列的输出,使得在多个物理通道上并行发送的数据包具有不同的目的端口。

在一些这样的方法中,多路复用步骤还可以包括:为多个发送队列中的每一个分配权重;并且基于权重从发送队列中选择用于在多个物理通道上发送的数据包。

虽然前述内容针对特定示例,但是可以在不脱离其基本范围的情况下设计其他和进一步的示例,并且本申请的范围由所附权利要求确定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1