具有片上集成网络的可编程逻辑器件的制作方法

文档序号:16930768发布日期:2019-02-22 20:15阅读:188来源:国知局
具有片上集成网络的可编程逻辑器件的制作方法

本申请是于2013年11月4日提交的申请号为201310538224.3、名称为“具有片上集成网络的可编程逻辑器件”的中国发明专利申请的分案申请。



背景技术:

诸如可编程逻辑器件(pld)之类的现有集成电路通常利用“点到点”路由,这意味着在源信号生成器和一个或多个目的地之间的路径在编译时通常是固定的。例如,pld中a到b连接的典型实现方式涉及通过预定义水平接线的互连堆叠的连接逻辑区域。这些水平接线具有固定长度,并被布置成束,并且通常保留用于pld配置比特流的整个操作的a到b连接。即使用户例如通过局部重编译能够后续改变点到点路由的一些特性,这类改变也一般应用块层替换,而不应用至逐个周期的路由实现方式。

这类现有路由方法可以使得器件低效,例如当不在每个周期中使用路由时。低效的第一种形式是由于低效接线的使用而出现。在第一示例中,当极少使用a到b连接时(例如,如果a处的由源逻辑区域生成的信号值极少改变或在b处的目的地逻辑区域极少被编程为受结果影响),则用于实现a到b连接的导体可以不必要地占用金属、功率和/或逻辑资源。在第二示例中,当具有n个输入的多路复用总线以点到点方式实现时,金属资源可能因多路复用总线而在从n个可能的输入接线的每个接线的路由数据上浪费,根据定义,n个输入接线的一个接线并且忽略其它n-1个输入接线。当与并不影响稍后计算的数据改变有关地消费时,可能在这些示例中浪费功率资源。这种低效接线使用的更为普遍形式是在多于一个生成器生成串行通过单个消费器(consumer)的数据或一个生成器生成以循环方式由两个或更多个消费器使用的数据时出现。

在使用接线但是低于其全潜能(例如在延迟方面)时,出现所谓的基于懈怠的低效的第二种形式的低效。例如,如果要求在生成器和消费器之间以每300ps传输数据,并且它们之间的导体能够以更快的100ps的时标传输数据,则导体中的200ps的懈怠时间是空闲的,这是一种形式的低效或带宽浪费。这两种形式的接线的未完全利用(例如低效接线使用和基于懈怠的抵消)可以单独或一起出现,从而导致资源的低效使用,并且浪费宝贵的接线、功率和可编程多路复用资源。

在许多情形中,在pld上实施的逻辑的高层描述可以已经暗示了资源共享,诸如共享去往外部存储器或高速收发器的接入。为此,综合通常表示在pld上总线的较高层的结构。在一个示例中,软件工具可以生成作为寄存器传输级(rtl)/verilog逻辑的工业定义总线,然后将其综合进fpga器件。然而,在此情形下,共享的总线结构仍然以上述方式实施,这意味着实际上转换成点到点静态路由。即使在涉及fpga接线的时分复用的方案中,诸如在trimberger等人于1997年在关于fpga的国际论文集第22至28页提出的“atimemultiplexedfpga”中描述的方案中,路由仍然受限于单独的接线基础并且并不提供分组能力。



技术实现要素:

本公开涉及集成电路器件,并且更具体而言,涉及具有可编程织构和集成有用于高速数据传递的可编程织构的通信网络的器件。

在一些方面,可编程集成电路包括多个片上网络(noc)站点(station),多个noc站点中的每个nox站点配置成接收时钟输入并且具有硬ip(hard-ip)接口。硬ip接口包括去往可编程集成电路的本地逻辑区域的双向连接,并且去往可编程集成电路的多个相应相邻noc站点的多个双向连接。

在一些方面,提供一种方法用于配置集成电路的noc站点的用户可编程软ip(soft-ip)接口的方法,软ip接口支持noc站点的硬ip接口。经由软件库函数实例化软ip接口。经由软件针对软ip接口指定noc站点的至少一个服务质量(qos)参数。基于至少一个qos参数配置软ip接口以为noc站点提供未由硬ip接口提供的功能性。

