999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2019-01-30 02:23:14康俊杰于健海
關(guān)鍵詞:語義故障用戶

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

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

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

1 總體框架設(shè)計(jì)

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

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

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

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

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

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

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

2 功能模塊設(shè)計(jì)

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

2.1 VBFIT圖形界面

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

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

2.2 語法語義分析器

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

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

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

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

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

2.3 故障注入管理器

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

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

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

3 實(shí)驗(yàn)結(jié)果和分析

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

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

四位全加器原始代碼

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

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

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

圖3 未故障注入時(shí)的模擬波形

圖4 故障注入后波形

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

4 結(jié)語

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

猜你喜歡
語義故障用戶
語言與語義
故障一點(diǎn)通
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
奔馳R320車ABS、ESP故障燈異常點(diǎn)亮
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
“上”與“下”語義的不對稱性及其認(rèn)知闡釋
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
故障一點(diǎn)通
江淮車故障3例
認(rèn)知范疇模糊與語義模糊
主站蜘蛛池模板: 久久青草免费91线频观看不卡| AV不卡在线永久免费观看| 亚洲另类色| 欧洲欧美人成免费全部视频| 天堂网亚洲综合在线| 性激烈欧美三级在线播放| av免费在线观看美女叉开腿| 久久久久亚洲精品成人网| 婷婷综合缴情亚洲五月伊| 日韩在线第三页| 免费三A级毛片视频| 丁香亚洲综合五月天婷婷| 亚洲第一中文字幕| 亚洲开心婷婷中文字幕| 色综合激情网| 久久精品无码一区二区日韩免费| 99视频在线免费| 久久国产精品嫖妓| 亚洲精品动漫在线观看| 精品欧美视频| 日日拍夜夜操| 伊人蕉久影院| 国产福利免费在线观看| 精品福利视频导航| 99re在线观看视频| 国产精品30p| 漂亮人妻被中出中文字幕久久 | 久久久久久久97| 黄片在线永久| 亚洲中文字幕国产av| 极品国产在线| 在线毛片网站| 97精品伊人久久大香线蕉| 亚洲男人在线天堂| 女人一级毛片| 亚洲第一香蕉视频| 国产簧片免费在线播放| 久久婷婷六月| 欧美精品不卡| 麻豆精品视频在线原创| 免费啪啪网址| 鲁鲁鲁爽爽爽在线视频观看| 网友自拍视频精品区| 久久中文无码精品| 亚洲色图综合在线| 国产精品刺激对白在线| 日韩123欧美字幕| 欧美黄色网站在线看| 国产精品美女网站| 伦精品一区二区三区视频| 亚洲无码高清视频在线观看| 这里只有精品在线播放| 久久久精品无码一区二区三区| 91激情视频| 中国国产一级毛片| 日韩欧美国产成人| 欧美高清三区| 亚洲欧美日韩中文字幕在线| 麻豆国产在线观看一区二区| 色综合网址| 波多野结衣一二三| 亚洲精品视频免费看| 免费观看成人久久网免费观看| 日本一区高清| 国产精品久久久久久久久kt| 91青青视频| 日韩av高清无码一区二区三区| 在线国产三级| 国产视频入口| 国产欧美日韩18| 88av在线| 天堂成人在线| 国产欧美精品专区一区二区| 久久精品娱乐亚洲领先| 久久99热这里只有精品免费看 | 国产精品蜜芽在线观看| 日本不卡在线| 日韩人妻少妇一区二区| 久久成人免费| 极品私人尤物在线精品首页 | 婷婷色中文网| 国产资源免费观看|