《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > EDA與制造 > 設(shè)計(jì)應(yīng)用 > 基于高層次綜合工具的BIST控制器設(shè)計(jì)
基于高層次綜合工具的BIST控制器設(shè)計(jì)
2018年電子技術(shù)應(yīng)用第8期
蔡紅艷1,杜 濤1,孟祥剛2,李國(guó)峰3,梁 科3,陳新偉4,5
1.天津市光電傳感器與傳感網(wǎng)絡(luò)技術(shù)重點(diǎn)實(shí)驗(yàn)室,天津300350; 2.天津市光電子薄膜器件與技術(shù)重點(diǎn)實(shí)驗(yàn)室,天津300350;3.南開大學(xué) IC設(shè)計(jì)與系統(tǒng)集成實(shí)驗(yàn)室,天津300350; 4.工業(yè)機(jī)器人應(yīng)用福建省高校工程研究中心,福建 福州350108;5.福州市機(jī)器人技術(shù)應(yīng)用聯(lián)合實(shí)驗(yàn)室,福建 福州350108
摘要: 存儲(chǔ)器內(nèi)建自測(cè)試(MBIST)技術(shù)在存儲(chǔ)器測(cè)試中具有廣泛應(yīng)用,針對(duì)傳統(tǒng)寄存器傳輸級(jí)描述語言設(shè)計(jì)BIST控制器的過程相對(duì)繁瑣、專用EDA工具定義算法的靈活性差和電路結(jié)構(gòu)固定等問題,提出采用高層次綜合工具設(shè)計(jì)BIST控制器的方法。以SRAM為對(duì)象,采用C語言描述MARCH算法,并采取端口分配、流水線優(yōu)化和數(shù)組分割等優(yōu)化方案完善設(shè)計(jì)。最后借助FPGA平臺(tái)驗(yàn)證評(píng)估了高層次綜合工具輸出的RTL級(jí)代碼電路的功能可靠性和規(guī)??煽匦?。相對(duì)于傳統(tǒng)的兩種方法,擺脫了算法實(shí)現(xiàn)和電路結(jié)構(gòu)設(shè)計(jì)的局限性,縮短了算法實(shí)現(xiàn)周期。
中圖分類號(hào): TN432
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.174735
中文引用格式: 蔡紅艷,杜濤,孟祥剛,等. 基于高層次綜合工具的BIST控制器設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2018,44(8):27-30.
英文引用格式: Cai Hongyan,Du Tao,Meng Xianggang,et al. BIST controller design with high-level synthesis[J]. Application of Electronic Technique,2018,44(8):27-30.
BIST controller design with high-level synthesis
Cai Hongyan1,Du Tao1,Meng Xianggang2,Li Guofeng3,Liang Ke3,Chen Xinwei4,5
1.Tianjin Key Laboratory of Optoelectronic Sensor and Sensing Network Technology,Tianjin 300350,China; 2.Tianjin Key Laboratory of Photo-electronics Thin Film Devices and Technique,Tianjin 300350,China; 3.Laboratory of Integrated Circuit and System Integration,Nankai University,Tianjin 300350,China; 4.Fujian Provincial Key Laboratory of Information Processing and Intelligent Control,F(xiàn)uzhou 350108,China; 5.Fuzhou Joint Laboratory of Robot Technology Application,F(xiàn)uzhou 350108,China
Abstract: MBIST(Memory Built-In Self-Test) technology has extensive application in the memory test. In view of the traditional BIST controller register transfer level description language design process is relatively complicated, special flexibility EDA tools to define algorithm flexibility is poor, and the circuit structure is fixed, this paper proposes the use of high-level synthesis tools BIST controller design method. This paper takes SRAM as the object, describes the MARCH algorithm in C language, and uses port allocation, pipeline optimization and array segmentation to optimize the design. Finally, with the tools of the FPGA platform it verifies and evaluates the function reliability and scle controllability of the high-level synthesis synthesized RTL code level circuit. Compared with the two traditional methods, the limitation of algorithm implementation and circuit structure is eliminated, and the implementation period of the algorithm is reduced.
Key words : BIST controller;high level synthesis;MARCH algorithm