在一些方面,集成电路包括多个noc站点,多个noc站点中的每个noc站点包括时钟电路装置,配置成接收时钟输入;以及用于配置支持硬ip接口的逻辑的用户可编程软ip接口。用户可编程软ip接口包括配置成管理穿越noc站点的至少一个连接的数据的至少一个qos相关度量的qos电路装置。

在一些方面,可编程逻辑器件(pld)包括多个noc站点,每个noc站点配置成接收时钟输入并且包括硬ip接口和用于配置支持硬ip接口的逻辑的用户可编程软ip接口。硬ip接口包括去往pld的本地逻辑区域的双向连接以及去往pld的相应多个相邻noc站点的多个双向连接。用户可编程软ip接口包括配置成管理穿越noc站点的至少一个连接的数据的至少一个qos相关度量的qos电路装置。

在一些方面,noc接口包括总线定向的硬ip接口电路装置,配置成在标准化的连接上提供数据传送;总线定向的软ip接口电路装置配置成从标准化连接上的硬ip接口电路装置接收数据并且提供未由硬ip接口提供的附加的数据管理功能性,其中软ip接口是用户可定制的;并且总线电路装置配置成在软ip接口电路装置和总线定向的外部逻辑块之间传送数据。

附图说明

在考虑下文具体描述以及所附附图之后,所公开的技术的进一步特征及其本质和各种优势将变得显然,其中在全文中相似的参考字符指代相似部件,并且其中:

图1描绘了根据一个实现方式的fpga的示意性平面布置图;

图2描绘了根据一个实现方式的用于fpga的基于网格的示意性noc路由结构。

图3描绘了根据一个实现方式的用于fpga的单向基于环状的示意性noc路由结构;

图4描绘了根据一个实现方式的用于fpga的双向基于环状的示意性noc路由结构;

图5描绘了根据一个实现方式的用于fpga的示意性非对称noc路由结构;

图6描绘了根据一个实现方式的用于fpga的示意性静态noc路由结构;

图7描绘了根据一个实现方式的用于fpga的时间共享的示意性noc路由结构;

图8描绘了根据一个实现方式的用于fpga的基于时间标签的示意性noc路由结构;

图9描绘了根据一个实现方式的与noc站点相关联的功能性的示意性图;

图10示出了根据一个实现方式的用于实施具有可参数化网络操作的noc站点的巨函数(megafunction);

图11示出了具有这类软逻辑接口功能性的megafunction,其实施根据一个实现方式的noc站点。

图12描绘了具有嵌入存储器资源的示意性megafunction,其实施根据一个实现方式的noc站点。

图13示出了其中根据一个实现方式noc站点可以放置在具有竖直贴片组织的fpga中的方式;

图14描绘了示意性系列变体,其中noc部件根据一些实现方式与不同器件尺寸成比例;

图15描绘了根据一个实现方式的具有noc仲裁机构的fpga的示意性平面布置图;以及

图16是示出了根据一些实现方式的用于配置用于noc站点的用户可编程软ip接口的流程的流程图。

具体实施方式

图1描绘了根据一个实现方式的fpga的示意性平面布置100。平面布置100描绘了fpga的各种示意性块。平面布置100包括核芯逻辑织构(fabric)110,其可以具有可配置的逻辑块、查找表和/或d触发器(dff)(图1中未示出)。平面布置100包括存储器模块112和存储器模块116。存储器块112可以均具有与存储器块116不同的位大小。例如,在一个布置中,每个存储器112是512位存储器块,而每个存储器块116是4096位存储器块。平面布置100包括可变精度数字信号处理(dsp)块114。在一些布置中,dsp块114中的每个dsp块包括多个乘法器、加法器、减法器、累加器和/或流水线寄存器。

