• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      Flash 型FPGA 內(nèi)嵌BRAM 測(cè)試技術(shù)研究

      2023-12-31 18:10:12雷星辰季偉偉陳龍韓森
      電子與封裝 2023年12期
      關(guān)鍵詞:存儲(chǔ)單元波形圖存儲(chǔ)器

      雷星辰,季偉偉,陳龍,韓森

      (1.電子科技大學(xué)(深圳)高等研究院,廣東深圳 518110;2.中國(guó)電子科技集團(tuán)公司第五十八研究所,江蘇無錫 214035)

      1 引言

      Flash 型FPGA 以其非易失性[1]、低功耗[2]、高安全性和上電即可運(yùn)行[3]的特性在航空航天及軍事領(lǐng)域得到廣泛應(yīng)用[4],因此對(duì)Flash 型FPGA 內(nèi)部資源測(cè)試方法的研究尤為重要。FPGA 內(nèi)嵌的塊隨機(jī)存儲(chǔ)器(BRAM)能夠快速且穩(wěn)定地存取數(shù)據(jù),因此對(duì)BRAM的測(cè)試是至關(guān)重要的[5]。在存儲(chǔ)器測(cè)試中,存儲(chǔ)器內(nèi)建自測(cè)試(MBIST)已經(jīng)成為主流測(cè)試方法,此方法不僅能減少測(cè)試步驟和提高故障覆蓋率,還能減少測(cè)試成本[6-7]。March C+算法是存儲(chǔ)器測(cè)試中最為有效的測(cè)試算法之一,因其具有較高的故障覆蓋率和較短的測(cè)試時(shí)間等優(yōu)點(diǎn),被廣泛應(yīng)用于存儲(chǔ)器測(cè)試中,但其仍然存在故障覆蓋不全的問題,如不能覆蓋寫干擾耦合、干擾耦合、寫破壞耦合、字內(nèi)反向耦合、字內(nèi)等冪耦合、字內(nèi)狀態(tài)耦合等故障[8]。本文基于March C+算法對(duì)其進(jìn)行改進(jìn),提高其故障覆蓋率,并設(shè)計(jì)內(nèi)建自測(cè)試(BIST)電路對(duì)優(yōu)化后的算法進(jìn)行驗(yàn)證,結(jié)果表明,該算法可以達(dá)到提高故障覆蓋率的目的。

      2 故障模型

      故障模型不但可以將存儲(chǔ)器內(nèi)部的物理缺陷反映出來,同時(shí)也有助于完善測(cè)試算法。根據(jù)敏化Flash型FPGA 內(nèi)嵌BRAM 故障需要進(jìn)行的操作行為,將故障分為單單元故障、雙單元耦合故障以及多單元故障[9]。因多單元故障很少出現(xiàn),因此本文暫不對(duì)其進(jìn)行研究。

      2.1 單單元故障

      單單元故障是指在一個(gè)單獨(dú)的存儲(chǔ)單元上發(fā)生的故障,不受其他存儲(chǔ)單元的影響。單單元故障主要包括固定故障(SAF)、轉(zhuǎn)換故障(TF)、寫干擾故障(WDF)、讀破壞故障(RDF)、偽讀破壞故障(DRDF)、錯(cuò)誤讀取故障(IRF)、地址譯碼故障(ADF)和字內(nèi)故障[10]。

      SAF 是指對(duì)存儲(chǔ)單元進(jìn)行任何讀寫操作都不影響它的故障狀態(tài)值。存儲(chǔ)單元的固定值為0 或1(記為SAF0 或SAF1)且不發(fā)生改變。

      TF 是指存儲(chǔ)單元的狀態(tài)值無法從0 跳變到1,或無法從1 跳變到0。

      WDF 是指對(duì)某個(gè)單元進(jìn)行寫操作,當(dāng)寫入值與存儲(chǔ)單元自身的存儲(chǔ)值相同時(shí),這個(gè)寫操作會(huì)引起自身的存儲(chǔ)值發(fā)生改變。

      RDF 是指對(duì)存儲(chǔ)單元進(jìn)行讀操作時(shí),讀操作引起存儲(chǔ)單元內(nèi)原有值發(fā)生變化,并將發(fā)生變化后的錯(cuò)誤值讀出。

      DRDF 是指對(duì)存儲(chǔ)單元進(jìn)行讀操作時(shí),讀操作會(huì)引起存儲(chǔ)單元內(nèi)原有值發(fā)生變化,但讀出的數(shù)據(jù)卻是未發(fā)生變化之前的正確值。

      IRF 是指對(duì)存儲(chǔ)單元進(jìn)行讀操作時(shí),存儲(chǔ)單元內(nèi)原有值不發(fā)生變化,但讀出的數(shù)據(jù)卻是錯(cuò)誤值。

      ADF 是指給出的邏輯地址不能與對(duì)應(yīng)的存儲(chǔ)單元匹配,導(dǎo)致存儲(chǔ)單元儲(chǔ)存的數(shù)據(jù)錯(cuò)誤。

      字內(nèi)故障是指存儲(chǔ)單元中一個(gè)字節(jié)內(nèi)的單個(gè)比特發(fā)生改變,導(dǎo)致另一個(gè)比特發(fā)生變化。單個(gè)單元的字內(nèi)耦合故障分為以下三類:字內(nèi)反向耦合故障(Intra-word CFin)、字內(nèi)冪等耦合故障(Intra-word CFid)、字內(nèi)狀態(tài)耦合故障(Intra-word CFst)。

      2.2 雙單元耦合故障

      雙單元耦合故障是指對(duì)一個(gè)存儲(chǔ)單元進(jìn)行操作時(shí),導(dǎo)致與其相鄰或耦合的單元存儲(chǔ)的值發(fā)生改變。雙單元耦合故障可分為以下幾類:狀態(tài)耦合故障(CFst)、干擾耦合故障(CFds)、轉(zhuǎn)換耦合故障(CFtr)、寫破壞耦合故障(CFwd)、讀破壞耦合故障(CFrd)、偽讀破壞耦合故障(CFdrd)和錯(cuò)誤讀取耦合故障(CFir)。

      CFst 是指某個(gè)存儲(chǔ)單元的某個(gè)特定狀態(tài)引起相鄰或耦合單元跳變?yōu)槟骋粻顟B(tài)。

      CFds 是指對(duì)某個(gè)存儲(chǔ)單元進(jìn)行讀寫操作,引起相鄰或耦合單元的數(shù)據(jù)發(fā)生改變。CFds 可以進(jìn)一步細(xì)分為讀干擾耦合故障(CFdsrx)和寫干擾耦合故障(CFdsxwx)等類型。

      CFtr 是指當(dāng)某個(gè)存儲(chǔ)單元為特定狀態(tài)時(shí),引起相鄰或耦合單元的數(shù)據(jù)發(fā)生轉(zhuǎn)換故障。

      CFwd 是指對(duì)某個(gè)存儲(chǔ)單元進(jìn)行寫操作,引起相鄰或耦合單元的數(shù)據(jù)發(fā)生寫破壞故障。

      CFrd 是指當(dāng)某個(gè)存儲(chǔ)單元為特定狀態(tài)時(shí),引起相鄰或耦合單元的數(shù)據(jù)發(fā)生讀破壞故障。

      CFdrd 是指當(dāng)某個(gè)存儲(chǔ)單元為特定狀態(tài)時(shí),引起相鄰或耦合單元的數(shù)據(jù)發(fā)生偽讀破壞故障。

      CFir 指當(dāng)某個(gè)存儲(chǔ)單元為特定狀態(tài)時(shí),引起相鄰或耦合單元的數(shù)據(jù)發(fā)生錯(cuò)誤讀取故障。

      3 測(cè)試算法

      3.1 March 算法

      BIST 的準(zhǔn)確性是由所采用的測(cè)試算法來保證的。在存儲(chǔ)器測(cè)試算法中,March 系列算法是最常用的[11]。最早的March 算法相對(duì)簡(jiǎn)單,并且測(cè)試元素的設(shè)計(jì)也不夠成熟。March C+算法由于具有測(cè)試步驟少、故障覆蓋率高和易實(shí)現(xiàn)的特點(diǎn),被廣泛應(yīng)用于存儲(chǔ)器測(cè)試中。March C+算法的基本流程如下:

      1)對(duì)存儲(chǔ)器中的所有存儲(chǔ)單元進(jìn)行初始化,將它們的值設(shè)置為特定的初始狀態(tài)值(通常為0 或1);

      2)按照升序或降序的順序,依次將數(shù)據(jù)寫入每個(gè)存儲(chǔ)單元;

      3)在寫入數(shù)據(jù)之后,以相同的順序逐個(gè)讀取每個(gè)存儲(chǔ)單元的數(shù)據(jù),并將讀取的數(shù)據(jù)與預(yù)期值進(jìn)行比較,預(yù)期值是根據(jù)寫入數(shù)據(jù)的規(guī)律和地址順序確定的;

      4)根據(jù)不同的寫入和讀取順序組合,可以檢測(cè)出存儲(chǔ)器中可能存在的各種故障,例如SAF、TF 和耦合故障等,如果讀取的數(shù)據(jù)與預(yù)期值不一致,則表明存儲(chǔ)器存在故障;

      5)為了提高故障檢測(cè)的覆蓋率,需要多次執(zhí)行步驟2~4,每次執(zhí)行時(shí),可以選擇不同的寫入模式和讀取順序,以覆蓋更多的測(cè)試情況;

      6)在執(zhí)行完上述寫入和讀取操作后,進(jìn)行最后一次寫入和讀取的操作。最后一次寫入操作是為了檢測(cè)存儲(chǔ)單元是否存在保持故障,而最后一次讀取操作則是為了驗(yàn)證存儲(chǔ)器是否達(dá)到期望狀態(tài)。

      March C+算法的具體步驟為{↑W0;↑(R0,W1,R1);↑(R1,W0,R0);↓(R0,W1,R1);↓(R1,W0,R0);↓R0}。

      3.2 改進(jìn)后的測(cè)試算法

      用March C+算法檢測(cè)BRAM 時(shí)仍有部分故障檢測(cè)不到,其中包括WDF、CFds、CFwd、字內(nèi)耦合故障等。WDF、CFds、CFwd 不能被檢測(cè)出來的原因是在0或1 狀態(tài)下沒有進(jìn)行寫0 或?qū)? 操作,從而不能將存儲(chǔ)單元敏化為0w0 或1w1 狀態(tài)。字內(nèi)耦合故障不能被檢測(cè)出來的原因是在存儲(chǔ)單元狀態(tài)為0000 或1111時(shí),沒有進(jìn)行寫0101 或?qū)?010 操作,只是對(duì)一個(gè)字節(jié)內(nèi)全部寫0 或全部寫1。

      改進(jìn)后的算法增加了連續(xù)寫0 或?qū)? 的測(cè)試數(shù)據(jù)背景,即增加0w0 或1w1 的測(cè)試數(shù)據(jù)背景來覆蓋WDF、CFds 和CFwd。針對(duì)字內(nèi)耦合故障的檢測(cè),由于都是在同一個(gè)地址進(jìn)行寫操作,且是由高位到低位寫入,因此,字內(nèi)耦合故障與地址的升降無關(guān),可在原有算法基礎(chǔ)上增加0101 及1010 的測(cè)試數(shù)據(jù)背景來檢測(cè)字內(nèi)耦合故障。對(duì)于1 個(gè)位寬為4 的存儲(chǔ)器,其具體的測(cè)試算法步驟如下:{↑Wd0;↑(Rd0,Wd1,Rd1);↑(Rd1,Wd2,Rd2);↑(Rd2,Wd3,Rd3);↑(Rd3,Wd0,Wd0,Rd0);↓(Rd0,Wd3,Wd3,Rd3);↓(Rd3,Wd0,Rd0);↓Rd3}(其中d0 為4'b0000,d1 為4'b0101,d2 為4'b1010,d3 為4'b1111)。采用優(yōu)化后算法控制電路狀態(tài)轉(zhuǎn)換的流程如圖1 所示。

      圖1 采用優(yōu)化后算法控制電路狀態(tài)轉(zhuǎn)換的流程

      優(yōu)化后算法改進(jìn)了故障模型及故障原語,如表1所示。

      表1 優(yōu)化后算法的故障模型和故障原語

      將常見的March 系列算法檢測(cè)出的故障類型[8]與優(yōu)化后算法檢測(cè)出的故障類型進(jìn)行對(duì)比,各種算法的故障覆蓋率如表2 所示??梢钥闯?,優(yōu)化后算法對(duì)各類故障的覆蓋更全面,故障覆蓋率更高。相較于March C+算法的故障覆蓋率(72.1%),優(yōu)化后算法的故障覆蓋率(97.1%)提高了25 個(gè)百分點(diǎn);與時(shí)間復(fù)雜度相同的March SS 算法相比,優(yōu)化后算法的故障覆蓋率提高了5.8 個(gè)百分點(diǎn)。

      表2 各種算法的故障覆蓋率

      4 BIST 基本原理

      BIST 是一種在設(shè)計(jì)時(shí)在集成電路或芯片中嵌入相關(guān)功能電路,以提供自我測(cè)試功能的測(cè)試技術(shù),可在集成電路或芯片內(nèi)部進(jìn)行故障檢測(cè)。該技術(shù)通過在芯片內(nèi)部引入專門的測(cè)試電路,對(duì)各個(gè)功能模塊或組件的輸入/輸出數(shù)據(jù)進(jìn)行控制和驗(yàn)證,以判斷芯片是否可以正常工作。相較于傳統(tǒng)的外部測(cè)試方法,BIST具有更高的靈活性和效率,因此,本文選擇BIST 來驗(yàn)證算法的有效性。BIST 電路通常包括控制器、地址生成器、向量生成器和比較器等關(guān)鍵組件。控制器負(fù)責(zé)管理整個(gè)測(cè)試流程,包括啟動(dòng)和停止測(cè)試、控制測(cè)試模式和參數(shù)等。地址生成器負(fù)責(zé)生成訪問存儲(chǔ)單元的地址序列,以確保覆蓋全部存儲(chǔ)單元的測(cè)試。向量生成器則產(chǎn)生具有特定模式或隨機(jī)性的測(cè)試數(shù)據(jù),用于驅(qū)動(dòng)和驗(yàn)證芯片功能。比較器則用于將實(shí)際輸出值與預(yù)期輸出值進(jìn)行比較,以檢測(cè)存儲(chǔ)器是否存在故障。本文利用Flash 型FPGA 自身的硬件資源構(gòu)建BIST電路架構(gòu),完成對(duì)內(nèi)嵌BRAM 的測(cè)試。采用Verilog 硬件描述語言設(shè)計(jì)BIST 電路架構(gòu),BIST 電路的基本結(jié)構(gòu)如圖2 所示。在完成BIST 電路的設(shè)計(jì)后,將BIST電路配置到FPGA 內(nèi)嵌BRAM 周圍,并對(duì)其進(jìn)行測(cè)試。當(dāng)BIST 電路的DONE 信號(hào)處于高電平時(shí),表明測(cè)試已經(jīng)完成;當(dāng)BIST 電路的FAIL 信號(hào)處于高電平時(shí),表明FPGA 內(nèi)嵌BRAM 存在故障;當(dāng)BIST 電路的PASS 信號(hào)處于高電平時(shí),表明FPGA 內(nèi)嵌BRAM無故障。

      圖2 BIST 電路的基本結(jié)構(gòu)

      5 算法功能驗(yàn)證與仿真結(jié)果

      對(duì)March C+算法和優(yōu)化后的算法進(jìn)行功能驗(yàn)證,采用Microsemi 公司的Libero SoC 設(shè)計(jì)工具,并使用其搭建Modelsim 仿真平臺(tái),待測(cè)存儲(chǔ)器為1 024×4的BRAM,圖3 為采用March C+算法檢測(cè)無故障的BRAM 的仿真波形圖,可以看出,BIST 電路的PASS信號(hào)和DONE 信號(hào)分別從低電平變?yōu)楦唠娖?,這表明測(cè)試結(jié)束且沒有測(cè)出故障。圖4 為采用優(yōu)化后算法檢測(cè)無故障的BRAM 的仿真波形圖,同樣未檢測(cè)出故障。

      圖3 采用March C+算法檢測(cè)無故障的BRAM 的仿真波形圖

      圖4 采用優(yōu)化后算法檢測(cè)無故障的BRAM 的仿真波形圖

      通過對(duì)BRAM 注入WDF、CFds 和字內(nèi)耦合故障,分別采用兩種算法對(duì)注入WDF 的BRAM 進(jìn)行測(cè)試。圖5 為采用March C+算法檢測(cè)注入WDF 的BRAM 的仿真波形圖,可以看出未檢測(cè)到故障。圖6為采用優(yōu)化后算法檢測(cè)注入WDF 的BRAM 的仿真波形圖,可以看到,在對(duì)BRAM 進(jìn)行連續(xù)的寫操作后對(duì)BRAM 進(jìn)行讀操作,讀出數(shù)據(jù)與寫入數(shù)據(jù)不同,F(xiàn)AIL 信號(hào)由低電平變高電平,這表明在地址為3'h379處發(fā)生了WDF。

      圖6 采用優(yōu)化后算法檢測(cè)注入WDF 的BRAM 的仿真波形圖

      圖7 為采用優(yōu)化后算法檢測(cè)注入CFds 的BRAM的仿真波形圖,可以看出,在對(duì)地址3'h14e 進(jìn)行連續(xù)的寫操作后,3'h14d 處的數(shù)據(jù)發(fā)生變化,產(chǎn)生了CFds,F(xiàn)AIL 信號(hào)由低電平變?yōu)楦唠娖?,這表明故障被測(cè)出。因?yàn)闊o法使用March C+算法進(jìn)行連續(xù)的寫操作,所以無法檢測(cè)出CFds。

      圖7 采用優(yōu)化后算法檢測(cè)注入CFds 的BRAM 的仿真波形圖

      圖8 為采用優(yōu)化后算法檢測(cè)注入字內(nèi)耦合故障的BRAM 的仿真波形圖。在對(duì)原有數(shù)據(jù)為0000 的存儲(chǔ)單元進(jìn)行寫1010 操作時(shí),F(xiàn)AIL 信號(hào)從低電平變?yōu)楦唠娖?,這說明發(fā)生了字內(nèi)耦合故障,導(dǎo)致數(shù)據(jù)發(fā)生變化,此時(shí)讀出數(shù)據(jù)為0011,與正確數(shù)據(jù)不符。采用March C+算法進(jìn)行測(cè)試時(shí),其沒有0101 及1010 等測(cè)試數(shù)據(jù)背景,因此無法檢測(cè)出字內(nèi)耦合故障。

      6 結(jié)論

      本文在March C+算法的基礎(chǔ)上進(jìn)行改進(jìn),得到的優(yōu)化后算法能夠覆蓋WDF、CFds、CFwd 和字內(nèi)耦合故障等原來不能被檢測(cè)到的故障。對(duì)Flash 型FPGA內(nèi)嵌BRAM 進(jìn)行BIST 仿真驗(yàn)證,結(jié)果表明,優(yōu)化后的算法可以有效提高故障覆蓋率,相較于March C+算法,其故障覆蓋率提高了25 個(gè)百分點(diǎn),相較于時(shí)間復(fù)雜度相同的March SS 算法,其故障覆蓋率提高了5.8 個(gè)百分點(diǎn)。

      猜你喜歡
      存儲(chǔ)單元波形圖存儲(chǔ)器
      交流接觸器典型通斷過程分析
      一種28 nm工藝下抗單粒子翻轉(zhuǎn)SRAM的12T存儲(chǔ)單元設(shè)計(jì)
      由波形圖領(lǐng)悟聲音特性
      淺析CH-γ方程中解的求法
      靜態(tài)隨機(jī)存儲(chǔ)器在軌自檢算法
      用DIS數(shù)字化信息系統(tǒng)測(cè)量金屬棒中聲速的有效方法
      數(shù)據(jù)在計(jì)算機(jī)內(nèi)存中的存儲(chǔ)形式及實(shí)驗(yàn)驗(yàn)證
      一種成本更低的全新靜態(tài)DRAM存儲(chǔ)單元
      MiR-125a-5p is Upregulated in Plasma of Residents from An Electronic Waste Recycling Site
      存儲(chǔ)器——安格爾(墨西哥)▲
      上饶县| 定襄县| 兴安县| 武川县| 聊城市| 高陵县| 巫山县| 敦化市| 霞浦县| 扶沟县| 贵港市| 汝城县| 淮阳县| 铜鼓县| 松原市| 肇庆市| 彭山县| 咸丰县| 宝应县| 泌阳县| 泰来县| 仁寿县| 巴彦淖尔市| 沅江市| 英德市| 吴川市| 田东县| 家居| 房山区| 枣阳市| 永川市| 临清市| 盐源县| 揭东县| 靖安县| 皋兰县| 瓮安县| 长葛市| 兰溪市| 灵丘县| 泸西县|