用于fpga原型化的串行接口的制作方法

文档序号:6497675阅读:141来源:国知局
用于fpga原型化的串行接口的制作方法
【专利摘要】在用于FPGA原型化的串行接口的方面中,高级交叉开关互连(AXI)桥路结构支持在片上系统(SoC)中的现场可编程门阵列(FPGA)之间的串行数据通信。AXI桥路结构包括被配置为从在第一FPGA处被实施的AXI部件接收AXI数据信号的并行接口。传输(TX)引擎被配置为将AXI数据信号分组化成AXI数据分组,并且经由串行链路向第二FPGA传输AXI数据分组。AXI桥路结构还包括被配置为经由串行链路从第二FPGA接收附加AXI数据分组并且从附加AXI数据分组提取AXI数据信号的接收(RX)引擎。并行接口还被配置为向AXI部件提供附加AXI数据信号。
【专利说明】用于FPGA原型化的串行接口
[0001]相关申请的交叉引用
[0002]本申请要求对提交于2012年12月12日的美国专利申请第13/712,183号的优先权,该美国专利申请又要求对通过这里完全引用而将公开内容结合于此、提交于2011年12月15日的美国临时专利申请第61/576,310号的优先权。
【背景技术】
[0003]包括在本部分中描述的【背景技术】仅为了呈现公开内容的一般情境。【背景技术】描述并不是对于本申请中的权利要求的现有技术并且并未由于被包含于本部分中而被承认为现有技术。
[0004]也被称为专用集成电路(ASIC)原型化或者片上系统(SoC)原型化的FPGA原型化用来在现场可编程门阵列(FPGA)上原型化SoC和ASIC设计以用于硬件验证和软件开发。在用FPGA原型化时,SoC经常被分割成多个FPGA,其中每个FPGA可以实施SoC的具体部件。常规SoC使用并行互连结构以在部件之间传达数据。这一并行互连结构需要多个数据线和管脚,这使得SoC的分割存在困难。

【发明内容】

[0005]本
【发明内容】
介绍用于FPGA原型化的串行接口的概念,并且以下在【具体实施方式】中进一步描述和/或在附图中示出概念。因而,本
【发明内容】
不应被视为描述必需特征也并未用来限制要求保护的主题内容的范围。
[0006]在用于FPGA原型化的串行接口的一个方面中,一种AXI桥路结构支持在片上系统中的FPGA之间的串行数据通信。AXI桥路结构包括被配置为从在第一 FPGA处被实施的AXI部件接收AXI数据信号的并行接口。AXI桥路结构还包括被配置为将AXI数据信号分组化成AXI数据分组并且经由串行链路向第二 FPGA传输AXI数据分组的传输(TX)引擎。AXI桥路结构还包括被配置为经由串行链路从第二FPGA接收附加AXI数据分组并且从附加AXI数据分组提取附加AXI数据信号的接收(RX)引擎。并行接口还被配置为向AXI部件提供附加AXI数据信号。
[0007]在用于FPGA原型化的串行接口的另一方面中,一种串行接口包括在第一 FPGA处的第一 AXI桥路。第一 AXI桥路被配置为经由第一 AXI并行接口从第一 AXI部件接收读取请求或者写入请求的AXI数据信号、将AXI数据信号分组化成AXI请求分组并且经由串行链路向第二 FPGA传输AXI请求分组。串行接口还包括在第二 FGPA处的第二 AXI桥路。第
二AXI桥路被配置为经由串行链路接收AXI请求分组、从AXI请求分组提取读取请求或者写入请求的AXI数据信号并且经由第二 AXI并行接口向第二 AXI部件提供读取请求或者写入请求的AXI数据信号。
[0008]描述了一种由AXI桥路实施的用于执行数据读取操作的方法。该方法包括从AXI部件接收与数据读取请求对应的并行AXI数据信号。AXI数据信号标识将从其读取数据的地址。该方法还包括将数据读取请求的AXI数据信号分组化成AXI读取分组并且经由串行链路向第二 FPGA传输AXI读取分组。该方法还包括经由串行链路从第二 FPGA接收AXI读取完成分组、从AXI读取完成分组提取请求的数据并且向AXI部件提供请求的数据。
[0009]描述了另一种由AXI桥路实施的用于执行数据写入操作的方法。该方法包括从AXI部件接收与数据写入请求对应的并行数据信号。AXI数据信号包括写入数据并且标识将在其写入该写入数据的地址。该方法还包括将数据写入请求的AXI数据信号分组化成AXI写入分组并且经由串行链路向第二FGPA传输AXI写入分组。该方法还包括经由串行链路从第二FPGA接收AXI写入响应分组。AXI写入响应分组包括写入数据是否被成功写入的标识符。该方法还包括从AXI写入响应分组提取写入数据是否被成功写入的标识符并且向AXI部件提供标识符。
【专利附图】