0 引言

    隨著集成電路復(fù)雜度的不斷提升,嵌入式存儲(chǔ)器測(cè)試面臨著很大的挑戰(zhàn)。目前常用的測(cè)試方法是在存儲(chǔ)器周圍設(shè)計(jì)存儲(chǔ)器內(nèi)建自測(cè)試[1](Memory Built-In Self-Test,MBIST)電路。在實(shí)際工程中,MBIST的設(shè)計(jì)主要依賴于專用EDA工具或者通過手工編寫RTL級(jí)代碼描述測(cè)試算法來實(shí)現(xiàn)。高層次綜合工具采用C/C++等高級(jí)語言編程,通過編譯、優(yōu)化、映射等一系列過程得到所輸入算法的RTL級(jí)代碼,從而降低算法在硬件上的實(shí)現(xiàn)難度。因此,基于傳統(tǒng)EDA工具的局限性和手工RTL設(shè)計(jì)MBIST的不足,本文提出利用高層次綜合工具完成BIST控制器設(shè)計(jì),降低算法實(shí)現(xiàn)的復(fù)雜度。

1 背景介紹

1.1 MARCH算法與BIST結(jié)構(gòu)

    MARCH系列算法[2-4]是存儲(chǔ)器測(cè)試常用算法之一,其內(nèi)容為根據(jù)一系列對(duì)存儲(chǔ)器的讀寫操作,把存儲(chǔ)器中讀出的實(shí)際值與期望值相比較,判斷存儲(chǔ)器是否存在故障,從而將物理故障模型轉(zhuǎn)換為邏輯故障模型。

    BIST電路是算法的硬件體現(xiàn)形式,固化在芯片中存儲(chǔ)器周圍,主要包含BIST控制器和數(shù)據(jù)比較器兩部分。數(shù)據(jù)比較器一般采用通用結(jié)構(gòu),用于比較判斷,產(chǎn)生故障標(biāo)志信號(hào);BIST控制器產(chǎn)生地址信號(hào)等用于存儲(chǔ)器測(cè)試的多種激勵(lì)信號(hào),是存儲(chǔ)器測(cè)試算法實(shí)現(xiàn)的硬件載體,本文主要討論BIST結(jié)構(gòu)中的BIST控制器設(shè)計(jì)。

1.2 高層次綜合技術(shù)

    基于高層次綜合技術(shù)的開發(fā)流程如圖1所示。

wdz7-t1.gif

    首先將設(shè)計(jì)完成的C/C++算法代碼進(jìn)行高層次綜合編譯,檢查算法是否可綜合并驗(yàn)證代碼的功能是否正確;之后在增加相應(yīng)優(yōu)化指示指令插入的基礎(chǔ)上進(jìn)行綜合;綜合完成后進(jìn)行RTL協(xié)同仿真,驗(yàn)證硬件功能正確性及時(shí)序需求;如果不能滿足設(shè)計(jì)需求,則可重新更改優(yōu)化條件進(jìn)行綜合。得到正確的RTL代碼后可將其封裝成IP核或直接導(dǎo)出RTL代碼,通過Modelsim或VCS等RTL編譯仿真工具繼續(xù)完成傳統(tǒng)RTL級(jí)設(shè)計(jì)流程。

    BIST電路設(shè)計(jì)[5-6]需通過專業(yè)驗(yàn)證平臺(tái)完成足夠的驗(yàn)證與評(píng)估后,再將其通過芯片設(shè)計(jì)流程進(jìn)行實(shí)現(xiàn),驗(yàn)證平臺(tái)通常采用FPGA評(píng)估平臺(tái)。本文提出的基于高層次綜合工具設(shè)計(jì)BIST控制器的方法,結(jié)果的評(píng)估也采用FPGA驗(yàn)證平臺(tái)進(jìn)行。文中高層次綜合工具采用Xilinx Vivado_HLS 2014.4版本,高層次綜合評(píng)估平臺(tái)采用Virtex-7系列的FPGA處理器,通過FPGA平臺(tái)驗(yàn)證和評(píng)估RTL級(jí)設(shè)計(jì)在電路功能和電路規(guī)模上的可靠性。