平面布置100包括锁相环(pll)120和通用输入输出(i/o)接口122。i/o接口122可以以软ip实施,并且可以与例如外部存储器对接。平面布置100包括硬ip输入-输出(i/o)接口124。硬ipi/o接口124可以包括一个或多个物理编码子层(pcs)接口。例如,硬ipi/o接口124可以包括10g以太网接口。在平面布置100中未示出但是在核芯逻辑织构110中暗示的是路由接线和可编程开关的网络。网络可以由sram可编程位配置,但是也可以使用其它手段以实施在平面布置100的块之间的路由连接。

通常在fpga和其它可编程逻辑器件中将带宽资源实施为形式为上述点到点路由方案的多个路径。但是这类实现方式可以导致低效,例如由于接线的未充分利用。为了解决该问题,本文论述的一些实施例通过实施如下网络来增加效率,该网络更有效地使用接线和可编程多路复用资源,例如通过与公共传输接线和去往该接线上的多个接入共享这类资源。

下面呈现一系列备选的片上网络路由结构,除现有的在fpga上静态路由资源之外,可以实施每个结构。所公开的noc路由结构允许在平面布置中的昂贵连接(诸如图1的平面布置100)以利用共享路由资源,并且更有效地利用fpga(或其它可编程器件)中金属和硅资源。在概念上,一些公开的noc路由结构可以与用于承载通过fpga的数据的“高速通道”相似地构思为位于现有fpga路由织构上。

例如,图2描绘了根据一个实现方式的fpga的基于网格的示意性noc路由结构。平面布置200与平面布置100等同,但是包括noc站点202、204、206、208、210、212、214、216、218、220、222和224以及将这些noc站点互连的接线。这些接线中的每个接线是双向接线。平面布置200示出12个noc站点的情形。noc站点中的每个站点可以是noc互连中的源点和目的地点、或数据传送的着陆点。连接noc站点的接线可以优选地地是多位连接。例如,在一个实现方式中,noc互连的每个接线是64位宽。在另一实现方式中,noc互连的每个接线是71位宽,其中7个位专用于带外控制信号。

noc互连的、与如图2所示的平面布置200的传统织构的逻辑分离(包括noc站点及其接线)可以允许noc互连的特性和使用模型特定的电学优化。例如,可以优化总线接线的类型、流水线、宽度和/或间隔。此外,本领域技术人员可以理解,基于本文的公开和教导,图2中所绘的每个noc站点可以备选地表示为通用i/o焊盘或接通/断开直接连接。

图2中所示的基于网格的noc结构仅是一种拓扑,其中noc站点可以在诸如fpga平面布置之类的结构上实施;可以使用其它拓扑结构。可以在不偏离本公开的范围的前提下修改拓扑结构的各个方面,诸如但不限于拓扑结构的定向方面、对称方面和其它配置方面(包括时间共享、多点传输/广播和/或任何其它方面)。在下面的图3至图8中示出这些拓扑结构的示例。

图3描绘了根据一个实现方式的用于fpga的单向基于环状的示意性noc路由结构。平面布置300与平面布置100相同,但是包括noc站点302、304、306、308、310、312、314、316、318和320以及互连这些noc站点的接线。此外,以单向顺时针方式从一个noc站点穿越至另一noc站点的数据由图3中的箭头标示。

图4描绘了根据一个实现方式的用于fpga的双向基于环状的示意性noc路由结构。平面布置400与平面布置100相同,但是包括noc站点402、404、406、408、410、412、414、416、418和420以及互连这些noc站点的接线。此外,以顺时针或逆时针方式从一个noc站点穿越至另一noc站点的数据由图4中的箭头标示。

图5描绘了根据一个实现方式的用于fpga的示意性非对称noc路由结构。平面布置500与平面布置100相同,但是包括noc站点502、504、506、508、510、512、514、516、518和520以及互连这些noc站点的接线。如图5所示,noc站点的拓扑结构在竖直方向上非对称,并且具体而言,noc站点516与仅2个接线相关联(而非是诸如noc站点502、504、506、508、510、512、514和518相关联的接线连接之类的接线连接的4路交叉点)。

