新四季網

一種基於FPGA和DSP的高速串行用戶接口電路的製作方法

2023-05-30 10:05:11 1

本發明屬於高速數據傳輸接口電路技術領域,具體涉及一種基於FPGA和DSP的高速串行(Serial Rapid I/O,SRIO)用戶接口電路。



背景技術:

伴隨著以FPGA和DSP為代表的數位訊號處理晶片的快速發展,隨著FPGA和DSP運算能力和存儲器資源的提高,目前典型的數位訊號處理系統一般採用基於DSP信號處理平臺、基於FPGA信號處理平臺或者基於FPGA+DSP信號處理平臺,DSP內部包含哈佛總線結構、片內存儲器和流水線處理技術等硬體結構,能高速完成各種數位訊號處理,FPGA以其接口種類豐富、並行執行能力強、乘加運算功能強大和可編程的特點得到了廣泛應用,不過DSP的時序控制功能比較弱,而FPGA適合控制高速數據的採集和傳輸,再者,FPGA編程靈活且易於升級,其集成度高,只需要較少的外部硬體,目前一般將FPGA的控制能力和DSP的高速數據處理能力相結合,即基於FPGA+DSP處理平臺在數位訊號處理系統中有著很大的優勢,一般的處理方式是對採集到的高速信號先在FPGA進行預處理,然後再傳送至DSP進行最終的信號處理。

對於上述的FPGA+DSP數位訊號處理平臺,FPGA與DSP之間的高速數據傳輸是關鍵,為了保證高速數據傳輸的可靠性、穩定性以及數據處理的實時性,傳統的晶片間互連方式,如處理器總線、PCI總線和乙太網,都難以滿足晶片間互連對寬帶、成本和靈活性的需求,基於此,針對嵌入式系統的需求以及傳統互連方式的局限性而定製的SRIO標準,集眾家所長,簡化了協議流程,提高打包效率,減小管腳,降低成本,且靈活,易於擴展。

除了以上SRIO底層高速接口電路外,往往在數位訊號處理系統中都需要一個面向用戶的用戶接口電路,因為目前在FPGA中進行的預處理一般都是一些塊數據處理方式,因此在FPGA接口端採用更多的是桌球RAM結構,兩塊RAM的讀寫切換均由FPGA進行控制,此外在DSP端,SRIO讀數據函數是在中斷服務函數裡執行的,當SRIO底層接口電路傳輸數據出錯時,這種用戶接口的設計將無法進行糾正,由此導致系統數據傳輸的不穩定。



技術實現要素:

本發明的目的在於提供一種基於FPGA和DSP的高速串行用戶接口電路,解決了晶片間高速串行數據傳輸不穩定的問題,大大提高了FPGA和DSP的高速數據傳輸的可靠性和穩定性,因此也大大提高了數位訊號處理系統的實時性。

為了解決上述技術問題,本發明提供一種基於FPGA和DSP的高速串行用戶接口電路,在FPGA端,包括FPGA端寫控制邏輯模塊、FPGA端讀控制邏輯模塊、多片RAM、SRIO底層模塊;在DSP端,包括兩片RAM以及DSP端讀控制邏輯模塊;FPGA端中的多片RAM用於分波存放準備傳輸給DSP端的數據,FPGA端讀控制邏輯模塊決定每波數據在多片RAM間的存放順序;FPGA端寫控制模塊通過輸出埠與DSP端讀控制邏輯模塊的第一輸入輸出埠相連,用於向DSP端讀控制邏輯模塊發送讀數據中斷信號;DSP端控制邏輯模塊的第二輸入輸出埠與FPGA端讀控制模塊輸入埠連接,用於通過FPGA端讀控制模塊決定多片RAM間的數據讀取順序;DSP端的兩片RAM位於DSP的存儲器中,用於存儲DSP端讀控制邏輯模塊從FPGA端讀取的數據。

進一步,FPGA端中包括四片RAM;DSP端的兩片RAM為桌球操作;DSP端讀控制邏輯模塊包含主函數計數器和中斷服務函數計數器;主函數計數器用於累計SRIO讀數據操作的次數,中斷服務函數計數器用於累計讀數據中斷的次數。

