第一節(jié):ICL概述
ICL(Instrument Connectivity Language)是IEEE 1687(IJTAG)標(biāo)準(zhǔn)的一部分,用于描述芯片內(nèi)嵌入式器件的連接性和訪問方式。它是一種硬件架構(gòu)描述語言,專注于定義器件之間的連接關(guān)系,而不涉及器件內(nèi)部的具體操作細節(jié)。ICL的主要作用是提供一種標(biāo)準(zhǔn)化的方式來描述嵌入式器件的連接網(wǎng)絡(luò),以便實現(xiàn)對這些器件的高效訪問和控制。
第二節(jié):ICL的主要組成部分
模塊(Module):ICL的核心是模塊,每個模塊代表一個邏輯單元,可以是一個器件、一個器件的封裝(wrapper)、一個掃描鏈網(wǎng)絡(luò)等。模塊可以包含其他模塊的實例(Instance),形成層次化的網(wǎng)絡(luò)結(jié)構(gòu)。模塊定義了其內(nèi)部的器件接口(如掃描輸入、掃描輸出、數(shù)據(jù)輸入、數(shù)據(jù)輸出等)以及與其他模塊的連接關(guān)系。
器件(Instrument):器件是模塊中的關(guān)鍵節(jié)點,包括TAP(測試訪問端口)、SIB(Segment Interconnect Bit,段互連位)、TDR(Test Data Register,測試數(shù)據(jù)寄存器)以及各種DFT IP(如EDT、OCC、MBIST等)。每個器件都在模塊中定義,具有特定的接口和功能。
連接描述(Connection Description):描述模塊之間的連接關(guān)系,包括掃描鏈的連接、掃描多路復(fù)用器(Scan Mux)的配置、SIB的控制等。通過定義輸入端口(InputPort)、輸出端口(OutputPort)和連接源(Source)等,明確模塊之間的數(shù)據(jù)流向。
第三節(jié):ICL的作用
標(biāo)準(zhǔn)化的連接描述:ICL提供了一種標(biāo)準(zhǔn)化的方式來描述嵌入式器件的連接網(wǎng)絡(luò),使得不同供應(yīng)商的芯片和工具能夠以一致的方式進行交互和操作。這有助于減少芯片設(shè)計和測試過程中的復(fù)雜性和成本,提高測試覆蓋率和效率。
層次化的網(wǎng)絡(luò)結(jié)構(gòu):ICL支持層次化的網(wǎng)絡(luò)結(jié)構(gòu),允許將復(fù)雜的芯片設(shè)計分解為多個層次的模塊和子模塊。這種層次化結(jié)構(gòu)使得對嵌入式器件的訪問和控制更加靈活,便于在不同層次上進行測試和調(diào)試。
與PDL的協(xié)同工作:ICL與PDL(Procedural Description Language,過程描述語言)協(xié)同工作,PDL用于描述對器件的操作過程,而ICL則定義了這些操作所依賴的硬件連接。通過ICL和PDL的結(jié)合,可以實現(xiàn)對嵌入式器件的高效訪問和控制,以及測試向量的可移植性。
以下是一個簡單的ICL示例,描述了一個包含TDR和SIB的模塊:
Module TDR_Module {
ScanInPort si;
ScanOutPort so { Source R[0]; }
ShiftEnPort se;
CaptureEnPort ce;
UpdateEnPort ue;
SelectPort sel;
TCKPort TCK;
ScanRegister R[7:0] {
ScanInSource si;
}
}
Module SIB_Module {
ScanInPort TDI;
ScanOutPort TDO { Source SIB_Mux; }
ScanRegister SIB {
ResetValue 1'b0;
ScanInSource TDI;
CaptureSource SIB;
}
ScanMux SIB_Mux SelectedBy SIB {
1'b0 : SIB;
1'b1 : TDR_Module.so;
}
}
在這個示例中,TDR_Module定義了一個8位的TDR,SIB_Module定義了一個SIB,用于控制TDR是否被包含在掃描鏈中。
第四節(jié):ICL中各個組件的介紹
ICL的核心組件包括TAP(測試訪問端口)、SIB(Segment Interconnect Bit,段互連位)、TDR(Test Data Register,測試數(shù)據(jù)寄存器)以及各種DFT IP(如EDT、OCC、MBIST等)。這些組件共同構(gòu)成了ICL描述的網(wǎng)絡(luò)結(jié)構(gòu),使得對嵌入式器件的訪問和控制更加靈活和高效。
TAP是JTAG(Joint Test Action Group)標(biāo)準(zhǔn)中的一個關(guān)鍵組件,用于控制和訪問芯片內(nèi)的測試邏輯。在ICL中,TAP的作用是提供一個外部接口,通過這個接口可以訪問和控制嵌入式器件。TAP的功能是提供對內(nèi)部測試邏輯的訪問;控制掃描鏈的操作;與外部測試設(shè)備(如ATE)進行通信。
TAP代碼示例:
AccessLink Tap_1149_dot_1 Of STD_1149_1_2001 {
BSDLEntity XC6SLX9_FTG256;
USER1 {
ScanInterface { IJTAG_Demo_1Bit_ET_0.BSCAN_SPARTAN6_Gateway; }
}
}
SIB是一個單比特單元,用于控制掃描鏈中器件的插入和排除。SIB的作用類似于一個開關(guān),決定是否將某個器件的數(shù)據(jù)包含在掃描鏈中。當(dāng)SIB設(shè)置為0時,器件被跳過,不包含在掃描鏈中;當(dāng)SIB設(shè)置為1時,器件被包含在掃描鏈中;SIB提供動態(tài)配置掃描鏈的能力。SIB結(jié)構(gòu)包括輸入端口、輸出端口和選擇信號;輸入端口如reset、sel、ce、ue、se、si、from_so、tck;輸出端口如so;選擇信號如to_sel。
SIB代碼示例:
Module LD_1Bit_Instr_1__Wrapper {
ScanInPort TDI;
ScanOutPort TDO { Source SIB_mux; }
DataOutPort LD0 { Source LD_1Bit_Instr_1.LD0; }
Instance LD_1Bit_Instr_1 Of BST_IO_LD_1Bit_Instr_1__LD_1Bit_Instr_1 {
InputPort xi_LD0 = Write_TDR[0];
}
ScanRegister Write_TDR[0] {
ResetValue 1'b0;
ScanInSource SIB;
CaptureSource LD_1Bit_Instr_1.LD0[0];
}
ScanRegister SIB {
ResetValue 1'b0;
ScanInSource TDI;
CaptureSource SIB;
}
ScanMux SIB_Mux SelectedBy SIB {
1'b0 : SIB;
1'b1 : Write_TDR;
}
}
TDR是ICL中的另一個關(guān)鍵組件,用于存儲和傳輸測試數(shù)據(jù)。TDR類似于JTAG標(biāo)準(zhǔn)中的邊界掃描寄存器,但專為嵌入式器件設(shè)計。TD可以存儲測試數(shù)據(jù),提供數(shù)據(jù)的捕獲、更新和掃描操作,支持對嵌入式器件的訪問和控制。TDR結(jié)構(gòu)包括輸入端口和輸出端口。輸入端口如si、to_sel、ue、ce、se、tck;輸出端口如from_so。
TDR代碼示例:
Module TDR {
ScanInPort si;
ScanOutPort so { Source R[0]; }
ShiftEnPort se;
CaptureEnPort ce;
UpdateEnPort ue;
SelectPort sel;
TCKPort TCK;
ScanRegister R[7:0] {
ScanInSource si;
}
}
DFT IPs是一系列用于測試和驗證的知識產(chǎn)權(quán)模塊,包括但不限于EDT(Embedded Deterministic Test)、OCC(On-Chip Controller)、MBIST(Memory Built-In Self Test)以及其他測試模塊。
EDT:提供確定性測試功能,用于快速診斷和驗證芯片功能。
OCC:控制和管理芯片內(nèi)部的測試邏輯。
MBIST:提供內(nèi)存自測試功能,用于驗證內(nèi)存模塊的正確性。
其他測試模塊:包括邏輯BIST、I/O BIST、傳感器、電源控制器等,提供各種測試功能,支持芯片的驗證和調(diào)試,提高測試覆蓋率和可靠性。
ICL通過定義這些組件的連接和交互,實現(xiàn)了對嵌入式器件的高效訪問和控制。
TAP與SIB的連接:TAP通過掃描鏈與SIB連接,SIB控制掃描鏈中器件的插入和排除。
SIB與TDR的連接:SIB通過選擇信號to_sel控制TDR的插入,TDR存儲和傳輸測試數(shù)據(jù)。
TDR與器件的連接:TDR通過數(shù)據(jù)輸入和輸出端口與器件連接,提供對器件的訪問和控制。
DFT IPs的集成:DFT IPs通過掃描鏈與TDR連接,提供各種測試功能。
第五節(jié):ICL的應(yīng)用場景
芯片級測試:在芯片設(shè)計階段,ICL可以用于定義芯片內(nèi)部的測試網(wǎng)絡(luò),使得在芯片制造完成后能夠方便地進行內(nèi)部器件的測試和驗證。通過ICL描述的測試網(wǎng)絡(luò),可以實現(xiàn)對芯片內(nèi)部各種功能模塊的快速訪問和測試,提高芯片的測試覆蓋率和可靠性。
系統(tǒng)級測試:在系統(tǒng)級測試中,ICL可以用于描述多個芯片之間的測試網(wǎng)絡(luò),實現(xiàn)對整個系統(tǒng)的測試和驗證。通過ICL定義的系統(tǒng)級測試網(wǎng)絡(luò),可以方便地對系統(tǒng)中的各個芯片進行協(xié)同測試,確保系統(tǒng)的整體性能和可靠性。
3D堆疊芯片測試:在3D堆疊芯片設(shè)計中,ICL可以用于描述堆疊芯片之間的測試網(wǎng)絡(luò),實現(xiàn)對堆疊芯片內(nèi)部器件的訪問和測試。通過ICL定義的測試網(wǎng)絡(luò),可以方便地對堆疊芯片中的各個芯片進行單獨測試或協(xié)同測試,提高3D堆疊芯片的測試效率和可靠性。
第六節(jié):ICL的限制與挑戰(zhàn)
復(fù)雜性:ICL的語法和語義相對復(fù)雜,需要一定的學(xué)習(xí)成本來掌握其使用方法。在描述復(fù)雜的芯片設(shè)計時,ICL代碼可能會變得非常龐大和難以維護。
工具支持:ICL的使用依賴于EDA工具的支持,目前市場上對ICL的支持還不夠完善,部分工具可能無法完全實現(xiàn)ICL的功能。不同工具之間的兼容性問題也可能導(dǎo)致ICL描述的網(wǎng)絡(luò)在不同工具中無法正確解析和使用。
性能影響:在芯片設(shè)計中引入ICL描述的測試網(wǎng)絡(luò)可能會對芯片的性能產(chǎn)生一定的影響,如增加芯片面積、功耗和延遲等。需要在測試功能和芯片性能之間進行權(quán)衡,以確保芯片在滿足測試需求的同時,仍能保持良好的性能表現(xiàn)。
第七節(jié):ICL的未來發(fā)展方向
工具改進:隨著對ICL需求的增加,EDA工具供應(yīng)商將不斷改進工具對ICL的支持,提高工具的易用性和兼容性。未來可能會出現(xiàn)更加智能化的工具,能夠自動優(yōu)化ICL描述的網(wǎng)絡(luò)結(jié)構(gòu),減少對芯片性能的影響。
與其他技術(shù)的融合:ICL可能會與其他測試技術(shù)(如ATPG、BIST等)進一步融合,形成更加完善的芯片測試解決方案。通過與其他技術(shù)的協(xié)同工作,可以更好地滿足復(fù)雜芯片設(shè)計的測試需求,提高芯片的測試覆蓋率和可靠性。
標(biāo)準(zhǔn)化的推進:IEEE 1687標(biāo)準(zhǔn)的不斷推進和完善將為ICL的發(fā)展提供更加堅實的基礎(chǔ)。隨著標(biāo)準(zhǔn)的廣泛接受和應(yīng)用,ICL有望在芯片設(shè)計和測試領(lǐng)域得到更加廣泛的應(yīng)用和推廣。
加入星球,解鎖新知