在某些实现方式中,静态地配置在网络上传送的数据,从而每个noc站点从至多一个其它站点接收数据并且向至多一个其它noc站点输出数据。该技术的优势在于每个noc站点可以根据共用时钟操作,而没有创建在noc拓扑中的瓶颈吞吐量延迟。例如,图6描绘了根据一个实现方式的用于fpga的示意性静态noc路由结构。平面布置600与平面布置100相同(核芯逻辑织构的某些元件出于示意的目的在图6中省略),但是包括noc站点602、610、612、614、616和624以及互连这些noc站点的接线。

如图6的接线路径630所示,noc站点610从noc站点602接收数据(并且不从其它noc站点接收数据)并且将数据提供给noc站点612(并且不向其它noc站点提供数据)。类似地,如图6的接线路径640所示,noc站点616从noc站点614接收数据(并且不从其它noc站点接收数据)并且将数据提供给noc站点624(并且不向其它noc站点提供数据)。在一些实现方式中,网络流水作业并且网络的noc拓扑的接线以高于网络的织构缝织连接(fabricstitchedconnection)更高的速率钟控。例如,参见图6,网络的织构缝织连接可以以400mhz的时钟操作,而每个noc站点(即,包括noc站点620、610、612、614、616和624)以1ghz的时钟操作。因此,在连接noc站点的每个接线是64位宽的情形中,可以有64ghz的总吞吐量。

在某些实现方式中,网络的noc站点布置为以共享方式操作,例如以时间共享(时分复用)方式、频率共享的方式或任何适当的方式。例如,图7描绘了根据一个实现方式的用于fpga的时间共享的示意性noc路由结构。在图7中,noc站点702和714均转发数据给noc站点712。noc站点712使用任何适当的时间共享的方案收集由noc站点702和714提供的聚集数据。例如,noc站点712可以使用循环方案收集数据,在该循环方案中,在第一时间间隔内从noc站点710的缓冲器收集数据,在第二时间间隔期间从noc站点714的缓冲器收集数据,并且然后循环方案重复。此外,noc站点712可以将该聚集数据传送进行本地存储器缓冲器或一些其它适当捕获机构。支持noc站点712的逻辑电路装置可以包含为站点和/或用于从两个源(例如noc站点702和714)接收数据的时间分享/时间分片机构指定适当时钟的配置数据。

在一些实施方式中,数据附有标识数据是否被给定noc站点消耗、观察和/或处理的标签。例如,图8描述了根据一个实现方式的用于fpga的基于数据标签的示意性noc路由结构。平面布置800与平面布置100相同,但是包括noc站点802、804、808和810以及互连这些noc站点的接线互连。在一个实现方式中,在核芯逻辑织构830的位置a处生成数据,并且目标为核芯逻辑织构830的位置b。该数据穿越noc站点802、804、806和808和810。具体而言,在a处生成的数据分组可以附有将noc站点810标识为期望目的地noc站点的信息。

继而根据任何指定的协议(例如广播或多点传送协议)将分组从noc站点802转发至noc站点810。例如,根据一个示意性广播协议,可以以下列顺序跨越noc站点传送分组:noc站点802、noc站点804、noc站点806、noc站点808、以及noc站点810。每个站点检查分组以获知该站点是否被指定为分组的所附信息中的期望目的地。

在当前示例中,仅noc站点810被指定为分组的期望目的地。因此,noc站点804、806和808中的每个接收分组,并且确定不处理分组,并且将分组转发到下一个noc站点上。下一个noc站点可以基于广播方案或以任何适当方式本地或全局地确定。noc站点810最终接收分组,确定其被指定处理分组并且基于该确定,将分组传输仅点b的本地逻辑区域。因此,该技术表示了如下计算模型,其中流数据附有指示noc站点处理数据(即,将数据传送进本地逻辑区域或对数据执行除简单转发至另一noc站点之外的其它操作)的标签。每个noc站点在接收数据之后,确定其是否被指定为处理数据。如果是这样,则noc站点处理数据。否则,noc站点简单转发数据而不对其进行处理。