進一步,FPGA端中的每一片RAM的存儲量大小與SRIO底層模塊每次傳輸的數據量大小相等。

本發明與現有技術相比,其顯著優點在於,(1)讀寫地址切換邏輯由FPGA和DSP共同控制,數據傳輸更可靠;(2)DSP的SRIO讀數據操作在主函數裡進行,中斷服務函數隻進行加1計數操作,提高了DSP端程序運行的可靠性;(3)開闢多片RAM用於地址切換,性能優於傳統的兩片桌球RAM;(4)通過在FPGA中構建多塊隨機存取存儲器RAM,多塊RAM的讀寫切換邏輯分別由FPGA和DSP兩部分共同進行控制,大大提高了高速串行數據傳輸的可靠性和穩定性,以及數位訊號處理系統的實時性。

附圖說明

圖1是本發明基於FPGA和DSP的高速串行用戶接口電路的組成示意圖。

具體實施方式

容易理解,依據本發明的技術方案,在不變更本發明的實質精神的情況下,本領域的一般技術人員可以想像出本發明基於FPGA和DSP的高速串行用戶接口電路的多種 實施方式。因此,以下具體實施方式和附圖僅是對本發明的技術方案的示例性說明,而不應當視為本發明的全部或者視為對本發明技術方案的限制或限定。

結合圖1,本發明基於FPGA和DSP高速串行用戶接口電路,在FPGA端包括:FPGA端寫控制邏輯模塊、FPGA端讀控制邏輯模塊、四片RAM、SRIO底層模塊;在DSP端包括:兩片RAM在DSP,DSP端讀控制邏輯模塊;FPGA端寫控制模塊通過一個輸出埠OUT與DSP端讀控制邏輯模塊的通用輸入輸出(General Purpose Input/Output,GPIO)埠,即作為中斷引腳的第一輸入輸出埠GPIO1相連,FPGA端讀控制模塊通過輸入埠IN與DSP端控制邏輯模塊的第二輸入輸出埠GPIO2埠相連。FPGA中的主工作時鐘為200MHz,SRIO底層模塊採用×4模式,即有4條鏈路,每一條鏈路的傳輸速率為5Gbps,DSP共包含8個核,記為0-7核,其中DSP端讀控制邏輯模塊在第6個核中,DSP的兩片RAM位於DSP的存儲器DDR3中,DSP端讀控制邏輯模塊包含主函數和中斷服務函數兩部分。

FPGA端寫控制邏輯模塊將前端傳輸來的數據寫進四片RAM中的某一片RAM中後等待傳輸至DSP,同時通過輸出埠OUT傳送一個高電平脈衝信號至DSP端讀控制邏輯模塊作為一個讀數據中斷信號。

對於前端傳輸來的數據,每一次需要通過SRIO底層模塊傳輸的數據量為S字節,則在FPGA的主工作時鐘域內開闢的每一片RAM的大小應大於等於S。因前端傳輸來的數據是源源不斷的,因此單片RAM是不夠用的,因為DSP在讀取RAM空間中的數據時,當前RAM空間的數據可能正在被下一波等待傳送至DSP的數據覆蓋,由此造成數據的丟失。傳統意義上的桌球RAM是兩片RAM,因為DSP在通過SRIO底層模塊讀取FPGA中的RAM中存儲的數據時,由於傳輸速率很快,所以底層硬體可能會發生傳輸錯誤的現象,此時DSP端讀控制邏輯模塊會自動監測出傳輸錯誤時,則需要重新啟動當前SRIO傳輸數據的操作,所以此時傳統意義上的桌球RAM也存在緩衝時間不足的問題。因此需要在FPGA端增加用於存放待傳輸數據的RAM數量,本發明呈偶數倍增加,例如增加到四片、六片或者八片RAM,這樣保證多片RAM進行切換時,緩衝時間足夠長。圖1所示實施例共開闢四片相同大小的RAM用於存放因前端傳輸來的等待傳送至DSP的數據,當採用四片RAM進行切換時,FPGA端寫控制邏輯模塊將第一波數據寫進第一片RAM中、第二波數據寫進第二片RAM中、第三波數據寫進第三片RAM中、第四波數據寫進第四片RAM中、第五波數據寫進第一片RAM中、第六波數據寫進第二片RAM中…,依次循環存儲。每當有一波數據寫進某一片RAM時, FPGA端寫控制邏輯模塊即通過輸出埠OUT1給出一個高電平脈衝至DSP端讀控制邏輯模塊作為一個中斷信號,高電平脈衝的高電平時間設置為持續4us,在DSP端讀控制邏輯模塊中將GPIO1設置為中斷引腳,當DSP端讀控制邏輯模塊收到這一中斷信號後,即啟動一次SRIO讀數據操作。