2 BIST控制器設(shè)計(jì)與優(yōu)化

2.1 算法實(shí)現(xiàn)

    本節(jié)以SRAM為對(duì)象,介紹采用高層次綜合工具設(shè)計(jì)BIST控制器的方法。本文所述算法均采用C語言實(shí)現(xiàn)。結(jié)合上文對(duì)MARCH算法的介紹,對(duì)單個(gè)線性存儲(chǔ)器而言,采用多組循環(huán)節(jié)結(jié)構(gòu)實(shí)現(xiàn)算法的讀寫操作。在針對(duì)單個(gè)線性存儲(chǔ)器C代碼設(shè)計(jì)的基礎(chǔ)上,在每個(gè)步驟外添加一重循環(huán)處理行列地址的進(jìn)位關(guān)系。對(duì)于多個(gè)存儲(chǔ)器測(cè)試共享一個(gè)BIST控制器的情況,利用C代碼順序執(zhí)行的特點(diǎn),在單個(gè)SRAM設(shè)計(jì)的外層嵌套一層在存儲(chǔ)器間的循環(huán)實(shí)現(xiàn),分別實(shí)現(xiàn)對(duì)應(yīng)不同存儲(chǔ)器的地址,讀寫使能信號(hào)。對(duì)于不同SRAM而言,由于地址范圍不同,采用數(shù)組賦初始值的形式對(duì)其進(jìn)行設(shè)定。

2.2 優(yōu)化方案

2.2.1 端口優(yōu)化

    為了避免高層次綜合工具可以本身默認(rèn)的端口設(shè)計(jì)方案使得綜合出的模塊存在多個(gè)冗余的端口信息,本文采用高層次綜合工具提供的INTERFACE優(yōu)化方案進(jìn)行優(yōu)化,對(duì)輸入和輸出端口分別采取ap_ctrl_none和ap_none的優(yōu)化方案進(jìn)行優(yōu)化。

2.2.2 流水線優(yōu)化

    為了降低嵌套在地址循環(huán)中的讀寫循環(huán)部分的時(shí)鐘周期延遲,本設(shè)計(jì)中對(duì)讀寫循環(huán)采取了流水線[7-8](PIPELINE)優(yōu)化的方案。流水線的應(yīng)用將循環(huán)結(jié)構(gòu)強(qiáng)行打開,將每步循環(huán)實(shí)現(xiàn)需要的兩個(gè)時(shí)鐘周期縮短為一個(gè)時(shí)鐘周期,從而降低了總的時(shí)鐘延遲周期數(shù),流水線優(yōu)化的原理圖如圖2所示。

wdz7-t2.gif

2.2.3 數(shù)組完全分割優(yōu)化

    為了避免多個(gè)存儲(chǔ)器共享BIST控制器設(shè)計(jì)中的數(shù)組單元被綜合成存儲(chǔ)結(jié)構(gòu),本設(shè)計(jì)對(duì)于輸入輸出端口的數(shù)組單元和內(nèi)部賦初值的數(shù)組單元采用了數(shù)組完全分割(ARRAY PARTATION-complete)的優(yōu)化方案[7-8]優(yōu)化數(shù)組單元。對(duì)于輸入輸出端口的數(shù)組單元數(shù)組完全分割能夠?qū)в袑ぶ泛妥x寫使能的數(shù)組元素拆分成多個(gè)單獨(dú)的輸入輸出端口;對(duì)于內(nèi)部賦初值的數(shù)組單元數(shù)組完全分割能夠?qū)?shù)組元素打散成單個(gè)的寄存器用于存儲(chǔ)數(shù)據(jù)。