图9描绘了根据一个实现方式的与noc站点900相关联的功能性的示意图。在一个实施例中,接收来自全局时钟信号902的钟控的noc站点900具有分别经由链路904、910、906和912去往北方、南方、东方和西方邻居中的每个邻居的双向链路,并且具有去往本地fpga逻辑织构的双向链路908。在图9的示出示例中,双向链路908耦合到端点端口,其可以对应于数据从本地逻辑织构进入noc拓扑和/或离开noc拓扑去往本地逻辑结构的地方。

与图9相关联的功能性可以应用于不同配置的noc站点,例如,是否被静态切换noc站点或是否实施动态分组路由。使用4个双向链路(即,东方、南方、西方和北方)去往其它noc站点仅是示例。例如,在给定拓扑中一些(或所有)noc站点可以使用与网络中存在的双向链路相同或不同带宽或布置单向链路。此外,给定拓扑中一些或所有noc站点可以包括比一个更少或更多的链路去往fpga逻辑织构。例如,0个链路去往本地fpga织构暗示着站点实际上充当路由器而非源或目的地点,而多于一个链路暗示着多于一个的数据流可以进入noc站点。这些多个流可以被仲裁和/或另外地多路复用至网络上。

此外,在给定拓扑中的一些或所有noc站点可以省略去往其它noc站点的水平链路906和912,由此仅提供竖直路由。类似地,在给定拓扑中的一些或所有noc站点可以省略去往其它noc站点的竖直链路904和910,由此仅提供水平路由。也可以有其它拓扑。

在一些实施例中,例如,在分组路由数据的情形中,noc站点900配置成访问附加的配置信息(在图9中未示出)。例如,noc站点900可以配置成访问noc站点/块的地址以使用选择器以从一个或多个时钟资源选择和/或处理服务质量要求。在一些实施例中,可选地向noc站点提供诸如缓冲存储器之类的资源以诸如在网络繁忙时存储一些分组。

qos要求可以涉及任何合适的性能参数,诸如但不限于要求的位速率、等待时间、延迟、抖动、分组掉包可能性,数据可处理性、待传输的分组的优先级和重要性、和/或位误差率。qos要求可以包括与fpga或noc中的数据通信的质量或性能(诸如noc站点的存储器的缓冲器大小、noc站点的数据宽度和/或noc站点的存储和转发策略)相关的任何信息。

noc站点(诸如图9的noc站点900)可以包括硬ip部分和软ip可配置部分。因此,为了配置noc,可以为设计者提供配置多个noc站点或节点中的每个的软ip部分的机构。该机构可以包括计算机辅助设计(cad)工具。noc站点的软ip部分的配置可以根据“megafunction”或库函数指定,其允许noc站点的实例化。megafunction指代以下项中的一项或多项:(1)用户接口;(2)软件;以及(3)支持的、用于描述设备的用户以灵活、参数化方式使用一个或多个功能性的能力的实现方式。支持megafunction的实现方式可以包括支持的软件逻辑和/或硬件逻辑。介入的megafunction软件可以确定如何实施由用户供应的参数,同时允许megafunction用户功能。例如,megafunction软件可以确定用户供应的参数如何被转译成软件逻辑中的改变或硬逻辑中的设置。在一些实施例中,megafunction实现方式逻辑由图像用户接口生成,在不同场合被称为“wizard”、“插件”、“megawizard插件管理器”或类似术语。

根据一些方面,megafunction允许对网络的操作的可参数化。图10示出了根据一个实现方式的用于实施具有可参数化网络操作的noc站点1000的megafunction1010。由示意性megafunction1010所示的那样,megafunction可以配置网络的内部操作的各个方面,例如通过指定静态路由或其它路由决定(在1012处)、设置存储和转发策略(在1014处)、指定多路复用方案/设置(在1016处)、和/或通过设置任何其它期望操作参数。根据一些方面,megafunction1010可以例如通过实例化qos标签和/或设置集成的fifo的缓冲器大小来配置网络的内部操作的一些方面。megafunction1010可以输出所需的rtl级逻辑以将noc的硬化站点/节点对接进织构,例如通过实例化fpga逻辑中的源和目的地寄存器、设置路径的时序约束和/或产生所需的时钟交叉。在一个实现方式中,megafunction1010可以允许noc以固定的高速时钟速率操作,同时允许fpga织构以用户确定的时钟速率(其可以低于noc高速时钟速率)运行。

