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

        ?

        基于Qt的Verilog故障注入工具設(shè)計與實現(xiàn)

        2019-01-30 02:23:14康俊杰于健海
        實驗技術(shù)與管理 2019年1期
        關(guān)鍵詞:圖形界面分析器故障注入

        王 潔, 康俊杰, 侯 剛, 于健海

        (1. 大連理工大學(xué) 軟件學(xué)院, 遼寧 大連 116620; 2. 遼寧省泛在網(wǎng)絡(luò)與服務(wù)軟件重點實驗室, 遼寧 大連 116620; 3. 梧州學(xué)院 電子與信息工程學(xué)院, 廣西 梧州 543002)

        電子產(chǎn)品在復(fù)雜多變的應(yīng)用環(huán)境中發(fā)生故障的可能性增大,微處理器的可靠性和穩(wěn)定性受到極大挑戰(zhàn)[1-2]。容錯技術(shù)能夠有效保障微處理器的可靠性,但如何驗證容錯技術(shù)的有效性則是需要研究的問題[3-4]。故障注入是一種靈活、方便且易于操作的有效驗證容錯的技術(shù),通過對電路注入故障,能夠反饋微處理器注入故障后的反應(yīng),設(shè)計人員可記錄故障數(shù)據(jù)并分析處理,最終用于評價容錯機制的可靠性[5-7]。本文提出了基于Qt的Verilog故障注入工具VBFIT的設(shè)計方案,利用VBFIT可以實現(xiàn)Verilog HDL代碼的掃描,通過語法語義分析對寄存器變量精確定位,用戶能夠根據(jù)自己的需求選取變量并對微處理器進行故障注入,以研究容錯技術(shù)的可靠性。

        1 總體框架設(shè)計

        電路的模擬故障注入主要有2種方式:一是通過仿真器命令進行故障注入,這種方式易于實現(xiàn);二是改變源代碼,從模型內(nèi)部生成故障,這種方式較為復(fù)雜,但能夠?qū)崿F(xiàn)更多故障模型[8-9]。為了滿足設(shè)計人員研究微處理器容錯性能需求,VBFIT通過掃描Verilog設(shè)計源文件直接對源代碼注入故障,具體功能如下:

        (1) 源代碼掃描分析:掃描整個Verilog工程文件,獲得每個模塊中的變量定義以及例化關(guān)系;

        (2) 故障注入:根據(jù)使用者選擇的故障點自動修改設(shè)計源文件;

        (3) 圖像顯示:以圖像化的方法顯示故障注入的效果,并對結(jié)果進行分析。

        故障注入工具主要分為2部分:(1)用于提供與用戶交互的界面程序;(2)用于處理原工程文件、輸出新的工程文件的后臺執(zhí)行程序。VBFIT工具總體框架設(shè)計如圖1所示。

        圖1 總體框架設(shè)計

        用戶選擇需要故障注入的工程后,界面程序?qū)⒃撀窂絺魉徒o后臺程序,后臺程序?qū)⒃撐募窂竭M行掃描,通過語法語義分析器對Verilog源文件進行解析,并將每一個故障注入點以語法樹的形式展現(xiàn)給用戶。用戶輸入故障注入?yún)?shù)后,通過故障注入管理器,利用故障注入宏對源文件進行故障注入,生成新的工程文件。對新生成的工程文件進行模擬仿真,分析結(jié)果后反饋給用戶,用于容錯性能的評價。

        2 功能模塊設(shè)計

        從總體框架設(shè)計可以看出,VBFIT主要是由圖形界面、語法語義分析器以及故障注入管理器等功能模塊組成。

        2.1 VBFIT圖形界面

        圖形界面主要用于與用戶交互,以圖形化界面向用戶展現(xiàn)工程文件的故障注入過程。通過圖形界面,用戶可將整個Verilog工程文件導(dǎo)入VBFIT工具,經(jīng)過語法語義分析器處理后對用戶展示可進行故障注入的每個位置。用戶通過故障注入管理器輸入故障參數(shù),即可完成故障注入,最終生成新的源文件,用于容錯性能測試。表1為圖形界面的功能說明。

        表1 VBFIT圖形界面各模塊的功能

        2.2 語法語義分析器

        語法語義分析器主要對Verilog文件進行解析,確定各個module間的層次關(guān)系,生成模型的語法分析列表,建立每個基本元素的語法樹,最終得到所有可能的故障注入點。

        以簡單的Verilog語法語義分析器為例。該分析器并不對Verilog語言進行錯誤檢查和編譯,而只是對原文件進行掃描。識別器中可以注入故障的模塊、寄存器、線網(wǎng)等基本電路元件,從而建立整個注入對象的語法結(jié)構(gòu)樹。

        語法語義分析器包括代碼掃描,保留字識別,標(biāo)識符的識別、添加和修改、變量屬性獲取等4個子功能。為了保證對Verilog HDL靈活的語言規(guī)則的適配度,代碼掃描功能采用了按字符掃描的方法,利用正則表達式、非確定性自動機(NFA)對Verilog HDL進行描述[10-12]。

        Verilog代碼中的保留字、標(biāo)識符和空白的正則表達式定義如下:

        Reservedword=module| if | while | for | always@ | output | input | endmodule | initial | begin |end | reg | wire | parameter | assign |

        Letter = [a-zA-z]

        Digit = [0-9]

        Identifer = (Letter | _ )(Letter | Digit | _)*

        Whitespace = (newline | blank | tab |comment)+

        將識別到的元素名稱存在符號表中,用于識別各個元素之間的層次關(guān)系。根據(jù)分隔符和空白格對掃描到的單詞進行判斷(是否為關(guān)鍵字、標(biāo)識符、數(shù)字等);保留字和標(biāo)識符的識別功能通過容器(vector)類進行實現(xiàn),通過對兩個容器的增、刪、改、查,對保留字和標(biāo)識符進行添加、識別和修改;變量屬性的獲取主要是通過對已定義的標(biāo)識符進行識別,然后再進行對單個標(biāo)識符的屬性修改,對于新定義標(biāo)識符,會有相應(yīng)的默認(rèn)屬性。根據(jù)掃描結(jié)果建立語法樹,并通過圖形界面展示給設(shè)計人員用于故障注入。

        2.3 故障注入管理器

        如圖2所示,故障注入管理的主要功能是獲取故障注入節(jié)點,與用戶交互故障模型、故障周期、故障位等參數(shù),并將參數(shù)傳給底層函數(shù),再利用底層函數(shù)將該故障精準(zhǔn)注入。

        圖2 故障注入管理器工作原理

        在故障注入管理器圖形界面,用戶可設(shè)置故障注入的參數(shù)有故障位、故障模型(置1,置0,翻轉(zhuǎn)等)、故障注入周期等。用戶收到Verilog語法語義分析器返回的數(shù)據(jù)后,根據(jù)該數(shù)據(jù)選擇故障需要注入的位置,同時設(shè)置故障注入的周期和所注入的故障模型。將該數(shù)據(jù)提交給故障注入管理器后,管理器會判斷用戶提供的參數(shù)是否合法,如不合法(數(shù)據(jù)位不存在,或缺少相關(guān)參數(shù)等),將提示用戶重新提交參數(shù)。

        3 實驗結(jié)果和分析

        VBFIT工具是基于Qt平臺開發(fā)的,整個程序功能部分代碼使用C++語言開發(fā)。C++語言中特有的類定義及文件操作功能,可以方便對源代碼進行掃描分析并存儲信息。為保證將工程的詳細(xì)信息輸出給用戶,主窗口采用了多呈現(xiàn)區(qū)域的設(shè)計,分別將模塊、代碼、變量在3個區(qū)域分別用樹狀圖、文本框、列表方式顯示給用戶。

        進行故障注入的實驗對象為四位全加器,利用Xilinx公司的ISE開發(fā)套件生成四位全加器的Verilog源代碼,將源代碼導(dǎo)入VBFIT中進行故障注入,生成新的源代碼。

        四位全加器原始代碼

        always@(posedge clk or negedge nrst) begin

        if(!nrst)

        begin

        en_tmp <= 4’hE;

        end

        else

        begin

        en_tmp <= {en_tmp[2:0],en_tmp[3]}; end end assignen = en_tmp; endmodule

        新生成的四位全加器代碼如下:

        //A BIT_FAULT INJECTED count <= count + 1; if(count ==12) begin en_tmp <= ({en_tmp[2:0],entmp[3]})^(1<<2); end else begin en_tmp <={en_tmp[2:0],entmp[3]}; end end end assignen = en_tmp; endmodule

        在進行故障注入時,選擇對en_tmp變量的第3位、在第12個時鐘周期發(fā)生位翻轉(zhuǎn)故障,該部分代碼與未進行故障注入時的代碼進行比對,發(fā)現(xiàn)在聲明部分首先添加了一個周期計數(shù)器count,用來計算代碼注入的周期;在原來en_tmp的賦值語句處進行了代碼重構(gòu),使原變量的值根據(jù)故障類型進行重新運算,從而達到故障注入的目的。

        為對比顯示故障注入效果,將兩個工程文件進行模擬仿真,得到仿真波形圖(見圖3和圖4)。

        圖3 未故障注入時的模擬波形

        圖4 故障注入后波形

        從圖3中的波形可知,在第17個周期,系統(tǒng)輸出結(jié)果為6+7的數(shù)值,s值為13正確;從圖4可以看出,注入故障后,在第12個時鐘周期,en_tmp的值發(fā)生了錯誤,本應(yīng)為0111,卻為0011,第三位發(fā)生了位翻轉(zhuǎn)故障,同時第17個時鐘周期輸出的6+7的計算結(jié)果為5是錯誤的,證明了VBFIT實現(xiàn)了有效的故障注入。

        4 結(jié)語

        本文基于Qt平臺設(shè)計了VBFIT故障注入工具,通過對Verilog HDL代碼的掃描,能夠?qū)崿F(xiàn)簡易的語法語義分析,得到各個信號和寄存器的語法樹,并以圖形化的方式展示給用戶。通過故障注入管理器,用戶可以實現(xiàn)對信號的精確故障注入,滿足用戶多種故障注入需求,從而實現(xiàn)對電路容錯機制的可靠性測試與評價。對于復(fù)雜的工程文件,需要加強對原代碼的實現(xiàn)能力,自動識別更多種語法結(jié)構(gòu),同時也需要增加更多功能,更好地滿足用戶的需求。

        猜你喜歡
        圖形界面分析器故障注入
        Epigallocatechin-3-gallate exerts antihypertensive effects and improves endothelial function in spontaneously hypertensive rats
        模擬訓(xùn)練裝備故障注入系統(tǒng)研究
        酒精分析器為什么能分辨人是否喝過酒
        SM4算法前四輪約減輪故障注入分析
        采用修改-回放原理的1553B故障注入方法
        多邊形電極線形離子阱質(zhì)量分析器的結(jié)構(gòu)與性能
        用VMRun快速置備千臺虛擬機
        應(yīng)用于詞法分析器的算法分析優(yōu)化
        列車MVB總線故障注入研究
        重看圖形界面“扁平化”與“擬物化”之爭——關(guān)于設(shè)計思維的探討
        久久国产精品二区99| 国产一区二区三区av天堂| 久久九九av久精品日产一区免费| 久久人妻中文字幕精品一区二区| 粗大的内捧猛烈进出看视频| 亚洲成a人无码| 中文字幕精品一二三四五六七八 | 亚洲AV永久无码精品导航| 精品一区二区中文字幕| 久久一道精品一区三区| 国产尤物av尤物在线观看| 国产精品一区二区在线观看99| 男男互吃大丁视频网站| 国产一区二区av免费在线观看| 免费操逼视频| 亚洲日韩图片专区小说专区| 爆乳无码AV国内| 精品国产亚洲一区二区三区四区| 中文字幕人妻无码视频| 免费大片黄在线观看| 亚洲免费不卡av网站| 三区中文字幕在线观看| 免费久久人人爽人人爽av| 无码一级视频在线| 亚洲自偷自拍另类第一页| 一本色综合网久久| 一本大道久久东京热无码av| 中文字幕亚洲无线码a| 中文字幕综合一区二区| 巨大巨粗巨长 黑人长吊| av在线色| 一区二区三区日本在线| 无遮挡1000部拍拍拍免费| 少妇寂寞难耐被黑人中出| 亚洲天堂无码AV一二三四区 | 国产午夜福利片在线观看| 熟女性饥渴一区二区三区| 美女裸体无遮挡免费视频的网站| 国产成人av一区二区三| 少妇被爽到高潮喷水久久欧美精品| 中文字幕无线码中文字幕|