虞致國(guó),魏敬和
(中國(guó)電子科技集團(tuán)公司第五十八研究所,江蘇 無(wú)錫 214035)
在開(kāi)發(fā)復(fù)雜SoC應(yīng)用時(shí),芯片的調(diào)試手段直接關(guān)系到開(kāi)發(fā)的效率和進(jìn)度,決定了應(yīng)用的質(zhì)量。沒(méi)有調(diào)試硬件支持的調(diào)試已經(jīng)不能勝任復(fù)雜SoC的應(yīng)用,SoC必須提供高效、可靠、強(qiáng)大的調(diào)試支持[1~3]。另一方面,測(cè)試是集成電路生產(chǎn)流程中必不可少的一個(gè)環(huán)節(jié),在設(shè)計(jì)時(shí)一般要采用可測(cè)性設(shè)計(jì)。
然而,可測(cè)性設(shè)計(jì)與調(diào)試結(jié)構(gòu)設(shè)計(jì)一般是分別進(jìn)行的。由于測(cè)試邏輯和調(diào)試邏輯都具有相當(dāng)?shù)倪壿嬃浚s占系統(tǒng)邏輯的5%~25%[4]。因此,所需額外硬件資源都較大。目前,芯片的調(diào)試接口一般是基于JTAG標(biāo)準(zhǔn)而設(shè)計(jì)的。基于JTAG的可測(cè)性設(shè)計(jì)與片上調(diào)試設(shè)計(jì)相互獨(dú)立又相互聯(lián)系,二者可通過(guò)JTAG接口進(jìn)行部分整合[5]。
本文基于已有的SoC提出了一種片上調(diào)試與可測(cè)性設(shè)計(jì)的一體化設(shè)計(jì),有效整合了調(diào)試與可測(cè)性的接口。它既具有完整的片上調(diào)試能力,又能滿(mǎn)足可測(cè)性要求,提供了SRAM內(nèi)建自測(cè)試和邊界掃描測(cè)試的能力。
該款SoC結(jié)構(gòu)可以簡(jiǎn)單的用圖1所示的結(jié)構(gòu)表示,主要包括CPU核、SRAM、通用接口IP和用戶(hù)專(zhuān)用IP。SoC片上總線(xiàn)采用AMBA總線(xiàn)(包括AHB總線(xiàn)和APB總線(xiàn)),CPU為32位硬核,具備從JTAG接口進(jìn)行片上調(diào)試的能力,能夠?qū)崿F(xiàn)單步、斷點(diǎn)、觀(guān)察點(diǎn)等調(diào)試特征。
調(diào)試系統(tǒng)的設(shè)計(jì)目標(biāo)是充分利用CPU核原有的調(diào)試結(jié)構(gòu),并通過(guò)JTAG進(jìn)行有效的調(diào)試??蓽y(cè)性的設(shè)計(jì)目標(biāo)是在利用較低的測(cè)試時(shí)間和較小的測(cè)試面積實(shí)現(xiàn)較高的測(cè)試覆蓋率和故障覆蓋率。因此,總體的設(shè)計(jì)思路是盡可能地利用JTAG復(fù)用相關(guān)調(diào)試與測(cè)試入口,并針對(duì)不同的模塊利用不同的測(cè)試策略。針對(duì)測(cè)試來(lái)說(shuō),通過(guò)JTAG接口可以集成邊界掃描測(cè)試、存儲(chǔ)器內(nèi)建自測(cè)試等。測(cè)試策略實(shí)現(xiàn)了在測(cè)試覆蓋率和測(cè)試代價(jià)之間的一個(gè)有效折衷。測(cè)試代價(jià)包括芯片面積、芯片引腳數(shù)、功耗和芯片工作頻率、測(cè)試時(shí)間長(zhǎng)度等??傮w的設(shè)計(jì)結(jié)構(gòu)如圖2所示。主要的設(shè)計(jì)思路如下:
(1)構(gòu)建了一個(gè)芯片級(jí)別的調(diào)試與測(cè)試模式控制器;
(2)基于JTAG集成了邊界掃描測(cè)試(BSD)、存儲(chǔ)器內(nèi)建自測(cè)試(SRAM BIST)和CPU片上調(diào)試等接口;
(3)對(duì)數(shù)字IP和用戶(hù)自定義邏輯采用掃描測(cè)試;
(4)復(fù)用第三方提供的CPU測(cè)試向量;
(5)對(duì)于嵌入式SRAM實(shí)現(xiàn)內(nèi)建自測(cè)試;
(6)對(duì)于DPLL實(shí)現(xiàn)功能測(cè)試。
除了正常的工作模式外,SoC還有完備的調(diào)試與測(cè)試模式。芯片的模式控制由引腳testsetup[2:0]所控制。測(cè)試模式的描述見(jiàn)表1所示。
芯片內(nèi)部有多個(gè)時(shí)鐘域,主要包括TCK、內(nèi)部系統(tǒng)時(shí)鐘、掃描時(shí)鐘。調(diào)試模式使用的是邊界掃描時(shí)鐘TCK;正常工作模式使用的是經(jīng)鎖相環(huán)倍頻的時(shí)鐘,其他掃描模式使用的是系統(tǒng)外部時(shí)鐘。
在掃描鏈的插入過(guò)程中,為了避免因可測(cè)性設(shè)計(jì)帶來(lái)引腳的大量增加,采用了測(cè)試引腳和功能引腳復(fù)用的結(jié)構(gòu)。為了能有效在工作模式與測(cè)試模式間進(jìn)行切換,增加了掃描使能信號(hào)scan_en。當(dāng)處于測(cè)試模式時(shí),scan_en有效,引腳處于掃描模式。為了在對(duì)DPLL功能測(cè)試時(shí)能輸出相關(guān)狀態(tài),增加了DPLL測(cè)試輸出使能信號(hào)DPLL_test。
對(duì)于高密度嵌入式SRAM來(lái)說(shuō),BIST是一種有效的測(cè)試方法,它能夠全速實(shí)現(xiàn)高覆蓋率的測(cè)試。SRAM BIST電路是由EDA工具自動(dòng)生成的。
在設(shè)計(jì)的某SoC設(shè)計(jì)中,有多片SRAM,分別在ABH總線(xiàn)和APB總線(xiàn)上。SoC中采用的SRAM BIST的結(jié)構(gòu)如圖3所示。CPU核和BIST電路通過(guò)MUX開(kāi)關(guān)與SRAM相連。在正常工作模式下,CPU核可以通過(guò)AHB或APB來(lái)訪(fǎng)問(wèn)SRAM。在測(cè)試模式下,SRAM的選擇信號(hào)、地址、數(shù)據(jù)及控制信號(hào)由SRAM BIST電路根據(jù)MBIST算法產(chǎn)生。MBIST算法包括March LR、March C-、MATS++ and Retention等,算法由模式寄存器的值來(lái)選擇。
通過(guò)JTAG的TAP控制器對(duì)SRAM BIST的測(cè)試信號(hào)進(jìn)行控制和測(cè)試結(jié)果進(jìn)行查詢(xún),擺脫了對(duì)測(cè)試機(jī)的依賴(lài)。自測(cè)試過(guò)程中,BIST將獲得的測(cè)試結(jié)果和期望的結(jié)果將進(jìn)行比較,比較結(jié)果pass/fail將被返回存儲(chǔ)到模式寄存器中。當(dāng)一個(gè)錯(cuò)誤發(fā)生時(shí),錯(cuò)誤的詳細(xì)信息將被跟蹤到調(diào)試寄存器中。
DPLL是一個(gè)全定制宏模塊。DPLL功能測(cè)試結(jié)構(gòu)如圖4所示。當(dāng)外部信號(hào)DPLL_test置于1時(shí),SoC進(jìn)入DPLL功能測(cè)試模式。功能測(cè)試模式時(shí),測(cè)試引腳輸入/輸出來(lái)自于外部引腳。
該SoC采用SMIC 0.18μm 1P6M邏輯電路工藝。芯片總共有管腳391個(gè),包括PAD在內(nèi),芯片的面積為7.76mm×7.76mm,測(cè)試面積占芯片面積的6.89%。芯片的設(shè)計(jì)結(jié)果如下:
(1)總共有10條內(nèi)部掃描鏈,每條掃描鏈的長(zhǎng)度約為3000;
(2)數(shù)字IP和用戶(hù)自定義邏輯的覆蓋率是97.2%;
(3)SRAM的測(cè)試覆蓋率為100%;
(4)CPU核和DPLL采用功能測(cè)試的方法;
(5)全芯片的測(cè)試面積占芯片面積的6.89%。
片上調(diào)試與可測(cè)性設(shè)計(jì)是嵌入式系統(tǒng)和SoC設(shè)計(jì)中的重要環(huán)節(jié)。本文提出了一種可測(cè)性設(shè)計(jì)與調(diào)試系統(tǒng)一體化的結(jié)構(gòu)設(shè)計(jì)策略,其重點(diǎn)在于將現(xiàn)有的測(cè)試方法與系統(tǒng)的調(diào)試結(jié)構(gòu)整合到一個(gè)結(jié)構(gòu)中。被整合的測(cè)試方法包括掃描鏈插入、SRAM BIST、功能測(cè)試等,同時(shí)有效地降低了測(cè)試邏輯規(guī)模。本文提出的結(jié)構(gòu)對(duì)其他SoC設(shè)計(jì)具有一定的參考價(jià)值。
[1]趙巖,張果,張春,等.一種擴(kuò)展的片上實(shí)時(shí)調(diào)試系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)工程,2006,32(8):283-285.
[2]金輝,華斯亮,張鐵軍,等.基于JTAG標(biāo)準(zhǔn)的處理器片上調(diào)試的分析與實(shí)現(xiàn)[J].微電子學(xué)與計(jì)算機(jī),2007,24(6):116-121.
[3]成杏梅,劉鵬,鐘耿.嵌入式MPSoC的調(diào)試功能實(shí)現(xiàn)[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2008,20(4):438-444.
[4]李少青,鄧勤學(xué).故障測(cè)試結(jié)構(gòu)與調(diào)試結(jié)構(gòu)的一體化設(shè)計(jì)[J].計(jì)算機(jī)工程與科學(xué),2006,28(8):99-100.
[5]嚴(yán)明.嵌入式微處理器可測(cè)性設(shè)計(jì)與片上調(diào)試技術(shù)的研究與實(shí)現(xiàn)[D].碩士論文,國(guó)防科學(xué)技術(shù)大學(xué),2005,11.
[6]劉洋、吳王華,周曉方.一種基于JTAG的軟硬件協(xié)同SoC調(diào)試接口[J].微電子學(xué)與計(jì)算機(jī),2007,24(11):34-37.
[7]IEEE Standard Test Access Port and Boundary Scan Architecture. IEEE Std 1149.1-2001(Revision of IEEEStd 1149.1-1990).