根据一些方面,megafunction可以允许网络的软ip可配置性。例如,megafunction可以提供用于软逻辑的接口,诸如位于fpga织构附近的逻辑接口。软逻辑接口可以用于配置未在器件的硬化实现方式中构思或嵌入的决策制定。图11示出了具有这类软逻辑接口功能性的megafunction1110,从而实施根据一个实现方式的noc站点1100。megafunction1110包括与硬化多路复用电路装置1114通信的软路由决策逻辑1112。软路由决策逻辑1112可以由设计者使用任何类型的功能性在硬化noc站点1100或器件之后编程。硬化多路复用电路装置1114可以在一个或多个方向上如软路由决策逻辑1112确定的那样发送数据。例如,软路由决策逻辑1112可以已决定或确定来自左侧链路的数据待发送至顶部链路。为了实现这一路由决策,软路由决策逻辑1112可以发射多路转接器设置给硬化多路复用电路装置1114以影响该连接。例如,硬化多路复用电路装置1114可以基于所接收的多路转接器设置而配置成实施连接的目标集合。

图16是用于配置集成电路的片上网络(noc)站点的用户可编程软ip接口的流程1600的流程图。因此,软ip接口可以支持noc站点的硬ip接口。可以在与本文所述的noc站点中任一noc站点相似的noc站点中实施流程1600。

在1602处,经由软件库函数实例化noc站点的软ip接口。软件库函数可以通过megafunction提供,例如诸如图10、11和12中示出的megafunction块。

在1604处,经由软件指定noc站点的至少一个服务质量(qos)参数。在一个实现方式中,至少一个qos参数指定noc站点的存储器的缓冲器大小和/或noc站点的存储和转发策略。软件可以输出用于将noc站点的软ip接口对接至noc站点的硬ip接口的rtl代码。

在1606处,基于来自1604的至少一个qos参数配置软ip接口以提供noc站点的功能性。该功能性可以不由硬ip接口提供。

在1606的一个实现方式中,至少一个qos参数指定noc站点的数据宽度,并且软ip接口提供数据调整/适配功能性,以将大于noc的宽度的数据破裂成多个事务或比noc的数据宽度较小的数据。例如,如果数据的宽度大于指定数据宽度,则软ip接口可以设置成提供在noc站点接收的数据分段成较小的数据单元以用于供noc站点处理。如果数据宽度小于指定数据宽度,则软ip接口可以设置成提供在noc站点接收的数据的填充,从而填充数据可以由noc站点处理。

在1606的一个实现方式中,由软ip提供的功能性包括至少部分地基于对数据流的一个或多个qos约束来调节每个相应的数据流。可以例如在1604处基于可用带宽参数指定对给定数据流的一个或多个qos约束。可以通过多路复用数据流、交织数据流和/或任何其他适当方式来完成调节。例如,megafunction实现方式可以配置成多路复用多个事务流,包括仲裁逻辑、交织、速率匹配和带宽或qos分配。megafunction逻辑1110在一些情形中可以通过针对简单流控制(例如ack信号确认)或多个复杂的标准协议(诸如高速总线接口)添加逻辑来配置。

在各种实现方式中,noc的数据带宽可以设置为多个设置之一,例如为仅数据设置或数据加元数据设置。在一个示意示例中,noc可以在64位物理分配数据路径中实施附有16位元数据(诸如地址/控制标签)的逻辑48位总线。设计者自身可以使用可配置fpga织构生成逻辑。备选地或附加地,megafunction可以添加用于配置数据宽度的分配的这类逻辑。

根据一些方面,megafunction实现方式可以分配单独的存储器资源,诸如单独的存储和转换存储器部件。例如,megafunction可以实例化noc站点和路径这两者至附近的嵌入存储器块以充当用于通过来自/去往本地区域的业务突发的接收缓冲器。

图12描绘了具有这类嵌入存储器资源的megafunction1210,其实施根据一个实现方式的noc站点1200。megafunction1210包括嵌入的存储器块1212,其在一些实现方式中可以是fpga织构ram部件。

