文獻(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.
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所示。
首先將設(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所示。
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。
對(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)