• 
    

    
    

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

      基于CRC算法的Rom Bist設(shè)計(jì)

      2014-04-29 06:05:19鄭曉亮戴瀾
      電子世界 2014年15期

      鄭曉亮 戴瀾

      【摘要】存儲(chǔ)器內(nèi)置自測(cè)試是嵌入式存儲(chǔ)器測(cè)試的一種極為重要的方法,本文以ROM測(cè)試作為研究的對(duì)象。而CRC碼(循環(huán)校驗(yàn)碼)是一種在實(shí)際通信中應(yīng)用很廣泛的差錯(cuò)控制編碼,具有很強(qiáng)的檢錯(cuò)能力,可以很好的完成Rom內(nèi)容的校驗(yàn)測(cè)試。本文把CRC串行運(yùn)算方法作為依據(jù),連續(xù)完成8bit串行運(yùn)算作為一個(gè)單元,實(shí)現(xiàn)了8bitCRC并行運(yùn)算,并通過(guò)邏輯推理和運(yùn)算,給出了Verilog HDL語(yǔ)言的邏輯表達(dá)式。最后,基于CRC算法提出了一種Rom測(cè)試的設(shè)計(jì)方案。

      【關(guān)鍵詞】CRC;ROM;BIST;Verilog HDL

      引言?

      隨著soc技術(shù)的不斷發(fā)展,嵌入式存儲(chǔ)器所占的面積也已經(jīng)超過(guò)了60%以上。因?yàn)榇鎯?chǔ)器的單元排列非常緊密,導(dǎo)致產(chǎn)生的故障類型多種多樣,并且嵌入式存儲(chǔ)器比邏輯模塊具有更高的復(fù)雜度和更多的共用信號(hào),所以產(chǎn)生故障的可能性就更高。這種趨勢(shì)不但增加軟硬件協(xié)同設(shè)計(jì)的難度,而且在芯片的成品率控制和故障檢測(cè)方面也引發(fā)了新的技術(shù)難題。快速而高效地對(duì)存儲(chǔ)器測(cè)試,是批量存儲(chǔ)器測(cè)試的一個(gè)重要課題[1]。

      內(nèi)建自測(cè)試已被認(rèn)為是用于嵌入式存儲(chǔ)器測(cè)試的一種極為重要的方法。存儲(chǔ)器內(nèi)置自測(cè)試(BIST)是 SoC 設(shè)計(jì)中用來(lái)測(cè)試嵌入式存儲(chǔ)器的標(biāo)準(zhǔn)技術(shù),它以合理的面積開(kāi)銷來(lái)對(duì)單個(gè)嵌入式存儲(chǔ)器進(jìn)行徹底的測(cè)試[2][3]。內(nèi)建自測(cè)試即芯片內(nèi)部自行測(cè)試,是可測(cè)性的一種實(shí)現(xiàn)方式。

      論文對(duì)ROM測(cè)試的方法進(jìn)行研究,以CRC-CCITT校驗(yàn)算法作為基礎(chǔ),用CRC校驗(yàn)的方式完成ROM內(nèi)容的校驗(yàn),并設(shè)計(jì)RomBist電路。

      1.CRC校驗(yàn)算法

      循環(huán)校驗(yàn)碼(CRC碼),是數(shù)據(jù)通信領(lǐng)域中最常用的一種差錯(cuò)校驗(yàn)碼,其特征是信息字段和校驗(yàn)字段的長(zhǎng)度可以任意選定。CRC校驗(yàn)碼的基本思想是利用線性編碼理論,在發(fā)送方根據(jù)要傳送的k位二進(jìn)制碼序列,以一定的規(guī)則產(chǎn)生一個(gè)校驗(yàn)用的監(jiān)督碼(既CRC碼)r位,并附在信息后邊,構(gòu)成一個(gè)新的二進(jìn)制碼序列數(shù)共(k+r)位,最后發(fā)送出去。在接收端,則根據(jù)信息碼和CRC碼之間所遵循的規(guī)則進(jìn)行檢驗(yàn),以確定傳送中是否出錯(cuò)。下表列出了一些常見(jiàn)于標(biāo)準(zhǔn)的CRC多項(xiàng)式[4][5][6]。

      表1 常見(jiàn)標(biāo)準(zhǔn)CRC

      名稱 生成多項(xiàng)式 簡(jiǎn)記式 應(yīng)用舉例

      CRC-4 X4+X1+1 3 ITU G 704

      CRC-12 X12+X11+X3+X+1

      CRC-16 X16+X15+X+1 8005 IBM SDLC

      CRC-CCITT X16+X12+X5+1 1021 ISO HDLC, ITU X.25, V.34/V.41/V.42, PPP-FCS

      CRC-32 X32+X26+X23+…+X2+X+1 04C11DB7 ZIP, RAR, IEEE 802 LAN/FDDI, IEEE 1394, PPP- FCS

      CRC-32C X32+X28+X27+…+X8+X6+1 1EDC6F41 SCTP

      2.8位并行CRC算法

      CRC-CCITT算法的多項(xiàng)式為X^16+X^12+X^5+1,計(jì)算CRC實(shí)際上是將數(shù)據(jù)通過(guò)線性反饋移位寄存器,所有數(shù)據(jù)移入后CRC寄存器的值即為16位CRC。原理如下圖所示,其中C15-C0為線性反饋移位寄存器R15-R0的初始值,數(shù)據(jù)按位移入CRC線性移位寄存器,CRC移位寄存器的依次右移一位,移出位C0與新移入的數(shù)據(jù)D0異或作為R15寄存器的新值,C11、C0與D0異或的值作為R10寄存器的新值,C4、C0與D0異或的值作為R3寄存器的新值,依次類推完成CRC運(yùn)算(見(jiàn)圖1)。

      ROM存儲(chǔ)器是按照byte操作,每次讀取1byte數(shù)據(jù)(8bit數(shù)據(jù)),需要把上述串行移位運(yùn)算轉(zhuǎn)化為并行運(yùn)算,相當(dāng)于一次并行運(yùn)算就得到了串行移位運(yùn)算時(shí)需要8bit移位所得的結(jié)果。每個(gè)時(shí)鐘完成8bit數(shù)據(jù)的CRC值計(jì)算,下一個(gè)8bit數(shù)據(jù)到來(lái)時(shí),把上一個(gè)8bit數(shù)據(jù)的CRC值C15-C0作為初值,繼續(xù)完成并行CRC計(jì)算,即每次處理1byte),如表1所示。

      串并行運(yùn)算推移圖中,Ri為CRC移位寄存器(R0為低位),Ci為CRC移位寄存器的初值(C0為低位),Di為輸入數(shù)據(jù)(D0為低位),Xi=Di^Ci,同一欄中數(shù)據(jù)的關(guān)系是異或??傻帽?——8位并行計(jì)算的CRC16邏輯關(guān)系式。

      表2 8位并行計(jì)算的CRC16邏輯關(guān)系式

      R0=C8^X4^X0 R8=X0^X5^X1

      R1=C9^X5^X1 R9=X1^X6^X2

      R2=C10^X6^X2 R10=X2^X7^X3

      R3=C11^X0^X7^X3 R11=X3

      R4=C12^X1 R12=X4^X0

      R5=C13^X2 R13=X5^X1

      R6=C14^X3 R14=X6^X2

      R7=C15^X4^X0 R15=X7^X3

      3.Verilog HDL邏輯表達(dá)式

      使用Verilog HDL硬件描述語(yǔ)言實(shí)現(xiàn)上述算法,設(shè):

      crc_low[7:0]為低8位移位寄存器R7~R0;

      crc_high[7:0]為高8位移位寄存器R15~R8;

      t_rom_d[7:0]為8位輸入數(shù)據(jù)D7~D0。

      crc_cal[7:0]為8位中間變量寄存器[7]。

      由8位并行CRC16邏輯關(guān)系式可知,寄存器中的值為Xi和Ci的組合,首先,利用Xi<=Di^Ci的關(guān)系,得出X7~X0。

      crc_cal[7:0]<=crc_low[7:0]^t_rom_d[7:0];

      crc_cal[7:0] X7 X6 X5 X4 X3 X2 X1 X0

      其次,根據(jù)R15~R12,R10~R7,R3~R0可知,Xi^X(i+4)成對(duì)出現(xiàn)。

      crc_cal[7:4]<=crc_cal[7:4]^crc_cal[3:0]

      crc_cal[7:0] X7^X3 X6^X2 X5^X1 X4^X0 X3 X2 X1 X0

      可以推導(dǎo)出crc_low[7:0]和crc_high[7:0]的表達(dá)式,如下所示。

      crc_low[7:4]<=crc_high[7:4]^crc_cal[4:1];

      crc_low[3]<=crc_high[3]^crc_cal[0]^crc_cal[7];

      crc_low[2:0]<=crc_high[2:0]^crc_cal[6:4];

      crc_high[7:3] <= crc_cal[7:3];

      crc_high[2:0]<=crc_cal[2:0]^crc_cal[7:5];

      4.Rom Bist設(shè)計(jì)

      只讀存儲(chǔ)器ROM(Read only Memory)。只讀存儲(chǔ)器是能對(duì)其存儲(chǔ)的內(nèi)容讀出,而不能對(duì)其重新寫入的存儲(chǔ)器。這種存儲(chǔ)器一旦存入了原始信息后,在程序執(zhí)行過(guò)程中,只能將內(nèi)部信息讀出,而不能隨意重新寫入新的信息去改變?cè)夹畔ⅰR虼?,通常用它存放固定不變的程序、常?shù)以及漢字字庫(kù),甚至用于操作系統(tǒng)的固化。芯片電源掉電后,存儲(chǔ)器數(shù)據(jù)不丟失。存儲(chǔ)器中的數(shù)據(jù)在wafer制造時(shí)利用光刻工藝掩膜(mask)進(jìn)行編程,一旦制造完成,其內(nèi)容不能被改變。

      圖2 Rom Bist 結(jié)構(gòu)圖

      芯片收到ROM測(cè)試命令后,接收外部輸入16位數(shù)據(jù)Date[15:0]作為CRC校驗(yàn)的標(biāo)準(zhǔn)值。TE_RomBist信號(hào)被置為1,ROMbist開(kāi)始工作,Done信號(hào)置為0,F(xiàn)ail信號(hào)置為1,產(chǎn)生ROM的地址、片選信號(hào)和讀寫使能信號(hào),讀取ROM內(nèi)容進(jìn)行CRC校驗(yàn)運(yùn)算,CRC寄存器初始值為16hFFFF,ROM中所有數(shù)據(jù)校驗(yàn)運(yùn)算完畢后,使用運(yùn)算結(jié)果crc_low和crc_high,與標(biāo)準(zhǔn)值進(jìn)行對(duì)比,把Done信號(hào)置為1,表示測(cè)試結(jié)束,對(duì)比成功,F(xiàn)ail置為0,通過(guò)ROM測(cè)試,對(duì)比不成功,F(xiàn)ail信號(hào)置為1,測(cè)試失敗。

      5.結(jié)論

      論文通過(guò)對(duì)CRC校驗(yàn)算法的研究,完了串行CRC校驗(yàn)到并行CRC校驗(yàn)的轉(zhuǎn)化,使用Verilog HDL硬件描述語(yǔ)言完成了算法的實(shí)現(xiàn),得到了CRC校驗(yàn)算法的邏輯表達(dá)式,可以在一個(gè)時(shí)鐘周期完成8bit CRC并行運(yùn)算。并給出了一種RomBist電路的方案,實(shí)現(xiàn)了基于CRC校驗(yàn)算法的RomBist設(shè)計(jì)。

      參考文獻(xiàn)

      [1]徐金榮.基于BIST的嵌入式存儲(chǔ)器可測(cè)性設(shè)計(jì)研究[D].北京交通大學(xué)碩士學(xué)位論文,2008:12-25.

      [2]姚俊.基于BIST的嵌入式存儲(chǔ)器可測(cè)性設(shè)計(jì)算法研究[D].哈爾濱工程大學(xué)碩士學(xué)位論文,2007:13-21

      [3]李文琦.高性能MemoryBIST設(shè)計(jì)實(shí)例[D].上海交通大學(xué)碩士學(xué)位論文,2007:3-5.

      [4]朱榮華.一種CRC 并行計(jì)算原理及實(shí)現(xiàn)方法[J].電子學(xué)報(bào),1999,27(4):143-145.

      [5]李永忠.通用并行CRC 計(jì)算原理及其硬件實(shí)現(xiàn)方法[J].西北民族學(xué)院學(xué)報(bào):自然科學(xué)版,2002,23(1):33-37.

      [6]黃維超,劉橋,黃初華.基于Verilog的CRC并行實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2009,25(10):112-113.

      [7]夏寧聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程(第二版)[M].北京:北京航空航大人學(xué)出版社,2008:26-49.

      巴林右旗| 准格尔旗| 永寿县| 景洪市| 涿鹿县| 文成县| 张家界市| 资兴市| 吐鲁番市| 奈曼旗| 泽州县| 枞阳县| 建德市| 观塘区| 汾西县| 图木舒克市| 宕昌县| 陇南市| 丰顺县| 六盘水市| 武定县| 会理县| 昌黎县| 昂仁县| 白城市| 贡嘎县| 县级市| 锦屏县| 察雅县| 社旗县| 榕江县| 启东市| 台南市| 萝北县| 江油市| 宜城市| 沾化县| 灵宝市| 清流县| 平武县| 山丹县|