此時,FPGA端讀控制邏輯模塊根據DSP端讀控制邏輯模塊通過第二輸入輸出埠GPIO2發來的信號選擇將哪一片RAM中的數據通過SRIO底層模塊傳輸至DSP;DSP端讀控制邏輯模塊在開始讀數據之前,將第二輸入輸出埠GPIO2管腳置為高電平,DSP端讀控制邏輯模塊將FPGA端讀控制邏輯模塊選擇好的那片RAM中的數據讀出傳送至DSP。在數據傳輸過過程中,如果當前SRIO讀數據操作發生數據傳輸錯誤現象,即重新啟動一次SRIO讀數據操作,直到成功為止。當SRIO讀數據操作成功後,DSP端讀控制邏輯模塊再將第二輸入輸出埠GPIO2置低。FPGA端讀控制邏輯模塊一直監測輸入埠IN,如果檢測出下降沿,則將需讀取的RAM切換至下一片,例如,當前讀取的數據是第一片RAM中的時,則切換至第二片RAM,當前讀取的數據是第二片RAM中的時,則切換至第三片RAM,當前讀取的數據是第四片RAM中的時,則切換至第一片RAM,一直循環執行這一操作,即FPGA端讀控制邏輯模塊往四片RAM中哪一片RAM裡面寫數據和DSP從哪一片RAM裡面讀數據是獨立進行的,前者由FPGA端讀控制邏輯模塊進行控制,後者由DSP端讀控制邏輯模塊進行控制。

DSP端讀控制邏輯模塊根據第一輸入輸出埠GPIO1傳來的中斷信號來確定是否啟動讀數據操作,並通過第二輸入輸出埠GPIO2控制FPGA端讀控制邏輯模塊選擇本次讀數據操作將讀取四片RAM中的哪一片。在DSP端讀控制邏輯模塊裡設置兩個計數器,中斷服務函數計數器用來在第一輸入輸出埠GPIO1的中斷服務函數裡進行加1計數,計的是中斷信號的次數,稱為主計數器;主函數計數器用來在主函數裡進行SRIO讀數據操作次數的計數。當DSP收到一次FPGA端寫控制邏輯模塊發來的讀數據中斷信號時,觸發DSP端讀控制邏輯模塊的第一輸入輸出埠GPIO1中斷,進入中斷服務函數,計中斷信號的次數,DSP端讀控制邏輯模塊的主函數一直將輔計數器和主計數器進行比較,如果輔計數器小於主計數器,則在主函數裡執行相應的SRIO讀數據操作,執行完成後,將輔計數器加1計數,主函數一直在循環重複執行以上的操作。一般對於塊處理的方式,即DSP收滿一定數據量的數據時,才進行最終的信號處理,對於大數據量的數據,在FPGA中開闢不了這麼大的RAM,所以只能分多次通過SRIO接口傳輸,假設DSP收滿大小為M字節的數據時才進行處理,即此時需要FPGA發送M/S次 中斷信號至DSP,對第一次先收滿的M字節數據量的數據,DSP端讀控制邏輯模塊先將其存放在DSP端中的第五片RAM中,對第二次收滿的M字節數據量的數據,先將其存在DSP端中的第六片RAM中,即DSP端在存數據的時候採用的是兩片RAM的桌球結構,DSP端讀控制邏輯模塊在存數據至第六片RAM空間時,DSP的另外一個核(0核)將會採用直接存儲器存取(Direct Memory Access,DMA)的方式將第五片RAM空間的數據搬移至DSP的內存做最終的信號處理,由於從第六片RAM、第五片RAM空間DMA搬移數據和SRIO接口從FPGA讀數據寫進第五片RAM、第六片RAM空間這兩個過程中,將會存在DDR3存儲器數據總線衝突的問題,這樣的後果就是SRIO讀數據操作的時間被大大地拉長,如果此時SRIO讀數據操作在GPIO1中斷服務函數裡進行,將會導致下一次GPIO1中斷信號到來時,當前SRIO讀數據操作還沒有結束,這樣積累下去,將會存在多級GPIO1中斷嵌套的問題,但是實際上DSP的GPIO中斷最多只能嵌套一次,所以將會導致DSP端不響應某次GPIO1中斷信號,即漏掉這次GPIO1中斷信號,由此會導致DSP端的誤判,將會導致DSP端收的數據量和FPGA端實際發的數據量大小不一致,所以此時在GPIO1中斷服務函數裡只進行加一計數,複雜的SRIO讀數據操作在主函數裡進行,此時不會導致GPIO1中斷信號的丟失,確保傳輸數據的可靠穩定。

