• 正文
    • DAP和JTAG
    • 邊界掃描
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

DAP、JTAG和邊界掃描

06/11 11:19
701
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

DAP和JTAG

有多種不同的方式連接到Debug Access Port (DAP)上,它們?cè)诔杀尽⑶秩胄院桶踩缘确矫嬗兴顒e。通過(guò)DAP可以選擇訪問(wèn)芯片中的Core,這個(gè)Core通常是第一個(gè)啟動(dòng)的或者是用于管理芯片啟動(dòng)、調(diào)試、初始化DVFS和DRAM配置的專用微處理器。由于調(diào)試通道提供了訪問(wèn)芯片的后門(mén),因此需要做一些安全保護(hù),對(duì)逆向工程和惡意程序隱藏起來(lái),防止芯片知識(shí)產(chǎn)權(quán)和數(shù)據(jù)被盜竊。常見(jiàn)的做法是:

物理上把芯片上專用管腳直接連到電路板上沒(méi)有使用的插口;

通過(guò)加密和安全啟動(dòng)機(jī)制;

DAP中使用最廣泛和最古老的是JTAG(Joint Test Action Group)。JTAG是一個(gè)串行總線,用于測(cè)試芯片中的寄存器,原始目的是用于板級(jí)產(chǎn)品測(cè)試的邊界掃描,有4個(gè)管腳:

表1 JTAG管腳

通常一個(gè)電路板上會(huì)有許多帶DAP口的芯片,這些芯片會(huì)使用JTAG連接成一個(gè)菊花鏈,如圖1所示。在菊花鏈中,可以有任何數(shù)量的芯片以及任何長(zhǎng)度的寄存器。這些測(cè)試寄存器中會(huì)提供一個(gè)用于對(duì)鏈中下一個(gè)芯片訪問(wèn)的旁路寄存器。

在JTAG測(cè)試過(guò)程中,通過(guò)TMS管腳上的值可以尋址到菊花鏈中任何芯片中的任何一個(gè)測(cè)試寄存器的值。類似于移位寄存器的功能,測(cè)試寄存器的老值被移出,并移入新值。當(dāng)然,對(duì)于RO寄存器來(lái)說(shuō),新值會(huì)被忽略。某些預(yù)定義的寄存器會(huì)用于保存生產(chǎn)商和設(shè)備編號(hào),這樣debugger軟件可以動(dòng)態(tài)調(diào)整板級(jí)上不同芯片的物理順序和存在。

圖1 板級(jí)上的JTAG菊花鏈

JTAG的訪問(wèn)速度通常限制在幾Mbps,因此在其它要求更快的DAP口中會(huì)使用USB等其它高性能并行接口

DAP口還用于其它芯片級(jí)別測(cè)試和制造,比如:

將部分有缺陷的產(chǎn)品隱藏(降級(jí))為低規(guī)格的產(chǎn)品或比其它冗余組件替代;

校準(zhǔn)環(huán)形振蕩器和DVFS;

安裝MAC地址、PKI密鑰或其它需要在不同的SoC中生成的數(shù)據(jù);

BIOS和文件系統(tǒng)刷新;

訪問(wèn)內(nèi)建自測(cè)試(BIST)機(jī)制;

邊界掃描

芯片制造后,通常會(huì)對(duì)芯片進(jìn)行邊界和一般路徑掃描,圖2為邊界掃描路徑的一個(gè)片段。為了支持邊界掃描,在輸入和輸出焊點(diǎn)(Pad)上新增了一些基本邏輯電路。串行數(shù)據(jù)在測(cè)試時(shí)鐘(Test clock)的控制下,從一個(gè)Pad移位到另一個(gè)Pad。隨著測(cè)試向量的移入,之前測(cè)試向量的結(jié)果就會(huì)被移出。兩根Strobe信號(hào)用于將測(cè)試向量灌入到輸入Pad和采樣輸出Pad上的數(shù)據(jù)。

圖2 邊界掃描路徑

當(dāng)掃描模式選擇(Scan Mode Select)為低時(shí),掃描邏輯不影響芯片正常工作。反之,也就是啟動(dòng)掃描模式,邊界掃描邏輯會(huì)把輸入Pad接管過(guò)來(lái),使用移位和存儲(chǔ)方式來(lái)進(jìn)行測(cè)試。為了支持掃描,在每個(gè)Pad上新增的兩個(gè)寄存器分別是鏈寄存器(Chain Register)數(shù)據(jù)寄存器(Data Register)。

鏈寄存器用于掃描鏈的數(shù)據(jù)傳輸,來(lái)自DAP控制器移位所需的測(cè)量向量長(zhǎng)度等于測(cè)試Pad的數(shù)目。Strobe信號(hào)可以用于捕獲輸出Pad的數(shù)據(jù),并且將新數(shù)據(jù)灌入到輸入Pad上。隨著下一個(gè)測(cè)試向量數(shù)據(jù)的移入,捕獲的數(shù)據(jù)將會(huì)逐位移出。數(shù)據(jù)寄存器主要是確保在掃描鏈移位過(guò)程中,保持已經(jīng)使用的測(cè)試向量穩(wěn)定。

邊界掃描可以應(yīng)用于芯片中IP塊和硬宏單元,比如定制處理器核。不過(guò)隨著片上總線的標(biāo)準(zhǔn)化,比如AXI標(biāo)準(zhǔn)總線,IP模塊的邊界掃描已經(jīng)比較少使用了?,F(xiàn)在用的BIST掃描類似于邊界掃描,但它掃描路徑是穿過(guò)所有IP內(nèi)部的觸發(fā)器,這就允許觀察組件每個(gè)周期的數(shù)據(jù),但會(huì)導(dǎo)致該組件在被掃描時(shí)無(wú)法全速運(yùn)行,并且也會(huì)增加很多的連線負(fù)擔(dān)。通常情況下,通用掃描路徑邏輯是可以由邏輯綜合工具在特殊模式下插入的。

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫(xiě)文章/發(fā)需求
立即登錄