本發(fā)明涉及系統(tǒng)檢測領(lǐng)域,尤其涉及一種三模冗余驗證方法。
背景技術(shù):
三模冗余措施作為可編程邏輯中簡單有效的可靠性加固方法,常用于航天、軍工、核工業(yè)設(shè)施等系統(tǒng)。隨著集成電路制造工藝的提升,以現(xiàn)場可編程門陣列FPGA為代表的可編程邏輯器件規(guī)模呈現(xiàn)指數(shù)級增長,三模冗余措施也在諸多領(lǐng)域得到廣泛的應(yīng)用。
為充分發(fā)揮三模冗余的優(yōu)勢,航天等工程應(yīng)用中探索了基于功能路徑的三模冗余優(yōu)化實施策略,不僅運用了傳統(tǒng)意義上的電路結(jié)構(gòu)的冗余方法,即結(jié)構(gòu)三模冗余,屬空間維可靠性策略,而且在接口模塊上引入了相同數(shù)據(jù)多次收發(fā)的冗余操作方式,即時序三模冗余,屬時間維可靠性策略。作為優(yōu)化的三模冗余實施策略,基于功能路徑的三模冗余實現(xiàn)流程可概括為:通過對FPGA邏輯功能按重要程度排序,將三模冗余措施由繁到簡地依次作用于功能序列,并進一步將結(jié)構(gòu)三模冗余和時序三模冗余兩種實施方式有選擇地施加于各功能路徑貫穿的模塊或電路上。
在FPGA三模冗余措施有效性驗證方面,傳統(tǒng)方法是針對結(jié)構(gòu)三模冗余的實現(xiàn)結(jié)果進行驗證,在硬件故障注入或仿真等強約束條件下,對被驗證FPGA內(nèi)部寄存器進行物理干涉或模擬打翻,未考慮業(yè)界應(yīng)用的基于功能路徑的三模冗余方式,未兼顧對時序三模冗余的測試驗證,未包含對單路信號和多路信號等特定情況的驗證,因此,現(xiàn)有的驗證方法具有一定的局限性,不夠全面。
技術(shù)實現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是針對現(xiàn)有技術(shù)的不足,提供一種對三模冗余實施方式的有效性進行驗證的方法。
本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下:
一種三模冗余驗證方法,包括以下步驟:
步驟1,確定現(xiàn)場可編程門陣列FPGA的三模冗余實施方式是否為基于功能路徑的方式,包括明確各功能的重要程度、以及各功能路徑貫穿的模塊或電路的三模冗余方式,若不是基于功能路徑的方式,則執(zhí)行步驟2,若是基于功能路徑的方式,則確定所述三模冗余實施方式包含的接口及功能子模塊,并執(zhí)行步驟3;
步驟2,對所述FPGA進行處理,確定所述FPGA中需要進行驗證的三模冗余范圍,并確定所述需要進行驗證的三模冗余范圍內(nèi)包含的接口及功能子模塊的重要程度以及三模冗余實施方式,并執(zhí)行步驟3;
步驟3,對所述三模冗余實施方式分別按照結(jié)構(gòu)三模冗余實施方式和時序三模冗余實施方式進行分類,并對所述三模冗余實施方式進行判斷,若為結(jié)構(gòu)三模冗余,則執(zhí)行步驟4,若為時序三模冗余,則執(zhí)行步驟5;
步驟4,對所述結(jié)構(gòu)三模冗余進行驗證,包括確定所述接口及所述功能子模塊的具體驗證對象在源碼文件、布局布線后網(wǎng)表文件或FPGA芯片中的位置,并選取具體驗證對象的電路或寄存器,然后對電路或寄存器進行驗證;
步驟5,對所述時序三模冗余進行驗證,將時序三模冗余進行處理,使其等價視為結(jié)構(gòu)三模冗余,然后按結(jié)構(gòu)三模冗余進行驗證。
本發(fā)明的有益效果是:通過對FPGA的三模冗余實施方式是否為基于功能路徑的方式進行判斷,對所述FPGA進行處理、分類,調(diào)高了驗證效率,并對三模冗余實施方式進行判斷,兼顧了對結(jié)構(gòu)三模冗余和時序三模冗余的判斷,對于三模冗余實施方式有效性的驗證更加全面客觀,提高了三模冗余驗證方法的準(zhǔn)確性和可靠性。
在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進。
進一步地,步驟2中,包括以下步驟:
步驟2.1,從任務(wù)剖面角度分析所述FPGA的核心功能,確定所述核心功能包括的接口及功能子模塊,所述接口及功能子模塊均各自包含重要程度分級;
步驟2.2,確定所述FPGA中已實施三模冗余措施包括的接口及功能子模塊;
步驟2.3,將所述核心功能包括的接口及功能子模塊與已實施三模冗余措施包括的接口及功能子模塊進行對比,取交集部分,得到需要進行驗證的三模冗余范圍;
步驟2.4,確定所述需要進行驗證的三模冗余范圍包含的接口及功能子模塊的重要程度以及三模冗余實施方式,并執(zhí)行步驟3。
采用上述進一步方案的有益效果是:通過對所述FPGA進行處理,確定需要進行驗證的三模冗余范圍包含的接口及功能子模塊的重要程度以及三模冗余實施方式,可以更好地對非基于功能路徑的三模冗余實施方式進行驗證。
進一步地,步驟3中,將所述三模冗余實施方式按照結(jié)構(gòu)三模冗余實施方式和時序三模冗余實施方式進行分類,并按預(yù)設(shè)次序?qū)Ψ诸惡蟮乃鋈H哂鄬嵤┓绞竭M行排序,例如,預(yù)設(shè)次序可以為按功能重要程度所決定的三模冗余次序。
采用上述進一步方案的有益效果是:通過對三模冗余實施方式按照結(jié)構(gòu)三模冗余實施方式和時序三模冗余實施方式進行分類,提高驗證效率。
進一步地,步驟4包括以下步驟:
步驟4.1,確定所述接口及所述功能子模塊的具體驗證對象在源碼文件、布局布線后的網(wǎng)表文件或FPGA芯片中的位置,并選取具體驗證對象所位于的電路或寄存器,其中,具體驗證對象包括輸入輸出信號或表決器;
步驟4.2,判斷輸入輸出信號的信號類型,若為多路信號,則執(zhí)行步驟4.3,若為單路信號,則執(zhí)行步驟4.4;
步驟4.3,對所述多路信號進行驗證,直到所有被選取的電路或寄存器得到驗證;
步驟4.4,對所述單路信號進行驗證,直到所有被選取的電路或寄存器得到驗證。
進一步地,所述單路信號為傳輸1比特信息的信號,所述多路信號為多個傳輸1比特信息的單路信號的有序集合。
進一步地,步驟4.3包括以下步驟:
步驟4.3.1,當(dāng)多路信號的三模取值互不相同時,在各模有效取值范圍內(nèi)任選3個不同值,并將所述3個不同值隨機分配給三模,得到輸出信號,并對所述輸出信號進行表決,若表決后的輸出信號為預(yù)設(shè)值,則所述三模冗余實施方式有效,否則無效;
步驟4.3.2,排除多路信號的三模取值各不相同的情況,將各模信號的取值進行約束,例如,假設(shè)多路信號三模取值互不相同時,取值分別為{x,y,z},則將各模信號按取值進行約束后,去除取值z,取值可以為{x,y,y};
步驟4.3.3,將各模等價視為單路信號,按單路信號的驗證方法進行驗證。
進一步地,步驟4.4包括以下步驟:
步驟4.4.1,所述單路信號包括三模信號,對各模信號按邏輯值0或1隨機選取的方式進行故障模擬;
步驟4.4.2,得到所述單路信號全部可能的8種狀態(tài);
步驟4.4.3,所述單路信號全部可能的8種狀態(tài)通過表決器進行表決,分別驗證所述三模冗余實施方式的有效性;
步驟4.4.4,對得到的所有三模冗余實施方式的有效性進行綜合分析,完成驗證。
進一步地,步驟5中,包括以下步驟:
步驟5.1,依次將所述時序三模冗余的三次通信等價視為結(jié)構(gòu)三模冗余中的冗余結(jié)構(gòu);
步驟5.2,將所述時序三模冗余按照所述結(jié)構(gòu)三模冗余的驗證方法進行驗證。
采用上述進一步方案的有益效果是:通過將時序三模冗余的三次通信等價視為結(jié)構(gòu)三模冗余中的冗余結(jié)構(gòu),可以將時序三模冗余等價看作結(jié)構(gòu)三模冗余進行處理,使對三模冗余的驗證更加客觀全面。
進一步地,若所述三模冗余實施方式包括結(jié)構(gòu)三模冗余和時序三模冗余,則先對所述時序三模冗余進行驗證,再對所述結(jié)構(gòu)三模冗余進行驗證。
本發(fā)明附加的方面的優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明實踐了解到。
附圖說明
圖1為本發(fā)明實施例提供的一種三模冗余驗證方法的流程示意圖;
圖2為本發(fā)明另一實施例提供的一種三模冗余驗證方法的流程示意圖;
圖3為本發(fā)明另一實施例提供的一種非基于功能路徑的三模冗余實施方式的處理方法的流程示意圖。
具體實施方式
以下結(jié)合附圖對本發(fā)明的原理和特征進行描述,所舉實例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
如圖1所示,為本發(fā)明實施例提供的一種三模冗余驗證方法的流程示意圖,該方法包括:
S101,確定現(xiàn)場可編程門陣列FPGA的三模冗余實施方式是否為基于功能路徑的方式,包括明確各功能的重要程度、以及各功能路徑貫穿的模塊或電路的三模冗余方式,若不是基于功能路徑的方式,則執(zhí)行S102,若是基于功能路徑的方式,則執(zhí)行S103。
S102,對FPGA進行處理,確定FPGA中需要進行驗證的三模冗余范圍和三模冗余實施方式,并執(zhí)行S103。
S103,對三模冗余實施方式分別按照結(jié)構(gòu)三模冗余實施方式和時序三模冗余實施方式進行分類,并對三模冗余實施方式進行判斷,若為結(jié)構(gòu)三模冗余,則執(zhí)行S104,若為時序三模冗余,則執(zhí)行S105。
S104,對結(jié)構(gòu)三模冗余進行驗證。
S105,對時序三模冗余進行驗證。
上述實施例提供的一種三模冗余驗證方法,通過對FPGA的三模冗余實施方式是否為基于功能路徑的方式進行判斷,對FPGA進行處理、分類,調(diào)高了驗證效率,并對三模冗余實施方式進行判斷,兼顧了對結(jié)構(gòu)三模冗余和時序三模冗余的判斷,對于三模冗余實施方式有效性的驗證更加全面客觀,提高了三模冗余驗證方法的準(zhǔn)確性和可靠性。
在另一實施例中,如圖2所示,假定某產(chǎn)品為基于Xilinx公司2V3000型號FPGA開發(fā),該FPGA實現(xiàn)主要功能為數(shù)值運算,次要功能為數(shù)據(jù)轉(zhuǎn)發(fā),輔助功能為指示燈開關(guān)控制,將主要功能、次要功能和輔助功能分別定義為功能A、功能B和功能C。對上述功能采用基于功能路徑的三模冗余實施方式,具體措施為:對功能A涉及的多路信號型接口A-1和多路信號型數(shù)據(jù)運算電路A-2分別進行“時序三模冗余”和“結(jié)構(gòu)三模冗余”;對功能B涉及的單路信號型接口B-1進行“時序三模冗余”;功能C不實施三模冗余。
本實施例對2V3000型號FPGA的三模冗余的驗證方法包括以下步驟:
S201,確定被驗證對象的三模冗余實施方式。本實例中FPGA采用了基于功能路徑的三模冗余實施方式。
S202,對三模冗余實施方式進行分類。本實施例中,對三模冗余實施方式分別按照結(jié)構(gòu)三模冗余實施方式和時序三模冗余實施方式進行分類,并分別對分類后的三模冗余實施方式按重要程度進行分類內(nèi)的排序,需要進行三模冗余的邏輯功能為A、B,因此,將各功能涉及的接口和模塊按重要度排序為A-1、A-2、B-1,其中,實施時序三模冗余的接口為A-1、B-1,實施結(jié)構(gòu)三模冗余的模塊為A-2,對于實施時序三模冗余的接口A-1、B-1,執(zhí)行S203-S205,對于實施結(jié)構(gòu)三模冗余的模塊,執(zhí)行S206。
S203,對結(jié)構(gòu)三模冗余進行驗證。選取電路或寄存器,并根據(jù)選取的電路或寄存器確定具體驗證對象的位置信息,包括端口輸入輸出信號在RTL源碼文件中的實體名、信號名、信號位寬等信息,或表決器在布局布線后的網(wǎng)表文件中的名稱編號、位寬等信息,或各模電路在FPGA芯片中的位置區(qū)域信息(僅用于物理故障注入的驗證方法)。
S204,對多路信號進行驗證。根據(jù)S202確定的具體驗證對象的位置信息,將A-2模塊的各冗余結(jié)構(gòu)標(biāo)記為A-2_R0、A-2_R1、A-2_R2,并將A-2模塊的驗證優(yōu)先級設(shè)為為高。因為A-2模塊的各模信號均為多路信號,所以首先對三模取值各不相同的特例情況進行驗證,在各模有效取值范圍內(nèi)任選3個不同值,分別為{0,1,X},其中,X為取值范圍內(nèi),非0非1的任意值,取值范圍根據(jù)多路信號的實際情況確定,例如,當(dāng)多路信號為兩路時,X的取值范圍為二進制數(shù)值00~11。并將3個不同值隨機分配給三模,得到輸出信號,并對所述輸出信號進行表決,若表決后的輸出信號為預(yù)設(shè)值,則三模冗余實施方式有效,若為其他值時,則三模冗余實施方式無效。
S205,對單路信號進行驗證。對特例情況進行驗證后,排除特例情況,將多路信號的各模信號取值約束為“類型0”和“類型1”,并將上述取值類型等效為單路信號的信號邏輯取值“邏輯0”和“邏輯1”,對A-2模塊按單路信號進行處理:令“邏輯1”表示正常,“邏輯0”表示故障,然后將各模信號按邏輯值0或1隨機選取的方式模擬故障,對三模信號全部可能的2*2*2=8種狀態(tài)做遍歷性驗證,通過表決器表決,得到8種狀態(tài)下三模冗余實施方式的有效性結(jié)論,然后結(jié)合特例情況下三模冗余實施方式的有效性,綜合判斷,得出結(jié)論,具體結(jié)果參照下表。
S206,對時序三模冗余進行驗證。按通信時間先后次序,順次將A-1接口的三次通信標(biāo)記為A-1_Tr0、A-1_Tr1、A-1_Tr2,并將A-1接口的驗證優(yōu)先級設(shè)為高;然后順次將B-1接口的三次通信標(biāo)記為B-1_Tr0、B-1_Tr1、B-1_Tr2,并將B-1接口的驗證優(yōu)先級設(shè)為低。上述尾綴為“_Tr0(第一模)、_Tr1(第二模)、_Tr2(第三模)”的通信標(biāo)記可在后續(xù)處理中等同于結(jié)構(gòu)三模冗余中的冗余結(jié)構(gòu)標(biāo)記“_R0(第一模)、_R1(第二模)、_R2(第三模)”,然后按S203~S205的步驟驗證。
S207,驗證完成。必要時,可根據(jù)驗證的成本、進度等外部條件,僅針對選定驗證優(yōu)先級的接口或模塊進行驗證,提高驗證工作效能。
在另一實施例中,如圖3所示,假定某公司生產(chǎn)的FPGA的三模冗余實施方式不是基于功能路徑的方式,則需要對其進行以下處理再進行驗證,處理步驟包括:
S301,從任務(wù)剖面角度分析FPGA的核心功能,確定核心功能包括的接口及功能子模塊;
S302,確定FPGA中已實施三模冗余措施包括的接口及功能子模塊;
S303,將核心功能包括的接口及功能子模塊與已實施三模冗余措施包括的接口及功能子模塊進行對比,取交集部分,得到需要進行驗證的三模冗余范圍;
S304,確定需要進行驗證的三模冗余范圍包含的接口及功能子模塊的重要程度以及三模冗余實施方式。
以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。