在一些实施方式中,硬化多路复用电路装置1214可以具有可定制的多路转接器设置并且可以与图11的硬化多路复用电路装置1114类似地操作。例如,硬化多路复用电路装置1214可以使用软路由决策逻辑配置以例如基于用户定义的设计来影响连接的不同设置。在一些实施例中,硬化多路复用电路装置1214可以具有固定的多路转接器设置并且可以实施相同集合的连接而没有调整的可能。

存储器块1212可以实施速率匹配功能性。例如,存储器块1212可以存储以比现有数据更快的速率到达的数据。备选地或附加地,存储器块1212可以当目的地忙碌和/或不可用时存储数据。无论megafunction实现方式是否包括软路由决定逻辑,都可以实施速率匹配功能性。例如,软路由决定逻辑可以已决定改变数据连接,周期可以使得数据连接在时间上交叠。在此情形下,例如,被路由的一些数据可能在交叠期间需要存储在存储器块1212中。

一些可编程器件在指定区域中包括具有附加的资源行或列的冗余区域,其可以被断开以恢复制造产率。在一些实施例中,noc区域的间距依赖于冗余区域。例如,器件可以构造为具有n个物理逻辑行,但是表示为冗余或空闲行的一个行仅用于修复故障的行,从而留下n-1个逻辑行以供使用。当测试器件时,测试每个行,然后使用可编程熔断器或相当的技术标记一个“破裂”行作为不被使用。如果一些行无法通过测试,则变成空闲行以取代它的位置。如果所有行均通过测试,则将空闲行标记为不被使用。在一些器件中,将器件附加地划分成多个修复区域或超级行(super-row)。例如,器件可以具有前述n行器件的m个竖直堆叠的象限。示例性地将n设置为33并且将m设置为4,这将产生具有m*n=132个物理行,m*n-1=128个逻辑行,并且其中m区域的任一个中的一个行可以被独立地标记为未被使用。在这类器件的一些实施方式中,冗余区域的边界充当可编程逻辑织构的自然断裂并且因此充当在单独的行和/或列层级无法贴片(tile)的位的自然位置。当这类边界因冗余或类似提供而存在时,noc区域可以使用这些位置实施。

图13描绘了根据一个实现方式的其中noc站点可以放置在具有竖直贴片组织的fpga器件1300中的方式。在图13的示意性示例中,noc站点位于具有16个区域(标记为a至p)的fpga器件1300中。fpga器件1300具有4个超级行{abcd,efgh,ijkl,mnop}。fpga器件1300附加地具有分别位于超级列{aeim,bfjn,lgko,dhlp}之间的noc列1322、1324、1326、1328和1330,以物理地保持noc。例如,一个或多个noc站点的noc逻辑部分1302、1304、1306、1308和1310沿fpga器件的noc列1322、1324、1326、1328和1330放置。超级行efgh的缩放视图1390显示了在该超级行efgh内的常规行1392和空闲行1394,并且该超级行周围的noc的定位1396。

图13中所示的布置可以具有若干优势。首先,该布置可以消除对作为noc站点和布线的一部分的冗余操纵逻辑的需要。而是,该逻辑根据冗余区域分布。其次,该布置往往提供在noc站点之间的均匀的绝对距离,这是因为冗余区域因区域和产率缺陷之间的关系一般依赖于原始硅区域。因此,图13的布置可以允许适当流水线化以及跨器件大小范围的恒定网络操作速度。

例如,在利用与图13类似的布置的器件系列中,noc可以供应为有效地可增缩。例如,图14描绘了根据一个布置的若干系列变体,其中noc部件与不同器件大小成比例,同时维持基础网络的共同特性。具体而言,器件1410包括16个器件区域,器件1420包括9个器件区域,并且器件1430包括4个器件区域。器件1410、1420和1430中的每个器件在其相应数值列中存储noc站点的逻辑。通过流水线化每个器件,可以实现跨系列成员(即器件1410、1420和1430)的恒定网络速度,即使时钟周期的等待时间可以随着器件1410、1420和1430的尺寸而增长。在这类架构中嵌入的源涉及将因此可重标定至不同器件系列元件,只要充足考虑针对等待时间可变通信的源设计的架构。

