Fpga內部功能自診斷方法與系統(tǒng)的制作方法
【技術領域】
[0001 ] 本發(fā)明涉及FPGA(Field-ProgrammabIe Gate Array,現場可編程門陣列)技術領域,特別是涉及FPGA內部功能自診斷方法與系統(tǒng)。
【背景技術】
[0002]FPGA即現場可編程門陣列,其作為專用集成電路(ASIC)領域中的一種半定制電路而出現的,既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點。
[0003]目前FPGA在各行各業(yè)得到廣泛應用,隨著繼電保護技術發(fā)展,FPGA開始在繼電保護系統(tǒng)大規(guī)模應用。繼電保護對設備的可靠性要求非常高,由于FPGA基于SDRAM(Synchronous Dynamic Random Access Memory,同步動態(tài)隨機存儲器)架構,芯片的正常工作會收到外界干擾的影響,如何保證FPGA的可靠性成為一個關鍵問題。
[0004]目前更多的學者對FPGA主要研究如何提升其運行效率、處理能力以及二次開發(fā)等方面,對于如何實現FPGA內部功能自診斷,以提高其可靠性的方面目前尚無完整的技術方案。
【發(fā)明內容】
[0005]基于此,有必要針對目前尚無FPGA內部功能自診斷方案,以提高FPGA可靠性的問題,提供一種FPGA內部功能自診斷方法與系統(tǒng),以提高FPGA的可靠性。
[0006]—種FPGA內部功能自診斷方法,包括步驟:
[0007]對所述FPGA的輸入報文添加CRC(Cyclical Redundancy Check,循環(huán)冗余碼)校驗和,對所述FPGA的輸出報文進行CRC校驗,并計數所述FPGA的輸出報文中CRC錯誤報文的數量;
[0008]根據所述CRC錯誤報文的數量,并通過漏桶算法判斷所述FPGA是否持續(xù)出現異常;
[0009]當所述FPGA持續(xù)出現異常時,發(fā)出報警信號。
[0010]一種FPGA內部功能自診斷系統(tǒng),包括:
[0011]校驗模塊,用于對FPGA的輸入報文添加CRC校驗和,對所述FPGA的輸出報文進行CRC校驗,并計數所述FPGA的輸出報文中CRC錯誤報文的數量;
[0012]異常判斷模塊,用于根據所述CRC錯誤報文的數量,并通過漏桶算法判斷所述FPGA是否持續(xù)出現異常;
[0013]處理模塊,用于當所述FPGA持續(xù)出現異常時,發(fā)出報警信號。
[0014]本發(fā)明FPGA內部功能自診斷方法與系統(tǒng),對FPGA的輸入報文添加CRC校驗和,對FPGA的輸出報文進行CRC校驗,并計數FPGA的輸出報文中CRC錯誤報文的數量,根據CRC錯誤報文的數量,并通過漏桶算法判斷FPGA是否持續(xù)出現異常,當FPGA持續(xù)出現異常時,發(fā)出報警信號。整個過程中,采用CRC校驗和漏桶算法,判斷FPGA是否持續(xù)出現異常,當出現異常時發(fā)出告警信號,實現FPGA內部功能自診斷,有效提高FPGA的可靠性。
【附圖說明】
[0015]圖1為本發(fā)明FPGA內部功能自診斷方法第一個實施例的流程示意圖;
[0016]圖2為本發(fā)明FPGA內部功能自診斷方法第二個實施例的流程示意圖;
[0017]圖3為本發(fā)明FPGA內部功能自診斷系統(tǒng)第一個實施例的結構示意圖;
[0018]圖4為本發(fā)明FPGA內部功能自診斷系統(tǒng)第二個實施例的結構示意圖。
【具體實施方式】
[0019]如圖1、圖2所示,一種FPGA內部功能自診斷方法,包括步驟:
[0020]SlOO:對FPGA的輸入報文添加CRC校驗和,對所述FPGA的輸出報文進行CRC校驗,并計數所述FPGA的輸出報文中CRC錯誤報文的數量。
[0021]CRC是利用除法及余數的原理來作錯誤偵測的,實際應用中,發(fā)送裝置計算出CRC值并隨數據一同發(fā)送給接收裝置,接收裝置對收到的數據重新計算CRC并與收到的CRC相比較,若兩個CRC值不同,則說明數據通訊出現錯誤。具體來說,可以在FPGA入口處對輸入報文尾添加CRC校驗和在FPGA出口處對報文進行CRC校驗,計數FPGA的輸出報文中CRC錯誤報文的數量,同時非必要的,還可以計數FPGA的輸出報文中CRC正確報文的數量。
[0022]S200:根據所述CRC錯誤報文的數量,并通過漏桶算法判斷所述FPGA是否持續(xù)出現異常。
[0023]漏桶算法(Leaky Bucket)是目前在網絡世界中流量整形或速率限制時經常使用的一種算法,它的主要目的是控制數據注入到網絡的速率,平滑網絡上的突發(fā)流量。漏桶算法提供了一種機制,通過它,突發(fā)流量可以被整形以便為網絡提供一個穩(wěn)定的流量。具體來說,漏桶可以看作是一個帶有常量服務時間的單服務器隊列,如果漏桶(包緩存)溢出,那么數據包會被丟棄,在網絡中,漏桶算法可以控制端口的流量輸出速率,平滑網絡上的突發(fā)流量,實現流量整形,從而為網絡提供一個穩(wěn)定的流量。在本發(fā)明FPGA內部功能自診斷方法中根據CRC錯誤報文的數量,通過漏桶算法上述特性來判斷FPGA是否持續(xù)出現異常。
[0024]為了更進一步詳細解釋漏桶算法的過程,下面將采用一實施例進行說明。
[0025]在其中一個實施例中,步驟S200具體包括:
[0026]S220:當所述CRC錯誤報文的數量超過第一預設門限值時,判定所述FPGA出現異常,對所述FPGA進行復位操作,其中,所述復位操作包括對所述CRC錯誤報文的數量歸零。
[0027]S240:統(tǒng)計所述FPGA已復位次數。
[0028]S260:當所述FPGA已復位次數超過第二預設門限值時,判定所述FPGA持續(xù)出現異常。
[0029]假設CRC錯誤報文的數量為M,第一預設門限值為X,當M大于X時,判定FPGA已經出現異常,此時對FPGA進行復位操作,將CRC錯誤報文的數量歸零。之后每當CRC錯誤報文的數量M大于第一預設門限值X,都對FPGA進行復位操作,將CRC錯誤報文的數量歸零,并記錄下FPGA已復位的次數N,當N大于第二預設門限值Y時,此時判定FPGA已經持續(xù)出現異常。
[0030]S300:當所述FPGA持續(xù)出現異常時,發(fā)出報警信號。
[0031]當FPGA持續(xù)出現異常時。發(fā)出告警信號,提示操作人員需要更換物理層。
[0032]本發(fā)明FPGA內部功能自診斷方法,對FPGA的輸入報文添加CRC校驗和,對FPGA的輸出報文進行CRC校驗,并計數FPGA的輸出報文中CRC錯誤報文的數量,根據CRC錯誤報文的數量,并通過漏桶算法判斷FPGA是否持續(xù)出現異常,當FPGA持續(xù)出現異常時,發(fā)出報警信號。整個過程中,采用CRC校驗和漏桶算法,判斷FPGA是否持續(xù)出現異常,當出現異常時發(fā)出告警信號,實現FPGA內部功能自診斷,有效提高FPGA的可靠性。
[0033]在其中一個實施例中,所述當所述CRC錯誤報文的數量超過第一預設門限值時,判定所述FPGA出現異常,對所述FPGA進行復位操作的步驟具體包括:
[0034]統(tǒng)計連續(xù)收到CRC正確報文的數量,當連續(xù)收到所述CRC正確報文的數量大于第三預設門限值時,將所述CRC錯誤報文的數量減去預設值,獲得修正值,當所述修正值大于零時,修正所述CRC錯誤報文的數量為所述修正值,當所述修正值小于或等于零時,修正的所述CRC錯誤報文的數量為零;
[0035]當修正的所述CRC錯誤報文的數量超過第一預設門限值時,判定所述FPGA出現異常,對所述FPGA進行復位操作。
[0036]除了考慮CRC錯誤報文的數量之外還對CRC正確報文的數量進行考慮,以修正CRC錯誤報文的數量,實現FPGA出現異常情況的準確判斷。具體來說,例如可以當連續(xù)收到3個CRC正確報文時,將CRC錯誤報文的數量減I,以修正CRC錯誤報文的數量。需要指出的是修正后的CRC錯誤報文的數量大于或等于零,假設當前CRC錯誤報文的數量為O,且目前已經連續(xù)收到3個CRC正確報文,此時將當前CRC錯誤報文的數量為O減去I,獲得修正值為-1,此時,,修正后的CRC錯誤報文的數量計數為O。
[0037]在其中一個實施例中,所述對FPGA的輸入報文添加CRC校驗和,對所述FPGA的輸出報文進行CRC校驗,并計數CRC錯誤報文的數量的步驟具體為:
[0038]對所述FPGA的輸入報文的報文尾添加CRC校驗和,對所述FPGA的輸出報文進行CRC校驗,并計數所述CRC錯誤報文的數量。
[0039]具體來說,可以在FPGA的輸入報文的報文尾添加CRC校驗和。更具體來說,可以在FPGA的輸入報文最后4位添加CRC校驗和。
[0040]如圖2所示,在其中一個實施例中,步驟S300之后還包括:
[0041 ] S400:記錄所述CRC錯誤報文的內容和時間,并將所述CRC錯誤報文的內容和時間關聯存儲。
[0042]將CRC錯誤報文的內容和時間關聯存儲,便于對FPGA運行情況進行監(jiān)控,也便于后期對FPGA運行情況進行深入了解和分析。
[0043 ]如圖3所示,一種FPGA內部功能自診斷系統(tǒng),包括:
[0044]校驗模塊100,用于對FPGA的輸入報文添加CRC校驗和,對所述FPGA的輸出報文進行CRC校驗,并計數所述FPGA的輸出報文中CRC錯誤報文的數量;
[0045]異常判斷模塊200,用于根據所述CRC錯誤報文的數量,并通過漏桶算法判斷所述FPGA是否持續(xù)出現異常;
[0046]處理模塊300,用于當所述FPGA持續(xù)出現異常時,發(fā)出報警信號。
[0047]本發(fā)明FPGA內部功能自診斷系統(tǒng),校驗模塊100對FPGA的輸入報文添加CRC校驗和,對FPGA的輸出報文進行CRC校驗,并計數FPGA的輸出報文中CRC錯誤報文的數量,異常判斷模塊200根據CRC錯誤報文的數量,并通過漏桶算法判斷FPGA是否持續(xù)出現異常,處理模塊300當FPGA持續(xù)出現異常時,發(fā)出報警信號。整個過程中,采用CRC校驗和漏桶算法,判斷FPGA是否持續(xù)出現異常,當出現異常時發(fā)出告警信號,實現FPGA內部功能自診斷,有效提高FPGA的可靠性。
[0048]如圖4所示,在其中一個實施例中,所述異常判斷模塊200具體包括:
[0049]復位單元220,用于當所述CRC錯誤報文的數量超過第一預設門限值時,判定所述FPGA出現異常,對所述FPGA進行復位操作,其中,所述復位操作包括對所述CRC錯誤報文