本發明涉及可編程邏輯陣列(FPGA)技術領域,特別是涉及一種FPGA存儲資源測試系統、方法及裝置。
背景技術:
FPGA由于其具有可編程、靈活性及高吞吐量等特性廣泛應用于數字信號采集、壓縮、傳輸及處理等領域。為了驗證FPGA是否達到預期的技術指標,需要對FPGA器件進行測試。依據測試目的的不同可以分為達標測試和摸高測試,達標測試是為了驗證FPGA器件與技術指標的符合性,而摸高測試則是為了驗證FPGA器件超出預期技術指標的余量,其反映了FPGA器件的實際性能。
傳統方法對FPGA器件的片內存儲資源進行測試時,涉及輸入激勵模塊、待測模塊及輸出比較模塊,在高速FPGA器件的測試中,為了保證測試系統時序能夠正常收斂,各個模塊之間的信號交互顯得尤為重要。然而對于高速FPGA器件,當待測的FPGA片內存儲資源的速度越來越高時,除待測存儲資源模塊之外的其它資源限制了測試速度的提升,因此存在時序收斂較難以保證、極限速度測試難以達到的問題,難以保障測試質量。
技術實現要素:
基于此,本發明實施例提供了FPGA存儲資源測試系統、方法及裝置,能夠提升測試時序收斂特性。
本發明一方面提供一種FPGA存儲資源測試系統,包括:
時鐘管理模塊、數據激勵模塊、跨時鐘域數據傳輸模塊、數據比較模塊以及結果顯示模塊;
所述時鐘管理模塊用于向所述數據激勵模塊和結果顯示模塊提供第一時鐘信號,以及向所述數據比較模塊和FPGA片內的待測存儲資源提供第二時鐘信號;所述第二時鐘信號的時鐘頻率高于所述第一時鐘信號的時鐘頻率;
所述數據激勵模塊用于產生隨機數據,并將所述隨機數據緩存到所述跨時鐘域數據傳輸模塊;
所述待測存儲資源從所述跨時鐘域數據傳輸模塊讀取所述隨機數據,并根據讀取到的隨機數據進行寫操作;
所述數據比較模塊用于從所述跨時鐘域數據傳輸模塊讀取所述隨機數據,以及讀取寫入所述待測存儲資源的數據,將讀取到的寫數據與讀取到的隨機數據進行比較,根據比較結果判斷所述待測存儲資源在第二時鐘信號下的讀寫測試是否合格;
所述結果顯示模塊用于對所述待測存儲資源的所述讀寫測試結果進行顯示。
本發明另一方面提供一種FPGA存儲資源測試方法,包括:
向預設的數據激勵模塊提供第一時鐘信號,同時向FPGA片內的待測存儲資源提供第二時鐘信號;所述第二時鐘信號的時鐘頻率高于所述第一時鐘信號的時鐘頻率;
在第二時鐘信號下讀取所述數據激勵模塊在第一時鐘信號下產生的隨機數據,并讀取所述待測存儲資源在第二時鐘信號下根據所述數據激勵模塊產生的隨機數據進行寫操作的寫數據;
將讀取到的寫數據與讀取到的隨機數據進行比較,根據比較結果判斷所述待測存儲資源在第二時鐘信號下的讀寫測試是否合格。
本發明又一方面提供一種FPGA存儲資源測試裝置,包括:
時鐘控制單元,用于向預設的數據激勵模塊提供第一時鐘信號,同時向FPGA片內的待測存儲資源提供第二時鐘信號;所述第二時鐘信號的時鐘頻率高于所述第一時鐘信號的時鐘頻率;
數據獲取單元,用于在第二時鐘信號下讀取所述數據激勵模塊在第一時鐘信號下產生的隨機數據,并讀取所述待測存儲資源在第二時鐘信號下根據所述數據激勵模塊產生的隨機數據進行寫操作的寫數據;
判斷單元,用于將讀取到的寫數據與讀取到的隨機數據進行比較,根據比較結果判斷所述待測存儲資源在第二時鐘信號下的讀寫測試是否合格。
基于上述實施例提供的FPGA存儲資源測試系統、方法及裝置,向所述數據激勵模塊和結果顯示模塊提供第一時鐘信號,以及向所述數據比較模塊和FPGA片內的待測存儲資源提供第二時鐘信號;所述第二時鐘信號的時鐘頻率高于所述第一時鐘信號的時鐘頻率;通過所述跨時鐘域數據傳輸模塊用于實現第一時鐘信號的時鐘域與第二時鐘信號的時鐘域的數據傳輸。由此能夠減少其它資源的對待測存儲資源模塊的速度影響,提升測試時序收斂特性。
附圖說明
圖1為一實施例的FPGA存儲資源測試系統的示意性結構圖;
圖2為另一實施例的FPGA存儲資源測試系統的示意性結構圖;
圖3為另一實施例的FPGA存儲資源測試系統的示意性結構圖;
圖4為一實施例的FPGA存儲資源測試方法的示意性流程圖;
圖5為一實施例的FPGA存儲資源測試裝置的示意性結構圖。
具體實施方式
為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
圖1為一實施例的FPGA存儲資源測試系統的示意性結構圖;如圖1所示,本實施例中的FPGA存儲資源測試系統包括:時鐘管理模塊、數據激勵模塊、跨時鐘域數據傳輸模塊、數據比較模塊以及結果顯示模塊。其中各模塊以及基于所述系統的測試原理說明如下。
其中,所述時鐘管理模塊用于向所述數據激勵模塊和結果顯示模塊提供第一時鐘信號CLK1,以及向所述數據比較模塊和FPGA片內的待測存儲資源提供第二時鐘信號CLK2;所述第二時鐘信號CLK2的時鐘頻率高于所述第一時鐘信號CLK1的時鐘頻率。在實際應用中,CLK1可以與外部輸入時鐘信號同頻率,CLK2采用倍頻技術實現。通過低頻時鐘域用來驅動數據激勵模塊和結果顯示模塊,通過高頻時鐘域用來驅動待測存儲資源和數據比較模塊,其目的是以較低的時鐘頻率來保證數據激勵模塊具備較好的時序收斂特性。
基于上述系統的測試原理為:所述數據激勵模塊用于產生隨機數據,并將所述隨機數據緩存到所述跨時鐘域數據傳輸模塊。所述待測存儲資源從所述跨時鐘域數據傳輸模塊讀取所述隨機數據,并根據讀取到的隨機數據進行寫操作;所述數據比較模塊用于從所述跨時鐘域數據傳輸模塊讀取所述隨機數據,以及讀取寫入所述待測存儲資源的數據,將讀取到的寫數據與讀取到的隨機數據進行比較,根據比較結果判斷所述待測存儲資源在第二時鐘信號下的讀寫測試是否合格,將讀寫測試結果輸出至結果顯示模塊;所述結果顯示模塊用于對所述待測存儲資源的所述讀寫測試結果進行顯示。
其中,所述跨時鐘域數據傳輸模塊用于實現第一時鐘信號的時鐘域與第二時鐘信號的時鐘域的數據傳輸;在一優選實施例中,所述跨時鐘域數據傳輸模塊采用雙口RAM(Random Access Memory)或者FIFO(First-Input-First-Output)存儲器實現。在實際測試中,還可以與待測存儲資源一樣采用FPGA器件的片內存儲資源。
在一優選實施例中,在所述數據比較模塊中,將讀取到的寫數據與讀取到的隨機數據進行比較,根據比較結果判斷所述待測存儲資源在第二時鐘信號下的讀寫測試是否合格的實施方式可為:若本次從所述待測存儲資源讀取到的數據與本次從所述跨時鐘域數據傳輸模塊讀取到的隨機數據一致,則判斷為所述待測存儲資源的本次讀寫測試通過,否則,判斷為所述待測存儲資源的本次讀寫測試不通過。
在一優選實施例中,待測存儲資源在FPGA器件片內中可以配置為RAM、FIFO存儲器、移位寄存器等。
在一優選實施例中,參考圖2所示,所述FPGA存儲資源測試系統包括至少兩組數據激勵模塊、跨時鐘域數據傳輸模塊和數據比較模塊。所述至少兩組數據激勵模塊、跨時鐘域數據傳輸模塊和數據比較模塊均輸出讀寫測試結果至所述結果顯示模塊。并且,所述至少兩組數據激勵模塊、跨時鐘域數據傳輸模塊和數據比較模塊,分別與至少兩個待測存儲資源一一對應。由此通過實現對大規模待測存儲資源的測試,測試效率高。
基于上述實施例提供的FPGA存儲資源測試系統,時鐘管理模塊用于向所述數據激勵模塊和結果顯示模塊提供第一時鐘信號,以及向所述數據比較模塊和FPGA片內的待測存儲資源提供第二時鐘信號;所述第二時鐘信號的時鐘頻率高于所述第一時鐘信號的時鐘頻率;所述跨時鐘域數據傳輸模塊用于實現第一時鐘信號的時鐘域與第二時鐘信號的時鐘域的數據傳輸。由此能夠減少其它邏輯資源的對待測存儲資源模塊的速度影響,提升測試時序收斂特性;并且能夠適應大規模存儲資源的測試,測試覆蓋率好、操作簡單、實施成本低。
下面結合圖2,對本發明實施例的FPGA存儲資源測試系統及其測試原理做進一步的說明。
如圖2所示,所述FPGA存儲資源測試系統包括n組數據激勵模塊、跨時鐘域數據傳輸模塊和數據比較模塊,分別用于測試待測存儲資源1~待測存儲資源n。n組數據激勵模塊、跨時鐘域數據傳輸模塊和數據比較模塊均由同一個時鐘管理模塊提供時鐘信號。具體的,該系統的測試原理如下:
時鐘管理模塊(圖2中標識①):時鐘管理模塊的作用是通過輸入一個外部信號源來輸出兩個跨時鐘域的時鐘信號,低頻時鐘域用來驅動激勵和顯示模塊,高頻時鐘域用來驅動待測存儲資源和數據比較模塊。在實際應用中,CLK1可以與外部輸入時鐘信號同頻率,CLK2采用倍頻技術實現。
跨時鐘域數據傳輸模塊(圖2中標識②):該模塊可采用雙口RAM或者FIFO存儲器實現,目的是實現不同時鐘域的數據傳輸。在實際測試中,其可以與待測存儲資源一樣采用FPGA器件的片內存儲資源。
低頻時鐘域(圖2中標識③):CLK1為低頻時鐘域,其目的是以較低的時鐘頻率來保證數據激勵模塊具備較好的時序收斂特性。
高頻時鐘域(圖2中標識④):CLK2為高頻時鐘域,為了實現對FPGA器件高速片內存儲資源的速度測試,需要采用高頻時鐘域對FPGA器件的片內存儲資源進行數據讀寫測試。
待測存儲資源扁平化劃分(圖2中標識⑤):把FPGA器件片內存儲資源劃分為n個較小的存儲資源分別進行測試,通過此種方式可以降低存儲資源的地址長度,有利于測試系統收斂在一個較高的工作頻率上,避免除待測存儲資源以外的其它邏輯資源在測試速度上的限制。通過采用該劃分方法可以實現對FPGA器件內部大規模存儲資源的速度測試,并滿足測試系統時序收斂要求。
隨機數據激勵模塊(圖2中標識⑥):該模塊產生供待測存儲資源讀寫測試的隨機數據。
待測存儲資源模塊(圖2中標識⑦):待測存儲資源在FPGA器件片內中可以配置為RAM、FIFO、移位寄存器等。
數據比較模塊(圖2中標識⑧):該模塊把從待測存儲資源讀取到的寫數據與預期的數據(即數據激勵模塊產生的隨機數)進行比較,根據比較結果判定待測存儲資源的讀寫操作是否正確,為了保證數據的吞吐量和處理的實時性,其工作在高頻時鐘域。
結果顯示模塊(圖2中標識⑨):該模塊把不同數據比較模塊輸出的結果進行處理,并通過一定的方式進行顯示,以便觀察結果。
在另一優選實施例中,參考圖3所示,不同于圖2的FPGA存儲資源測試系統,可設置兩個時鐘管理模塊,以更適應于FPGA器件片內存儲資源速度的摸高測試。其中,第一時鐘管理子模塊用于向所述數據激勵模塊和結果顯示模塊提供第一時鐘信號;第二時鐘管理子模塊用于向所述數據比較模塊和FPGA片內的待測存儲資源提供所述第二時鐘信號。圖3中通過兩個時鐘管理模塊來驅動不同的時鐘域,其中CLK2時鐘域可以不斷增加外部輸入時鐘信號頻率,以便實現對待測存儲資源速度的摸高測試。
本發明上述實施例提出了跨時鐘域的FPGA器件片內存儲資源速度測試系統,針對提升FPGA器件存儲資源測試系統的時序余量,設計了扁平化測試策略,盡可能減少激勵模塊、控制模塊及顯示模塊對測試系統速度的限制。并且通過采用跨時鐘域設計,可以把測試系統的數據激勵模塊、結果顯示模塊與待測存儲資源模塊分離開來,使外圍的數據激勵模塊及結果顯示模塊工作在較低的時鐘頻率上,避免外圍測試控制信號、激勵信號及顯示信號對高速待測存儲資源速度測試的影響,提升時序余量;以及,通過采用扁平化測試策略可以提升測試系統時序余量,以便實現在滿足測試系統時序要求的前提下對高速大規模FPGA器件的存儲資源進行全覆蓋率的測試。此外,本發明上述實施例的FPGA存儲資源測試系統及方法,能夠覆蓋對FPGA器件片內存儲資源的速度達標項測試及速度摸高項測試。
基于上述實施例中的FPGA存儲資源測試系統的思想,本發明還提供了一種FPGA存儲資源測試方法的實施例。如圖4所示,本實施例的FPGA存儲資源測試方法包括步驟:
S11,向預設的數據激勵模塊提供第一時鐘信號,同時向FPGA片內的待測存儲資源提供第二時鐘信號;所述第二時鐘信號的時鐘頻率高于所述第一時鐘信號的時鐘頻率;
S12,在第二時鐘信號下讀取所述數據激勵模塊在第一時鐘信號下產生的隨機數據,并讀取所述待測存儲資源在第二時鐘信號下根據所述數據激勵模塊產生的隨機數據進行寫操作的寫數據;
S13,將讀取到的寫數據與讀取到的隨機數據進行比較,根據比較結果判斷所述待測存儲資源在第二時鐘信號下的讀寫測試是否合格。
在一優選實施例中,步驟S11中還包括:同時向預設的結果顯示模塊提供第一時鐘信號;對應的,在步驟S13之后還包括步驟:將讀寫測試結果發送至所述結果顯示模塊,通過所述結果顯示模塊在第一時鐘信號下對讀寫測試結果進行顯示。
通過上述實施例的FPGA存儲資源測試方法,通過不同的時鐘信號將數據激勵模塊與待測存儲資源模塊分離開來,使外圍的數據激勵模塊工作在較低的時鐘頻率上,避免外圍測試控制信號、激勵信號及顯示信號對高速待測存儲資源速度測試的影響,可提升時序余量。
需要說明的是,對于前述的各方法實施例,為了簡便描述,將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本發明并不受所描述的動作順序的限制,因為依據本發明,某些步驟可以采用其它順序或者同時進行。此外,還可對上述實施例進行任意組合,得到其他的實施例。
基于與上述實施例中的FPGA存儲資源測試方法相同的思想,本發明還提供FPGA存儲資源測試裝置,該裝置可用于執行上述FPGA存儲資源測試方法。為了便于說明,FPGA存儲資源測試裝置實施例的結構示意圖中,僅僅示出了與本發明實施例相關的部分,本領域技術人員可以理解,圖示結構并不構成對裝置的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。
圖5為本發明一實施例的FPGA存儲資源測試裝置的示意性結構圖;如圖5所示,本實施例的FPGA存儲資源測試裝置包括:時鐘管理模塊和跨時鐘域數據傳輸模塊,還包括分別與所述時鐘管理模塊連接的數據激勵模塊、時鐘控制單元510、數據獲取單元520以及判斷單元530。各模塊說明如下:
上述時鐘控制單元510,用于向預設的數據激勵模塊提供第一時鐘信號,同時向FPGA片內的待測存儲資源提供第二時鐘信號;所述第二時鐘信號的時鐘頻率高于所述第一時鐘信號的時鐘頻率;
上述數據獲取單元520,用于在第二時鐘信號下讀取所述數據激勵模塊在第一時鐘信號下產生的隨機數據,并讀取所述待測存儲資源在第二時鐘信號下根據所述數據激勵模塊產生的隨機數據進行寫操作的寫數據;
上述判斷單元530,用于將讀取到的寫數據與讀取到的隨機數據進行比較,根據比較結果判斷所述待測存儲資源在第二時鐘信號下的讀寫測試是否合格。
需要說明的是,上述示例的FPGA存儲資源測試裝置的實施方式中,各模塊之間的信息交互、執行過程等內容,由于與本發明前述方法實施例基于同一構思,其帶來的技術效果與本發明前述方法實施例相同,具體內容可參見本發明方法實施例中的敘述,此處不再贅述。
此外,上述示例的FPGA存儲資源測試裝置的實施方式中,各功能模塊的邏輯劃分僅是舉例說明,實際應用中可以根據需要,例如出于相應硬件的配置要求或者軟件的實現的便利考慮,將上述功能分配由不同的功能模塊完成,即將所述FPGA存儲資源測試裝置的內部結構劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。其中各功能模既可以采用硬件的形式實現,也可以采用軟件功能模塊的形式實現。
本領域普通技術人員可以理解,實現上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質中,作為獨立的產品銷售或使用。所述程序在執行時,可執行如上述各方法的實施例的全部或部分步驟。其中,所述的存儲介質可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機存儲記憶體(Random Access Memory,RAM)等。
在上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述的部分,可以參見其它實施例的相關描述。
以上所述實施例僅表達了本發明的幾種實施方式,不能理解為對本發明專利范圍的限制。應當指出的是,對于本領域的普通技術人員來說,在不脫離本發明構思的前提下,還可以做出若干變形和改進,這些都屬于本發明的保護范圍。因此,本發明專利的保護范圍應以所附權利要求為準。