實施例

本實例基於FPGA和DSP實現,FPGA為xilinx公司的kintex-7系列的XC7K325T型號,DSP為TI公司的C6000系列的多核DSP TMS320C6678型號,TMS320C6678共包含8個核,本實施例具體為雷達信號處理器FPGA和DSP之間的數據傳輸SRIO用戶接口電路,FPGA的主工作時鐘為200MHz,SRIO底層接口模塊為乘4模式,每一條鏈路速率為5Gbps,SRIO讀數據操作在多核DSP的6核執行,將DSP的DDR3裡的數據搬移至內存等待處理的這一操作在多核DSP的0核執行,本設計針對的是高重頻脈衝都卜勒雷達體制下的雷達信號處理,每一個脈衝重複周期(Pulse Repetition Period,PRI)的時間為1.33us,每一個相參處理時間(coherent processing interval,CPI)的時間為8192個PRI的時間10.895ms,在FPGA端主要對每一個PRI的雷達回波數據進行匹配濾波預處理這一操作,在DSP端主要對一個相參處理時間內的數據做動目標檢測等處理,總之在DSP端必須收滿一個CPI的數據才能進行最終的信號處理,此時每一個PRI的回波數據FPGA預處理後的數據量共有44個採樣點,每一個PRI回波數據共包含352位元組,每一個CPI的回波數據共包含8192個PRI回波數據量2883584位元組,此時如果 每一次SRIO讀操作的數據量太大,在FPGA中開闢的RAM的空間也需要很大,同時也會導致傳輸穩定性降低,如果每一次SRIO讀操作的數據量太小時,執行次數太頻繁,也會導致傳輸數據的不穩定,大大降低SRIO數據傳輸的效率,因此設計每一次SRIO讀數據操作的數據量為32個PRI的雷達回波數據量11264位元組,則每一個CPI的時間內的回波數據共需要分成256次通過SRIO接口傳輸至DSP,即每一個CPI的數據傳輸,FPGA都需要發送256次中斷信號至DSP。

