據(jù)FPGAl_fifo_data[n:1]編碼的逆過(guò)程。例如當(dāng)數(shù)據(jù)解碼模塊43從第二異步FIFO 42接收一個(gè)編碼數(shù)據(jù)FPGA2_fifo_data[n:1]時(shí),數(shù)據(jù)解碼模塊43首先檢測(cè)該編碼數(shù)據(jù)的最高位即第η位,若最高位為1,則編碼數(shù)據(jù)為有效數(shù)據(jù),并分別解碼出第η位的數(shù)據(jù)有效信號(hào)FPGA2_datavalid,第(n_l)位的數(shù)據(jù)控制信號(hào)FPGA2_datactrl,低(n-2)位的初始數(shù)據(jù) FPGA2_data[n-2:1]。
[0037]在本發(fā)明的一個(gè)實(shí)施例中,F(xiàn)PGA的結(jié)構(gòu)框圖如圖3所示,圖3中,F(xiàn)PGA既包括發(fā)送FPGA端電路20,又包括接收FPGA端電路40。其中,發(fā)送FPGA端電路20包括數(shù)據(jù)生成端26、數(shù)據(jù)編碼模塊21、第一異步FIFO 22、并串轉(zhuǎn)換模塊24、串行器25和0BUFDS,發(fā)送FPGA端電路20對(duì)外發(fā)送數(shù)據(jù)。接收FPGA端電路40包括解串器44、IBUFGDS、串并轉(zhuǎn)換模塊45、第二異步FIFO 42、數(shù)據(jù)解碼模塊43和數(shù)據(jù)接收端46,接收FPGA端電路40接收外部輸入的數(shù)據(jù)。
[0038]圖4是四個(gè)圖3的FPGA進(jìn)行虛擬1片間互連實(shí)施例的結(jié)構(gòu)框圖。如圖4所示,四個(gè)圖 3 的 FPGA 分別為 FPGA1、FPGA2、FPGA3 和 FPGA4,F(xiàn)PGA1、FPGA2、FPGA3 和 FPGA4 相互連接。當(dāng)FPGAl作為發(fā)送FPGA端電路20時(shí),F(xiàn)PGAl將數(shù)據(jù)和時(shí)鐘通過(guò)LVDS差分傳輸通道傳送至FPGA2,此時(shí)FPGA2為接收FPGA端電路40。當(dāng)FPGA2作為發(fā)送FPGA端電路20時(shí),將數(shù)據(jù)和時(shí)鐘通過(guò)LVDS差分傳輸通道傳送至FPGA3,此時(shí)FPGA3為接收FPGA端電路40。當(dāng)FPGA3作為發(fā)送FPGA端電路20時(shí),將數(shù)據(jù)和時(shí)鐘通過(guò)LVDS差分傳輸通道傳送至FPGA4,此時(shí)FPGA4為接收FPGA端電路40。當(dāng)FPGA4作為發(fā)送FPGA端電路20時(shí),將數(shù)據(jù)和時(shí)鐘通過(guò)LVDS差分傳輸通道傳送至FPGAl,此時(shí)FPGAl為接收FPGA端電路40。
[0039]需要說(shuō)明的是,本發(fā)明實(shí)施例的FPGA虛擬10片間互連電路的FPGA虛擬10片間互連可以包括但不僅限于四個(gè)圖3的FPGA進(jìn)行虛擬10片間互連,也可以包括但不僅限于圖4所示的FPGA相互連接方式,還可以為多個(gè)FPGA依次連接等連接方式,另外,F(xiàn)PGA的內(nèi)部結(jié)構(gòu)可以包括但不僅限于圖3所示的結(jié)構(gòu)。
[0040]本發(fā)明實(shí)施例包括以下優(yōu)點(diǎn):
[0041 ] 第一,采用深度可變的第一異步FIFO和第二異步FIF0,從而發(fā)送FPGA端電路和接收FPGA端電路可以根據(jù)IC設(shè)計(jì)和異步FIFO讀寫(xiě)協(xié)議在很大的范圍內(nèi)隨意改變第一異步FIFO和第二異步FIFO接口時(shí)鐘的頻率和數(shù)據(jù)的位寬,不僅大大增大了數(shù)據(jù)傳輸?shù)乃俾屎蛶挘€大大增強(qiáng)了 IC設(shè)計(jì)驗(yàn)證的靈活性,給FPGA互聯(lián)接口端的操作帶來(lái)了極大的便利;
[0042]數(shù)據(jù)編碼模塊和數(shù)據(jù)解碼模塊進(jìn)行簡(jiǎn)單有效精確的編解碼,保證了數(shù)據(jù)的精確傳輸,降低了傳輸數(shù)據(jù)的誤碼率;
[0043]編碼時(shí)鐘、并行時(shí)鐘和解碼時(shí)鐘為同源時(shí)鐘,從而第一異步FIFO和第二異步FIFO的讀時(shí)鐘和寫(xiě)時(shí)鐘為同源時(shí)鐘,避免了因時(shí)鐘相位偏差造成數(shù)據(jù)采樣的偏差,降低了傳輸數(shù)據(jù)的誤碼率;
[0044]串行器和解串器分別包括serdes接口,從而可以采用serdes的時(shí)分多路復(fù)用技術(shù)的差分傳輸方法,減少了接口 1數(shù)量(實(shí)現(xiàn)虛擬1效果),降低了數(shù)據(jù)傳輸?shù)恼`碼率。
[0045]本說(shuō)明書(shū)中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見(jiàn)即可。
[0046]盡管已描述了本發(fā)明實(shí)施例的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明實(shí)施例范圍的所有變更和修改。
[0047]最后,還需要說(shuō)明的是,在本文中,諸如第一和第二等之類(lèi)的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者終端設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者終端設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者終端設(shè)備中還存在另外的相同要素。
[0048]以上對(duì)本發(fā)明所提供的一種FPGA虛擬1片間互連電路,進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書(shū)內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
【主權(quán)項(xiàng)】
1.一種FPGA虛擬1片間互連電路,其特征在于,包括: 時(shí)鐘模塊,所述時(shí)鐘模塊用于提供時(shí)鐘; 發(fā)送FPGA端電路,所述發(fā)送FPGA端電路與所述時(shí)鐘模塊相連,所述發(fā)送FPGA端電路包括: 數(shù)據(jù)編碼模塊,所述數(shù)據(jù)編碼模塊用于對(duì)輸入的初始數(shù)據(jù)、數(shù)據(jù)控制信號(hào)以及數(shù)據(jù)有效信號(hào)進(jìn)行統(tǒng)一編碼,并生成編碼數(shù)據(jù); 第一異步FIFO,所述第一異步FIFO用于緩存所述數(shù)據(jù)編碼模塊根據(jù)所述時(shí)鐘模塊提供的編碼時(shí)鐘和異步FIFO寫(xiě)協(xié)議寫(xiě)入的所述編碼數(shù)據(jù); 發(fā)送模塊,所述發(fā)送模塊用于根據(jù)異步FIFO讀協(xié)議和所述時(shí)鐘模塊提供的并行時(shí)鐘從所述第一異步FIFO讀取至少兩位數(shù)據(jù),以及同時(shí)根據(jù)所述并行時(shí)鐘產(chǎn)生差分串行時(shí)鐘,并發(fā)送所述至少兩位數(shù)據(jù)和所述差分串行時(shí)鐘,直至發(fā)送全部所述編碼數(shù)據(jù); 傳輸模塊,所述傳輸模塊與所述發(fā)送FPGA端電路相連,所述傳輸模塊用于傳輸所述編碼數(shù)據(jù)和所述差分串行時(shí)鐘; 接收FPGA端電路,所述接收FPGA端電路與所述傳輸模塊和所述時(shí)鐘模塊分別相連,所述接收FPGA端電路包括: 接收模塊,所述接收模塊用于接收所述至少兩位數(shù)據(jù)和所述差分串行時(shí)鐘,直至接收全部所述編碼數(shù)據(jù); 第二異步FIFO,所述第二異步FIFO用于緩存所述接收模塊根據(jù)所述異步FIFO寫(xiě)協(xié)議和所述差分串行時(shí)鐘寫(xiě)入的所述至少兩位數(shù)據(jù),直至寫(xiě)入全部所述編碼數(shù)據(jù); 數(shù)據(jù)解碼模塊,所述數(shù)據(jù)解碼模塊用于根據(jù)所述異步FIFO讀協(xié)議和所述時(shí)鐘模塊提供的解碼時(shí)鐘從所述第二異步FIFO讀取所述編碼數(shù)據(jù),并將所述編碼數(shù)據(jù)同步解碼成所述初始數(shù)據(jù)、所述數(shù)據(jù)控制信號(hào)以及所述數(shù)據(jù)有效信號(hào)。2.根據(jù)權(quán)利要求1所述的FPGA虛擬1片間互連電路,其特征在于,所述數(shù)據(jù)控制信號(hào)的時(shí)鐘與所述初始數(shù)據(jù)的時(shí)鐘同步,所述數(shù)據(jù)控制信號(hào)、所述初始數(shù)據(jù)與所述數(shù)據(jù)有效信號(hào)同步有效。3.根據(jù)權(quán)利要求1所述的FPGA虛擬1片間互連電路,其特征在于,所述編碼數(shù)據(jù)包括η位數(shù)據(jù),其中,所述數(shù)據(jù)有效信號(hào)位于所述η位數(shù)據(jù)的第η位,所述數(shù)據(jù)控制信號(hào)位于所述η位數(shù)據(jù)的第(η-1)位,所述初始數(shù)據(jù)位于所述η位數(shù)據(jù)的低(η_2)位,其中,η為大于2且可調(diào)整的整數(shù)。4.根據(jù)權(quán)利要求1所述的FPGA虛擬1片間互連電路,其特征在于,所述傳輸模塊為L(zhǎng)VDS差分傳輸通道。5.根據(jù)權(quán)利要求1所述的FPGA虛擬1片間互連電路,其特征在于,所述編碼時(shí)鐘和所述解碼時(shí)鐘為頻率可調(diào)整的時(shí)鐘。6.根據(jù)權(quán)利要求1所述的FPGA虛擬10片間互連電路,其特征在于,所述時(shí)鐘模塊包括晶振和與所述晶振相連的MMCM。7.根據(jù)權(quán)利要求6所述的FPGA虛擬10片間互連電路,其特征在于,所述編碼時(shí)鐘、所述并行時(shí)鐘和所述解碼時(shí)鐘為由所述MMCM產(chǎn)生的同源時(shí)鐘。8.根據(jù)權(quán)利要求1所述的FPGA虛擬10片間互連電路,其特征在于,所述發(fā)送模塊包括: 并串轉(zhuǎn)換模塊,所述并串轉(zhuǎn)換模塊用于根據(jù)所述異步FIFO讀協(xié)議和所述并行時(shí)鐘從所述第一異步FIFO讀取所述至少兩位數(shù)據(jù),并將所述至少兩位數(shù)據(jù)分割成多段串行數(shù)據(jù),以及同時(shí)產(chǎn)生串行數(shù)據(jù)參考時(shí)鐘和根據(jù)所述并行時(shí)鐘產(chǎn)生串行發(fā)送時(shí)鐘,直至將全部所述編碼數(shù)據(jù)分割成多段串行數(shù)據(jù); 串行器,所述串行器用于對(duì)所述多段串行數(shù)據(jù)進(jìn)行比特串行化處理,并根據(jù)所述串行發(fā)送時(shí)鐘發(fā)送所述比特串行化處理后的多段串行數(shù)據(jù); 0BUFDS,所述OBUFDS用于將所述串行數(shù)據(jù)參考時(shí)鐘處理為所述差分串行時(shí)鐘,并發(fā)送所述差分串行時(shí)鐘。9.根據(jù)權(quán)利要求8所述的FPGA虛擬1片間互連電路,其特征在于,所述接收模塊包括: 解串器,所述解串器用于將所述比特串行化處理后的多段串行數(shù)據(jù)進(jìn)行并行化恢復(fù)為所述多段串行數(shù)據(jù); IBUFGDS,所述IBUFGDS用于將所述差分串行時(shí)鐘處理為單端串行時(shí)鐘; 串并轉(zhuǎn)換模塊,所述串并轉(zhuǎn)換模塊用于根據(jù)所述單端串行時(shí)鐘將所述多段串行數(shù)據(jù)并行化恢復(fù)為所述至少兩位數(shù)據(jù),直至恢復(fù)所述編碼數(shù)據(jù)。10.根據(jù)權(quán)利要求9所述的FPGA虛擬1片間互連電路,其特征在于,所述串行器和所述解串器分別包括serdes接口。
【專(zhuān)利摘要】本發(fā)明提供了一種FPGA虛擬IO片間互連電路,包括:時(shí)鐘模塊;發(fā)送FPGA端電路,包括:數(shù)據(jù)編碼模塊,生成編碼數(shù)據(jù);第一異步FIFO,緩存數(shù)據(jù)編碼模塊根據(jù)編碼時(shí)鐘和異步FIFO寫(xiě)協(xié)議寫(xiě)入的編碼數(shù)據(jù);發(fā)送模塊,發(fā)送從第一異步FIFO讀取的至少兩位數(shù)據(jù)和差分串行時(shí)鐘,直至發(fā)送全部編碼數(shù)據(jù);傳輸模塊;接收FPGA端電路,包括:接收模塊,接收至少兩位數(shù)據(jù)和差分串行時(shí)鐘,直至接收全部編碼數(shù)據(jù);第二異步FIFO,緩存接收模塊根據(jù)異步FIFO寫(xiě)協(xié)議和差分串行時(shí)鐘寫(xiě)入的至少兩位數(shù)據(jù),直至寫(xiě)入全部編碼數(shù)據(jù);數(shù)據(jù)解碼模塊,將編碼數(shù)據(jù)同步解碼。本發(fā)明能在很大的范圍內(nèi)隨意增加傳輸帶寬和傳輸速率,還能極大地降低誤碼率。
【IPC分類(lèi)】G06F13/40
【公開(kāi)號(hào)】CN104991878
【申請(qǐng)?zhí)枴緾N201510342599
【發(fā)明人】吳沙, 楊滔
【申請(qǐng)人】北京亞科鴻禹電子有限公司
【公開(kāi)日】2015年10月21日
【申請(qǐng)日】2015年6月18日