BSDL邊界掃描描述語言
邊界掃描是一個(gè)完善的測試技術(shù)。 邊界掃描在自當(dāng)聯(lián)合測試行動(dòng)組(JTAG)90年代初發(fā)明了一種解決方案來測試使用了許多新的印刷電路,正在開發(fā)和制造的地方幾乎沒有或根本沒有測試探針板的物理訪問。 一旦邊界掃描成立后,下一步是制定一個(gè)標(biāo)準(zhǔn)的芯片供應(yīng)商的模型邊界掃描設(shè)備,工具供應(yīng)商開發(fā)自動(dòng)化工具,以及為最終用戶創(chuàng)建的邊界掃描測試的建模語言。 因此,邊界掃描描述語言(BSDL)已建立。
BSDL是邊界掃描設(shè)備的標(biāo)準(zhǔn)建模語言。 它的語法是一個(gè)VHDL的子集,它符合IEEE 1149.1-2001的規(guī)定。 它是由使用邊界掃描測試開發(fā)人員,設(shè)備模擬器,半導(dǎo)體測試儀,電路板級(jí)測試,任何人利用邊界掃描。 使用的的BSDL促進(jìn)整個(gè)電子行業(yè)的一致性。 此外,它使任何邊界掃描中的一個(gè)有用的,可以理解的,一致的方式和設(shè)備的功能規(guī)范。
BSDL走出了邊界掃描測試哲學(xué)的發(fā)展。 最初的IEEE 1149.1-1990標(biāo)準(zhǔn)的(見[符合IEEE 1149.1(JTAG接口)])標(biāo)準(zhǔn)描述的邊界掃描并于1990年批準(zhǔn)發(fā)布,并作為結(jié)果,使用邊界掃描技術(shù)開始增長。 該標(biāo)準(zhǔn)的下一次修訂在1993年發(fā)生。 在1994年進(jìn)一步修訂納入了IEEE 1149.1-1994標(biāo)準(zhǔn)的BSDL。
什么是的BSDL?
邊界掃描描述語言使用戶能夠提供的方式,邊界掃描在任何特定的設(shè)備實(shí)施的說明。 由于每個(gè)芯片設(shè)計(jì)趨于應(yīng)用邊界掃描方式略有不同標(biāo)準(zhǔn),這是一個(gè)需要理解的表達(dá),具體和實(shí)用的方式測試。是書面的BSDL在VHDL的子集。 VHDL語言是常用的一種為FPGA和ASIC設(shè)計(jì)輸入的數(shù)字電路電子設(shè)計(jì)自動(dòng)化的語言,因此它是與邊界因?yàn)樵S多芯片設(shè)計(jì)掃描是用這種語言進(jìn)行工作相適應(yīng)的。 但是的BSDL是一個(gè)“子集和標(biāo)準(zhǔn)做法”的VHDL,即VHDL語言的范圍,從而對邊界掃描應(yīng)用受到限制。
設(shè)計(jì)過程中的BSDL有兩種語言的主要標(biāo)準(zhǔn):
它很容易使用
它是由計(jì)算機(jī)可解析在一個(gè)簡單的和毫不含糊的時(shí)尚
BDSL使設(shè)備的使用邊界掃描功能,準(zhǔn)確和有用的說明。 BSDL文件是所使用的邊界掃描工具,使設(shè)備的使用功能,使任何測試性分析測試程序生成,?故障診斷,以及使用。 的BSDL不是一個(gè)可以用硬件描述語言,相反,它是用來定義設(shè)備的數(shù)據(jù)傳輸?shù)奶攸c(diǎn),即它是如何捕獲,轉(zhuǎn)變和更新掃描數(shù)據(jù)。 這才是用于定義測試能力。
BSDL文件包括以下數(shù)據(jù):
實(shí)體聲明 :本實(shí)體聲明是一個(gè)VHDL構(gòu)造,是用來識(shí)別文件名 的BSDL設(shè)備所描述的。
泛型參數(shù) :通用參數(shù)是指定哪個(gè)區(qū)段包描述。
邏輯端口說明 :這說明列出了設(shè)備的所有連接。 它定義它的基本屬性,即是否連接輸入(以位;),輸出(OUT位;),雙向(inout的位;),或者如果它是不可用的邊界掃描(連鎖位;)。
封裝引腳映射 :包引腳映射被用于確定一個(gè)集成電路的內(nèi)部連接范圍內(nèi)。 它詳細(xì)介紹了如何在設(shè)備上的墊片裸片連接到外部引腳。
USE語句 :這句話是用來調(diào)用BSDL文件VHDL語言包,該數(shù)據(jù)包含在所引用。
掃描端口標(biāo)識(shí) :掃描端口標(biāo)識(shí)識(shí)別引腳的JTAG執(zhí)行工作/這是用于邊界掃描。 這些措施包括:TDI的,商品說明條例,訓(xùn)練管理系統(tǒng),TCK和TRST的(如果使用)。
測試訪問端口(TAP)說明 :本實(shí)體提供設(shè)備的其他信息的邊界掃描和JTAG邏輯。 這些數(shù)據(jù)包括指令寄存器的長度,指令操作碼,設(shè)備的IDCODE等.
邊界寄存器描述 :這說明提供器件結(jié)構(gòu)的邊界掃描單元上。 每個(gè)器件引腳上最多可以有三個(gè)邊界掃描單元,每個(gè)單元格組成的一個(gè)寄存器鎖存器和一個(gè)。
BSDL怎樣使用?
當(dāng)電路板的設(shè)計(jì),邊界掃描兼容設(shè)備被組織成“鏈”。 掃描鏈構(gòu)成了板級(jí)和系統(tǒng)級(jí)的測試,可以檢測和診斷引腳層次的結(jié)構(gòu)性缺陷,如開路和短路的基礎(chǔ)。 自動(dòng)化工具用于生成測試方案或議會(huì)的程序。 最重要的投入,這個(gè)過程是邊界掃描功能的設(shè)備的BSDL文件,以及網(wǎng)表描述板之間的互連的設(shè)備。 生成的測試程序,當(dāng)應(yīng)用到目標(biāo)板,報(bào)告的結(jié)構(gòu)測試失敗,可以用來幫助板維修。
有些工具能夠使用邊界掃描創(chuàng)造集群的組件包括非邊界掃描兼容設(shè)備的測試模式,和其他工具可以生成測試模式,一個(gè)板上處理器可以運(yùn)行,以便能夠在高速功能測試。 這些測試應(yīng)用程序獨(dú)立或與其他測試技術(shù),如在電路,結(jié)合測試(ICT)的,具有生產(chǎn)以最低的成本最優(yōu)的測試覆蓋的總體目標(biāo)和最短的測試開發(fā)時(shí)間。
綜述
邊界掃描描述語言的BSDL,被廣泛用于在IEEE 1149.1 / JTAG的社會(huì)使一致,準(zhǔn)確和有用的資料供邊界掃描功能的設(shè)備定義。 通過這種方式,該芯片可以被納入一個(gè)設(shè)計(jì),它的功能用在最有效的方式充分。
邊界掃描器件BSDL描述在測試中的應(yīng)用
1 引言
“邊界掃描”是一種可測性設(shè)計(jì)技術(shù),即在電子系統(tǒng)的設(shè)計(jì)階段就考慮其測試問題[1]。
BSDL(boundary scan des cription language) 語言硬件描述語言(VHDL)的一個(gè)子集,是對邊界掃描器件的邊界掃描特性的描述,主要用來溝通邊界掃描器件廠商、用戶與測試工具之間的聯(lián)系,其應(yīng)用包括:廠商將BSDL描述作為邊界掃描器件的一部分提供給用戶;BSDL描述為自動(dòng)測試圖形生成(ATPG)工具測試特定的電路板提供相關(guān)信息;在BSDL 的支持下生成由IEEE1149.1標(biāo)準(zhǔn)定義的測試邏輯 [2]。現(xiàn)在,BSDL語言已經(jīng)正式成為IEEE1149.1標(biāo)準(zhǔn)文件的附件。BSDL本身不是一種通用的硬件描述語言,但它可與軟件工具結(jié)合起來用于測試生成、結(jié)果分析和故障診斷。每一邊界掃描器件都附有特定的BSDL描述文件,為了論述的方便,本文將以Altera公司的CPLD器件 EPM7128SL84 芯片為例說明BSDL描述在測試中的應(yīng)用。
2 EPM7128SL84芯片的BSDL描述
該器件采用了先進(jìn)的CMOS EEPROM制造工藝,共有84個(gè)引腳,其中包括四個(gè)JTAG測試引腳 TDI、TMS、TCK和TDO,通過標(biāo)準(zhǔn)JTAG測試接口它還可以支持在系統(tǒng)可編程(ISP)。下面首先討論EPM7128SL84的BSDL描述中與應(yīng)用相關(guān)的各基本元素。
2.1 TAP描述
TAP描述說明與TAP控制器相關(guān)的特性。TAP 控制器包括4個(gè)或5個(gè)控制信號(hào),一個(gè)用戶定義的指令集(在IEEE1149.1標(biāo)準(zhǔn)規(guī)定范圍內(nèi))和一些可選擇的數(shù)據(jù)寄存器。EPM7128SL84的 TAP描述有:
(1)attribute INSTRUCTION_LENGTH of EPM7128SL84:entity is 10;
指令長度(INSTRUCTION_LENGTH)屬性定義了所有操作碼的長度必須為10位。
(2)attribute INSTRUCTION_OPCODE of EPM7128SL84:entity is
“BYPASS (1111111111), ”&
“EXTEST (0000000000),”&
“SAMPLE (0001010101),”&
“IDCODE (0001011001)”;
指令操作碼(INSTRUCTION_OPCODE)屬性指出器件所支持的指令的二進(jìn)制代碼,如器件標(biāo)志代碼指令I(lǐng)DCODE的位圖形為“0001011001” ,所有字串中最右邊的位最靠近TDO。根據(jù)1149.1標(biāo)準(zhǔn),旁路、外部測試和采樣指令是強(qiáng)制性的,且旁路指令BYPASS為全“1”串,外部測試 EXTEST指令為全“0”串。
(3)attribute INSTRUCTION_CAPTURE of EPM7128SL84:entity is "0101010101";
指令捕獲(INSTRUCTION_CAPTURE)屬性說明,當(dāng) TAP控制器處于捕獲指令寄存(Capture-IR)狀態(tài)時(shí),位圖形“0101010101”被裝入指令寄存器的移位寄存器部分,當(dāng)送入新指令時(shí),此位圖形被移出,IEEE 1149.1標(biāo)準(zhǔn)規(guī)定其最低兩位為“01”,其余位由廠商自行定義,這樣可以保證通過Capture信號(hào)可以檢測到掃描鏈上固定為“0”和固定為“1”的故障。
(4)attribute IDCODE_REGISTER of EPM7128SL84:entity is
"0000"&"0111000100101000"&"00001101110"&"1";
標(biāo)志寄存器屬性描述芯片內(nèi)置在標(biāo)志寄存器里的芯片ID碼。IEEE 1149.1標(biāo)準(zhǔn)規(guī)定芯片ID碼為32位,最右邊的一位是最靠近TDO的。如圖1所示,標(biāo)志寄存器的LSB是IEEE 1149.1標(biāo)準(zhǔn)強(qiáng)制為“1”的最低位,表示器件標(biāo)志寄存器的存在;第1位至11 位是廠商代碼號(hào)“01110110000”,這個(gè)代碼表示Altera公司;第12位至27位是芯片型號(hào) “0001010010001110”,即十六進(jìn)制“7128”(從右至左);第28位至31位是芯片版本號(hào)“0000” [2]。
2.2 邊界掃描寄存器描述
這是BSDL整體結(jié)構(gòu)的最重要部分,它描述了邊界掃描單元(BSC)的長度及每個(gè)BSC的單元號(hào)與屬性。
(1)attribute BOUNDARY_LENGTH of EPM7128SL84:entity is 288;
邊界掃描長度屬性表示EPM7128SL84 芯片共有 288個(gè)邊界掃描單元。
(2)attribute BOUNDARY_REGISTER of EPM7128SL84:entity is
--num(cell, port, function, safe [ccell, disval, rstl])
"0 (BC_4, IN84, input, X)," &
"1 (BC_4, *, internal, X)," &
"2 (BC_4, *, internal, X)," &
……
"144 (BC_4, IO41, input, X)," &
"145 (BC_1, *, control, 0)," &
"146 (BC_1, IO41, output3, X, 145, 0, Z)," &
……
"279 (BC_4, IO4, input, X)," &
"280 (BC_1, *, control, 0)," &
"281 (BC_1, IO4, output3, X, 280, 0, Z)," &
……
"285 (BC_4, IN1, input, X)," &
"286 (BC_4, *, internal, X)," &
"287 (BC_4, *, internal, X)";
對邊界掃描寄存器單元(BSC)屬性的描述由單元號(hào)與4個(gè)或7個(gè)圓括號(hào)內(nèi)的數(shù)據(jù)子段組成,這些BSC的排列順序可以是任意的,但每個(gè)單元都必須被定義。單元號(hào)從0到287 (BOUNDARY_LENGTH-1)進(jìn)行編號(hào),0單元是最靠近TDO的單元。括號(hào)中數(shù)據(jù)子段的名稱為: cell, port, function, safe [ccell, disval, rstl],后三個(gè)方括號(hào)內(nèi)的可選子段只有在function子段的值為 out put3或bidir時(shí)才被定義。它們的含義如下:
· 單元子段:確定器件所使用的邊界掃描單元。EPM7128SL84芯片采用的BSC類型為標(biāo)準(zhǔn)單元 BC_1與BC_4,其屬性已經(jīng)在VHDL組件STD_1149_1_1994中加以定義;
· 通道子段:說明與對應(yīng)BSC相連的系統(tǒng)管腳。其名稱與BSDL“logical port des cription”屬性中描述的管腳邏輯名稱相一致。“*”表示此BSC 為輸出控制單元或內(nèi)部單元;
·功能子段:表示該BSC的主要功能。EPM7128SL84芯片BSC所涉及的功能有“input”、 “control”,“output3”和“internal”4種;
input:表示一個(gè)簡單的實(shí)現(xiàn)輸入管腳接收的 BSC;
control:表示一個(gè)進(jìn)行輸出使能控制,或輸出驅(qū)動(dòng)與雙向管腳的單元方向控制的BSC;
output3:表示一個(gè)為三態(tài)輸出提供數(shù)據(jù)的 BSC;
internal:表示一個(gè)用于捕獲系統(tǒng)內(nèi)部邏輯的 BSC,它不與任何系統(tǒng)管腳相連;
·安全子段:當(dāng)ATPG軟件提供一個(gè)額外隨機(jī)值時(shí),safe子段定義了一個(gè)要裝入捕獲寄存器CAP 與更新寄存器UPD(如果存在的話)的值,以防止系統(tǒng)邏輯因?yàn)檫^激勵(lì)信號(hào)等原因造成的錯(cuò)誤連接。這個(gè)值可以是“0”,“1”或“X”。“X”表示 “0”,“1”均可;
·控制單元子段:說明對功能為output3或bidir的BSC進(jìn)行輸出使能控制的控制單元號(hào);
· 無效值子段:為禁用對應(yīng)的系統(tǒng)管腳,要給由ccell子段指定的控制單元賦的值;
· 無效狀態(tài)子段:給出被禁用驅(qū)動(dòng)器的狀態(tài)。這個(gè)狀態(tài)可以是高阻態(tài)(Z)、弱“1”態(tài)(weak1)或弱“0”態(tài)(weak0)[2]。
EPM7128SL84 芯片的管腳與邊界掃描單元如圖2所示,與輸入輸出管腳IO41相對應(yīng)的三個(gè)BSC單元號(hào)分別為144,145和146。
3 BSDL描述語言的實(shí)際應(yīng)用
3.1 TAP完整性測試
指令捕獲(INSTRUCTION_CAPTURE)屬性提供了測試TAP完整性的一條途徑。TAP完整性測試可以檢測時(shí)鐘TCK和模式選擇TMS的輸入端連接是否正確,所提供的有關(guān)信號(hào)是否正常;數(shù)據(jù)輸入TDI 和數(shù)據(jù)輸出TDO端的連接是否正確,且輸入和輸出的功能是否正常;內(nèi)部的指令寄存器工作是否正常;內(nèi)部的邊界掃描寄存器工作是否正常。TAP完整性測試是進(jìn)行邊界掃描其他任何測試之前建議首先進(jìn)行的測試操作,以確保邊界掃描鏈能正常工作。
TAP完整性測試的過程如圖3所示。在TAP的 Shift-IR狀態(tài),指令捕獲位圖形已加載至指令寄存器的移位寄存器部分,直接從TDO移出數(shù)據(jù)并與各芯片的Capture位圖形比較,若數(shù)據(jù)一致則 TAP完整性測試通過。
3.2 芯片ID碼的檢測
芯片ID碼是識(shí)別芯片的內(nèi)建器件標(biāo)識(shí)碼,通過檢測芯片ID碼可以識(shí)別該芯片,判斷芯片裝配正確與否,并可進(jìn)一步判斷芯片的型號(hào)、生產(chǎn)廠家及版本號(hào)與其標(biāo)識(shí)是否相符,辨別芯片的真?zhèn)?。?dāng)TAP進(jìn)入Test-Logic-Reset狀態(tài)時(shí),若標(biāo)志寄存器存在,則被強(qiáng)制接入TDI與TDO之間,寄存器LSB的值為“1”,否則,旁路寄存器被接入TDI與TDO之間,寄存器的值為“0”。所以,在檢測芯片標(biāo)志寄存器的值時(shí),可以由復(fù)位狀態(tài)直接進(jìn)入移位數(shù)據(jù)狀態(tài),輸出TDO的值,并判斷其第一位是否為“1”,若是,則此芯片有標(biāo)準(zhǔn)寄存器存在,可繼續(xù)移出其他31位,并進(jìn)行判斷與顯示。檢測流程如圖4所示。我們在對芯片EPM7128SL84進(jìn)行ID標(biāo)識(shí)碼檢測時(shí),用邏輯分析儀采集到的TDO端的輸出波形如圖5所示,與BSDL描述中的ID碼一致,說明器件正確。
3.3 邊界掃描互連測試
我們在開發(fā)邊界掃描測試軟件過程中,設(shè)計(jì)制作了基于邊界掃描機(jī)制的試驗(yàn)電路板當(dāng)作診斷實(shí)驗(yàn)對象。其中兩塊 EPM7128SL84芯片間的有16個(gè)互連網(wǎng)絡(luò),分別是兩芯片的4~12管腳之間、33~41管腳之間的互連(除去7腳地線,38腳電源線)。在進(jìn)行互連測試時(shí),首先要構(gòu)造一個(gè)16×16的測試矩陣,然后將此矩陣的16個(gè)列向量分別加載到芯片1的IO4~ IO12,IO33~I(xiàn)O41管腳(除去7腳和38腳),然后執(zhí)行外部測試指令。由芯片2捕獲對應(yīng)管腳上的信號(hào),形成響應(yīng)向量,全部16個(gè)列向量分別加載捕獲完成后,再對響應(yīng)矩陣進(jìn)行故障診斷 [3],如圖6所示。在此測試過程中,對芯片1的IO管腳加載的向量數(shù)據(jù)必須定位到每個(gè)管腳對應(yīng)的三態(tài)輸出單元,即芯片1的 281,278,275,269,263,260, 257,251,179,173,167,164,161,155,149,146單元;而芯片2所捕獲的對應(yīng)管腳上的信號(hào),在執(zhí)行采樣指令之后,都被置入每個(gè)管腳對應(yīng)的輸入單元,即芯片2的279,276,273,267, 261,258,255,249,177,171,165,162,159,153,147,144單元。這樣,從TDO輸出的對應(yīng)單元的數(shù)據(jù)就組成了響應(yīng)矩陣,對響應(yīng)矩陣按照一定的算法進(jìn)行分析,便可檢測出呆滯、短路、開路與橋接故障。
4 結(jié)束語
以上所述測試流程均用C++ Builder編程實(shí)現(xiàn),能對基于邊界掃描機(jī)制的試驗(yàn)電路板進(jìn)行準(zhǔn)確、可靠的測試。試驗(yàn)證明,在邊界掃描各項(xiàng)測試中,對BSDL描述信息進(jìn)行有效的編譯提取,對測試的成功實(shí)現(xiàn)至關(guān)重要。但器件的BSDL描述必須嚴(yán)謹(jǐn)、確切,所以,在下一步的軟件完善中,將加入BSDL 文件的數(shù)據(jù)完整性檢查,以防止錯(cuò)誤數(shù)據(jù)損壞被測對象。
www.broadkey.com.cn
010-62102657
15210806465
楊先生