【附图说明】
[0010]参照以下附图描述用于FPGA原型化的串行接口的细节。相同标号可以全篇用来引用附图中所示的相似特征和部件:
[0011]图1图示了被配置为支持在片上系统上的FPGA之间的数据通信的常规并行互连结构的示例。
[0012]图2图示了由AXI限定的并行接口的示例读取地址信道和读取数据信道。
[0013]图3图示了由AXI限定的并行接口的示例写入地址信道、写入数据信道和写入响
应信道。
[0014]图4图示了其中可以实施用于FPGA原型化的串行接口的方面的示例片上系统环境。
[0015]图5图示了其中可以实施用于FPGA原型化的串行接口的方面的具体示例片上系统环境。
[0016]图6图示了其中可以实施用于FPGA原型化的串行接口的方面的备选具体示例片上系统环境。
[0017]图7图示了根据一个或者多个方面的示例读取分组。
[0018]图8图示了根据一个或者多个方面的示例写入分组。
[0019]图9图示了根据一个或者多个方面的示例读取完成分组。
[0020]图10图示了根据一个或者多个方面的示例写入响应分组。
[0021]图11图示了用于实施用于FPGA原型化的串行接口的示例层栈。
[0022]图12图示了根据一个或者多个方面的示例AXI桥路。
[0023]图13图示了使用用于FPGA原型化的串行接口来执行读取操作的示例方法。
[0024]图14图示了使用用于FPGA原型化的串行接口来执行写入操作的示例方法。
[0025]图15图示了可以使用用于FPGA原型化的串行接口的各种方面被实施的示例片上系统。
[0026]图16图示了可以被实施为包括用于FPGA原型化的串行接口的各种方面的示例设备的各种部件。
【具体实施方式】
[0027]常规SoC的并行互连结构使用多个数据线和管脚以支持在SoC部件之间的数据通信,这使SoC的分割有困难。根据各种方面,描述了取代在常规FPGA原型化设计中使用的并行互连结构的串行接口。串行接口可以包括在第一 FPGA处的第一 AXI桥路。第一 AXI桥路被配置为经由第一 AXI并行接口从第一 AXI部件接收读取请求或者写入请求的AXI数据信号、将AXI数据信号分组化成AXI请求分组并且经由串行链路向第二 FPGA传输AXI请求分组。串行接口还包括在第二 FPGA处的第二 AXI桥路。第二 AXI桥路被配置为经由串行链路接收AXI请求分组、从AXI请求分组提取读取请求或者写入请求的AXI数据信号并且经由第二 AXI并行接口向第二 AXI部件提供读取请求或者写入请求的AXI数据信号。
[0028]尽管可以在任何数目的不同设备、系统、环境和/或配置中实施用于FPGA原型化的串行接口的特征和概念,但是在以下示例设备、系统和方法的情境中描述用于FPGA原型化的串行接口的方面。
[0029]图1图示了被配置为支持在SoC上的FPGA之间的数据通信的常规并行互连结构的示例100。在这一示例中,SoC被分割成在第一 FPGA104上的AXI部件102和在第二FPGA108上的AXI切换结构106。AXI部件102和AXI切换结构106被配置为通过经由AXI并行接口 110发送AXI信号来相互通信。
[0030]在示例100中,AXI部件102被配置为通过经由AXI并行接口 110向AXI切换结构106传输读取请求来发起数据读取操作。响应于接收读取请求,AXI切换结构106被配置为返回读取响应,该读取响应包括来自在请求中标识的地址的数据。AXI部件102还被配置为通过经由AXI并行接口 110向AXI切换结构106传输写入请求来发起数据写入操作。响应于接收写入请求,AXI切换结构106被配置为向在写入请求中标识的地址写入数据并且接收指示数据是否被成功写入的写入响应。为了支持数据读取操作,AXI并行接口 110定义用于传达读取请求的读取地址信道和用于传达请求的读取数据的读取数据信道。为了支持数据写入操作,AXI并行接口 110定义用于传达写入请求的写入地址信道、用于传达请求的写入数据的写入数据信道和用于传达写入操作是否成功的指示的写入响应信道。
[0031]图2图示了由AXI定义的并行接口的读取地址信道202和读取数据信道204的示例200。读取地址信道202使AXI部件102能够向AXI切换结构106传输读取请求。每个读取请求包括数据信号,这些数据信号标识从其读取请求的数据的地址。读取数据信道204使AXI切换结构106能够向AXI部件102传输回请求的读取数据。
[0032]图3图示了由AXI定义的并行接口的写入地址信道302、写入数据信道304和写入响应信道306的示例300。写入地址信道302使AXI部件102能够向AXI切换结构106传输写入请求。写入请求可以包括数据信号,这些数据信号标识在其写入数据的地址。写入数据信道304使AXI部件102能够向AXI切换结构106传输请求的写入数据。写入响应信道306使AXI切换结构106能够传输写入响应,该写入响应指示AXI切换结构是否能够向标识的地址写入请求的数据。
[0033]图4图示了其中可以实施用于FPGA原型化的串行接口的方面的示例SoC环境400。与图1的示例100相似,片上系统被分割成在第一 FPGA404上的AXI部件402和在第
二FPGA408上的AXI交换机结构406。然而,不同于示例100,示例400包括支持在SoC部件之间的串行数据通信的AXI串行接口 410。在这一示例中,AXI串行接口 410包括在第一FPGA404处的第一 AXI桥路412、在第二 FPGA408处的第二 AXI桥路414、将第一 AXI桥路412连接到第二 AXI桥路414的AXI串行链路416以及并行接口 418和420。[0034]AXI桥路412和414被配置为从AXI部件接收并行AXI数据信号。将注意,这些并行AXI数据信号是在常规设计(比如示例100)中将经由AXI并行接口在AXI部件之间直接传达的相同类型的信号。因此,在某种意义上,AXI桥路412和414被配置为“截获”这些并行数据信号。
[0035]如以下将更具体描述的那样,AXI桥路412和414被配置为将经由并行接口 418或者420接收的并行AXI数据信号分组化或者转译成AXI数据分组。这些AXI数据分组包括接收的并行AXI数据信号的所有数据。AXI桥路412和414然后可以经由串行链路416向彼此传达这些数据分组。相似地,AXI桥路412和414被配置为经由串行链路416从彼此接收AXI数据分组。AXI桥路412和414然后可以从AXI数据分组提取AXI数据信号并且经由并行接口 418和420向AXI部件402和AXI切换结构406提供AXI数据信号。因此,将注意,串行接口 410消除需要AXI并行接口以在FPGA之间传达数据。另外,如与并行接口 110(并行接口 110需要用于在FPGA之间的每个并行接口的每个数据线的两个管脚)对t匕,串行链路416通过将仅两个管脚用于在FPGA之间的每个串行链路来大量减少FGPA互连结构的数据线和管脚计数。
[0036]图5图示了其中可以实施用于FPGA原型化的串行接口的方面的具体示例SoC环境500。在这一示例中,图4的AXI部件402被实施为AXI主控部件502,AXI主控部件502被配置为向AXI切换结构406传输数据读取和写入请求。此外,第一 AXI桥路412在这一示例中被实施为在第一 FGPA404处的AXI主控桥路504,并且第二 AXI桥路414被实施为在第二 FPGA408处的AXI从属桥路506。
[0037]图6图示了其中可以实施用于FPGA原型化的串行接口的方面的备选具体示例SoC环境600。在这一示例中,图4的AXI部件402被实施为AXI从属部件602,AXI从属部件602被配置为向AXI切换结构406传输数据读取和写入请求。此外,第一 AXI桥路412在这一示例中被实施为在第一 FGPA404处的AXI从属桥路604,并且第二 AXI桥路414被实施为在第二 FPGA408处的AXI主控桥路606。
[0038]AXI部件402被配置为通过发出数据读取或者写入请求来发起数据读取和写入操作。数据读取请求被配置为使AXI切换结构406返回来自在请求中标识的地址的数据,而数据写入请求被配置为使AXI切换结构406向在请求中标识的地址写入在请求中包括的数据。如以上指出的那样,在常规设计中,经由AXI并行接口向AXI切换结构直接传达数据读取和写入请求。
[0039]根据各种方面,在AXI部件402发出读取或者写入请求时,第一 AXI桥路412被配置为经由并行接口 418从AXI部件402接收与读取或者写入请求对应的并行AXI数据信号。将注意,这些AXI数据信号是在常规设计(比如示例100)中将经由并行接口 110向AXI交换机结构直接传达的相同类型的信号。因此,在某种意义上,第一 AXI桥路412被配置用于“截获”这些AXI数据信号。如果请求是数据读取请求,则AXI数据信号包括经由并行接口418的读取地址信道202接收的地址和控制信号。数据读取请求的地址和控制信号包括从其读取请求的数据的地址的标识符。备选地,如果请求是数据写入请求,则AXI数据信号包括经由并行接口 418的写入地址信道301接收的地址和控制信号以及经由并行接口 418的写入响应信道306接收的写入数据。写入请求的地址和控制信号包括在其写入数据的地址的标识符。[0040]根据各种方面,第一 AXI桥路412被配置为将与读取或者写入请求对应的AXI数据信号分组化或者转译成AXI请求分组。AXI请求分组包括在常规设计中经由AXI并行接口的读取地址信道202或者写入地址信道302和写入数据信道304向AXI切换结构传达的所有数据信号。例如,如果请求是读取请求,则第一 AXI桥路412将在读取请求中接收的数据信号以及分组头部和脚注分组化成读取分组。读取分组包括经由并行接口 418的读取地址信道202从其接收读取数据的地址的标识符。备选地,如果请求是写入请求,则第一 AXI桥路412将在写入请求中接收的数据信号以及分组头部和脚注分组化成写入分组。写入分组包括经由并行接口 418的写入数据信道304接收的写入数据以及经由并行接口 418的写入地址信道302接收的在其写入数据的地址的标识符。在将AXI数据信号分组化成AXI分组请求之后,第一 AXI桥路412经由串行链路416向第二 AXI桥路414传输AXI请求分组。
[0041]图7图示了根据一个或者多个方面的AXI读取分组的示例700。在这一非限制示例中,AXI读取分组700包括从AXI并行接口的读取地址信道202捕获的数据信号、读取分组头部和读取分组脚注。读取分组头部包括指示读取分组的开始的帧开始(SOF)字段702和指示分组是读取分组的AXI读取分组(AXI_READ)字段704。AXI读取分组700还包括读取地址(ARADDR)字段706,该ARADDR字段指示将从其读取数据的地址。在这一示例中,读取地址字段706是32位并且对应于在AXI中定义的AXI并行接口的地址信令。AXI读取分组700还包括读取标识符(RID)字段708、读取透镜(lens) (ARLEN)字段710、读取大小(ARSIZE)字段712、读取猝发(ARBURST)字段714、读取锁定(ARLOCK)字段716、读取高速缓存(ARCACHE)字段718、读取保护(ARPROT)字段720和保留(RSVD)字段722。字段706-722中的每个字段对应于从AXI并行接口的读取地址信道202捕获的数据信号。将注意,读取地址信道202将需要分离数据线以传达在数据字段706-722中的每个数据字段中包含的数据信号。在这一示例中,AXI读取分组700还包括读取分组脚注,该读取分组脚注包括被配置为保护AXI读取分组700的循环冗余校验字段724和指示AXI读取分组700的结束的帧结束(EFO)字段726。
[0042]图8图示了根据一个或者多个方面的AXI写入分组的示例800。在这一非限制示例中,AXI写入分组800包括从AXI并行接口的写入地址信道302捕获的数据信号、写入分组头部和写入分组脚注。写入分组头部包括指示写入分组的开始的帧开始(SOF)字段802和指示分组是写入分组的AXI写入分组(AXI_WRITE)字段804。AXI写入分组800还包括写入地址(AWADDR)字段806,该AWADDR字段指示将在其写入数据的地址。在这一示例中,写入地址字段806是32位并且对应于在AXI中定义的AXI并行接口的地址信令。AXI写入分组800还包括写入标识符(WID)字段808、写入透镜(AWLEN)字段810、写入大小(AWSIZE)字段812、写入猝发(AWBURST)字段814、写入锁定(AWLOCK)字段816、写入高速缓存(AWCACHE)字段818、写入保护(AWPROT)字段820和保留(RSVD)字段822。
[0043]AXI写入分组800还包括写入数据(WDATA)字段824,该WDATA字段包括将向由写入地址字段806指示的地址写入的写入数据。此外,AXI写入分组800包括第一写入选通(WSTR0B0)字段826和第二写入选通(WSTR0BE1)字段828。第一写入选通字段826指示写入数据的开始,并且第二写入选通字段828指示写入数据的结束。字段806-828中的每个字段对应于从AXI并行接口的写入地址信道302或者写入数据信道304捕获的数据信号。将注意,AXI并行接口的写入地址信道302和写入数据信道304将需要分离数据线以传达在数据字段806-828中的每个数据字段中包括的数据信号。在这一示例中,AXI写入分组800还包括写入分组脚注,该写入分组脚注包括被配置为保护AXI写入分组800的循环冗余校验字段830和指示AXI写入分组800的结束的帧结束(EOF)字段832。
[0044]根据各种方面,在经由串行链路416从第一 AXI桥路412接收AXI请求分组之后,第二 AXI桥路414被配置为从AXI请求分组提取与读取或者写入请求对应的AXI数据信号。例如,如果AXI请求分组是AXI读取分组,则第二 AXI桥路414从AXI读取分组提取数据信号,该AXI读取分组包括从其读取请求的数据的地址的标识符。备选地,如果AXI请求分组是AXI写入分组,则第二 AXI桥路414从AXI写入分组提取数据信号,该AXI写入分组包括写入数据和在其写入数据的地址的标识符。第二 AXI桥路414然后经由并行接口 420向AXI切换结构406提供与读取或者写入请求对应的提取的AXI数据信号。
[0045]AXI切换结构406被配置为基于读取或者写入请求执行数据读取或者写入操作。如果请求是数据读取请求,则AXI切换结构从在请求中标识的地址读取数据。备选地,如果请求是数据写入请求,则AXI切换结构406向在写入请求中标识的地址写入在请求中接收的数据。在执行读取或者写入操作之后,AXI切换结构406发出数据读取或者写入响应。如以上指出的那样,在常规设计中,经由AXI并行接口向AXI部件102直接传达数据读取和写入响应。
[0046]根据一个或者多个方面,在AXI切换结构406发出读取或者写入响应时,第二 AXI桥路414被配置为经由并行接口 420从AXI切换结构406接收与读取或者写入响应对应的并行AXI数据信号。将注意,这些AXI数据信号是在常规设计(比如示例100)中将经由AXI并行接口向AXI部件直接传达的相同类型的信号。因此,在某种意义上,第二 AXI桥路414被配置为“截获”这些数据信号。因此,如果响应是数据读取响应,则AXI数据信号经由读取数据信道204被接收并且包括请求的读取数据。备选地,如果响应是数据写入响应,则AXI数据信号经由写入响应信道306被接收并且包括指示写入操作是否被成功完成的写入响应数据。
[0047]根据一个或者多个方面,第二 AXI桥路414被配置为将与读取或者写入响应对应的AXI数据信号分组化或者转译成AXI响应分组。AXI响应分组包括在常规设计中经由AXI并行接口的读取数据信道204或者写入响应信道306向AXI部件传达的所有数据信号。例如,如果响应是读取响应,则第二 AXI桥路414将在读取响应中接收的数据信号以及分组头部和脚注分组化成读取完成分组。读取完成分组包括经由并行接口 420的读取数据信道204接收的请求的读取数据。备选地,如果响应是写入响应,则第二 AXI桥路414将在写入响应中接收的数据信号以及分组头部和脚注分组化成写入响应分组。写入响应分组包括经由并行接口 420的写入响应信道306接收的、写入操作是否被成功完成的指示。在将AXI数据信号分组化成AXI响应分组之后,第二 AXI桥路414经由串行链路416向第一 AXI桥路412传输AXI响应分组。
[0048]图9图示了根据一个或者多个方面的AXI读取完成分组的示例900。在这一非限制示例中,AXI读取完成分组900包括从AXI并行接口的读取数据信道204捕获的数据信号、读取完成分组头部和读取完成分组脚注。读取完成分组首部包括指示AXI读取完成分组900的开始的帧开始(SOF)字段902和指示分组是读取完成分组的AXI读取完成分组(READ_C0MPLETE)字段904。AXI读取完成分组900还包括读取标识符(RID)字段906、第一读取选通(RSTROBEO)字段908和第二读取选通(RSTROB1)字段910。第一读取选通字段908指示读取数据的开始,并且第二读取选通字段910指示读取数据的结束。
[0049]AXI读取完成分组900还包括被配置为保持请求的读取数据的读取数据(RDTAT)字段912。数据字段906-912中的每个数据字段对应于从AXI并行接口的读取数据信道204捕获的数据信号。将注意,读取数据信道204将需要分离数据线以传达在数据字段906-912中的每个数据字段中包含的数据信号。在这一示例中,AXI读取完成分组900还包括读取完成分组脚注,该读取完成分组脚注包括被配置为保护AXI读取完成分组900的循环冗余校验字段914和指示AXI读取完成分组900的结束的帧结束(EOF)字段916。
[0050]图10图示了根据一个或者多个方面的AXI写入响应分组的示例1000。在这一非限制示例中,AXI写入响应分组1000包括从AXI并行接口的写入响应信道306捕获的数据信号、写入响应分组头部和写入响应分组脚注。写入响应分组头部包括指示AXI写入响应分组1000的开始的帧开始(SOF)字段1002和指示分组是写入响应分组的AXI写入响应分组(WRITE_RESPONSE)字段 1004。
[0051]AXI写入响应分组1000还包括标识符(BID)字段1006和被配置为保持写入响应数据的写入响应数据(BRESP)字段1008。数据字段1006和1008中的每个数据字段对应于从AXI并行接口的写入响应信道306捕获的数据信号。将注意,写入响应信道306将需要分离数据线以传达在这些数据字段中的每个数据字段中包含的数据信号。在这一示例中,AXI写入响应分组1000还包括写入响应脚注信息,该写入响应脚注信息包括被配置为保护AXI写入响应分组1000的循环冗余校验字段1010和指示AXI写入响应分组1000的结束的帧结束(EOF)字段1012。
[0052]根据一个或者多个方面,在经由串行链路416从第二 AXI桥路414接收AXI响应分组之后,第一 AXI桥路412被配置为从AXI响应分组提取与读取或者写入响应对应的AXI数据信号。例如,如果AXI响应分组是AXI读取响应分组,则第一 AXI桥路412从AXI读取响应分组提取数据信号,该AXI读取响应分组包括请求的读取数据。备选地,如果AXI响应分组是AXI写入完成分组,则第一 AXI桥路412从AXI写入完成分组提取数据信号,该AXI写入完成分组包括写入操作是否被成功完成的指示。为了完成读取或者写入操作,第一AXI桥路412然后经由并行接口 418向AXI部件402提供与读取或者写入响应对应的提取的AXI数据信号。
[0053]根据一个或者多个方面,第一 AXI桥路412和第二 AXI桥路414被配置为实施存储和转发模式以传达请求和响应数据分组。在存储和转发模式中,AXI桥路412和414被配置为当在串行链路416上传输完成请求或者响应分组之前缓冲分组。存储和转发模式保证将在任何单个时间在串行链路416上在每个方向上仅传输单个数据分组,这消除流量控制问题从而使错误处理容易得多。
[0054]为了错误处理,AXI桥路412和414被配置为在正确接收数据分组时发出确认命令(ACK)以及发出指示何时未正确接收数据分组的未确认命令(NAK)。第一 AXI桥路412被配置为在从第二 AXI桥路414接收NAK信号时重传请求分组。相似地,第二 AXI桥路414被配置为在从第一 AXI桥路412接收NAK信号时重传响应分组。在各种方面中,串行接口410支持在相同时间的支持分组读取和写入操作的读取和写入全双工模式。
[0055]图11图示了用于实施用于FPGA原型化的串行接口的示例层栈1100。层栈1100包括传送层1102、链路层1104和物理层1106。传送层1102是在层栈1100中的顶层并且实施与AXI的接口、用于分组化请求和响应分组以及错误恢复和重传分组的分组化引擎。链路层1104被配置为校验分组是否被成功传送并且实施CRC校验和ACK/NAK校验。物理层1106是在栈1100中的底层并且包括与串行链路8B/10B关联的编码方案或者用于对数据进行编码的其它编码以及其它物理层功能,比如对准插入和删除。
[0056]图12图示了根据一个或者多个方面的示例AXI桥路1200。将注意,在图4、图5和图6中图示的AXI桥路中的任何AXI桥路可以实施AXI桥路1200的部件和功能。在这一示例中,AXI桥路1200包括被配置为经由AXI并行接口(比如并行接口 418)与AXI部件(比如AXI部件402)通信的桥路1202。AXI桥路1200还包括用于缓冲写入数据的写入数据缓冲器1204、用于缓冲读取数据的读取数据缓冲器1206、写入分组头部1208、读取分组头部1210、写入响应分组头部1212和读取完成分组头部1214。AXI桥路1200还包括传输(TX)引擎1216、接收(RX)引擎1218和物理层1220。
[0057]在AXI部件发出数据请求或者响应时,桥路1202经由并行接口 418从AXI部件402接收与请求或者响应对应的并行数据信号。桥路1202然后向写入数据缓冲器124或者读取数据缓冲器1206中写入数据。为了创建请求或者响应分组,TX引擎1216分组化在写入数据缓冲器1204或者读取数据缓冲器1206中的数据以及分组头部。例如,为了创建写入分组,TX引擎与写入分组头部1208 —起分组化来自写入数据缓冲器1204的写入数据。相似地,为了创建读取分组,TX引擎与读取分组头部1210 —起分组化来自读取数据缓冲器1206的读取数据。为了创建写入响应分组,TX引擎与写入响应分组头部1212 —起分组化来自写入数据缓冲器1204的写入数据。相似地,为了创建读取完成分组,TX引擎与读取完成分组头部1214 —起分组化来自读取数据缓冲器1206的读取数据。TX引擎1216然后通过附加AXI桥路的串行链路416发送数据分组。
[0058]在附加AXI桥路向AXI桥路1200传输数据分组时,物理层1220经由串行链路416从附加AXI桥路接收数据分组。RX引擎1218然后从接收的数据分组提取数据。例如,如果接收了写入分组,则RX引擎提取写入数据和将向其写入数据的地址。相似地,如果接收了读取分组,则RX引擎提取将从其读取数据的地址。如果接收了写入响应分组,则RX引擎提取写入响应,并且如果接收了读取完成分组,则RX引擎提取读取数据。桥路1202然后经由并行接口 418向AXI部件提供提取的数据作为并行数据信号。
[0059]根据用于FPGA原型化的串行接口的一个或者多个方面参照图4描述了示例方法1300和1400。一般而言,可以使用软件、固件、硬件(例如,固定逻辑电路)、人工处理或者其任何组合来实施这里描述的服务、功能、方法、过程、部件和模块中的任何服务、功能、方法、过程、部件和模块。软件实现方式代表在由计算机处理器执行时执行指定的任务的程序代码。可以在可以包括软件、应用、例程、程序、对象、部件、数据结构、过程、模块、函数等的计算机可执行指令的一般情境中描述示例方法。可以在计算机处理器本地和/或远程二者的一个或者多个计算机可读存储介质设备中存储程序代码。方法也可以在分布式计算环境中由多个计算机设备实现。另外,这里描述的特征独立于平台并且可以被实施于具有多种处理器的多种计算平台上。
[0060]图13图示了使用用于FPGA原型化的串行接口来执行读取操作的示例方法1300并且参照图4的示例片上系统环境来描述。描述方法的顺序未旨在于被解释为限制,并且可以按照任何顺序组合描述的方法操作中的任何数目的描述方法操作以实施方法或者备选方法。
[0061]在AXI部件(比如AXI部件402)发出在第一 FPGA处的数据读取请求时启动方法1300。在1302处,接收与数据读取请求对应的并行AXI数据信号。例如,在第一 FPGA404处实施的第一 AXI桥路412 (图4)经由并行接口 418的读取地址信道202从AXI部件402接收与数据读取请求对应的并行AXI数据信号。在1304处,将数据读取请求的AXI数据信号分组化成AXI读取分组。例如,第一 AXI桥路412将数据读取请求的AXI数据信号分组化成AXI读取分组700 (图7)。在1306处,经由AXI串行链路向第二 FPGA传输AXI读取分组。例如,第一 AXI桥路412经由串行链路416向第二 FPGA408传输AXI读取分组700。
[0062]在1308处,经由串行链路在第二 FGPA处接收AXI读取分组。例如,在第二 FPGA408处的第二 AXI桥路414经由串行链路416接收AXI读取分组700。在1310处,从AXI读取分组提取数据读取请求的AXI数据信号。例如,第二 AXI桥路414从AXI读取分组700提取数据读取请求的AXI数据信号。在1312处,向AXI切换结构提供数据读取请求的AXI数据信号。例如,第二 AXI桥路414经由并行接口 420向AXI切换结构406提供数据读取请求的提取的数据信号。
[0063]响应于接收数据读取请求的并行AXI数据信号,AXI切换结构发出包括请求的数据的数据读取响应。在1314处,接收与数据读取响应对应的并行AXI数据信号。例如,第二AXI桥路414经由并行接口 420的读取数据信道204从AXI切换结构406接收与数据读取响应对应的并行AXI数据信号。在1316处,将数据读取响应的AXI数据信号分组化成AXI读取完成分组。例如,第二 AXI桥路414将数据读取响应的AXI数据信号分组化成AXI读取完成分组900,该数据读取响应包括请求的数据。在1318处,经由串行链路向第一 FPGA传输AXI读取完成分组。例如,第二 AXI桥路414经由串行链路416向第一 FPGA404传输AXI读取完成分组900。
[0064]在1320处,经由串行链路在第一 FPGA处接收AXI读取完成分组。例如,在第一FPGA404处的第一 AXI桥路412经由串行链路416接收AXI读取完成分组900。在1322,从AXI读取完成分组提取数据读取响应的AXI数据信号。例如,第一 AXI桥路412从AXI读取完成分组900提取数据读取响应的AXI数据信号,该数据读取响应包括请求的读取数据。在1324处,向AXI部件提供数据读取响应的AXI数据信号,该数据读取响应包括请求的数据。例如,第一 AXI桥路412经由并行接口 418向AXI部件402提供数据读取响应的提取的数据信号以完成读取操作。
[0065]图14图示了使用用于FPGA原型化的串行接口来执行写入操作的示例方法1400并且参照图14的示例片上系统环境来描述。描述方法的顺序并未旨在于被解释为限制,并且可以按照任何顺序组合描述的方法操作中的任何数目的方法操作以实施方法或者备选方法。
[0066]在AXI部件(比如AXI部件402)在第一 FPGA处发出数据写入请求时启动方法1400。在1402处,接收与数据写入请求对应的并行AXI数据信号。例如,在第一 FPGA404处被实施的AXI第一桥路412 (图4)经由并行接口 418的写入地址信道302和写入数据信道304从AXI部件402接收与数据写入请求对应的并行AXI数据信号。在1404处,将数据写入请求的AXI数据信号分组化成AXI写入分组。例如,第一 AXI桥路412将数据写入请求的AXI数据信号分组化成AXI写入分组800 (图8)。在1406处,经由AXI串行链路向第
二FPGA传输AXI写入分组。例如,第一 AXI桥路412经由串行链路416向第二 FPGA408传输AXI写入分组800。
[0067]在1408处,经由串行链路在第二 FGPA处接收AXI写入分组。例如,在第二 FPGA408处的第二 AXI桥路414经由串行链路416接收AXI写入分组800。在1410处,从AXI写入分组提取数据写入请求的AXI数据信号。例如,第二 AXI桥路414从AXI写入分组800提取数据写入请求的AXI数据信号,该数据写入请求包括写入数据和在其写入数据的地址的标识符。在1412处,向AXI切换结构提供数据写入请求的AXI数据信号。例如,第二 AXI桥路414经由并行接口 420向AXI切换结构406提供数据写入请求的提取的数据信号。
[0068]响应于接收数据写入请求的并行AXI数据信号,AXI切换结构向标识的地址写入请求的写入数据。AXI切换结构然后发出数据写入响应,该数据写入响应包括写入操作是否成功的指示。在1414处,接收与数据写入响应对应的并行AXI数据信号。例如,第二 AXI桥路414经由并行接口 420的写入响应信道304从AXI切换结构406接收与数据写入响应对应的并行AXI数据信号。在1416处,将数据写入响应的AXI数据信号分组化成AXI写入响应分组。例如,第二 AXI桥路414将数据写入响应的AXI数据信号分组化成AXI写入响应分组1000 (图10),该数据写入响应包括写入操作是否成功的指示。在1418处,经由串行链路向第一 FPGA传输AXI写入响应分组。例如,第二 AXI桥路414经由串行链路416向第一 FPGA404传输AXI写入响应分组1000。
[0069]在1420处,经由串行链路在第一 FPGA处接收AXI写入响应分组。例如,在第一FPGA404处的第一 AXI桥路412经由串行链路416接收AXI写入响应分组1000。在1422处,从AXI写入响应分组提取数据写入响应的AXI数据信号。例如,第一 AXI桥路412从AXI写入响应分组1000提取数据写入响应的AXI数据信号,该数据写入响应包括写入操作是否成功的指示。在1424处,向AXI部件提供数据写入响应的AXI数据信号,该数据写入响应包括数据写入操作是否成功的指示。例如,第一 AXI桥路412经由并行接口 418向AXI部件提供数据写入响应的提取的数据信号以完成写入操作。
[0070]图15图示了可以使用如这里描述的用于FPGA原型化的串行接口的各种方面被实施的示例片上系统(SoC) 1500。可以在任何类型的设备(比如以下参照图16描述的设备)中实施SoC。可以与电子电路、微处理器、存储器、输入-输出(I/O)逻辑控制、通信接口和部件以及其它硬件、固件和/或软件集成SoC1500。
[0071]在这一不例中,S0C1500与微处理器1502 (例如,微控制器或者数字信号处理器中的任何一项)和输入-输出(I/O)逻辑控制1504集成(例如,以包括电子电路)。SoC1500包括存储器设备控制器1506和存储器设备1508,比如任何类型的非易失性存储器和/或其它适当电子数据存储设备中。SoC还可以包括各种固件和/或软件,比如由存储器维护并且由微处理器执行的操作系统1510。
[0072]SoC1500包括用于与设备或者其它外围部件对接的设备接口 1512。SoC1500还包括耦合SoC的各种部件以用于在部件之间的数据通信以及与AXI切换结构1516耦合的集成数据总线1514。如这里描述的那样,集成数据总线1514可以包括用于FPGA原型化的串行接口。如以上描述的那样,串行接口支持在FPGA部件与AXI切换结构1516之间传达数据请求和响应分组。SoC中的数据总线也可以被实施为不同总线结构和/或总线架构中的任何总线结构和/或总线架构或者组合。
[0073]图16图示了可以被实施为包括用于FPGA原型化的串行接口的各种方面的示例设备1600的各种部件。设备可以与操作设备的用户(即人)和/或实体关联,从而使得设备描述逻辑设备,这些逻辑设备包括用户、软件、固件、硬件和/或设备的组合。
[0074]设备1600包括通信设备1602,通信设备1602支持设备数据1604 (比如接收的数据、在设备之间传达的数据、数据的数据分组等)的有线和/或无线通信。设备1600还包括一个或者多个数据输入1606,经由一个或者多个数据输入1606可以接收任何类型的数据、媒体内容和/或输入,比如用户可选择的输入以及从任何内容和/或数据源接收的任何其它类型的音频、视频和/或图像数据。数据输入1606可以包括USB端口、同轴线缆和用于闪存、DVD、CD等的其它串行或者并行连接器(包括内部连接器)。数据输入可以用来将设备耦合到内部和/或外部部件、外围设备和附件,比如键盘、麦克风、相机和任何其它类型的设备。
[0075]设备1600还包括通信接口 1608,比如串行、并行、网络或者无线接口中的任何一个或者多个接口。通信接口提供在设备与网络之间的连接和/或通信链路,其它电子、计算和通信设备通过该连接和/或通信链路与设备传达数据。虽然未被示出,但是设备可以包括耦合在设备内的各种部件的系统总线或者数据传送系统。系统总线可以包括不同总线结构(比如AXI串行接口、存储器总线或者存储器控制器、外围设备总线、通用串行总线和/或利用多种总线架构中的任何总线架构的处理器或者本地总线)中的任何总线结构或者组合。
[0076]设备1600包括一个或者多个处理器1610 (例如,微处理器、控制器等中的任何一项)或者(例如在SoC中被实施的)处理器和存储器系统,该一个或者多个处理器或者该处理器和存储器系统处理计算机可执行指令以控制设备的操作。备选地或者附加地,可以用与在1612大体地标识的处理和控制电路结合被实施的软件、硬件、固件或者固定逻辑电路中的任何一项或者组合实施设备。
[0077]设备600还包括支持数据存储的一个或者多个存储器设备1614(例如,计算机可读存储介质),比如随机存取存储器(RAM)、非易失性存储器(例如,只读存储器(ROM)、闪存等)和盘存储设备。盘存储设备可以被实施为任何类型的磁或者光存储设备,比如硬盘驱动、可记录和/或可重写盘等。设备也可以包括海量存储介质设备。计算机可读存储介质可以是由计算设备访问的任何一个或者多个可用介质。
[0078]存储器设备1614提供用于存储设备数据1604、其它类型的信息和/或数据和设备应用1616的数据存储机制。例如,可以用存储器设备将操作系统1618维护为软件应用并且在处理器上执行操作系统1618。设备应用还可以包括设备管理器或者控制器,比如控制应用、软件应用、信号处理和控制模块、特定设备本机的代码、用于特定设备的硬件抽象化层等中的任何形式。在这一示例中,设备应用1616还包括传送层1102、链路层1104和物理层1106。可以在软件、固件、硬件(例如,固定逻辑电路)或者其任何组合的一般情境中实施设备应用1616。
[0079]设备1600还可以包括生成用于音频系统1622的音频数据和/或生成用于显示系统1624的显示数据的音频和/或视频处理系统1620。音频系统和/或显示系统可以包括处理、显示和/或以其它方式渲染音频、视频、显示和/或图像数据的任何设备。在实现方式中,音频系统和/或显示系统可以是设备的外部部件。备选地,音频系统和/或显示系统是示例设备的集成部件。
[0080]虽然已经用特征和/或方法特有的语言描述了用于FPGA原型化的串行接口的方面,但是所附权利要求的主题未必限于描述的具体特征或者方法。实际上,具体特征和方法被公开为用于FPGA原型化的串行接口的示例实现方式。
【权利要求】
1.一种用于现场可编程门阵列(FPGA)原型化的串行接口,包括: 在第一 FPGA处的第一高级交叉开关互连(AXI)桥路,所述第一 AXI桥路被配置为经由第一AXI并行接口从第一AXI部件接收读取请求或者写入请求的AXI数据信号、将所述AXI数据信号分组化成AXI请求分组并且经由串行链路向第二 FPGA传输所述AXI请求分组;以及 在所述第二 FGPA处的第二 AXI桥路,所述第二 AXI桥路被配置为经由所述串行链路接收所述AXI请求分组、从所述AXI请求分组提取所述读取请求或者所述写入请求的所述AXI数据信号并且经由第二AXI并行接口向第二 AXI部件提供所述读取请求或者所述写入请求的所述AXI数据信号。
2.根据权利要求1所述的串行接口,其中所述第一AXI部件包括AXI主控,并且所述第一 AXI桥路包括AXI主控桥路,并且其中所述第二 AXI部件包括AXI切换结构,并且所述第二桥路包括AXI从属桥路。
3.根据权利要求1所述的串行接口,其中所述第一AXI部件包括AXI从属,并且所述第一AXI桥路包括AXI从属桥路,并且其中所述第二 AXI部件包括AXI切换结构,并且所述第二AXI桥路包括AXI主控桥路。
4.根据权利要求1所述的串行接口,其中所述第一AXI桥路被配置为在所述AXI数据信号对应于所述读取请求时将所述AXI数据信号分组化成AXI读取分组,并且其中所述AXI读取分组标识将从其读取数据的地址。
5.根据权利要求4所述的串行接口,其中所述读取请求的所述AXI数据信号由所述第一AXI桥路经由所述第一 AXI并行接口的读取地址信道接收。
6.根据权利要求1所述的串行接口,其中所述第一AXI桥路被配置为在所述AXI数据信号对应于所述写入请求时将所述AXI数据信号分组化成AXI写入分组,并且其中所述AXI写入分组包括写入数据和将在其写入所述写入数据的地址。
7.根据权利要求6所述的串行接口,其中所述写入请求的所述AXI数据信号由所述第一AXI桥路经由所述第一 AXI并行接口的写入地址信道和写入数据信道接收。
8.根据权利要求1所述的串行接口,其中: 所述第二 AXI桥路还被配置为经由所述第二 AXI并行接口从所述第二 AXI部件接收读取响应或者写入响应的附加AXI数据信号、将所述附加AXI数据信号分组化成AXI响应分组并且经由所述串行链路向所述第一 FPGA传输所述AXI响应分组;以及 所述第一 AXI桥路还被配置为经由所述串行链路接收所述AXI响应分组、从所述AXI响应分组提取所述读取响应或者所述写入响应的所述附加AXI数据信号并且经由所述第一AXI并行接口向所述第二 AXI部件提供所述读取响应或者所述写入响应的所述附加AXI数据信号。
9.根据权利要求8所述的串行接口,其中所述第二AXI桥路被配置为在所述附加AXI数据信号对应于所述读取响应时将所述附加AXI数据信号分组化成AXI读取完成分组,并且其中所述读取完成分组包括在所述请求中被标识的数据。
10.根据权利要求9所述的串行接口,其中所述读取响应的所述附加AXI数据信号由所述第二 AXI桥路经由所述第二 AXI并行接口的读取数据信道接收。
11.根据权利要求8所述的串行接口,其中所述第二AXI桥路被配置为在所述AXI数据信号对应于所述写入响应时将所述附加AXI数据信号分组化成AXI写入响应分组,并且其中所述写入响应分组包括数据写入操作是否成功的指示。
12.根据权利要求11所述的串行接口,其中所述写入响应的所述附加AXI数据信号由所述第二 AXI桥路经由所述第二 AXI并行接口的写入响应信道接收。
13.根据权利要求1所述的串行接口,其中所述第一桥路和所述第二桥路被配置为经由所述串行链路一次一个分组地传输数据分组。
14.根据权利要求1所述的串行接口,其中所述第一桥路和所述第二桥路被配置为在经由所述串行链路正确接收数据分组时发出确认命令,并且在未正确接收所述数据分组时发出未确认命令。
15.根据权利要求13所述的串行接口,其中所述串行接口支持读取和写入全双工模式。
16.—种方法,包括: 在第一 FPGA处 ,从高级交叉开关互连(AXI)部件接收与数据读取请求对应的并行AXI数据信号,所述AXI数据信号标识将从其读取数据的地址; 将所述数据读取请求的所述AXI数据信号分组化成AXI读取分组; 经由串行链路向第二 FPGA传输所述AXI读取分组; 经由所述串行链路从所述第二 FPGA接收AXI读取完成分组,所述AXI读取完成分组包括请求的所述数据; 从所述AXI读取完成分组提取请求的所述数据;以及 向所述AXI部件提供请求的所述数据。
17.根据权利要求16所述的方法,还包括: 在所述第二 FPGA处,在经由所述串行链路向所述第二 FPGA传输所述AXI读取分组时,经由所述串行链路接收所述AXI读取分组; 从所述AXI读取分组提取所述数据读取请求的所述AXI数据信号; 向AXI切换结构提供所述数据读取请求的所述AXI数据信号以有效地使所述AXI切换结构从标识的所述地址读取请求的所述数据; 接收与数据读取响应对应的并行AXI数据信号,所述数据读取响应的所述AXI数据信号包括请求的所述数据; 将所述数据读取响应的所述AXI数据信号分组化成所述AXI读取完成分组;以及经由所述串行链路向所述第一 FPGA传输所述AXI读取完成分组以有效地使所述第一FPGA接收所述AXI读取完成分组。
18.根据权利要求16所述的方法,还包括: 在所述第一 FPGA处,从所述AXI部件接收与数据写入请求对应的并行数据信号,所述AXI数据信号包括写入数据并且标识将在其写入所述写入数据的地址; 将所述数据写入请求的所述AXI数据信号分组化成AXI写入分组; 经由所述串行链路向所述第二 FPGA传输所述AXI写入分组; 经由所述串行链路从所述第二 FPGA接收AXI写入响应分组,所述AXI写入响应分组包括所述写入数据是否被成功写入的标识符; 从所述AXI写入响应分组提取所述标识符;以及向所述AXI部件提供所述标识符。
19.根据权利要求18所述的方法,还包括: 在所述第二 FPGA处,在经由所述串行链路向所述第二 FPGA传输所述AXI写入请求时经由所述串行链路接收所述AXI写入分组; 从所述AXI写入分组提取所述数据写入请求的所述AXI数据信号; 向AXI切换结构提供所述数据写入请求的所述AXI数据信号以有效地使所述AXI切换结构向标识的所述地址写入所述写入数据; 接收与数据写入响应对应的并行AXI数据信号,所述写入响应的所述AXI数据信号包括所述写入数据是否被成功写入的所述指示; 将所述数据写入响应的所述AXI数据信号分组化成所述AXI写入响应分组;以及经由所述串行链路向所述第一 FPGA传输所述AXI写入响应分组以有效地使所述第一FPGA接收所述AXI写入响应分组。
20.一种用于支持在片上系统中的现场可编程门阵列(FPGA)之间的串行通信的高级交叉开关互连(AXI)桥路结构,所述AXI桥路结构包括: 并行接口,所 述并行接口被配置为从在第一 FPGA处被实施的AXI部件接收AXI数据信号; 传输(TX)引擎,所述TX引擎被配置为将所述AXI数据信号分组化成AXI数据分组,并且经由串行链路向第二 FPGA传输所述AXI数据分组; 接收(RX)引擎,所述RX引擎被配置为经由所述串行链路从所述第二 FPGA接收附加AXI数据分组,并且从所述附加AXI数据分组提取附加AXI数据信号;以及所述并行接口还被配置为向所述AXI部件提供所述附加AXI数据信号。
【文档编号】G06F13/40GK104025069SQ201280061991
【公开日】2014年9月3日 申请日期:2012年12月13日 优先权日:2011年12月15日
【发明者】周为, 朱志豪, 张柏坚 申请人:马维尔国际贸易有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1