3 結(jié)果分析

    下面以FPGA平臺(tái)綜合得到的時(shí)鐘周期延遲(latency)和資源消耗的結(jié)果評(píng)估完成的RTL級(jí)設(shè)計(jì)在功能和電路規(guī)模上的可靠性。存儲(chǔ)器選取單口線性SRAM,算法選取多個(gè)經(jīng)典的MARCH系列算法。數(shù)據(jù)如表1和表2所示,表1為單個(gè)存儲(chǔ)器對(duì)應(yīng)一個(gè)BIST控制器的數(shù)據(jù)結(jié)果,存儲(chǔ)器數(shù)據(jù)位寬均為64 bit,存儲(chǔ)器深度分別為128、256、512和1 024。表2為多個(gè)存儲(chǔ)器所共享的BIST控制器評(píng)估結(jié)果,存儲(chǔ)器數(shù)據(jù)位寬均為64 bit,數(shù)據(jù)深度均為1 024,共享BIST控制器的存儲(chǔ)器個(gè)數(shù)分別為2、3、4和5。

wdz7-b1.gifwdz7-b2.gif

    對(duì)于表1和表2中的數(shù)據(jù),從資源消耗可以看出,設(shè)計(jì)中僅消耗FF(觸發(fā)器)和LUT(查找表)資源,而沒有消耗BRAM(塊存儲(chǔ)器)及DSP(乘加器)資源,符合BIST控制器設(shè)計(jì)的要求。另一方面,對(duì)于相同的存儲(chǔ)器或者相同的共享個(gè)數(shù),隨著MARCH算法總讀寫次數(shù)的增加,F(xiàn)F和LUT的數(shù)量大致呈現(xiàn)線性增加的趨勢(shì),因?yàn)殡S著算法總讀寫次數(shù)的變化,控制讀寫步驟和讀寫次序的內(nèi)部狀態(tài)機(jī)狀態(tài)數(shù)和狀態(tài)機(jī)控制單元位寬變化導(dǎo)致的。算法相同時(shí),資源消耗隨著存儲(chǔ)器地址范圍的增加而有所增加,這是由于隨著地址范圍的增加,地址輸出寄存器和產(chǎn)生地址信號(hào)的中間觸發(fā)器位寬隨著增加的結(jié)果。此外,資源消耗隨著BIST控制器存儲(chǔ)器個(gè)數(shù)的增加也適當(dāng)?shù)卦黾?,但是增加的?shù)量遠(yuǎn)小于其累加值,說明綜合出共享BIST控制器結(jié)構(gòu)節(jié)約了資源消耗。因此,資源消耗的變化均很小。因此說明了本文采用的C代碼設(shè)計(jì)能夠綜合出固定的電路結(jié)構(gòu)。此外表中數(shù)據(jù)的資源消耗數(shù)量都很小,對(duì)比C代碼中數(shù)據(jù)量和數(shù)據(jù)寬度值,可以分析出資源消耗主要與C代碼中對(duì)應(yīng)的端口和內(nèi)部變量相關(guān),這一點(diǎn)說明了C代碼被綜合出的電路規(guī)模合理。

    從時(shí)鐘周期延遲角度分析,對(duì)于單個(gè)存儲(chǔ)器設(shè)計(jì),本文所設(shè)計(jì)BIST控制器運(yùn)行的總時(shí)鐘周期數(shù)略大于各步驟總讀寫次數(shù)與地址范圍的乘積;對(duì)于多個(gè)存儲(chǔ)器共享BIST控制器設(shè)計(jì)而言,總的時(shí)鐘周期延遲數(shù)略大于各個(gè)存儲(chǔ)器測(cè)試所需的時(shí)鐘周期延遲數(shù)的總和。因此說明高層次綜合工具綜合出的電路結(jié)構(gòu)能夠在運(yùn)行完整的算法步驟且在每個(gè)時(shí)鐘周期完成一次對(duì)存儲(chǔ)器的讀或?qū)懖僮鳎C明功能上滿足設(shè)計(jì)需求。