首先,在FPGA端建立四片RAM空間,每一片RAM空間的深度為2048,數據位寬64位,每一片RAM的大小為16384位元組,四片RAM空間的大小是一樣的,每一片RAM空間的地址線有11根,在FPGA中將四片RAM空間設置在一起,做成連續的一個大片RAM空間,此時這一個大的RAM的深度為8192,數據位寬64,此時這一個大的RAM的地址線共包含13根ADDR[12:0],可以按照地址空間依次分成四部分,當最高兩位地址線ADDRA[12:11]的值為0時,即此時指向了第1片RAM空間,當最高兩位地址線ADDRA[12:11]的值為1時,即此時指向了第2片RAM空間,當最高兩位地址線ADDRA[12:11]的值為2時,即此時指向了第3片RAM空間,當最高兩位地址線ADDRA[12:11]的值為3時,即此時指向了第4片RAM空間,寫使能線、寫地址線ADDRA[12:0]、寫數據線和讀使能線、讀地址線ADDRB[12:0]、讀數據線是獨立的總線,處於兩個時鐘域,寫部分的總線處於FPGA的主工作時鐘域,讀部分的總線處於SRIO接口的工作時鐘域,當FPGA對回波數據進行預處理後,即往這一片RAM寫每一個PRI預處理後的回波數據,第一次先寫的RAM的是第1片RAM,此時RAM寫地址線的最高兩位值ADDRA[12:11]為0,當寫滿32個PRI的回波數據時,同時通過FPGA輸出引腳給出一個高電平(高電平時間持續4us)脈衝作為DSP的中斷信號,FPGA這一輸出引腳和DSP的GPIO8管腳相連,在DSP中將GPIO8管腳設置為中斷信號管腳,當GPIO8有高電平脈衝時,DSP即會響應對應的GPIO8中斷,進入GPIO8的中斷服務函數裡執行,FPGA端給出中斷信號後,即將RAM寫地址線的最高兩位值ADDRA[12:11]加1,即此時這一大片RAM指向了第2片RAM,當第二波回波數據到來時,此時寫進去的空間即是第2片RAM空間,寫滿32個PRI的回波數據後,將RAM寫地址線的最高兩位值ADDRA[12:11]加1,則指向了第3片RAM空間,第三波數據即寫進了第3片RAM空間,寫滿32個PRI的回波數據後,將RAM寫地址線的最高兩位值ADDRA[12:11]加1,則指向了第4片RAM空間,第四波回波數據即寫進了第4片RAM空間,RAM的寫控制邏輯一直循環執行以上過程。

然後,在DSP端,當DSP讀控制邏輯模塊收到FPGA發來的中斷信號時,DSP的6核進入中斷服務函數,在中斷服務函數裡將主計數器加1,加完即退出中斷服務函數,6核的主函數會一直監測主計數器和輔計數器的大小,當輔計數器小於主計數器時,即執行相應的SRIO讀數據操作,每一次SRIO讀操作的數據量為32個PRI回波的數據量11264位元組,每一次SRIO讀操作執行之前都會將GPIO1置為高電平,GPIO1和FPGA端的一個輸入引腳相連,執行完成後,再將GPIO1置為低電平,在FPGA RAM的讀地址線的最高兩位值ADDRB[12:11]最初為0,即讀數據指向的是第1片RAM,在FPGA端一直監測和GPIO11相連的一個輸入引腳,如果監測出有下降沿的存在,即將這一RAM的最高兩位地址線的值ADDRB[12:11]加1,則下一次SRIO讀數據操作指向的RAM為第2片RAM,這個過程也是按照第1片RAM、第2片RAM、第3片RAM、第4片RAM、第1片RAM…的順序循環進行的。

最後,在DSP端,6核通過SRIO底層接口讀取到的數據存放在DSP的外部DDR3存儲器中,兩片桌球RAM的地址空間分別為0x82000000和0x83000000,0x82000000為第5片DDR3存儲器的地址,0x83000000為第6片DDR3存儲器的地址,DSP每收滿一個CPI的回波預處理後的2883584位元組數據,共需要通過256次中斷信號,即256次SRIO讀數據操作,DSP收滿第一個CPI的回波數據存放在第5片DDR3存儲器中,下一個CPI的回波預處理後的數據存放在第6片DDR3存儲器中,在收這一個CPI的回波數據的同時,0核會將第5片DDR3存儲器的回波數據通過DMA搬移至DSP的內存中等待進一步的信號處理,這個過程一直在循環執行。

至此,從FPGA至DSP的整個SRIO用戶接口電路的設計與實現已經完成,其中很多方法都是根據實際調試經驗而提出的,目的都是為了避免傳輸錯誤,規避錯誤,修正錯誤,保證高速數據傳輸的穩定性和可靠性。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