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