4 結(jié)論

    本文針對(duì)傳統(tǒng)的BIST控制器設(shè)計(jì)方法中存在的不足,提出了采用高層次綜合工具設(shè)計(jì)BIST控制器的設(shè)計(jì)思路。采用高層次綜合工具對(duì)BIST控制器算法進(jìn)行設(shè)計(jì),并通過對(duì)端口分配、流水線插入和數(shù)組分割的優(yōu)化方案對(duì)設(shè)計(jì)進(jìn)行完善,最后通過FPGA平臺(tái)從資源消耗和時(shí)鐘周期延遲兩個(gè)方面驗(yàn)證和評(píng)估了基于高層次綜合工具完成的RTL級(jí)設(shè)計(jì)在功能和電路規(guī)模上的可靠性。采用高層次綜合工具的設(shè)計(jì)能有效縮短設(shè)計(jì)時(shí)間,在用戶自定義算法上具有很高的靈活性。本文提出的方案在存儲(chǔ)器內(nèi)建自測(cè)試邏輯設(shè)計(jì)上具有很強(qiáng)的實(shí)用性,在未來的工作中,將會(huì)完善不同類型的存儲(chǔ)器BIST設(shè)計(jì),開發(fā)更完善的流程。

參考文獻(xiàn)

[1] 陸思安,何樂年,沈海斌,等.嵌入式存儲(chǔ)器內(nèi)建自測(cè)試的原理及實(shí)現(xiàn)[J].固體電子學(xué)研究與進(jìn)展,2004(2):205-208.

[2] 石磊,王小力.一種基于存儲(chǔ)器故障原語的March測(cè)試算法研究[J].微電子學(xué),2009(2):251-255+279.

[3] 須自明,王國(guó)章,劉戰(zhàn),等.一種測(cè)試SRAM失效的新型March算法[J].微電子學(xué),2007(6):330-333.

[4] 郭進(jìn)杰,王瑜,李婷,等.基于FLASH-March算法的SLASH缺陷檢測(cè)系統(tǒng)[J].微電子學(xué)與計(jì)算機(jī),2014(10)::81-85.

[5] 馬琪,裘燕鋒.片上SRAM內(nèi)建自測(cè)試的實(shí)現(xiàn)方法[J].計(jì)算機(jī)研究與發(fā)展,2010(S1):185-189.

[6] 夏季軍.基于時(shí)鐘的數(shù)字電路可重構(gòu)BIST設(shè)計(jì)研究[J].儀表技術(shù)與傳感器,2017(1):134-138.

[7] ZHONG G,VENKATARAMANI V,LIANG Y,et al.Design space exploration of multiple loops on FPGAs using high level synthesis[C].32nd IEEE ICCD. Seoul,South Korea.2104:456-463.

[8] 孟祥剛,陳瑤,高騰,等.FFT算法硬件模塊的高層次綜合實(shí)現(xiàn)與優(yōu)化[J].微電子學(xué),2017(2):217-221.



作者信息:

蔡紅艷1,杜  濤1,孟祥剛2,李國(guó)峰3,梁  科3,陳新偉4,5

(1.天津市光電傳感器與傳感網(wǎng)絡(luò)技術(shù)重點(diǎn)實(shí)驗(yàn)室,天津300350;

2.天津市光電子薄膜器件與技術(shù)重點(diǎn)實(shí)驗(yàn)室,天津300350;3.南開大學(xué) IC設(shè)計(jì)與系統(tǒng)集成實(shí)驗(yàn)室,天津300350;

4.工業(yè)機(jī)器人應(yīng)用福建省高校工程研究中心,福建 福州350108;5.福州市機(jī)器人技術(shù)應(yīng)用聯(lián)合實(shí)驗(yàn)室,福建 福州350108)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。