專利名稱:一種調整fpga總線延時的方法及裝置的制作方法
技術領域:
本發(fā)明涉及到現(xiàn)場可編程門陣列(簡稱,F(xiàn)PGA)原型驗證系統(tǒng)搭建技術,特別涉及到一種調整FPGA總線延時的方法及裝置。
背景技術:
FPGA原型驗證是一種在FPGA上搭建片上系統(tǒng)(簡稱,SoC)和專用集成電路(簡稱,ASIC)設計原型的方法學,可以方便的進行硬件驗證和早期軟件開發(fā)。此方法學也稱為ASIC原型驗證或SoC原型驗證。系統(tǒng)原型驗證是SoC成功新的關鍵因素。隨著SoC設計越來越復雜,設計者們發(fā)現(xiàn)由于仿真速度和建模的限制,僅僅依靠軟件仿真很難驗證硬件設計的正確性。在FPGA原 型上運行SoC設計是驗證硬件設計正確性的可靠方法,而原型驗證平臺的運行頻率直接影響驗證效率以及驗證范圍。FPGA原型驗證平臺的運行頻率取決于兩個方面,一個是FPGA內(nèi)部的邏輯復雜度,另外一個是驗證平臺中FPGA之間硬件互連速度,在實際的FPGA原型驗證平臺中需要保證FPGA之間的硬件互連速度必須大于系統(tǒng)運行速度,而FPGA之間的總線同步問題直接制約系統(tǒng)的運行速度。針對FPGA之間大量并行總線的同步問題,現(xiàn)在的FPGA通常都帶有管腳輸入輸出(簡稱,10)延時單元(簡稱,IO DELAY),通過IO DELAY單元分別調整各個管腳的輸入輸出延時,來實現(xiàn)并行總線傳輸同步,通常IO DELAY單元調整管腳延時的方式是延時單位步進調整的方式。現(xiàn)有技術調整FPGA總線延時處理流程如圖I所示步驟一將主FPGA和從FPGA按照設計的運行頻率運行起來并使用總線進行相互通訊。步驟二 使用示波器或者邏輯分析儀來捕獲總線的輸出信號波形;如果發(fā)現(xiàn)總線通訊出現(xiàn)錯誤,執(zhí)行步驟三,否則執(zhí)行步驟五;步驟三,判斷是否有管腳設定的延時已達到系統(tǒng)設定的最大值,如果是,執(zhí)行步驟五,否則,執(zhí)行執(zhí)行步驟四。步驟四根據(jù)示波器或者邏輯分析儀獲取的信息將總線中延時較小的管腳使用IOdelay模塊將其做一定的延時,執(zhí)行步驟一;步驟五記錄所有管腳的IO delay中使用的延時單元數(shù)據(jù),完成管腳延時處理?,F(xiàn)有技術的上述方法的問題在于FPGA的總線管腳通常多達幾百根,手動通過示波器或者邏輯分析儀去調試每一個管腳的輸入輸出延時需要耗費大量的時間,效率較低,不利于提高研發(fā)速度。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提出了一種檢測FPGA總線的方法及裝置,以解決現(xiàn)有技術存在的上述問題。本發(fā)明的技術方案是一種調整FPGA總線延時的方法,包括步驟I、將主FPGA和從FPGA之間的互連總線分為至少一組;依次對每組總線執(zhí)行如下操作;步驟2、主FPGA將該組總線的所有信號線的狀態(tài)反轉;步驟3、從FPGA檢測到任何一條該組總線的信號線上的信號發(fā)生反轉時,記錄從FPGA檢測到的該組總線所有信號線上的信號;步驟4、判斷是否存在沒有檢測到狀態(tài)反轉的信號線;
步驟5、如果存在沒有檢測到狀態(tài)反轉的信號線,在主FPGA和從FPGA中選擇一個FPGA,將所選擇的FPGA的該組總線中檢測到狀態(tài)反轉的信號線的管腳延時一個延時單位;返回執(zhí)行步驟2;其中,所選擇的FPGA應滿足,被選擇的FPGA的該組總線的所有管腳延時都未達到系統(tǒng)設定最大值;步驟6、如果主FPGA和從FPGA都有延時已達到系統(tǒng)設定最大值的管腳或檢測到所有信號線的信號都正確,記錄主FPGA和從FPGA所有管腳的延時單位數(shù)據(jù);結束該組總線延時調整。所述將主FPGA和從FPGA之間連接的總線分為至少一組進一步包括根據(jù)總線接口類型將同一接口類型的總線分在一組。所述步驟4包括從FPGA將檢測到的各信號線信號發(fā)送給主FPGA ;主FPGA判斷從FPGA檢測到的各信號線信號是否發(fā)生了狀態(tài)反轉。所述步驟4包括從FPGA判斷是否有信號線檢測到的信號沒有發(fā)生狀態(tài)反轉。所述方法進一步包括在完成所有組總線延時調整后;所述主FPGA分別在不同的運行頻率下通過互連總線發(fā)送數(shù)據(jù)給從FPGA,將從FPGA能夠正確接收數(shù)據(jù)的最高運行頻率設置為FPGA互連總線的最高運行頻率。所述主FPGA分別在不同的運行頻率下通過互連總線發(fā)送數(shù)據(jù)給從FPGAJfWFPGA能夠正確接收數(shù)據(jù)的最高運行頻率設置為FPGA互連總線的最高運行頻率進一步包括步驟701、主FPGA將互連總線的當前運行頻率設置為系統(tǒng)所能提供的最高運行頻率;步驟702、主FPGA通過互連總線發(fā)送數(shù)據(jù)給從FPGA ;在從FPGA接收到數(shù)據(jù)后,檢測接收到的數(shù)據(jù)是否正確;步驟703、如果接收到的數(shù)據(jù)不正確,主FPGA將當前運行頻率降低一個頻率步進單位作為新的當前運行頻率,返回步驟702 ;如果接收到的數(shù)據(jù)正確,設置當前運行頻率為FPGA互連總線的最高運行頻率;其中,所述頻率步進單位為預先設置的兩個相鄰運行頻率的頻率差。
所述主FPGA分別在不同的運行頻率下通過互連總線發(fā)送數(shù)據(jù)給從FPGAJfWFPGA能夠正確接收數(shù)據(jù)的最高運行頻率設置為FPGA互連總線的最高運行頻率進一步包括步驟701、主FPGA將互連總線的當前運行頻率設置為系統(tǒng)所能提供的最低運行頻率; 步驟702、主FPGA通過互連總線發(fā)送數(shù)據(jù)給從FPGA ;在從FPGA接收到數(shù)據(jù)后,檢測接收數(shù)據(jù)是否正確;步驟703、如果接收到的數(shù)據(jù)正確,主FPGA將當前運行頻率增加一個頻率步進單位作為新的當前運行頻率,返回步驟702 ;如果接收到的數(shù)據(jù)不正確,設置FPGA互連總線的最聞運行頻率=當如運行頻率_頻率步進單位;其中,所述頻率步進單位為預先設置的兩個相鄰運行頻率的頻率差。所述步驟702進一步包括所述主FPGA通過所述互連總線連續(xù)發(fā)送N次數(shù)據(jù)到從FPGA ;在從FPGA接收到所有數(shù)據(jù)后,對從FPGA接收到的數(shù)據(jù)進行檢測,如果有任何一次數(shù)據(jù)不正確,則判定接收數(shù)據(jù)不正確。其中,所述N的取值范圍為5 10。優(yōu)選的,所述主FPGA通過所述互連總線連續(xù)發(fā)送N次數(shù)據(jù)到從FPGA包括所述主FPGA發(fā)送數(shù)據(jù)的方法為,第一次發(fā)送數(shù)據(jù)時,在所述互連總線的2m位發(fā)送0 ;在所述互連總線的2m+l位發(fā)送I ;下一次發(fā)送數(shù)據(jù)時,將所述互連總線的所有位反轉發(fā)送;其中,所述m = 0,1,2......M/2 ;所述M為互連總線位數(shù)。本發(fā)明還公開了一種調整FPGA總線延時的裝置,包括主FPGA,從FPGA,互連總線;所述主FPGA通過互連總線與所述從FPGA連接;所述FPGA包括,總控制模塊,產(chǎn)生總線延時檢測信號和數(shù)據(jù),發(fā)送到總線驅動模塊,從所述總線驅動模塊接收來自互連總線的信號和數(shù)據(jù);控制總線信號延時模塊設置各管腳延時單元數(shù)據(jù);檢測接收到的信號和數(shù)據(jù)的正確性;掃描結果記錄模塊,從所述總線信號延時模塊獲取并記錄FPGA互連總線各管腳的延時單元數(shù)據(jù);總線信號延時模塊,在總控制模塊控制下設置互連總線管腳的延時單元數(shù)據(jù);在總線延時調整完成時將各管腳延時單元數(shù)據(jù)發(fā)送到所述掃描結果記錄模塊;總線驅動模塊,從所述總控制模塊接收信號和數(shù)據(jù),驅動所述互連總線發(fā)送數(shù)據(jù);從所述互連總線接收數(shù)據(jù),發(fā)送給所述總控制模塊。主FPGA通訊模塊,從所述主FPGA的總控制模塊接收控制信息發(fā)送給所述從FPGA ;從所述從FPGA接收確認信息及接收到的信號和數(shù)據(jù)發(fā)送給所述主FPGA的總控制模塊。從FPGA通訊模塊,從所述從FPGA的總控制模塊接收確認信息及接收到的信號和數(shù)據(jù)發(fā)送給所述主FPGA ;從所述主FPGA接收控制信息發(fā)送給所述從FPGA的總控制模塊。進一步的,所述總控制模塊設置所述FPGA互連總線的當前運行速率。
與現(xiàn)有技術相比,本發(fā)明的技術方案通過檢測從FPGA接收到的各信號線信號的正確性,在有信號線接收不正確時增加接收正確的信號線的延時的方式,實現(xiàn)了自動調整FPGA互連總線各信號線所需延時單元數(shù)據(jù),大大縮短了 FPGA互連總線延時調整的時間,提高了調整效率。同時,本發(fā)明的優(yōu)選方案將FPGA互連總線按照接口類型進行分組調整,實現(xiàn)了對不同類型的總線能設置各自不同的最佳延時單元數(shù)據(jù)的功能,提高了互連總線延時單元數(shù)據(jù)的有效性。在本發(fā)明的另一優(yōu)選方案中,通過對不同運行頻率下互連總線數(shù)據(jù)傳輸正確性的檢驗,實現(xiàn)了自動獲取互連總線最聞運行頻率的功能,從而進一步提聞了 FPGA原型驗證平臺的搭建效率。
圖I是本發(fā)明具體實施例I流程2是本發(fā)明具體實施例2和具體實施例3總體流程3是本發(fā)明具體實施例2步驟9流程圖 圖4是本發(fā)明具體實施例3步驟9流程5是本發(fā)明具體實施例4裝置結構圖
具體實施例方式為進一步說明本發(fā)明的技術方案,下面給出具體實施例并結合附圖詳細說明。具體實施例I本實施例為本發(fā)明調整FPGA總線延時方法的一種優(yōu)選實施方式,具體流程如圖I所示,包括I、將主FPGA和從FPGA之間的互連總線分為至少一組;本實施例中,根據(jù)互連總線的接口類型將互連總線分為3組,總線I、總線2和總線3,相同接口類型的總線分在一組;2、主FPGA選擇一組總線;3、主FPGA將該組總線的所有信號線的狀態(tài)反轉;4、從FPGA檢測到任何一條該組總線的信號線上的信號發(fā)生反轉時,記錄從FPGA檢測到的該組總線所有信號線上的信號;5、判斷是否存在沒有檢測到狀態(tài)反轉的信號線;501、從FPGA將接收到的各信號線信號通過從FPGA通訊模塊發(fā)送給主FPGA ;主FPGA判斷從FPGA檢測到的各信號線信號是否發(fā)生了狀態(tài)反轉,如果存在沒有檢測到狀態(tài)反轉的信號線執(zhí)行步驟6 ;否則執(zhí)行步驟7 ;6、如果存在沒有檢測到狀態(tài)反轉的信號線,在主FPGA和從FPGA中選擇一個該組總線所有管腳延時都未達到系統(tǒng)設定最大值的FPGA,將所選擇的FPGA中所有接收到的信號正確的信號線對應的管腳延時一個延時單位;返回執(zhí)行步驟3 ;601、主FPGA判斷自己的該組總線管腳中是否有延時已達到系統(tǒng)設定最大值的管腳;如果有執(zhí)行步驟602,否則執(zhí)行步驟605 ;602,主FPGA將各信號線的判斷結果發(fā)送給從FPGA ;603、從FPGA判斷自己的該組總線管腳中是否有延時已達到系統(tǒng)設定最大值的管腳,如果有執(zhí)行步驟7,否則執(zhí)行步驟604 ;604、從FPGA將自己的該組總線中檢測到狀態(tài)反轉的信號線的管腳延時一個延時單位,返回步驟3;605、主FPGA將自己的該組總線中檢測到狀態(tài)反轉的信號線的管腳延時一個延時單位,返回步驟3;7、主FPGA和從FPGA分別記錄各自該組總線所有管腳的延時單位數(shù)據(jù);
8、如果還有總線未進行延時調整,主FPGA選擇下一組未進行延時檢測的總線,執(zhí)行步驟3 ;否則結束FPGA總線延時調整。具體實施例2本實施例為本發(fā)明的調整FPGA總線延時方法的又一種優(yōu)選實施方式,總體流程如圖2所示,包括步驟I 4與具體實施例I相同;5、從FPGA判斷是否有信號線檢測到的信號沒有發(fā)生反轉,如果有信號線檢測到的信號沒有發(fā)生反轉執(zhí)行步驟6,否則執(zhí)行步驟7 ;6、如果有信號線檢測到的信號沒有發(fā)生反轉,在主FPGA和從FPGA中選擇一個該組總線所有管腳延時都未達到系統(tǒng)設定最大值的FPGA,將所選擇的FPGA中所有接收到的信號正確的信號線對應的管腳延時一個延時單位;返回執(zhí)行步驟3 ;611、從FPGA判斷自己的該組總線管腳中是否有延時已達到系統(tǒng)設定最大值的管腳;如果有執(zhí)行步驟612,否則執(zhí)行步驟615 ;612,從FPGA將各信號線的判斷結果發(fā)送給主FPGA ;613、主FPGA判斷自己的該組總線管腳中是否有延時已達到系統(tǒng)設定最大值的管腳,如果有執(zhí)行步驟7,否則執(zhí)行步驟614 ;614、主FPGA將自己的該組總線中檢測到狀態(tài)反轉的信號線的管腳延時一個延時單位,返回步驟3;615、從FPGA將自己的該組總線中檢測到狀態(tài)反轉的信號線的管腳延時一個延時單位,返回步驟3;步驟7與具體實施例I相同;8、如果還有總線未進行延時調整,主FPGA選擇下一組未進行延時調整的總線,執(zhí)行步驟3 ;否則執(zhí)行步驟9 ;9、主FPGA分別在不同的運行頻率下通過互連總線發(fā)送數(shù)據(jù)給從FPGA,將從FPGA能夠正確接收數(shù)據(jù)的最高運行頻率設置為FPGA互連總線的最高運行頻率;本步驟流程如圖3所示;911、主FPGA將互連總線的當前運行頻率設置為系統(tǒng)所能提供的最高運行頻率;912、主FPGA通過互連總線發(fā)送數(shù)據(jù)給從FPGA ;在從FPGA接收到數(shù)據(jù)后,檢測接收到的數(shù)據(jù)是否正確;如果接收到的數(shù)據(jù)正確執(zhí)行步驟914 ;否則,執(zhí)行步驟913 ;其中,所述主FPGA通過所述互連總線連續(xù)發(fā)送N次數(shù)據(jù)到從FPGA ;N的取值范圍為5 10;本實施例中,N= 10;所述主FPGA發(fā)送數(shù)據(jù)的方法為,第一次發(fā)送數(shù)據(jù)時,在所述互連總線的2m位發(fā)送0 ;在所述互連總線的2m+l位發(fā)送I;下一次發(fā)送數(shù)據(jù)時,將所述互連總線的所有位反轉發(fā)送;其中,所述m = 0,1,2......M/2 ;所述M為互連總線位數(shù);所述檢測接收到的數(shù)據(jù)是否正確的方法為,從FPGA接收到所有數(shù)據(jù)后,對接收到的數(shù)據(jù)進行檢測,如果有任何一次數(shù)據(jù)不正確,則判定接收數(shù)據(jù)不正確;913、主FPGA將當前運行頻率降低一個頻率步進單位作為新的當前運行頻率,返回步驟912 ;914、設置當前運行頻率為FPGA互連總線的最高運行頻率。
其中,所述頻率步進單位為預先設置的兩個相鄰運行頻率的頻率差。具體實施例3本實施例為本發(fā)明的調整FPGA總線延時方法的又一種優(yōu)選實施方式,總體流程如圖2所示,包括步驟I 5與具體實施例I相同;6、如果有信號線檢測到的信號沒有發(fā)生反轉,在主FPGA和從FPGA中選擇一個該組總線所有管腳延時都未達到系統(tǒng)設定最大值的FPGA,將所選擇的FPGA中所有接收到的信號正確的信號線對應的管腳延時一個延時單位;返回執(zhí)行步驟3 ;621、主FPGA判斷自己的該組總線管腳中是否有延時已達到系統(tǒng)設定最大值的管腳;如果有執(zhí)行步驟622,否則執(zhí)行步驟627 ;622,主FPGA通過所選擇的總線發(fā)送信號給從FPGA ;所述發(fā)送信號為將所述總線的所有信號線的狀態(tài)反轉;623、從FPGA檢測到任何一條該組總線的信號線上的信號時,記錄從FPGA檢測到的該組總線所有信號線上的信號;624、從FPGA判斷是否有信號線檢測到的信號沒有發(fā)生反轉,如果有信號線檢測到的信號沒有發(fā)生反轉執(zhí)行步驟625,否則執(zhí)行步驟7 ;625、從FPGA判斷自己的該組總線管腳中是否有延時已達到系統(tǒng)設定最大值的管腳,如果有執(zhí)行步驟7,否則執(zhí)行步驟626 ;626、從FPGA將自己的該組總線中檢測到狀態(tài)反轉的信號線的管腳延時一個延時單位,返回步驟622 ;627、主FPGA將自己的該組總線中檢測到狀態(tài)反轉的信號線的管腳延時一個延時單位,返回步驟3;步驟7 8與具體實施例2相同;9、主FPGA分別在不同的運行頻率下通過互連總線發(fā)送數(shù)據(jù)給從FPGA,將從FPGA能夠正確接收數(shù)據(jù)的最高運行頻率設置為FPGA互連總線的最高運行頻率;本步驟流程如圖4所示;921、主FPGA將互連總線的當前運行頻率設置為系統(tǒng)所能提供的最低運行頻率;922、主FPGA通過互連總線發(fā)送數(shù)據(jù)給從FPGA ;在從FPGA接收到數(shù)據(jù)后,檢測接收到的數(shù)據(jù)是否正確;如果接收到的數(shù)據(jù)正確執(zhí)行步驟923 ;否則,執(zhí)行步驟924 ;其中,所述主FPGA通過所述互連總線連續(xù)發(fā)送N次數(shù)據(jù)到從FPGA ;N的取值范圍為5 10 ;本實施例中,N= 5 ;
所述主FPGA發(fā)送數(shù)據(jù)的方法為,第一次發(fā)送數(shù)據(jù)時,在所述互連總線的2m位發(fā)送0 ;在所述互連總線的2m+l位發(fā)送I ;下一次發(fā)送數(shù)據(jù)時,將所述互連總線的所有位反轉發(fā)送;其中,所述m = 0,1,2......M/2 ;所述M為互連總線位數(shù);所述檢測接收到的數(shù)據(jù)是否正確的方法為,從FPGA接收到所有數(shù)據(jù)后,對接收到的數(shù)據(jù)進行檢測,如果有任何一次數(shù)據(jù)不正確,則判定接收數(shù)據(jù)不正確;923、主FPGA將當前運行頻率增加一個頻率步進單位作為新的當前運行頻率,返回步驟922 ;924、設置FPGA互連總線的最高運行頻率=當前運行頻率-頻率步進單位。 其中,所述頻率步進單位為預先設置的兩個相鄰運行頻率的頻率差。具體實施例4本實施例為本發(fā)明調整FPGA總線延時裝置的一種優(yōu)選實施方式,具體結構如圖5所示,包括主FPGA,從FPGA,互連總線;所述主FPGA通過互連總線與所述從FPGA連接;所述FPGA包括,總控制模塊,產(chǎn)生總線延時檢測信號和數(shù)據(jù),發(fā)送到總線驅動模塊,從所述總線驅動模塊接收來自互連總線的信號和數(shù)據(jù);控制總線信號延時模塊設置各管腳延時單元數(shù)據(jù);檢測接收到的信號和數(shù)據(jù)的正確性;掃描結果記錄模塊,從所述總線信號延時模塊獲取并記錄FPGA互連總線各管腳的延時單元數(shù)據(jù);總線信號延時模塊,在總控制模塊控制下設置互連總線管腳的延時單元數(shù)據(jù);在總線延時調整完成時將各管腳延時單元數(shù)據(jù)發(fā)送到所述掃描結果記錄模塊;總線驅動模塊,從所述總控制模塊接收信號和數(shù)據(jù),驅動所述互連總線發(fā)送數(shù)據(jù);從所述互連總線接收數(shù)據(jù),發(fā)送給所述總控制模塊;主FPGA通訊模塊,從所述主FPGA的總控制模塊接收控制信息發(fā)送給所述從FPGA ;從所述從FPGA接收確認信息及接收到的信號和數(shù)據(jù)發(fā)送給所述主FPGA的總控制模塊;從FPGA通訊模塊,從所述從FPGA的總控制模塊接收確認信息及接收到的信號和數(shù)據(jù)發(fā)送給所述主FPGA ;從所述主FPGA接收控制信息發(fā)送給所述從FPGA的總控制模塊;所述總控制模塊設置所述FPGA互連總線的當前運行速率。本領域的一般技術人員顯然應該清楚并且理解,本發(fā)明方法所舉的以上實施例僅用于說明本發(fā)明方法,而并不用于限制本發(fā)明方法。在不背離本發(fā)明方法的精神及其實質的情況下,本領域技術人員當可根據(jù)本發(fā)明方法做出各種相應的改變或變形,但這些相應的改變或變形均屬于本發(fā)明方法的權利要求保護范圍。
權利要求
1.一種調整FPGA總線延時的方法,其特征在于,包括 步驟I、將主FPGA和從FPGA之間的互連總線分為至少一組;依次對每組總線執(zhí)行如下操作; 步驟2、主FPGA將該組總線的所有信號線的狀態(tài)反轉; 步驟3、從FPGA檢測到任何一條該組總線的信號線上的信號發(fā)生反轉時,記錄從FPGA檢測到的該組總線所有信號線上的信號; 步驟4、判斷是否存在沒有檢測到狀態(tài)反轉的信號線; 步驟5、如果存在沒有檢測到狀態(tài)反轉的信號線,在主FPGA和從FPGA中選擇一個FPGA,將所選擇的FPGA的該組總線中檢測到狀態(tài)反轉的信號線的管腳延時一個延時單位;返回執(zhí)行步驟2; 其中,所選擇的FPGA應滿足,被選擇的FPGA的該組總線的所有管腳延時都未達到系統(tǒng)設定最大值; 步驟6、如果主FPGA和從FPGA都有延時已達到系統(tǒng)設定最大值的管腳或檢測到所有信號線的信號都正確,記錄主FPGA和從FPGA所有管腳的延時單位數(shù)據(jù);結束該組總線延時調
2.根據(jù)權利要求I所述的一種調整FPGA總線延時的方法,其特征在于,所述將主FPGA和從FPGA之間連接的總線分為至少一組包括 根據(jù)總線接口類型將同一接口類型的總線分在一組。
3.根據(jù)權利要求I所述的一種調整FPGA總線延時的方法,其特征在于,所述步驟4包括 從FPGA將檢測到的各信號線信號發(fā)送給主FPGA ; 主FPGA判斷從FPGA檢測到的各信號線信號是否發(fā)生了狀態(tài)反轉。
4.根據(jù)權利要求I所述的一種調整FPGA總線延時的方法,其特征在于,所述步驟4包括 從FPGA判斷是否有信號線檢測到的信號沒有發(fā)生狀態(tài)反轉。
5.根據(jù)權利要求I所述的一種調整FPGA總線延時的方法,其特征在于,還包括 在完成所有組總線延時調整后;所述主FPGA分別在不同的運行頻率下通過互連總線發(fā)送數(shù)據(jù)給從FPGA,將從FPGA能夠正確接收數(shù)據(jù)的最高運行頻率設置為FPGA互連總線的最聞運行頻率。
6.根據(jù)權利要求5所述的一種調整FPGA總線延時的方法,其特征在于,所述主FPGA分別在不同的運行頻率下通過互連總線發(fā)送數(shù)據(jù)給從FPGA,將從FPGA能夠正確接收數(shù)據(jù)的最高運行頻率設置為FPGA互連總線的最高運行頻率包括 步驟701、主FPGA將互連總線的當前運行頻率設置為系統(tǒng)所能提供的最高運行頻率;步驟702、主FPGA通過互連總線發(fā)送數(shù)據(jù)給從FPGA ;在從FPGA接收到數(shù)據(jù)后,檢測接收到的數(shù)據(jù)是否正確; 步驟703、如果接收到的數(shù)據(jù)不正確,主FPGA將當前運行頻率降低一個頻率步進單位作為新的當前運行頻率,返回步驟702 ;如果接收到的數(shù)據(jù)正確,設置當前運行頻率為FPGA互連總線的最高運行頻率; 其中,所述頻率步進單位為預先設置的兩個相鄰運行頻率的頻率差。
7.根據(jù)權利要求5所述的一種調整FPGA總線延時的方法,其特征在于,所述主FPGA分別在不同的運行頻率下通過互連總線發(fā)送數(shù)據(jù)給從FPGA,將從FPGA能夠正確接收數(shù)據(jù)的最高運行頻率設置為FPGA互連總線的最高運行頻率包括 步驟701、主FPGA將互連總線的當前運行頻率設置為系統(tǒng)所能提供的最低運行頻率;步驟702、主FPGA通過互連總線發(fā)送數(shù)據(jù)給從FPGA ;在從FPGA接收到數(shù)據(jù)后,檢測接收數(shù)據(jù)是否正確; 步驟703、如果接收到的數(shù)據(jù)正確,主FPGA將當前運行頻率增加一個頻率步進單位作為新的當前運行頻率,返回步驟702 ;如果接收到的數(shù)據(jù)不正確,設置FPGA互連總線的最高運行頻率=當前運行頻率-頻率步進單位; 其中,所述頻率步進單位為預先設置的兩個相鄰運行頻率的頻率差。
8.根據(jù)權利要求6或7所述的一種調整FPGA總線延時的方法,其特征在于,所述步驟702包括 所述主FPGA通過所述互連總線連續(xù)發(fā)送N次數(shù)據(jù)到從FPGA ; 在從FPGA接收到所有數(shù)據(jù)后,對從FPGA接收到的數(shù)據(jù)進行檢測,如果有任何一次數(shù)據(jù)不正確,則判定接收數(shù)據(jù)不正確; 其中,所述N的取值范圍為5 10。
9.根據(jù)權利要求8所述的一種調整FPGA總線延時的方法,其特征在于,所述主FPGA通過所述互連總線連續(xù)發(fā)送N次數(shù)據(jù)到從FPGA包括 所述主FPGA第一次發(fā)送數(shù)據(jù)時,在所述互連總線的2m位發(fā)送0;在所述互連總線的2m+1位發(fā)送I ; 下一次發(fā)送數(shù)據(jù)時,將所述互連總線的所有位反轉發(fā)送; 其中,所述m = 0,1,2......M/2 ;所述M為互連總線位數(shù)。
10.一種調整FPGA總線延時的裝置,其特征在于,包括 主FPGA,從FPGA,互連總線;所述主FPGA通過互連總線與所述從FPGA連接; 所述FPGA包括, 總控制模塊,產(chǎn)生總線延時檢測信號和數(shù)據(jù),發(fā)送到總線驅動模塊,從所述總線驅動模塊接收來自互連總線的信號和數(shù)據(jù);控制總線信號延時模塊設置各管腳延時單元數(shù)據(jù);檢測接收到的信號和數(shù)據(jù)的正確性; 掃描結果記錄模塊,從所述總線信號延時模塊獲取并記錄FPGA互連總線各管腳的延時單元數(shù)據(jù); 總線信號延時模塊,在總控制模塊控制下設置互連總線管腳的延時單元數(shù)據(jù);在總線延時調整完成時將各管腳延時單元數(shù)據(jù)發(fā)送到所述掃描結果記錄模塊; 總線驅動模塊,從所述總控制模塊接收信號和數(shù)據(jù),驅動所述互連總線發(fā)送數(shù)據(jù);從所述互連總線接收數(shù)據(jù),發(fā)送給所述總控制模塊; 主FPGA通訊模塊,從所述主FPGA的總控制模塊接收控制信息發(fā)送給所述從FPGA ;從所述從FPGA接收確認信息及接收到的信號和數(shù)據(jù)發(fā)送給所述主FPGA的總控制模塊; 從FPGA通訊模塊,從所述從FPGA的總控制模塊接收確認信息及接收到的信號和數(shù)據(jù)發(fā)送給所述主FPGA ;從所述主FPGA接收控制信息發(fā)送給所述從FPGA的總控制模塊。
11.根據(jù)權利要求10所述的一種調整FPGA總線延時的裝置,其特征在于,所述總控制模塊設置所述FPGA互連總線的當前運行速率 。
全文摘要
本發(fā)明公開了一種調整FPGA總線延時的方法,包括,主FPGA通過總線發(fā)送信號給從FPGA;從FPGA檢測到任何一條信號線上的信號時,記錄從FPGA檢測到的該組總線所有信號線上的信號;判斷是否存在沒有檢測到狀態(tài)反轉的信號線;如果存在沒有檢測到狀態(tài)反轉的信號線,在主FPGA和從FPGA中選擇一個總線所有管腳延時都未達到系統(tǒng)設定最大值的FPGA,將所選擇的FPGA中所有接收到的信號正確的信號線對應的管腳延時一個延時單位,否則記錄主FPGA和從FPGA所有管腳的延時單位數(shù)據(jù)。本發(fā)明還公開了一種與所述方法相適應的FPGA總線延時調整裝置,本發(fā)明的技術方案實現(xiàn)了自動調整總線各管腳延時單元數(shù)據(jù),提高了FPGA總線延時調整效率。
文檔編號G01R31/02GK102737001SQ201110080919
公開日2012年10月17日 申請日期2011年3月31日 優(yōu)先權日2011年3月31日
發(fā)明者王明耀, 高峰 申請人:重慶重郵信科通信技術有限公司