亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于FPGA 硬件的單粒子翻轉(zhuǎn)模擬技術(shù)

        2021-09-20 10:26:56施聿哲白雨鑫
        數(shù)據(jù)采集與處理 2021年4期
        關鍵詞:故障

        施聿哲,陳 鑫,陳 凱,白雨鑫,張 穎

        (南京航空航天大學電子信息工程學院,南京 211106)

        引 言

        隨著制造工藝的發(fā)展,集成電路特征尺寸減小,改變電路工作狀態(tài)所需要的能量閾值呈幾何級下降趨勢,使得集成電路更容易受到輻射照射的影響[1]。地球外層空間為強輻射環(huán)境[2],給航天設備中集成電路的正常運作帶來了極大的挑戰(zhàn)。輻照對集成電路可恢復性故障中最主要的影響為單粒子翻轉(zhuǎn)(Single event upset,SEU),表現(xiàn)為存儲單元中的比特位翻轉(zhuǎn)。因此,評估集成電路對SEU 的敏感性至關重要。

        通常采用故障注入技術(shù)來模擬宇宙空間環(huán)境中SEU 對集成電路的影響,其中最經(jīng)典的方法是將電路暴露在模擬的空間輻射環(huán)境中進行故障注入[3?4],以獲得與實際輻射環(huán)境下最為接近的實驗數(shù)據(jù)。但是這種方法存在損害電路的風險,且測試成本十分昂貴,通常只有在電路設計的最終測試階段才會采用。基于軟件仿真的故障注入技術(shù)則是輻射測試的有效替代方法。它支持多種類型的故障模型,實現(xiàn)方式非常靈活。文獻[5]提出了一種基于TCL 腳本在網(wǎng)表級電路中注入故障的方法,但是軟件仿真的時間開銷非常大,并不適用于超大規(guī)模集成電路(Very large scale integration,VLSI)輻射性能的評估。

        現(xiàn)在廣泛采用基于FPGA 的硬件模擬技術(shù)的故障注入方法。FPGA 硬件模擬速度很快,能夠滿足VLSI 電路的評估需求,此外FPGA 還具有良好的可控性和可觀察性。此類方法又分為重配置和旁路注入。重配置首先回讀配置存儲器的比特文件,然后修改部分配置內(nèi)容以模擬單粒子翻轉(zhuǎn),再重新寫回配置存儲器[6?8]。該方法基于FPGA 的內(nèi)部專用端口實現(xiàn),沒有額外的資源開銷。但是重配置功能高度依賴FPGA 硬件的支持,比特文件配置FPGA 所消耗的時間很容易成為故障注入速度的瓶頸。旁路注入最常用的方式是復用掃描鏈,其故障注入速度可達到微秒級[9?10],相比重配置快了多個數(shù)量級,而且易于實現(xiàn),可通過腳本直接在原始電路中插入。但復用掃描鏈是將故障經(jīng)由掃描鏈串行移位至目標寄存器,該過程會增加非常明顯的時間開銷。另一種方式是修改觸發(fā)器結(jié)構(gòu)[11?12]。文獻[11]通過修改FPGA 內(nèi)建庫中構(gòu)成電路的基本單元使電路具備故障注入功能,該方案理論上可達到的故障注入速度最快。但是重建庫是十分耗時的過程,需要將原始器件庫中的觸發(fā)器、RAM、邏輯門和乘法器等所有單元進行替換,而且器件庫和測試平臺是緊密聯(lián)系的,測試平臺的升級或者更替可能導致器件庫無法使用,因此技術(shù)的遷移性較差;所有寄存器單元還需要添加獨占式的故障輸入信號加以控制,硬件資源占用率非常高。文獻[12]通過對網(wǎng)表中所有的觸發(fā)器添加額外的組合邏輯和端口來注入故障,故障注入可以即時響應,所以注入速度相比掃描鏈更快,但該方案修改后的電路中每個觸發(fā)器需添加3 個查找表,額外的資源開銷也很大。

        本文提出了一種基于旁路注入技術(shù)的快速故障注入方法。該方法可通過腳本自動化分析基于硬件描述語言編寫的寄存器傳輸級(Register transfer level,RTL)超大規(guī)模集成電路設計,并修改電路結(jié)構(gòu)使之能夠從旁路注入故障,結(jié)合仿真結(jié)果證明腳本可適用于任意規(guī)模電路。同時巧用時分復用機制保證腳本修改后的電路的原始功能不受影響。腳本實現(xiàn)電路修改的過程簡單,耗時少,修改后電路增加的硬件資源開銷相對其他技術(shù)方案也較低,適用于VLSI 的評估。實驗結(jié)果證明了其故障注入速度可以達到納秒級別,具有優(yōu)越的故障注入速度,在實際應用中具有不錯的前景。

        1 旁路注入關鍵技術(shù)

        旁路注入原理是在原有的設計基礎上,通過添加額外的組合邏輯,使待測電路具備故障注入功能。

        1.1 旁路注入故障的單觸發(fā)器結(jié)構(gòu)

        原始觸發(fā)器結(jié)構(gòu)和旁路注入觸發(fā)器結(jié)構(gòu)分別如圖1(a)和圖1(b)所示。enable 控制電路是否處于故障注入模式:enable 處于有效狀態(tài)時,電路處于故障注入模式,故障數(shù)據(jù)(Faulty data)會輸出到觸發(fā)器的輸入端;否則,enable處于無效狀態(tài),電路處于正常工作模式,原始數(shù)據(jù)(Data)送給觸發(fā)器采樣。

        圖1 單觸發(fā)器結(jié)構(gòu)Fig.1 Structure of flip?flop

        故障數(shù)據(jù)的類型由故障類型選通信號組決定,該信號組有3 根信號線,分別是單比特翻轉(zhuǎn)(Reverse)、單比特固定1(Stuck?at?1)和單比特固定0(Stuck?at?0),且在同一時間只有一根信號線有效。為了降低故障數(shù)據(jù)產(chǎn)生電路的資源開銷,本文巧妙地利用了四輸入查找表(LUT4)的內(nèi)部結(jié)構(gòu),將正常數(shù)據(jù)和故障類型選通信號作為查找表的輸入,并將對應故障類型數(shù)據(jù)作為輸出,因此只需1 個查找表即可完成故障數(shù)據(jù)的產(chǎn)生。

        1.2 任意觸發(fā)器故障注入流程

        VLSI 電路中觸發(fā)器數(shù)目眾多,需要逐個標識,以實現(xiàn)對指定的任意觸發(fā)器進行故障注入操作。任意觸發(fā)器故障注入流程如圖2 所示。首先遍歷電路所有模塊中的觸發(fā)器,然后依次分配唯一的ID 編號。故障注入時,首先根據(jù)ID 確定待注入故障的觸發(fā)器,使能該觸發(fā)器的en?able,然后選擇故障類型產(chǎn)生錯誤數(shù)據(jù),在觸發(fā)器采樣時注入故障數(shù)據(jù)。其余未匹配的觸發(fā)器仍舊正常工作,不受故障注入過程的影響。此外,通過該故障注入流程可以對任意電路進行任意位置的故障注入,不受電路規(guī)模限制。

        圖2 任意觸發(fā)器故障注入流程Fig.2 Fault injection process of arbitrary flip?flop

        1.3 時分復用機制

        由于觸發(fā)器只在邊沿采樣數(shù)據(jù),對時序有很高的要求,這給故障注入帶來挑戰(zhàn)。此外,故障注入時也不能影響處于正常工作狀態(tài)的觸發(fā)器。為了確保能夠穩(wěn)定可靠的注入故障,本設計采用時分復用機制。將時間劃分為故障注入時間clk_div1 和正常運作時間clk_div2。在clk_div1 下執(zhí)行故障注入;在clk_div2下執(zhí)行電路的原始邏輯。

        圖3 所示的是時分復用機制下,單比特翻轉(zhuǎn)故障的注入過程。t1時刻ID 匹配觸發(fā)器,enable 變?yōu)橛行顟B(tài);t2時刻故障類型輸入為reverse,因此觸發(fā)器的輸出發(fā)生了翻轉(zhuǎn)。此外,若clk為系統(tǒng)設定頻率的兩倍,還可保持電路原有的數(shù)據(jù)吞吐率。

        圖3 時分復用機制Fig.3 Time division multiplexing mecha?nism

        2 自動化處理腳本設計

        本章介紹如何通過腳本編程,對RTL 級的設計代碼進行再處理,實現(xiàn)旁路注入故障相關操作。所有工作均通過腳本自動化執(zhí)行,電路分析時間開銷小,且不受電路規(guī)模的限制。

        2.1 提取觸發(fā)器的腳本設計

        提取觸發(fā)器的腳本流程分析過程如圖4 所示。首先檢索待測電路中所有的觸發(fā)器,檢索依據(jù)是所有觸發(fā)器均需要基于關鍵字reg 進行定義。檢索后進一步文本處理可以得到觸發(fā)器的名稱和其對應的位寬。其次是過濾邏輯類型。SEU 影響的是電路的時序邏輯,所以只需處理時序邏輯的語句塊。檢索依據(jù)是基于時鐘邊沿的關鍵字(posedge 和negedge)。然后從觸發(fā)器隊列中移除非時序邏輯的觸發(fā)器。最后還需要過濾冗余觸發(fā)器,通常包括定義后卻未使用的觸發(fā)器。處理后的觸發(fā)器列表再根據(jù)觸發(fā)器位寬分配一定的ID 范圍,再加上控制時鐘、所屬模塊等相關信息即可輸出完整正確的觸發(fā)器列表。

        圖4 提取觸發(fā)器的腳本流程Fig.4 Script flow of flip?flop ex?traction

        2.2 旁路注入邏輯的腳本設計

        旁路注入邏輯的腳本偽代碼如算法1 所示。首先遍歷所有的時序邏輯塊,檢索每個邏輯塊中的觸發(fā)器變量以及分配的ID 范圍,然后將表1 中第1 行到第6 行的旁路注入相關邏輯插入到對應時序邏輯塊中,將原始邏輯放在第7 行else 的分支中。最后,在輸入輸出端口聲明處添加ID 和故障類型選通信號作為輸入端口。

        算法1旁路注入邏輯偽代碼

        (1)if ID matched then

        // 觸發(fā)器ID 匹配

        (2)if reverse then // 單比特翻轉(zhuǎn)

        (3)D ←~D

        //觸發(fā)器的數(shù)值翻轉(zhuǎn)

        (4)else if Stuck?at?0 then //單比特固定0

        (5)D ←0

        //觸發(fā)器數(shù)值變?yōu)?

        (6)else D ←1

        //觸發(fā)器數(shù)值變?yōu)?

        (7)else D ←D //原始邏輯

        2.3 時分復用邏輯的腳本設計

        單比特觸發(fā)器加入旁路注入邏輯比較簡單,可以直接通過if?else 的分支語句實現(xiàn)。但對多比特觸發(fā)器而言,通過分支語句對多比特觸發(fā)器某一位注入故障會導致該觸發(fā)器的其他位也無法正常工作。為此,本文巧妙地設計時分復用機制,在時間上錯開故障注入過程和電路正常工作過程。時分復用邏輯偽代碼如算法2 所示。

        算法2時分復用邏輯偽代碼

        (1)if(clk_div1 ==1)then //故障注入時間

        (2)故障注入

        (3)else 執(zhí)行正常邏輯//正常運作時間

        進一步設計電路來驗證腳本功能的正確性,選擇1 位寄存器來實現(xiàn)產(chǎn)生方波信號的電路。將設計的HDL 模型通過腳本處理,處理前后的邏輯如圖5 所示。

        圖5 腳本插入故障邏輯前后對比Fig.5 Comparison of the original logic and the modified logic

        圖5(b)中的err_data 代表故障數(shù)據(jù),可通過組合邏輯實現(xiàn)。組合邏輯的表達式為

        式中:Y表示2.3 輸出的故障數(shù)據(jù);X表示當前觸發(fā)器的數(shù)值;A、B、C分別代表3 類故障(單比特固定0,單比特固定1 和單比特翻轉(zhuǎn))。邏輯功能和門級電路的設計相吻合,在ID 匹配時對目標觸發(fā)器注入故障,且在任意時刻只能有一種故障類型有效。

        3 實驗結(jié)果

        3.1 仿真驗證

        為驗證腳本功能的正確性,本文選取經(jīng)過腳本處理后的4 比特循環(huán)計數(shù)器作為待測電路進行測試,從低位到高位依次分配ID(1~4)。對ID 為1 的觸發(fā)器cnt[0]在某一時刻注入一次故障,以單比特翻轉(zhuǎn)reverse 為例,仿真波形結(jié)果如圖6 所示。

        從圖6 可見,當ID 為0 時,此時無觸發(fā)器被選中,電路處于正常工作狀態(tài);當ID 為1 時,cnt[0]被選為故障注入對象,該觸發(fā)器進入故障注入模式。隨后在clk 的上升沿,檢測到故障類型輸入reverse 有效,此時對觸發(fā)器注入一次故障,使得cnt 的計數(shù)值從7 跳變?yōu)榱?。進一步觀察,可發(fā)現(xiàn)計數(shù)器值發(fā)生改變的原因是cnt[0]的值從1 變?yōu)榱?,而cnt 的高三位仍保持正常狀態(tài)。由此可驗證腳本的自動化流程可以使電路具備正確的故障注入功能。

        圖6 故障注入仿真Fig.6 Fault injection simulation

        3.2 板級測試

        為進一步驗證本文提出的設計方案對于復雜電路系統(tǒng)的適用性,采用經(jīng)典的MIPS 32 位處理器的測試電路進行實測[13]。測試平臺為Xilinx 的Zynq[14]xc7z035ffg676?2 SoC。整個測試系統(tǒng)的框架如圖7 所示。

        首先由PC 配置故障參數(shù)給Zynq 的PS 端,參數(shù)主要包括ID 和故障類型。然后PS 端根據(jù)參數(shù)產(chǎn)生故障向量并下發(fā)給PL 端的故障注入控制器,其中故障向量不僅包含了PC 配置的基本參數(shù),還包含了執(zhí)行次數(shù)和故障注入時間等信息。實驗時參考設計和待測設計同時執(zhí)行一個運算程序,故障注入控制器在執(zhí)行過程中對待測設計注入故障,隨后由故障監(jiān)控器比較二者的運算結(jié)果,如果結(jié)果不一致則判定錯誤發(fā)生,并將結(jié)果保存到存儲器,最后由PS 讀取故障結(jié)果數(shù)據(jù)。

        實驗從資源開銷和速度兩方面來評估性能。在資源開銷方面,處理器主要分為取指、譯碼、執(zhí)行、存儲和寫回5 個模塊,故只需對這5 個模塊的原始資源和修改后的資源開銷進行對比,具體如表1所示。

        表1 原始邏輯和修改后的邏輯資源開銷對比Table 1 Comparison of resource cost between the original and modified logics

        可見修改后電路總共消耗的LUT 增加了69.8%,觸發(fā)器的開銷幾乎沒有增加。寫回模塊不含有觸發(fā)器,腳本處理前后沒有變化。而文獻[9]使用掃描鏈處理類似規(guī)模電路(觸發(fā)器數(shù)目為418,LUT 為2 322)時,觸發(fā)器的開銷增加130.1%~360.8%,LUT 增加的開銷為42.8%~237.9%;文獻[10]的掃描鏈在處理電路(觸發(fā)器數(shù)目為530,LUT 為1 543)時,觸發(fā)器和LUT 增加的開銷分別為33.9% 和29.1%;文獻[11]采用修改內(nèi)置庫的方式處理電路(觸發(fā)器數(shù)目為3 991,LUT 為3 482)增加了1.5 倍的LUT 資源;文獻[12]使用旁路注入處理小規(guī)模電路(觸發(fā)器數(shù)目為119,LUT 為362)增加了143.1% 的LUT。比較后可發(fā)現(xiàn)本文方案的資源開銷相比大多數(shù)方案較小,對測試平臺的要求較低。

        考慮到工藝的發(fā)展以及電路規(guī)模的增大,以一定的面積開銷來換取快速故障注入的實現(xiàn)是可以接受的。

        在速度性能方面,實驗設定為每個時鐘周期都對選定的某個觸發(fā)器注入故障,可計算系統(tǒng)的最快故障注入速度。測試覆蓋全部1 712 個觸發(fā)器,參考設計工作頻率為100 MHz,待測設計由于時分復用需將頻率設置為200 MHz。測試結(jié)果如表2 所示,其中模擬時間包括電路執(zhí)行程序,測試向量的配置和下發(fā)以及數(shù)據(jù)分析的全部開銷。雖然PS 平均每次生成和發(fā)送測試向量產(chǎn)生了5.96μs 左右的開銷,但故障注入速度依然達到6.8 ns/故障,非常接近系統(tǒng)的工作頻率。其中生成每個測試向量所需時間為定值,如果待測電路的執(zhí)行時間越長,系統(tǒng)等待新測試向量的開銷就更小,故障注入速度也會越快。

        表2 故障注入測試結(jié)果Table 2 Fault injection test results

        進一步比較本文所提及的其他故障注入技術(shù),對速度進行對比,結(jié)果如表3 所示。

        表3 速度性能對比Table 3 Speed performance comparison

        由于各類方案的待測電路規(guī)模、執(zhí)行時間和時鐘頻率各不相同,表3 中新增了故障注入速度(歸一化為ns)和時鐘頻率(ns)的比值以便于直觀比較,比值越小說明故障注入速度和電路的工作頻率越接近,相對更快。文獻[9,10]雖然注入方式一致,但文獻[9]優(yōu)化了故障注入機制,減少了主機和測試平臺的交互,因此具備速度優(yōu)勢;文獻[10]則通過串口傳輸故障激勵,造成時間開銷太大。基于掃描鏈的方式相對于本文方案在速度性能上仍舊存在明顯差距。文獻[11]的故障注入方式雖然較快,但測試平臺中包含兩塊FPGA,其中一塊用于和主機的數(shù)據(jù)通信和故障檢測,另一塊用于實現(xiàn)故障電路,二者通過接口相連,導致整體數(shù)據(jù)鏈路過長,造成速度不理想。同理,文獻[12]雖然采取和本文同樣的實現(xiàn)方式,但故障激勵的傳輸開銷太大,導致速度偏慢。本文通過網(wǎng)口傳輸故障配置參數(shù),PS 自動生成故障激勵,減少了和主機的通信頻率,并通過AXI 總線傳遞給PL,顯著縮短了故障向量的傳輸開銷,降低了系統(tǒng)的等待時間。數(shù)據(jù)結(jié)果表明,本文技術(shù)方案的故障注入速度相比現(xiàn)有的方案高了2~3 個數(shù)量級。

        4 結(jié)束語

        本文提出了一種適用于VLSI 電路的快速故障注入方法,通過腳本自動完成電路分析和旁路注入故障邏輯的修改。最后選取復雜的微處理器設計驗證性能,實驗結(jié)果表明,本方法故障注入速度可以達到108個故障/s,可滿足超大規(guī)模集成電路的單粒子效應故障注入的模擬需求。

        猜你喜歡
        故障
        故障一點通
        奔馳R320車ABS、ESP故障燈異常點亮
        WKT型可控停車器及其故障處理
        基于OpenMP的電力系統(tǒng)并行故障計算實現(xiàn)
        電測與儀表(2016年5期)2016-04-22 01:13:50
        故障一點通
        故障一點通
        故障一點通
        故障一點通
        故障一點通
        江淮車故障3例
        国产亚洲av无码av男人的天堂| 久久精品国产99久久丝袜| 成人xx免费无码| 亚洲一区二区三区综合网| 久久久久中文字幕无码少妇| 亚洲国产免费公开在线视频| av免费观看网站大全| 无码爆乳护士让我爽| 欧美性大战久久久久久久| 黑人玩弄人妻中文在线| 国产亚洲sss在线观看| 国产颜射视频在线播放| 男女做那个视频网站国产| 国产97在线 | 日韩| 久久精品人成免费| 91情侣在线精品国产免费| 久久综合老鸭窝色综合久久| 不卡一区二区三区国产| 人妻饥渴偷公乱中文字幕| 亚洲精品无码av片| 青青草针对华人超碰在线| 国产老熟女精品一区二区| 99久久免费国产精品| 国产精品久久久久久妇女6080| 日本韩国一区二区三区| 久久综合这里只有精品| 欧美成人精品第一区| 无码va在线观看| 9999毛片免费看| 色婷婷av一区二区三区不卡| 日本强伦姧人妻一区二区| 精品国产av最大网站| 2017天天爽夜夜爽精品视频| 国产一区二区三区 在线观看| 成年美女黄的视频网站| 国产一极内射視颍一| 夜夜被公侵犯的美人妻| 一区二区三区四区午夜视频在线| 日本女优在线一区二区三区| 免费中文熟妇在线影片| 亚洲AV成人无码久久精品在|