用于fpga原型化的串行接口的制作方法
【專利摘要】在用于FPGA原型化的串行接口的方面中,高級交叉開關(guān)互連(AXI)橋路結(jié)構(gòu)支持在片上系統(tǒng)(SoC)中的現(xiàn)場可編程門陣列(FPGA)之間的串行數(shù)據(jù)通信。AXI橋路結(jié)構(gòu)包括被配置為從在第一FPGA處被實(shí)施的AXI部件接收AXI數(shù)據(jù)信號的并行接口。傳輸(TX)引擎被配置為將AXI數(shù)據(jù)信號分組化成AXI數(shù)據(jù)分組,并且經(jīng)由串行鏈路向第二FPGA傳輸AXI數(shù)據(jù)分組。AXI橋路結(jié)構(gòu)還包括被配置為經(jīng)由串行鏈路從第二FPGA接收附加AXI數(shù)據(jù)分組并且從附加AXI數(shù)據(jù)分組提取AXI數(shù)據(jù)信號的接收(RX)引擎。并行接口還被配置為向AXI部件提供附加AXI數(shù)據(jù)信號。
【專利說明】用于FPGA原型化的串行接口
[0001]相關(guān)申請的交叉引用
[0002]本申請要求對提交于2012年12月12日的美國專利申請第13/712,183號的優(yōu)先權(quán),該美國專利申請又要求對通過這里完全引用而將公開內(nèi)容結(jié)合于此、提交于2011年12月15日的美國臨時專利申請第61/576,310號的優(yōu)先權(quán)。
【背景技術(shù)】
[0003]包括在本部分中描述的【背景技術(shù)】僅為了呈現(xiàn)公開內(nèi)容的一般情境?!颈尘凹夹g(shù)】描述并不是對于本申請中的權(quán)利要求的現(xiàn)有技術(shù)并且并未由于被包含于本部分中而被承認(rèn)為現(xiàn)有技術(shù)。
[0004]也被稱為專用集成電路(ASIC)原型化或者片上系統(tǒng)(SoC)原型化的FPGA原型化用來在現(xiàn)場可編程門陣列(FPGA)上原型化SoC和ASIC設(shè)計(jì)以用于硬件驗(yàn)證和軟件開發(fā)。在用FPGA原型化時,SoC經(jīng)常被分割成多個FPGA,其中每個FPGA可以實(shí)施SoC的具體部件。常規(guī)SoC使用并行互連結(jié)構(gòu)以在部件之間傳達(dá)數(shù)據(jù)。這一并行互連結(jié)構(gòu)需要多個數(shù)據(jù)線和管腳,這使得SoC的分割存在困難。
【發(fā)明內(nèi)容】
[0005]本
【發(fā)明內(nèi)容】
介紹用于FPGA原型化的串行接口的概念,并且以下在【具體實(shí)施方式】中進(jìn)一步描述和/或在附圖中示出概念。因而,本
【發(fā)明內(nèi)容】
不應(yīng)被視為描述必需特征也并未用來限制要求保護(hù)的主題內(nèi)容的范圍。
[0006]在用于FPGA原型化的串行接口的一個方面中,一種AXI橋路結(jié)構(gòu)支持在片上系統(tǒng)中的FPGA之間的串行數(shù)據(jù)通信。AXI橋路結(jié)構(gòu)包括被配置為從在第一 FPGA處被實(shí)施的AXI部件接收AXI數(shù)據(jù)信號的并行接口。AXI橋路結(jié)構(gòu)還包括被配置為將AXI數(shù)據(jù)信號分組化成AXI數(shù)據(jù)分組并且經(jīng)由串行鏈路向第二 FPGA傳輸AXI數(shù)據(jù)分組的傳輸(TX)引擎。AXI橋路結(jié)構(gòu)還包括被配置為經(jīng)由串行鏈路從第二FPGA接收附加AXI數(shù)據(jù)分組并且從附加AXI數(shù)據(jù)分組提取附加AXI數(shù)據(jù)信號的接收(RX)引擎。并行接口還被配置為向AXI部件提供附加AXI數(shù)據(jù)信號。
[0007]在用于FPGA原型化的串行接口的另一方面中,一種串行接口包括在第一 FPGA處的第一 AXI橋路。第一 AXI橋路被配置為經(jīng)由第一 AXI并行接口從第一 AXI部件接收讀取請求或者寫入請求的AXI數(shù)據(jù)信號、將AXI數(shù)據(jù)信號分組化成AXI請求分組并且經(jīng)由串行鏈路向第二 FPGA傳輸AXI請求分組。串行接口還包括在第二 FGPA處的第二 AXI橋路。第
二AXI橋路被配置為經(jīng)由串行鏈路接收AXI請求分組、從AXI請求分組提取讀取請求或者寫入請求的AXI數(shù)據(jù)信號并且經(jīng)由第二 AXI并行接口向第二 AXI部件提供讀取請求或者寫入請求的AXI數(shù)據(jù)信號。
[0008]描述了一種由AXI橋路實(shí)施的用于執(zhí)行數(shù)據(jù)讀取操作的方法。該方法包括從AXI部件接收與數(shù)據(jù)讀取請求對應(yīng)的并行AXI數(shù)據(jù)信號。AXI數(shù)據(jù)信號標(biāo)識將從其讀取數(shù)據(jù)的地址。該方法還包括將數(shù)據(jù)讀取請求的AXI數(shù)據(jù)信號分組化成AXI讀取分組并且經(jīng)由串行鏈路向第二 FPGA傳輸AXI讀取分組。該方法還包括經(jīng)由串行鏈路從第二 FPGA接收AXI讀取完成分組、從AXI讀取完成分組提取請求的數(shù)據(jù)并且向AXI部件提供請求的數(shù)據(jù)。
[0009]描述了另一種由AXI橋路實(shí)施的用于執(zhí)行數(shù)據(jù)寫入操作的方法。該方法包括從AXI部件接收與數(shù)據(jù)寫入請求對應(yīng)的并行數(shù)據(jù)信號。AXI數(shù)據(jù)信號包括寫入數(shù)據(jù)并且標(biāo)識將在其寫入該寫入數(shù)據(jù)的地址。該方法還包括將數(shù)據(jù)寫入請求的AXI數(shù)據(jù)信號分組化成AXI寫入分組并且經(jīng)由串行鏈路向第二FGPA傳輸AXI寫入分組。該方法還包括經(jīng)由串行鏈路從第二FPGA接收AXI寫入響應(yīng)分組。AXI寫入響應(yīng)分組包括寫入數(shù)據(jù)是否被成功寫入的標(biāo)識符。該方法還包括從AXI寫入響應(yīng)分組提取寫入數(shù)據(jù)是否被成功寫入的標(biāo)識符并且向AXI部件提供標(biāo)識符。
【專利附圖】
【附圖說明】
[0010]參照以下附圖描述用于FPGA原型化的串行接口的細(xì)節(jié)。相同標(biāo)號可以全篇用來引用附圖中所示的相似特征和部件:
[0011]圖1圖示了被配置為支持在片上系統(tǒng)上的FPGA之間的數(shù)據(jù)通信的常規(guī)并行互連結(jié)構(gòu)的示例。
[0012]圖2圖示了由AXI限定的并行接口的示例讀取地址信道和讀取數(shù)據(jù)信道。
[0013]圖3圖示了由AXI限定的并行接口的示例寫入地址信道、寫入數(shù)據(jù)信道和寫入響
應(yīng)信道。
[0014]圖4圖示了其中可以實(shí)施用于FPGA原型化的串行接口的方面的示例片上系統(tǒng)環(huán)境。
[0015]圖5圖示了其中可以實(shí)施用于FPGA原型化的串行接口的方面的具體示例片上系統(tǒng)環(huán)境。
[0016]圖6圖示了其中可以實(shí)施用于FPGA原型化的串行接口的方面的備選具體示例片上系統(tǒng)環(huán)境。
[0017]圖7圖示了根據(jù)一個或者多個方面的示例讀取分組。
[0018]圖8圖示了根據(jù)一個或者多個方面的示例寫入分組。
[0019]圖9圖示了根據(jù)一個或者多個方面的示例讀取完成分組。
[0020]圖10圖示了根據(jù)一個或者多個方面的示例寫入響應(yīng)分組。
[0021]圖11圖示了用于實(shí)施用于FPGA原型化的串行接口的示例層棧。
[0022]圖12圖示了根據(jù)一個或者多個方面的示例AXI橋路。
[0023]圖13圖示了使用用于FPGA原型化的串行接口來執(zhí)行讀取操作的示例方法。
[0024]圖14圖示了使用用于FPGA原型化的串行接口來執(zhí)行寫入操作的示例方法。
[0025]圖15圖示了可以使用用于FPGA原型化的串行接口的各種方面被實(shí)施的示例片上系統(tǒng)。
[0026]圖16圖示了可以被實(shí)施為包括用于FPGA原型化的串行接口的各種方面的示例設(shè)備的各種部件。
【具體實(shí)施方式】
[0027]常規(guī)SoC的并行互連結(jié)構(gòu)使用多個數(shù)據(jù)線和管腳以支持在SoC部件之間的數(shù)據(jù)通信,這使SoC的分割有困難。根據(jù)各種方面,描述了取代在常規(guī)FPGA原型化設(shè)計(jì)中使用的并行互連結(jié)構(gòu)的串行接口。串行接口可以包括在第一 FPGA處的第一 AXI橋路。第一 AXI橋路被配置為經(jīng)由第一 AXI并行接口從第一 AXI部件接收讀取請求或者寫入請求的AXI數(shù)據(jù)信號、將AXI數(shù)據(jù)信號分組化成AXI請求分組并且經(jīng)由串行鏈路向第二 FPGA傳輸AXI請求分組。串行接口還包括在第二 FPGA處的第二 AXI橋路。第二 AXI橋路被配置為經(jīng)由串行鏈路接收AXI請求分組、從AXI請求分組提取讀取請求或者寫入請求的AXI數(shù)據(jù)信號并且經(jīng)由第二 AXI并行接口向第二 AXI部件提供讀取請求或者寫入請求的AXI數(shù)據(jù)信號。
[0028]盡管可以在任何數(shù)目的不同設(shè)備、系統(tǒng)、環(huán)境和/或配置中實(shí)施用于FPGA原型化的串行接口的特征和概念,但是在以下示例設(shè)備、系統(tǒng)和方法的情境中描述用于FPGA原型化的串行接口的方面。
[0029]圖1圖示了被配置為支持在SoC上的FPGA之間的數(shù)據(jù)通信的常規(guī)并行互連結(jié)構(gòu)的示例100。在這一示例中,SoC被分割成在第一 FPGA104上的AXI部件102和在第二FPGA108上的AXI切換結(jié)構(gòu)106。AXI部件102和AXI切換結(jié)構(gòu)106被配置為通過經(jīng)由AXI并行接口 110發(fā)送AXI信號來相互通信。
[0030]在示例100中,AXI部件102被配置為通過經(jīng)由AXI并行接口 110向AXI切換結(jié)構(gòu)106傳輸讀取請求來發(fā)起數(shù)據(jù)讀取操作。響應(yīng)于接收讀取請求,AXI切換結(jié)構(gòu)106被配置為返回讀取響應(yīng),該讀取響應(yīng)包括來自在請求中標(biāo)識的地址的數(shù)據(jù)。AXI部件102還被配置為通過經(jīng)由AXI并行接口 110向AXI切換結(jié)構(gòu)106傳輸寫入請求來發(fā)起數(shù)據(jù)寫入操作。響應(yīng)于接收寫入請求,AXI切換結(jié)構(gòu)106被配置為向在寫入請求中標(biāo)識的地址寫入數(shù)據(jù)并且接收指示數(shù)據(jù)是否被成功寫入的寫入響應(yīng)。為了支持?jǐn)?shù)據(jù)讀取操作,AXI并行接口 110定義用于傳達(dá)讀取請求的讀取地址信道和用于傳達(dá)請求的讀取數(shù)據(jù)的讀取數(shù)據(jù)信道。為了支持?jǐn)?shù)據(jù)寫入操作,AXI并行接口 110定義用于傳達(dá)寫入請求的寫入地址信道、用于傳達(dá)請求的寫入數(shù)據(jù)的寫入數(shù)據(jù)信道和用于傳達(dá)寫入操作是否成功的指示的寫入響應(yīng)信道。
[0031]圖2圖示了由AXI定義的并行接口的讀取地址信道202和讀取數(shù)據(jù)信道204的示例200。讀取地址信道202使AXI部件102能夠向AXI切換結(jié)構(gòu)106傳輸讀取請求。每個讀取請求包括數(shù)據(jù)信號,這些數(shù)據(jù)信號標(biāo)識從其讀取請求的數(shù)據(jù)的地址。讀取數(shù)據(jù)信道204使AXI切換結(jié)構(gòu)106能夠向AXI部件102傳輸回請求的讀取數(shù)據(jù)。
[0032]圖3圖示了由AXI定義的并行接口的寫入地址信道302、寫入數(shù)據(jù)信道304和寫入響應(yīng)信道306的示例300。寫入地址信道302使AXI部件102能夠向AXI切換結(jié)構(gòu)106傳輸寫入請求。寫入請求可以包括數(shù)據(jù)信號,這些數(shù)據(jù)信號標(biāo)識在其寫入數(shù)據(jù)的地址。寫入數(shù)據(jù)信道304使AXI部件102能夠向AXI切換結(jié)構(gòu)106傳輸請求的寫入數(shù)據(jù)。寫入響應(yīng)信道306使AXI切換結(jié)構(gòu)106能夠傳輸寫入響應(yīng),該寫入響應(yīng)指示AXI切換結(jié)構(gòu)是否能夠向標(biāo)識的地址寫入請求的數(shù)據(jù)。
[0033]圖4圖示了其中可以實(shí)施用于FPGA原型化的串行接口的方面的示例SoC環(huán)境400。與圖1的示例100相似,片上系統(tǒng)被分割成在第一 FPGA404上的AXI部件402和在第
二FPGA408上的AXI交換機(jī)結(jié)構(gòu)406。然而,不同于示例100,示例400包括支持在SoC部件之間的串行數(shù)據(jù)通信的AXI串行接口 410。在這一示例中,AXI串行接口 410包括在第一FPGA404處的第一 AXI橋路412、在第二 FPGA408處的第二 AXI橋路414、將第一 AXI橋路412連接到第二 AXI橋路414的AXI串行鏈路416以及并行接口 418和420。[0034]AXI橋路412和414被配置為從AXI部件接收并行AXI數(shù)據(jù)信號。將注意,這些并行AXI數(shù)據(jù)信號是在常規(guī)設(shè)計(jì)(比如示例100)中將經(jīng)由AXI并行接口在AXI部件之間直接傳達(dá)的相同類型的信號。因此,在某種意義上,AXI橋路412和414被配置為“截獲”這些并行數(shù)據(jù)信號。
[0035]如以下將更具體描述的那樣,AXI橋路412和414被配置為將經(jīng)由并行接口 418或者420接收的并行AXI數(shù)據(jù)信號分組化或者轉(zhuǎn)譯成AXI數(shù)據(jù)分組。這些AXI數(shù)據(jù)分組包括接收的并行AXI數(shù)據(jù)信號的所有數(shù)據(jù)。AXI橋路412和414然后可以經(jīng)由串行鏈路416向彼此傳達(dá)這些數(shù)據(jù)分組。相似地,AXI橋路412和414被配置為經(jīng)由串行鏈路416從彼此接收AXI數(shù)據(jù)分組。AXI橋路412和414然后可以從AXI數(shù)據(jù)分組提取AXI數(shù)據(jù)信號并且經(jīng)由并行接口 418和420向AXI部件402和AXI切換結(jié)構(gòu)406提供AXI數(shù)據(jù)信號。因此,將注意,串行接口 410消除需要AXI并行接口以在FPGA之間傳達(dá)數(shù)據(jù)。另外,如與并行接口 110(并行接口 110需要用于在FPGA之間的每個并行接口的每個數(shù)據(jù)線的兩個管腳)對t匕,串行鏈路416通過將僅兩個管腳用于在FPGA之間的每個串行鏈路來大量減少FGPA互連結(jié)構(gòu)的數(shù)據(jù)線和管腳計(jì)數(shù)。
[0036]圖5圖示了其中可以實(shí)施用于FPGA原型化的串行接口的方面的具體示例SoC環(huán)境500。在這一示例中,圖4的AXI部件402被實(shí)施為AXI主控部件502,AXI主控部件502被配置為向AXI切換結(jié)構(gòu)406傳輸數(shù)據(jù)讀取和寫入請求。此外,第一 AXI橋路412在這一示例中被實(shí)施為在第一 FGPA404處的AXI主控橋路504,并且第二 AXI橋路414被實(shí)施為在第二 FPGA408處的AXI從屬橋路506。
[0037]圖6圖示了其中可以實(shí)施用于FPGA原型化的串行接口的方面的備選具體示例SoC環(huán)境600。在這一示例中,圖4的AXI部件402被實(shí)施為AXI從屬部件602,AXI從屬部件602被配置為向AXI切換結(jié)構(gòu)406傳輸數(shù)據(jù)讀取和寫入請求。此外,第一 AXI橋路412在這一示例中被實(shí)施為在第一 FGPA404處的AXI從屬橋路604,并且第二 AXI橋路414被實(shí)施為在第二 FPGA408處的AXI主控橋路606。
[0038]AXI部件402被配置為通過發(fā)出數(shù)據(jù)讀取或者寫入請求來發(fā)起數(shù)據(jù)讀取和寫入操作。數(shù)據(jù)讀取請求被配置為使AXI切換結(jié)構(gòu)406返回來自在請求中標(biāo)識的地址的數(shù)據(jù),而數(shù)據(jù)寫入請求被配置為使AXI切換結(jié)構(gòu)406向在請求中標(biāo)識的地址寫入在請求中包括的數(shù)據(jù)。如以上指出的那樣,在常規(guī)設(shè)計(jì)中,經(jīng)由AXI并行接口向AXI切換結(jié)構(gòu)直接傳達(dá)數(shù)據(jù)讀取和寫入請求。
[0039]根據(jù)各種方面,在AXI部件402發(fā)出讀取或者寫入請求時,第一 AXI橋路412被配置為經(jīng)由并行接口 418從AXI部件402接收與讀取或者寫入請求對應(yīng)的并行AXI數(shù)據(jù)信號。將注意,這些AXI數(shù)據(jù)信號是在常規(guī)設(shè)計(jì)(比如示例100)中將經(jīng)由并行接口 110向AXI交換機(jī)結(jié)構(gòu)直接傳達(dá)的相同類型的信號。因此,在某種意義上,第一 AXI橋路412被配置用于“截獲”這些AXI數(shù)據(jù)信號。如果請求是數(shù)據(jù)讀取請求,則AXI數(shù)據(jù)信號包括經(jīng)由并行接口418的讀取地址信道202接收的地址和控制信號。數(shù)據(jù)讀取請求的地址和控制信號包括從其讀取請求的數(shù)據(jù)的地址的標(biāo)識符。備選地,如果請求是數(shù)據(jù)寫入請求,則AXI數(shù)據(jù)信號包括經(jīng)由并行接口 418的寫入地址信道301接收的地址和控制信號以及經(jīng)由并行接口 418的寫入響應(yīng)信道306接收的寫入數(shù)據(jù)。寫入請求的地址和控制信號包括在其寫入數(shù)據(jù)的地址的標(biāo)識符。[0040]根據(jù)各種方面,第一 AXI橋路412被配置為將與讀取或者寫入請求對應(yīng)的AXI數(shù)據(jù)信號分組化或者轉(zhuǎn)譯成AXI請求分組。AXI請求分組包括在常規(guī)設(shè)計(jì)中經(jīng)由AXI并行接口的讀取地址信道202或者寫入地址信道302和寫入數(shù)據(jù)信道304向AXI切換結(jié)構(gòu)傳達(dá)的所有數(shù)據(jù)信號。例如,如果請求是讀取請求,則第一 AXI橋路412將在讀取請求中接收的數(shù)據(jù)信號以及分組頭部和腳注分組化成讀取分組。讀取分組包括經(jīng)由并行接口 418的讀取地址信道202從其接收讀取數(shù)據(jù)的地址的標(biāo)識符。備選地,如果請求是寫入請求,則第一 AXI橋路412將在寫入請求中接收的數(shù)據(jù)信號以及分組頭部和腳注分組化成寫入分組。寫入分組包括經(jīng)由并行接口 418的寫入數(shù)據(jù)信道304接收的寫入數(shù)據(jù)以及經(jīng)由并行接口 418的寫入地址信道302接收的在其寫入數(shù)據(jù)的地址的標(biāo)識符。在將AXI數(shù)據(jù)信號分組化成AXI分組請求之后,第一 AXI橋路412經(jīng)由串行鏈路416向第二 AXI橋路414傳輸AXI請求分組。
[0041]圖7圖示了根據(jù)一個或者多個方面的AXI讀取分組的示例700。在這一非限制示例中,AXI讀取分組700包括從AXI并行接口的讀取地址信道202捕獲的數(shù)據(jù)信號、讀取分組頭部和讀取分組腳注。讀取分組頭部包括指示讀取分組的開始的幀開始(SOF)字段702和指示分組是讀取分組的AXI讀取分組(AXI_READ)字段704。AXI讀取分組700還包括讀取地址(ARADDR)字段706,該ARADDR字段指示將從其讀取數(shù)據(jù)的地址。在這一示例中,讀取地址字段706是32位并且對應(yīng)于在AXI中定義的AXI并行接口的地址信令。AXI讀取分組700還包括讀取標(biāo)識符(RID)字段708、讀取透鏡(lens) (ARLEN)字段710、讀取大小(ARSIZE)字段712、讀取猝發(fā)(ARBURST)字段714、讀取鎖定(ARLOCK)字段716、讀取高速緩存(ARCACHE)字段718、讀取保護(hù)(ARPROT)字段720和保留(RSVD)字段722。字段706-722中的每個字段對應(yīng)于從AXI并行接口的讀取地址信道202捕獲的數(shù)據(jù)信號。將注意,讀取地址信道202將需要分離數(shù)據(jù)線以傳達(dá)在數(shù)據(jù)字段706-722中的每個數(shù)據(jù)字段中包含的數(shù)據(jù)信號。在這一示例中,AXI讀取分組700還包括讀取分組腳注,該讀取分組腳注包括被配置為保護(hù)AXI讀取分組700的循環(huán)冗余校驗(yàn)字段724和指示AXI讀取分組700的結(jié)束的幀結(jié)束(EFO)字段726。
[0042]圖8圖示了根據(jù)一個或者多個方面的AXI寫入分組的示例800。在這一非限制示例中,AXI寫入分組800包括從AXI并行接口的寫入地址信道302捕獲的數(shù)據(jù)信號、寫入分組頭部和寫入分組腳注。寫入分組頭部包括指示寫入分組的開始的幀開始(SOF)字段802和指示分組是寫入分組的AXI寫入分組(AXI_WRITE)字段804。AXI寫入分組800還包括寫入地址(AWADDR)字段806,該AWADDR字段指示將在其寫入數(shù)據(jù)的地址。在這一示例中,寫入地址字段806是32位并且對應(yīng)于在AXI中定義的AXI并行接口的地址信令。AXI寫入分組800還包括寫入標(biāo)識符(WID)字段808、寫入透鏡(AWLEN)字段810、寫入大小(AWSIZE)字段812、寫入猝發(fā)(AWBURST)字段814、寫入鎖定(AWLOCK)字段816、寫入高速緩存(AWCACHE)字段818、寫入保護(hù)(AWPROT)字段820和保留(RSVD)字段822。
[0043]AXI寫入分組800還包括寫入數(shù)據(jù)(WDATA)字段824,該WDATA字段包括將向由寫入地址字段806指示的地址寫入的寫入數(shù)據(jù)。此外,AXI寫入分組800包括第一寫入選通(WSTR0B0)字段826和第二寫入選通(WSTR0BE1)字段828。第一寫入選通字段826指示寫入數(shù)據(jù)的開始,并且第二寫入選通字段828指示寫入數(shù)據(jù)的結(jié)束。字段806-828中的每個字段對應(yīng)于從AXI并行接口的寫入地址信道302或者寫入數(shù)據(jù)信道304捕獲的數(shù)據(jù)信號。將注意,AXI并行接口的寫入地址信道302和寫入數(shù)據(jù)信道304將需要分離數(shù)據(jù)線以傳達(dá)在數(shù)據(jù)字段806-828中的每個數(shù)據(jù)字段中包括的數(shù)據(jù)信號。在這一示例中,AXI寫入分組800還包括寫入分組腳注,該寫入分組腳注包括被配置為保護(hù)AXI寫入分組800的循環(huán)冗余校驗(yàn)字段830和指示AXI寫入分組800的結(jié)束的幀結(jié)束(EOF)字段832。
[0044]根據(jù)各種方面,在經(jīng)由串行鏈路416從第一 AXI橋路412接收AXI請求分組之后,第二 AXI橋路414被配置為從AXI請求分組提取與讀取或者寫入請求對應(yīng)的AXI數(shù)據(jù)信號。例如,如果AXI請求分組是AXI讀取分組,則第二 AXI橋路414從AXI讀取分組提取數(shù)據(jù)信號,該AXI讀取分組包括從其讀取請求的數(shù)據(jù)的地址的標(biāo)識符。備選地,如果AXI請求分組是AXI寫入分組,則第二 AXI橋路414從AXI寫入分組提取數(shù)據(jù)信號,該AXI寫入分組包括寫入數(shù)據(jù)和在其寫入數(shù)據(jù)的地址的標(biāo)識符。第二 AXI橋路414然后經(jīng)由并行接口 420向AXI切換結(jié)構(gòu)406提供與讀取或者寫入請求對應(yīng)的提取的AXI數(shù)據(jù)信號。
[0045]AXI切換結(jié)構(gòu)406被配置為基于讀取或者寫入請求執(zhí)行數(shù)據(jù)讀取或者寫入操作。如果請求是數(shù)據(jù)讀取請求,則AXI切換結(jié)構(gòu)從在請求中標(biāo)識的地址讀取數(shù)據(jù)。備選地,如果請求是數(shù)據(jù)寫入請求,則AXI切換結(jié)構(gòu)406向在寫入請求中標(biāo)識的地址寫入在請求中接收的數(shù)據(jù)。在執(zhí)行讀取或者寫入操作之后,AXI切換結(jié)構(gòu)406發(fā)出數(shù)據(jù)讀取或者寫入響應(yīng)。如以上指出的那樣,在常規(guī)設(shè)計(jì)中,經(jīng)由AXI并行接口向AXI部件102直接傳達(dá)數(shù)據(jù)讀取和寫入響應(yīng)。
[0046]根據(jù)一個或者多個方面,在AXI切換結(jié)構(gòu)406發(fā)出讀取或者寫入響應(yīng)時,第二 AXI橋路414被配置為經(jīng)由并行接口 420從AXI切換結(jié)構(gòu)406接收與讀取或者寫入響應(yīng)對應(yīng)的并行AXI數(shù)據(jù)信號。將注意,這些AXI數(shù)據(jù)信號是在常規(guī)設(shè)計(jì)(比如示例100)中將經(jīng)由AXI并行接口向AXI部件直接傳達(dá)的相同類型的信號。因此,在某種意義上,第二 AXI橋路414被配置為“截獲”這些數(shù)據(jù)信號。因此,如果響應(yīng)是數(shù)據(jù)讀取響應(yīng),則AXI數(shù)據(jù)信號經(jīng)由讀取數(shù)據(jù)信道204被接收并且包括請求的讀取數(shù)據(jù)。備選地,如果響應(yīng)是數(shù)據(jù)寫入響應(yīng),則AXI數(shù)據(jù)信號經(jīng)由寫入響應(yīng)信道306被接收并且包括指示寫入操作是否被成功完成的寫入響應(yīng)數(shù)據(jù)。
[0047]根據(jù)一個或者多個方面,第二 AXI橋路414被配置為將與讀取或者寫入響應(yīng)對應(yīng)的AXI數(shù)據(jù)信號分組化或者轉(zhuǎn)譯成AXI響應(yīng)分組。AXI響應(yīng)分組包括在常規(guī)設(shè)計(jì)中經(jīng)由AXI并行接口的讀取數(shù)據(jù)信道204或者寫入響應(yīng)信道306向AXI部件傳達(dá)的所有數(shù)據(jù)信號。例如,如果響應(yīng)是讀取響應(yīng),則第二 AXI橋路414將在讀取響應(yīng)中接收的數(shù)據(jù)信號以及分組頭部和腳注分組化成讀取完成分組。讀取完成分組包括經(jīng)由并行接口 420的讀取數(shù)據(jù)信道204接收的請求的讀取數(shù)據(jù)。備選地,如果響應(yīng)是寫入響應(yīng),則第二 AXI橋路414將在寫入響應(yīng)中接收的數(shù)據(jù)信號以及分組頭部和腳注分組化成寫入響應(yīng)分組。寫入響應(yīng)分組包括經(jīng)由并行接口 420的寫入響應(yīng)信道306接收的、寫入操作是否被成功完成的指示。在將AXI數(shù)據(jù)信號分組化成AXI響應(yīng)分組之后,第二 AXI橋路414經(jīng)由串行鏈路416向第一 AXI橋路412傳輸AXI響應(yīng)分組。
[0048]圖9圖示了根據(jù)一個或者多個方面的AXI讀取完成分組的示例900。在這一非限制示例中,AXI讀取完成分組900包括從AXI并行接口的讀取數(shù)據(jù)信道204捕獲的數(shù)據(jù)信號、讀取完成分組頭部和讀取完成分組腳注。讀取完成分組首部包括指示AXI讀取完成分組900的開始的幀開始(SOF)字段902和指示分組是讀取完成分組的AXI讀取完成分組(READ_C0MPLETE)字段904。AXI讀取完成分組900還包括讀取標(biāo)識符(RID)字段906、第一讀取選通(RSTROBEO)字段908和第二讀取選通(RSTROB1)字段910。第一讀取選通字段908指示讀取數(shù)據(jù)的開始,并且第二讀取選通字段910指示讀取數(shù)據(jù)的結(jié)束。
[0049]AXI讀取完成分組900還包括被配置為保持請求的讀取數(shù)據(jù)的讀取數(shù)據(jù)(RDTAT)字段912。數(shù)據(jù)字段906-912中的每個數(shù)據(jù)字段對應(yīng)于從AXI并行接口的讀取數(shù)據(jù)信道204捕獲的數(shù)據(jù)信號。將注意,讀取數(shù)據(jù)信道204將需要分離數(shù)據(jù)線以傳達(dá)在數(shù)據(jù)字段906-912中的每個數(shù)據(jù)字段中包含的數(shù)據(jù)信號。在這一示例中,AXI讀取完成分組900還包括讀取完成分組腳注,該讀取完成分組腳注包括被配置為保護(hù)AXI讀取完成分組900的循環(huán)冗余校驗(yàn)字段914和指示AXI讀取完成分組900的結(jié)束的幀結(jié)束(EOF)字段916。
[0050]圖10圖示了根據(jù)一個或者多個方面的AXI寫入響應(yīng)分組的示例1000。在這一非限制示例中,AXI寫入響應(yīng)分組1000包括從AXI并行接口的寫入響應(yīng)信道306捕獲的數(shù)據(jù)信號、寫入響應(yīng)分組頭部和寫入響應(yīng)分組腳注。寫入響應(yīng)分組頭部包括指示AXI寫入響應(yīng)分組1000的開始的幀開始(SOF)字段1002和指示分組是寫入響應(yīng)分組的AXI寫入響應(yīng)分組(WRITE_RESPONSE)字段 1004。
[0051]AXI寫入響應(yīng)分組1000還包括標(biāo)識符(BID)字段1006和被配置為保持寫入響應(yīng)數(shù)據(jù)的寫入響應(yīng)數(shù)據(jù)(BRESP)字段1008。數(shù)據(jù)字段1006和1008中的每個數(shù)據(jù)字段對應(yīng)于從AXI并行接口的寫入響應(yīng)信道306捕獲的數(shù)據(jù)信號。將注意,寫入響應(yīng)信道306將需要分離數(shù)據(jù)線以傳達(dá)在這些數(shù)據(jù)字段中的每個數(shù)據(jù)字段中包含的數(shù)據(jù)信號。在這一示例中,AXI寫入響應(yīng)分組1000還包括寫入響應(yīng)腳注信息,該寫入響應(yīng)腳注信息包括被配置為保護(hù)AXI寫入響應(yīng)分組1000的循環(huán)冗余校驗(yàn)字段1010和指示AXI寫入響應(yīng)分組1000的結(jié)束的幀結(jié)束(EOF)字段1012。
[0052]根據(jù)一個或者多個方面,在經(jīng)由串行鏈路416從第二 AXI橋路414接收AXI響應(yīng)分組之后,第一 AXI橋路412被配置為從AXI響應(yīng)分組提取與讀取或者寫入響應(yīng)對應(yīng)的AXI數(shù)據(jù)信號。例如,如果AXI響應(yīng)分組是AXI讀取響應(yīng)分組,則第一 AXI橋路412從AXI讀取響應(yīng)分組提取數(shù)據(jù)信號,該AXI讀取響應(yīng)分組包括請求的讀取數(shù)據(jù)。備選地,如果AXI響應(yīng)分組是AXI寫入完成分組,則第一 AXI橋路412從AXI寫入完成分組提取數(shù)據(jù)信號,該AXI寫入完成分組包括寫入操作是否被成功完成的指示。為了完成讀取或者寫入操作,第一AXI橋路412然后經(jīng)由并行接口 418向AXI部件402提供與讀取或者寫入響應(yīng)對應(yīng)的提取的AXI數(shù)據(jù)信號。
[0053]根據(jù)一個或者多個方面,第一 AXI橋路412和第二 AXI橋路414被配置為實(shí)施存儲和轉(zhuǎn)發(fā)模式以傳達(dá)請求和響應(yīng)數(shù)據(jù)分組。在存儲和轉(zhuǎn)發(fā)模式中,AXI橋路412和414被配置為當(dāng)在串行鏈路416上傳輸完成請求或者響應(yīng)分組之前緩沖分組。存儲和轉(zhuǎn)發(fā)模式保證將在任何單個時間在串行鏈路416上在每個方向上僅傳輸單個數(shù)據(jù)分組,這消除流量控制問題從而使錯誤處理容易得多。
[0054]為了錯誤處理,AXI橋路412和414被配置為在正確接收數(shù)據(jù)分組時發(fā)出確認(rèn)命令(ACK)以及發(fā)出指示何時未正確接收數(shù)據(jù)分組的未確認(rèn)命令(NAK)。第一 AXI橋路412被配置為在從第二 AXI橋路414接收NAK信號時重傳請求分組。相似地,第二 AXI橋路414被配置為在從第一 AXI橋路412接收NAK信號時重傳響應(yīng)分組。在各種方面中,串行接口410支持在相同時間的支持分組讀取和寫入操作的讀取和寫入全雙工模式。
[0055]圖11圖示了用于實(shí)施用于FPGA原型化的串行接口的示例層棧1100。層棧1100包括傳送層1102、鏈路層1104和物理層1106。傳送層1102是在層棧1100中的頂層并且實(shí)施與AXI的接口、用于分組化請求和響應(yīng)分組以及錯誤恢復(fù)和重傳分組的分組化引擎。鏈路層1104被配置為校驗(yàn)分組是否被成功傳送并且實(shí)施CRC校驗(yàn)和ACK/NAK校驗(yàn)。物理層1106是在棧1100中的底層并且包括與串行鏈路8B/10B關(guān)聯(lián)的編碼方案或者用于對數(shù)據(jù)進(jìn)行編碼的其它編碼以及其它物理層功能,比如對準(zhǔn)插入和刪除。
[0056]圖12圖示了根據(jù)一個或者多個方面的示例AXI橋路1200。將注意,在圖4、圖5和圖6中圖示的AXI橋路中的任何AXI橋路可以實(shí)施AXI橋路1200的部件和功能。在這一示例中,AXI橋路1200包括被配置為經(jīng)由AXI并行接口(比如并行接口 418)與AXI部件(比如AXI部件402)通信的橋路1202。AXI橋路1200還包括用于緩沖寫入數(shù)據(jù)的寫入數(shù)據(jù)緩沖器1204、用于緩沖讀取數(shù)據(jù)的讀取數(shù)據(jù)緩沖器1206、寫入分組頭部1208、讀取分組頭部1210、寫入響應(yīng)分組頭部1212和讀取完成分組頭部1214。AXI橋路1200還包括傳輸(TX)引擎1216、接收(RX)引擎1218和物理層1220。
[0057]在AXI部件發(fā)出數(shù)據(jù)請求或者響應(yīng)時,橋路1202經(jīng)由并行接口 418從AXI部件402接收與請求或者響應(yīng)對應(yīng)的并行數(shù)據(jù)信號。橋路1202然后向?qū)懭霐?shù)據(jù)緩沖器124或者讀取數(shù)據(jù)緩沖器1206中寫入數(shù)據(jù)。為了創(chuàng)建請求或者響應(yīng)分組,TX引擎1216分組化在寫入數(shù)據(jù)緩沖器1204或者讀取數(shù)據(jù)緩沖器1206中的數(shù)據(jù)以及分組頭部。例如,為了創(chuàng)建寫入分組,TX引擎與寫入分組頭部1208 —起分組化來自寫入數(shù)據(jù)緩沖器1204的寫入數(shù)據(jù)。相似地,為了創(chuàng)建讀取分組,TX引擎與讀取分組頭部1210 —起分組化來自讀取數(shù)據(jù)緩沖器1206的讀取數(shù)據(jù)。為了創(chuàng)建寫入響應(yīng)分組,TX引擎與寫入響應(yīng)分組頭部1212 —起分組化來自寫入數(shù)據(jù)緩沖器1204的寫入數(shù)據(jù)。相似地,為了創(chuàng)建讀取完成分組,TX引擎與讀取完成分組頭部1214 —起分組化來自讀取數(shù)據(jù)緩沖器1206的讀取數(shù)據(jù)。TX引擎1216然后通過附加AXI橋路的串行鏈路416發(fā)送數(shù)據(jù)分組。
[0058]在附加AXI橋路向AXI橋路1200傳輸數(shù)據(jù)分組時,物理層1220經(jīng)由串行鏈路416從附加AXI橋路接收數(shù)據(jù)分組。RX引擎1218然后從接收的數(shù)據(jù)分組提取數(shù)據(jù)。例如,如果接收了寫入分組,則RX引擎提取寫入數(shù)據(jù)和將向其寫入數(shù)據(jù)的地址。相似地,如果接收了讀取分組,則RX引擎提取將從其讀取數(shù)據(jù)的地址。如果接收了寫入響應(yīng)分組,則RX引擎提取寫入響應(yīng),并且如果接收了讀取完成分組,則RX引擎提取讀取數(shù)據(jù)。橋路1202然后經(jīng)由并行接口 418向AXI部件提供提取的數(shù)據(jù)作為并行數(shù)據(jù)信號。
[0059]根據(jù)用于FPGA原型化的串行接口的一個或者多個方面參照圖4描述了示例方法1300和1400。一般而言,可以使用軟件、固件、硬件(例如,固定邏輯電路)、人工處理或者其任何組合來實(shí)施這里描述的服務(wù)、功能、方法、過程、部件和模塊中的任何服務(wù)、功能、方法、過程、部件和模塊。軟件實(shí)現(xiàn)方式代表在由計(jì)算機(jī)處理器執(zhí)行時執(zhí)行指定的任務(wù)的程序代碼??梢栽诳梢园ㄜ浖?、應(yīng)用、例程、程序、對象、部件、數(shù)據(jù)結(jié)構(gòu)、過程、模塊、函數(shù)等的計(jì)算機(jī)可執(zhí)行指令的一般情境中描述示例方法??梢栽谟?jì)算機(jī)處理器本地和/或遠(yuǎn)程二者的一個或者多個計(jì)算機(jī)可讀存儲介質(zhì)設(shè)備中存儲程序代碼。方法也可以在分布式計(jì)算環(huán)境中由多個計(jì)算機(jī)設(shè)備實(shí)現(xiàn)。另外,這里描述的特征獨(dú)立于平臺并且可以被實(shí)施于具有多種處理器的多種計(jì)算平臺上。
[0060]圖13圖示了使用用于FPGA原型化的串行接口來執(zhí)行讀取操作的示例方法1300并且參照圖4的示例片上系統(tǒng)環(huán)境來描述。描述方法的順序未旨在于被解釋為限制,并且可以按照任何順序組合描述的方法操作中的任何數(shù)目的描述方法操作以實(shí)施方法或者備選方法。
[0061]在AXI部件(比如AXI部件402)發(fā)出在第一 FPGA處的數(shù)據(jù)讀取請求時啟動方法1300。在1302處,接收與數(shù)據(jù)讀取請求對應(yīng)的并行AXI數(shù)據(jù)信號。例如,在第一 FPGA404處實(shí)施的第一 AXI橋路412 (圖4)經(jīng)由并行接口 418的讀取地址信道202從AXI部件402接收與數(shù)據(jù)讀取請求對應(yīng)的并行AXI數(shù)據(jù)信號。在1304處,將數(shù)據(jù)讀取請求的AXI數(shù)據(jù)信號分組化成AXI讀取分組。例如,第一 AXI橋路412將數(shù)據(jù)讀取請求的AXI數(shù)據(jù)信號分組化成AXI讀取分組700 (圖7)。在1306處,經(jīng)由AXI串行鏈路向第二 FPGA傳輸AXI讀取分組。例如,第一 AXI橋路412經(jīng)由串行鏈路416向第二 FPGA408傳輸AXI讀取分組700。
[0062]在1308處,經(jīng)由串行鏈路在第二 FGPA處接收AXI讀取分組。例如,在第二 FPGA408處的第二 AXI橋路414經(jīng)由串行鏈路416接收AXI讀取分組700。在1310處,從AXI讀取分組提取數(shù)據(jù)讀取請求的AXI數(shù)據(jù)信號。例如,第二 AXI橋路414從AXI讀取分組700提取數(shù)據(jù)讀取請求的AXI數(shù)據(jù)信號。在1312處,向AXI切換結(jié)構(gòu)提供數(shù)據(jù)讀取請求的AXI數(shù)據(jù)信號。例如,第二 AXI橋路414經(jīng)由并行接口 420向AXI切換結(jié)構(gòu)406提供數(shù)據(jù)讀取請求的提取的數(shù)據(jù)信號。
[0063]響應(yīng)于接收數(shù)據(jù)讀取請求的并行AXI數(shù)據(jù)信號,AXI切換結(jié)構(gòu)發(fā)出包括請求的數(shù)據(jù)的數(shù)據(jù)讀取響應(yīng)。在1314處,接收與數(shù)據(jù)讀取響應(yīng)對應(yīng)的并行AXI數(shù)據(jù)信號。例如,第二AXI橋路414經(jīng)由并行接口 420的讀取數(shù)據(jù)信道204從AXI切換結(jié)構(gòu)406接收與數(shù)據(jù)讀取響應(yīng)對應(yīng)的并行AXI數(shù)據(jù)信號。在1316處,將數(shù)據(jù)讀取響應(yīng)的AXI數(shù)據(jù)信號分組化成AXI讀取完成分組。例如,第二 AXI橋路414將數(shù)據(jù)讀取響應(yīng)的AXI數(shù)據(jù)信號分組化成AXI讀取完成分組900,該數(shù)據(jù)讀取響應(yīng)包括請求的數(shù)據(jù)。在1318處,經(jīng)由串行鏈路向第一 FPGA傳輸AXI讀取完成分組。例如,第二 AXI橋路414經(jīng)由串行鏈路416向第一 FPGA404傳輸AXI讀取完成分組900。
[0064]在1320處,經(jīng)由串行鏈路在第一 FPGA處接收AXI讀取完成分組。例如,在第一FPGA404處的第一 AXI橋路412經(jīng)由串行鏈路416接收AXI讀取完成分組900。在1322,從AXI讀取完成分組提取數(shù)據(jù)讀取響應(yīng)的AXI數(shù)據(jù)信號。例如,第一 AXI橋路412從AXI讀取完成分組900提取數(shù)據(jù)讀取響應(yīng)的AXI數(shù)據(jù)信號,該數(shù)據(jù)讀取響應(yīng)包括請求的讀取數(shù)據(jù)。在1324處,向AXI部件提供數(shù)據(jù)讀取響應(yīng)的AXI數(shù)據(jù)信號,該數(shù)據(jù)讀取響應(yīng)包括請求的數(shù)據(jù)。例如,第一 AXI橋路412經(jīng)由并行接口 418向AXI部件402提供數(shù)據(jù)讀取響應(yīng)的提取的數(shù)據(jù)信號以完成讀取操作。
[0065]圖14圖示了使用用于FPGA原型化的串行接口來執(zhí)行寫入操作的示例方法1400并且參照圖14的示例片上系統(tǒng)環(huán)境來描述。描述方法的順序并未旨在于被解釋為限制,并且可以按照任何順序組合描述的方法操作中的任何數(shù)目的方法操作以實(shí)施方法或者備選方法。
[0066]在AXI部件(比如AXI部件402)在第一 FPGA處發(fā)出數(shù)據(jù)寫入請求時啟動方法1400。在1402處,接收與數(shù)據(jù)寫入請求對應(yīng)的并行AXI數(shù)據(jù)信號。例如,在第一 FPGA404處被實(shí)施的AXI第一橋路412 (圖4)經(jīng)由并行接口 418的寫入地址信道302和寫入數(shù)據(jù)信道304從AXI部件402接收與數(shù)據(jù)寫入請求對應(yīng)的并行AXI數(shù)據(jù)信號。在1404處,將數(shù)據(jù)寫入請求的AXI數(shù)據(jù)信號分組化成AXI寫入分組。例如,第一 AXI橋路412將數(shù)據(jù)寫入請求的AXI數(shù)據(jù)信號分組化成AXI寫入分組800 (圖8)。在1406處,經(jīng)由AXI串行鏈路向第
二FPGA傳輸AXI寫入分組。例如,第一 AXI橋路412經(jīng)由串行鏈路416向第二 FPGA408傳輸AXI寫入分組800。
[0067]在1408處,經(jīng)由串行鏈路在第二 FGPA處接收AXI寫入分組。例如,在第二 FPGA408處的第二 AXI橋路414經(jīng)由串行鏈路416接收AXI寫入分組800。在1410處,從AXI寫入分組提取數(shù)據(jù)寫入請求的AXI數(shù)據(jù)信號。例如,第二 AXI橋路414從AXI寫入分組800提取數(shù)據(jù)寫入請求的AXI數(shù)據(jù)信號,該數(shù)據(jù)寫入請求包括寫入數(shù)據(jù)和在其寫入數(shù)據(jù)的地址的標(biāo)識符。在1412處,向AXI切換結(jié)構(gòu)提供數(shù)據(jù)寫入請求的AXI數(shù)據(jù)信號。例如,第二 AXI橋路414經(jīng)由并行接口 420向AXI切換結(jié)構(gòu)406提供數(shù)據(jù)寫入請求的提取的數(shù)據(jù)信號。
[0068]響應(yīng)于接收數(shù)據(jù)寫入請求的并行AXI數(shù)據(jù)信號,AXI切換結(jié)構(gòu)向標(biāo)識的地址寫入請求的寫入數(shù)據(jù)。AXI切換結(jié)構(gòu)然后發(fā)出數(shù)據(jù)寫入響應(yīng),該數(shù)據(jù)寫入響應(yīng)包括寫入操作是否成功的指示。在1414處,接收與數(shù)據(jù)寫入響應(yīng)對應(yīng)的并行AXI數(shù)據(jù)信號。例如,第二 AXI橋路414經(jīng)由并行接口 420的寫入響應(yīng)信道304從AXI切換結(jié)構(gòu)406接收與數(shù)據(jù)寫入響應(yīng)對應(yīng)的并行AXI數(shù)據(jù)信號。在1416處,將數(shù)據(jù)寫入響應(yīng)的AXI數(shù)據(jù)信號分組化成AXI寫入響應(yīng)分組。例如,第二 AXI橋路414將數(shù)據(jù)寫入響應(yīng)的AXI數(shù)據(jù)信號分組化成AXI寫入響應(yīng)分組1000 (圖10),該數(shù)據(jù)寫入響應(yīng)包括寫入操作是否成功的指示。在1418處,經(jīng)由串行鏈路向第一 FPGA傳輸AXI寫入響應(yīng)分組。例如,第二 AXI橋路414經(jīng)由串行鏈路416向第一 FPGA404傳輸AXI寫入響應(yīng)分組1000。
[0069]在1420處,經(jīng)由串行鏈路在第一 FPGA處接收AXI寫入響應(yīng)分組。例如,在第一FPGA404處的第一 AXI橋路412經(jīng)由串行鏈路416接收AXI寫入響應(yīng)分組1000。在1422處,從AXI寫入響應(yīng)分組提取數(shù)據(jù)寫入響應(yīng)的AXI數(shù)據(jù)信號。例如,第一 AXI橋路412從AXI寫入響應(yīng)分組1000提取數(shù)據(jù)寫入響應(yīng)的AXI數(shù)據(jù)信號,該數(shù)據(jù)寫入響應(yīng)包括寫入操作是否成功的指示。在1424處,向AXI部件提供數(shù)據(jù)寫入響應(yīng)的AXI數(shù)據(jù)信號,該數(shù)據(jù)寫入響應(yīng)包括數(shù)據(jù)寫入操作是否成功的指示。例如,第一 AXI橋路412經(jīng)由并行接口 418向AXI部件提供數(shù)據(jù)寫入響應(yīng)的提取的數(shù)據(jù)信號以完成寫入操作。
[0070]圖15圖示了可以使用如這里描述的用于FPGA原型化的串行接口的各種方面被實(shí)施的示例片上系統(tǒng)(SoC) 1500??梢栽谌魏晤愋偷脑O(shè)備(比如以下參照圖16描述的設(shè)備)中實(shí)施SoC??梢耘c電子電路、微處理器、存儲器、輸入-輸出(I/O)邏輯控制、通信接口和部件以及其它硬件、固件和/或軟件集成SoC1500。
[0071]在這一不例中,S0C1500與微處理器1502 (例如,微控制器或者數(shù)字信號處理器中的任何一項(xiàng))和輸入-輸出(I/O)邏輯控制1504集成(例如,以包括電子電路)。SoC1500包括存儲器設(shè)備控制器1506和存儲器設(shè)備1508,比如任何類型的非易失性存儲器和/或其它適當(dāng)電子數(shù)據(jù)存儲設(shè)備中。SoC還可以包括各種固件和/或軟件,比如由存儲器維護(hù)并且由微處理器執(zhí)行的操作系統(tǒng)1510。
[0072]SoC1500包括用于與設(shè)備或者其它外圍部件對接的設(shè)備接口 1512。SoC1500還包括耦合SoC的各種部件以用于在部件之間的數(shù)據(jù)通信以及與AXI切換結(jié)構(gòu)1516耦合的集成數(shù)據(jù)總線1514。如這里描述的那樣,集成數(shù)據(jù)總線1514可以包括用于FPGA原型化的串行接口。如以上描述的那樣,串行接口支持在FPGA部件與AXI切換結(jié)構(gòu)1516之間傳達(dá)數(shù)據(jù)請求和響應(yīng)分組。SoC中的數(shù)據(jù)總線也可以被實(shí)施為不同總線結(jié)構(gòu)和/或總線架構(gòu)中的任何總線結(jié)構(gòu)和/或總線架構(gòu)或者組合。
[0073]圖16圖示了可以被實(shí)施為包括用于FPGA原型化的串行接口的各種方面的示例設(shè)備1600的各種部件。設(shè)備可以與操作設(shè)備的用戶(即人)和/或?qū)嶓w關(guān)聯(lián),從而使得設(shè)備描述邏輯設(shè)備,這些邏輯設(shè)備包括用戶、軟件、固件、硬件和/或設(shè)備的組合。
[0074]設(shè)備1600包括通信設(shè)備1602,通信設(shè)備1602支持設(shè)備數(shù)據(jù)1604 (比如接收的數(shù)據(jù)、在設(shè)備之間傳達(dá)的數(shù)據(jù)、數(shù)據(jù)的數(shù)據(jù)分組等)的有線和/或無線通信。設(shè)備1600還包括一個或者多個數(shù)據(jù)輸入1606,經(jīng)由一個或者多個數(shù)據(jù)輸入1606可以接收任何類型的數(shù)據(jù)、媒體內(nèi)容和/或輸入,比如用戶可選擇的輸入以及從任何內(nèi)容和/或數(shù)據(jù)源接收的任何其它類型的音頻、視頻和/或圖像數(shù)據(jù)。數(shù)據(jù)輸入1606可以包括USB端口、同軸線纜和用于閃存、DVD、CD等的其它串行或者并行連接器(包括內(nèi)部連接器)。數(shù)據(jù)輸入可以用來將設(shè)備耦合到內(nèi)部和/或外部部件、外圍設(shè)備和附件,比如鍵盤、麥克風(fēng)、相機(jī)和任何其它類型的設(shè)備。
[0075]設(shè)備1600還包括通信接口 1608,比如串行、并行、網(wǎng)絡(luò)或者無線接口中的任何一個或者多個接口。通信接口提供在設(shè)備與網(wǎng)絡(luò)之間的連接和/或通信鏈路,其它電子、計(jì)算和通信設(shè)備通過該連接和/或通信鏈路與設(shè)備傳達(dá)數(shù)據(jù)。雖然未被示出,但是設(shè)備可以包括耦合在設(shè)備內(nèi)的各種部件的系統(tǒng)總線或者數(shù)據(jù)傳送系統(tǒng)。系統(tǒng)總線可以包括不同總線結(jié)構(gòu)(比如AXI串行接口、存儲器總線或者存儲器控制器、外圍設(shè)備總線、通用串行總線和/或利用多種總線架構(gòu)中的任何總線架構(gòu)的處理器或者本地總線)中的任何總線結(jié)構(gòu)或者組合。
[0076]設(shè)備1600包括一個或者多個處理器1610 (例如,微處理器、控制器等中的任何一項(xiàng))或者(例如在SoC中被實(shí)施的)處理器和存儲器系統(tǒng),該一個或者多個處理器或者該處理器和存儲器系統(tǒng)處理計(jì)算機(jī)可執(zhí)行指令以控制設(shè)備的操作。備選地或者附加地,可以用與在1612大體地標(biāo)識的處理和控制電路結(jié)合被實(shí)施的軟件、硬件、固件或者固定邏輯電路中的任何一項(xiàng)或者組合實(shí)施設(shè)備。
[0077]設(shè)備600還包括支持?jǐn)?shù)據(jù)存儲的一個或者多個存儲器設(shè)備1614(例如,計(jì)算機(jī)可讀存儲介質(zhì)),比如隨機(jī)存取存儲器(RAM)、非易失性存儲器(例如,只讀存儲器(ROM)、閃存等)和盤存儲設(shè)備。盤存儲設(shè)備可以被實(shí)施為任何類型的磁或者光存儲設(shè)備,比如硬盤驅(qū)動、可記錄和/或可重寫盤等。設(shè)備也可以包括海量存儲介質(zhì)設(shè)備。計(jì)算機(jī)可讀存儲介質(zhì)可以是由計(jì)算設(shè)備訪問的任何一個或者多個可用介質(zhì)。
[0078]存儲器設(shè)備1614提供用于存儲設(shè)備數(shù)據(jù)1604、其它類型的信息和/或數(shù)據(jù)和設(shè)備應(yīng)用1616的數(shù)據(jù)存儲機(jī)制。例如,可以用存儲器設(shè)備將操作系統(tǒng)1618維護(hù)為軟件應(yīng)用并且在處理器上執(zhí)行操作系統(tǒng)1618。設(shè)備應(yīng)用還可以包括設(shè)備管理器或者控制器,比如控制應(yīng)用、軟件應(yīng)用、信號處理和控制模塊、特定設(shè)備本機(jī)的代碼、用于特定設(shè)備的硬件抽象化層等中的任何形式。在這一示例中,設(shè)備應(yīng)用1616還包括傳送層1102、鏈路層1104和物理層1106??梢栽谲浖?、固件、硬件(例如,固定邏輯電路)或者其任何組合的一般情境中實(shí)施設(shè)備應(yīng)用1616。
[0079]設(shè)備1600還可以包括生成用于音頻系統(tǒng)1622的音頻數(shù)據(jù)和/或生成用于顯示系統(tǒng)1624的顯示數(shù)據(jù)的音頻和/或視頻處理系統(tǒng)1620。音頻系統(tǒng)和/或顯示系統(tǒng)可以包括處理、顯示和/或以其它方式渲染音頻、視頻、顯示和/或圖像數(shù)據(jù)的任何設(shè)備。在實(shí)現(xiàn)方式中,音頻系統(tǒng)和/或顯示系統(tǒng)可以是設(shè)備的外部部件。備選地,音頻系統(tǒng)和/或顯示系統(tǒng)是示例設(shè)備的集成部件。
[0080]雖然已經(jīng)用特征和/或方法特有的語言描述了用于FPGA原型化的串行接口的方面,但是所附權(quán)利要求的主題未必限于描述的具體特征或者方法。實(shí)際上,具體特征和方法被公開為用于FPGA原型化的串行接口的示例實(shí)現(xiàn)方式。
【權(quán)利要求】
1.一種用于現(xiàn)場可編程門陣列(FPGA)原型化的串行接口,包括: 在第一 FPGA處的第一高級交叉開關(guān)互連(AXI)橋路,所述第一 AXI橋路被配置為經(jīng)由第一AXI并行接口從第一AXI部件接收讀取請求或者寫入請求的AXI數(shù)據(jù)信號、將所述AXI數(shù)據(jù)信號分組化成AXI請求分組并且經(jīng)由串行鏈路向第二 FPGA傳輸所述AXI請求分組;以及 在所述第二 FGPA處的第二 AXI橋路,所述第二 AXI橋路被配置為經(jīng)由所述串行鏈路接收所述AXI請求分組、從所述AXI請求分組提取所述讀取請求或者所述寫入請求的所述AXI數(shù)據(jù)信號并且經(jīng)由第二AXI并行接口向第二 AXI部件提供所述讀取請求或者所述寫入請求的所述AXI數(shù)據(jù)信號。
2.根據(jù)權(quán)利要求1所述的串行接口,其中所述第一AXI部件包括AXI主控,并且所述第一 AXI橋路包括AXI主控橋路,并且其中所述第二 AXI部件包括AXI切換結(jié)構(gòu),并且所述第二橋路包括AXI從屬橋路。
3.根據(jù)權(quán)利要求1所述的串行接口,其中所述第一AXI部件包括AXI從屬,并且所述第一AXI橋路包括AXI從屬橋路,并且其中所述第二 AXI部件包括AXI切換結(jié)構(gòu),并且所述第二AXI橋路包括AXI主控橋路。
4.根據(jù)權(quán)利要求1所述的串行接口,其中所述第一AXI橋路被配置為在所述AXI數(shù)據(jù)信號對應(yīng)于所述讀取請求時將所述AXI數(shù)據(jù)信號分組化成AXI讀取分組,并且其中所述AXI讀取分組標(biāo)識將從其讀取數(shù)據(jù)的地址。
5.根據(jù)權(quán)利要求4所述的串行接口,其中所述讀取請求的所述AXI數(shù)據(jù)信號由所述第一AXI橋路經(jīng)由所述第一 AXI并行接口的讀取地址信道接收。
6.根據(jù)權(quán)利要求1所述的串行接口,其中所述第一AXI橋路被配置為在所述AXI數(shù)據(jù)信號對應(yīng)于所述寫入請求時將所述AXI數(shù)據(jù)信號分組化成AXI寫入分組,并且其中所述AXI寫入分組包括寫入數(shù)據(jù)和將在其寫入所述寫入數(shù)據(jù)的地址。
7.根據(jù)權(quán)利要求6所述的串行接口,其中所述寫入請求的所述AXI數(shù)據(jù)信號由所述第一AXI橋路經(jīng)由所述第一 AXI并行接口的寫入地址信道和寫入數(shù)據(jù)信道接收。
8.根據(jù)權(quán)利要求1所述的串行接口,其中: 所述第二 AXI橋路還被配置為經(jīng)由所述第二 AXI并行接口從所述第二 AXI部件接收讀取響應(yīng)或者寫入響應(yīng)的附加AXI數(shù)據(jù)信號、將所述附加AXI數(shù)據(jù)信號分組化成AXI響應(yīng)分組并且經(jīng)由所述串行鏈路向所述第一 FPGA傳輸所述AXI響應(yīng)分組;以及 所述第一 AXI橋路還被配置為經(jīng)由所述串行鏈路接收所述AXI響應(yīng)分組、從所述AXI響應(yīng)分組提取所述讀取響應(yīng)或者所述寫入響應(yīng)的所述附加AXI數(shù)據(jù)信號并且經(jīng)由所述第一AXI并行接口向所述第二 AXI部件提供所述讀取響應(yīng)或者所述寫入響應(yīng)的所述附加AXI數(shù)據(jù)信號。
9.根據(jù)權(quán)利要求8所述的串行接口,其中所述第二AXI橋路被配置為在所述附加AXI數(shù)據(jù)信號對應(yīng)于所述讀取響應(yīng)時將所述附加AXI數(shù)據(jù)信號分組化成AXI讀取完成分組,并且其中所述讀取完成分組包括在所述請求中被標(biāo)識的數(shù)據(jù)。
10.根據(jù)權(quán)利要求9所述的串行接口,其中所述讀取響應(yīng)的所述附加AXI數(shù)據(jù)信號由所述第二 AXI橋路經(jīng)由所述第二 AXI并行接口的讀取數(shù)據(jù)信道接收。
11.根據(jù)權(quán)利要求8所述的串行接口,其中所述第二AXI橋路被配置為在所述AXI數(shù)據(jù)信號對應(yīng)于所述寫入響應(yīng)時將所述附加AXI數(shù)據(jù)信號分組化成AXI寫入響應(yīng)分組,并且其中所述寫入響應(yīng)分組包括數(shù)據(jù)寫入操作是否成功的指示。
12.根據(jù)權(quán)利要求11所述的串行接口,其中所述寫入響應(yīng)的所述附加AXI數(shù)據(jù)信號由所述第二 AXI橋路經(jīng)由所述第二 AXI并行接口的寫入響應(yīng)信道接收。
13.根據(jù)權(quán)利要求1所述的串行接口,其中所述第一橋路和所述第二橋路被配置為經(jīng)由所述串行鏈路一次一個分組地傳輸數(shù)據(jù)分組。
14.根據(jù)權(quán)利要求1所述的串行接口,其中所述第一橋路和所述第二橋路被配置為在經(jīng)由所述串行鏈路正確接收數(shù)據(jù)分組時發(fā)出確認(rèn)命令,并且在未正確接收所述數(shù)據(jù)分組時發(fā)出未確認(rèn)命令。
15.根據(jù)權(quán)利要求13所述的串行接口,其中所述串行接口支持讀取和寫入全雙工模式。
16.—種方法,包括: 在第一 FPGA處 ,從高級交叉開關(guān)互連(AXI)部件接收與數(shù)據(jù)讀取請求對應(yīng)的并行AXI數(shù)據(jù)信號,所述AXI數(shù)據(jù)信號標(biāo)識將從其讀取數(shù)據(jù)的地址; 將所述數(shù)據(jù)讀取請求的所述AXI數(shù)據(jù)信號分組化成AXI讀取分組; 經(jīng)由串行鏈路向第二 FPGA傳輸所述AXI讀取分組; 經(jīng)由所述串行鏈路從所述第二 FPGA接收AXI讀取完成分組,所述AXI讀取完成分組包括請求的所述數(shù)據(jù); 從所述AXI讀取完成分組提取請求的所述數(shù)據(jù);以及 向所述AXI部件提供請求的所述數(shù)據(jù)。
17.根據(jù)權(quán)利要求16所述的方法,還包括: 在所述第二 FPGA處,在經(jīng)由所述串行鏈路向所述第二 FPGA傳輸所述AXI讀取分組時,經(jīng)由所述串行鏈路接收所述AXI讀取分組; 從所述AXI讀取分組提取所述數(shù)據(jù)讀取請求的所述AXI數(shù)據(jù)信號; 向AXI切換結(jié)構(gòu)提供所述數(shù)據(jù)讀取請求的所述AXI數(shù)據(jù)信號以有效地使所述AXI切換結(jié)構(gòu)從標(biāo)識的所述地址讀取請求的所述數(shù)據(jù); 接收與數(shù)據(jù)讀取響應(yīng)對應(yīng)的并行AXI數(shù)據(jù)信號,所述數(shù)據(jù)讀取響應(yīng)的所述AXI數(shù)據(jù)信號包括請求的所述數(shù)據(jù); 將所述數(shù)據(jù)讀取響應(yīng)的所述AXI數(shù)據(jù)信號分組化成所述AXI讀取完成分組;以及經(jīng)由所述串行鏈路向所述第一 FPGA傳輸所述AXI讀取完成分組以有效地使所述第一FPGA接收所述AXI讀取完成分組。
18.根據(jù)權(quán)利要求16所述的方法,還包括: 在所述第一 FPGA處,從所述AXI部件接收與數(shù)據(jù)寫入請求對應(yīng)的并行數(shù)據(jù)信號,所述AXI數(shù)據(jù)信號包括寫入數(shù)據(jù)并且標(biāo)識將在其寫入所述寫入數(shù)據(jù)的地址; 將所述數(shù)據(jù)寫入請求的所述AXI數(shù)據(jù)信號分組化成AXI寫入分組; 經(jīng)由所述串行鏈路向所述第二 FPGA傳輸所述AXI寫入分組; 經(jīng)由所述串行鏈路從所述第二 FPGA接收AXI寫入響應(yīng)分組,所述AXI寫入響應(yīng)分組包括所述寫入數(shù)據(jù)是否被成功寫入的標(biāo)識符; 從所述AXI寫入響應(yīng)分組提取所述標(biāo)識符;以及向所述AXI部件提供所述標(biāo)識符。
19.根據(jù)權(quán)利要求18所述的方法,還包括: 在所述第二 FPGA處,在經(jīng)由所述串行鏈路向所述第二 FPGA傳輸所述AXI寫入請求時經(jīng)由所述串行鏈路接收所述AXI寫入分組; 從所述AXI寫入分組提取所述數(shù)據(jù)寫入請求的所述AXI數(shù)據(jù)信號; 向AXI切換結(jié)構(gòu)提供所述數(shù)據(jù)寫入請求的所述AXI數(shù)據(jù)信號以有效地使所述AXI切換結(jié)構(gòu)向標(biāo)識的所述地址寫入所述寫入數(shù)據(jù); 接收與數(shù)據(jù)寫入響應(yīng)對應(yīng)的并行AXI數(shù)據(jù)信號,所述寫入響應(yīng)的所述AXI數(shù)據(jù)信號包括所述寫入數(shù)據(jù)是否被成功寫入的所述指示; 將所述數(shù)據(jù)寫入響應(yīng)的所述AXI數(shù)據(jù)信號分組化成所述AXI寫入響應(yīng)分組;以及經(jīng)由所述串行鏈路向所述第一 FPGA傳輸所述AXI寫入響應(yīng)分組以有效地使所述第一FPGA接收所述AXI寫入響應(yīng)分組。
20.一種用于支持在片上系統(tǒng)中的現(xiàn)場可編程門陣列(FPGA)之間的串行通信的高級交叉開關(guān)互連(AXI)橋路結(jié)構(gòu),所述AXI橋路結(jié)構(gòu)包括: 并行接口,所 述并行接口被配置為從在第一 FPGA處被實(shí)施的AXI部件接收AXI數(shù)據(jù)信號; 傳輸(TX)引擎,所述TX引擎被配置為將所述AXI數(shù)據(jù)信號分組化成AXI數(shù)據(jù)分組,并且經(jīng)由串行鏈路向第二 FPGA傳輸所述AXI數(shù)據(jù)分組; 接收(RX)引擎,所述RX引擎被配置為經(jīng)由所述串行鏈路從所述第二 FPGA接收附加AXI數(shù)據(jù)分組,并且從所述附加AXI數(shù)據(jù)分組提取附加AXI數(shù)據(jù)信號;以及所述并行接口還被配置為向所述AXI部件提供所述附加AXI數(shù)據(jù)信號。
【文檔編號】G06F13/40GK104025069SQ201280061991
【公開日】2014年9月3日 申請日期:2012年12月13日 優(yōu)先權(quán)日:2011年12月15日
【發(fā)明者】周為, 朱志豪, 張柏堅(jiān) 申請人:馬維爾國際貿(mào)易有限公司