为了便于在可编程逻辑或其它器件中实际使用noc技术,通常通过仿真和其它手段验证终端产品。在一个实施例中,noc实例化所使用的高级工具也可以提供自动生成的仿真模型。这类模型的示例包括verilog/vhdl、systemverilog或bluespec和/或systemc或其它形式表述中的事务级模型。

诸如本文描述的由noc系统和方法实现的快速移动切换路径的若干优势涉及连接至外部部件。在一些实施例中,noc具体依赖于两个主要i/o系统的操作:诸如通过ddr外部存储器接口(emif)的存储器系统,以及诸如通过高速串行接口(hssi)或通过终结物理协议的pcs(物理代码子层)块的收发器系统。对于具有asic或其它嵌入逻辑部件的可编程器件而言,也构思了将这些系统块连接至其它嵌入逻辑部件的类似连接。

noc功能性可以通过在不同请求方之间仲裁这些固定资源提供附加值给在器件上实施的应用。例如,如果用户设计的两个(或更多)部分涉及对ddr存储器的单个库的访问,则两者可以将其请求放置在硬化noc上,并且允许noc仲裁机构来确定何者获得对存储器的访问。这可以导致用户逻辑计数的减少,这是因为无需用户以此方式配置仲裁逻辑。这还可以导致因就位的硬化和分布仲裁机构导致的频率提升。

图15示出了这样的情形。具体而言,图15描绘了具有硬ip部件(诸如硬ip块1510、1512、1514和1516以及硬ip接口站点1523和1525)的样品fpga平面布置1500。硬ip块1510、1512、1514和1516可以实施为去往设备的输入和/或输出的硬化控制器和/或物理接口。硬ip块1510、1512、1514和1516直接与诸如noc站点1520、1522、1524、1526、1528和1530之类的noc站点对接。如图15所示,noc与fpga的通信层直接对接,在该示例中,分别通过接口站点1523和1525的右侧和左侧的高速串行接口的pcs。

硬ip块1510、1512、1514和1516或接口站点1523或1525可以对接的fpga资源和i/o块的示例包括逻辑织构1552、dsp块1554、内部存储器块1556、钟控块1558(例如分数pll)、i/o硬ip块1560(例如,实施诸如pciexpress之类嵌入式工业协议)、硬ip收发器块1562(例如实施诸如pcs之类的物理层协议)和高速串行收发器块1564。出于示意而非限制的目的包括这些资源,并且可以理解,图15的硬ip部件在不偏离本公开的范围的前提下可以与其它类型的资源对接。

图15的硬化部件可以全部或部分地用作网络上站点,但是还可以具有附加的功能性。例如,pcs接口站点可以执行专用功能,诸如成帧以太网分组和操纵有效载荷数据和报头数据去往设备中的不同目的地,或可以附加如前所述的元数据以用于多点传送/广播或者将设备上的目的地和/或“工作任务”调度以读取专用数据。

上面使用术语“fpga”是示例性的,并且应该认为包括许多集成电路,包括但不限于商用fpga器件、复杂可编程逻辑器件(cpld)、可配置专用集成电路(assp)器件、可配置数字信号处理(dsp)和图形处理单元(gpu)器件、混合专用集成电路(asic)、可编程器件或描述为具有可编程逻辑核芯或可编程逻辑器件(具有嵌入式asic或assp核芯)的可编程器件或器件。

对于本领域技术人员显然的是,基于本文的公开和教导,上述公开技术的一些方面可以以许多不同形式(在图中示出的实现方式中的软件、固件和硬件)实施。并不限制用于实施与所公开的技术的原理一致的方面的所使用的实际软件代码或专用硬件。因此,在没有参考具体软件代码的情形下描述了所公开的技术的一些方面的操作和行为。本领域技术人员可以理解,能够基于本文的描述设计软件和硬件以实施一些方面。

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