【摘要】從PTN設(shè)備的設(shè)計挑戰(zhàn)出發(fā),介紹了IP核和基于IP核(BSCAN2)的多邊界掃描鏈路實(shí)現(xiàn)方式,并對其應(yīng)用提出了改進(jìn)。
【關(guān)鍵詞】邊界掃描鏈路IP核BSCAN2
近年來數(shù)據(jù)業(yè)務(wù)特別是IP業(yè)務(wù)呈現(xiàn)出超摩爾定律的爆炸性增長,一切皆IP已經(jīng)成為不可阻擋的趨勢。也就是說業(yè)務(wù)的IP化趨勢不可阻擋,而PTN以其低成本、高可靠和易維護(hù)的優(yōu)勢迅速替代MSTP成為主流的光傳輸產(chǎn)品。而大量細(xì)間距高密芯片的使用,使PTN設(shè)備電路的集成度越來越高,可供測試的物理節(jié)點(diǎn)越來越少,常規(guī)測試方法已無法檢測和定位故障。對于電信級要求的PTN產(chǎn)品來說這是個大問題。本文提供的一種基于IP核的多邊界掃描鏈路測試方式可以較好的解決該問題。
一、邊界掃描技術(shù)
邊界掃描技術(shù)[1]是聯(lián)合測試行動組(Joint Test Action Group)提出的一種電路測試方法,也被稱為JTAG。其核心思想是在芯片管腳和芯片內(nèi)部的用戶邏輯之間增加由移位寄存器構(gòu)成的邊界掃描單元,以實(shí)現(xiàn)測試向量的加載以及測試響應(yīng)的捕獲?;谶吔鐠呙铚y試技術(shù)的故障診斷突破了管腳接觸式檢測理論,可以解決其他技術(shù)無法完成的超大規(guī)模集成電路的測試問題,極大地確保了電路設(shè)計,和生產(chǎn)的可靠性,非常適合PTN產(chǎn)品的高可靠性要求。
邊界掃描測試要求設(shè)計人員將多個器件通過JTAG接口串聯(lián)在一起,形成一個或多個邊界掃描鏈,能實(shí)現(xiàn)對鏈內(nèi)各器件分別測試。
二、IP核概述
IP(Intellectual Property)核是指具有獨(dú)立知識產(chǎn)權(quán)的電路核,用于實(shí)現(xiàn)特定的電路功能和結(jié)構(gòu)。其實(shí)質(zhì)是一段具有特定電路功能的硬件描述語言程序,該程序與集成電路工藝無關(guān),可以移植到不同的半導(dǎo)體工藝中去生產(chǎn)集成電路芯片。
目前各PLD廠商(Altera,Lattice等)均提供商用的IP核設(shè)計,這些IP核多針對PLD廠商各自的芯片進(jìn)行優(yōu)化設(shè)計,降低了系統(tǒng)跨廠商的可移植性;且該類IP核用戶一般無法得到源代碼。
與PLD廠商相對應(yīng)的,國際上一些非盈利組織(如OpenCores等)和個人致力于自由IP核的發(fā)展,為電路設(shè)計人員提供免費(fèi)開源的IP核。OpenCores是全世界最大的用于開發(fā)開源硬件IP核心的網(wǎng)站和社區(qū)。
三、PTN設(shè)備邊界掃描面臨的設(shè)計難點(diǎn)
在PTN設(shè)備的電路設(shè)計中,通常包含大量不同廠商,不同功能的邊界掃描器件,以我司PTN產(chǎn)品為例,其使用了摩托羅拉,BCM,Lattice,美光等多家公司的MCU/FPGA/CPLD/FLASH,因此設(shè)計人員在實(shí)施邊界掃描設(shè)計,把邊界掃描器件串入掃描鏈時,通常面臨著以下挑戰(zhàn):(1)掃描鏈路內(nèi)器件串行的特點(diǎn),使測試長掃描鏈路變得困難,因?yàn)樵谝粋€長掃描鏈路上任何一個器件的故障都會導(dǎo)致整個鏈路不能進(jìn)行測試,很難隔離故障。此外,鏈路整體時鐘頻率受限于鏈路內(nèi)TCK頻率最低的器件,影響整個鏈路的測試速度。而將TCK低的器件從鏈里單獨(dú)分離出來將顯著改善測試速度。(2)由于器件工作電壓不兼容,在一個長掃描鏈內(nèi)就需要使用電平轉(zhuǎn)換器,同樣在長鏈內(nèi)還需要用信號緩沖器對JTAG的控制信號進(jìn)行緩沖,以保證信號完整性。(3)為了對非邊界掃描的器件進(jìn)行擴(kuò)展測試,常需要對掃描鏈路進(jìn)行規(guī)劃和切割。另外一些芯片的ISP/ISE對TAP有特殊要求的也需要放在單獨(dú)的鏈里。
針對上述的挑戰(zhàn),把長的邊界掃描鏈分割成多個短鏈成了最好的解決方案,而在可編程邏輯器件上實(shí)例化IP核來實(shí)現(xiàn)掃描鏈的擴(kuò)展是最經(jīng)濟(jì)的解決方案。
四、實(shí)例化IP核來實(shí)現(xiàn)掃描鏈的擴(kuò)展
4.1技術(shù)優(yōu)越性
由于可編程邏輯器件的使用,其自身具有的轉(zhuǎn)換電壓特性和可調(diào)驅(qū)動強(qiáng)度的能力,去除了原本長鏈中必須使用的電壓轉(zhuǎn)換器和緩沖器以及上拉/下拉電阻,器件的減少也降低了對電路板版面開銷的要求,使得布線有更大的余地。同時也降低了產(chǎn)品的成本。另外,由IP核實(shí)現(xiàn)的多邊界掃描端口鏈接器可以級聯(lián),可擴(kuò)展足夠多的子鏈路。這樣使得故障檢測和故障隔離更加容易;而TCK慢的器件可以放至單獨(dú)的子鏈路,使用不同的測試時鐘,從而提高了整體測試效率。同時由IP核實(shí)現(xiàn)的多邊界掃描端口鏈接器,硬件成本只要RMB10元,假如該方案是利用現(xiàn)有電路設(shè)計中已有PLD冗余的I/O資源來實(shí)現(xiàn),那就基本不增加成本。因此是很經(jīng)濟(jì)的方案。
4.2BSCN2實(shí)現(xiàn)的邊界掃描控制器應(yīng)用實(shí)例
BSCAN2是萊迪思公司提供的IP軟核[2],適用于萊迪思公司的可編程邏輯器件,其功能是提供多個邊界掃描端口的鏈接器。BSCAN2參考設(shè)計可免費(fèi)從萊迪思的網(wǎng)站上下載,根據(jù)應(yīng)用的需要,用戶可以對HDL源碼進(jìn)行修改。BSCAN2允許連接多達(dá)8個子鏈路到一個邊界掃描測試接口,且多個BSCAN2可以級聯(lián)在一起以進(jìn)一步增加可用的子鏈路數(shù)。
圖1所示的是使用萊迪思的MachXO器件來實(shí)現(xiàn)一個4端口的鏈接器[3]。在定義各子鏈路后,通過配置BSCAN2各寄存器就可以確定某一時刻任意子鏈路的啟用,并且通過JTAG控制器軟件的編程,可動態(tài)添加和刪除子鏈路,減少了人工干預(yù)。BSCAN2還可以對任一子鏈路啟用不同的測試時鐘,來加速電路板調(diào)試和生產(chǎn)測試。
4.3BSCN2的改進(jìn)
盡管BSCN2在實(shí)現(xiàn)掃描鏈的擴(kuò)展上有諸多優(yōu)勢,但還是有其局限性,尤其是在利用現(xiàn)有電路設(shè)計中已有PLD冗余的I/O資源來實(shí)現(xiàn)時。
首先,BSCN2不支持穿透模式(Pass Through),也就是當(dāng)需要對子鏈內(nèi)的FPGA/MCU有在線編程或調(diào)試的要求時,信號無法旁路BSCN2直接到達(dá)待測器件。針對這一不足,需要修改BSCAN2的源碼來設(shè)計穿透模式,來實(shí)現(xiàn)旁路BSCN2的目的。穿透模式的實(shí)現(xiàn)可以減少測試接頭的使用,邊界掃描,在線編程和在線仿真可以通過外部撥碼開關(guān)或跳線來確定是否啟用穿透模式,從而共用一個測試端口,可以減少電路板的版面開銷。
其次,在利用現(xiàn)有電路設(shè)計中已有萊迪思PLD冗余的I/O資源來實(shí)現(xiàn)BSCN2時,即用戶邏輯和BSCN2并存于同一PLD時,用戶邏輯的IO腳將無法被測試覆蓋。為了解決這個問題,這里使用了一個開源的IP(JTAG TAP IP)來包裹用戶邏輯從而實(shí)現(xiàn)這些I/O腳的可控可測。圖2為示例。JTAG TAP可以從Open-Cores官網(wǎng)上免費(fèi)下載[4]。
最后,當(dāng)現(xiàn)有電路設(shè)計中沒有萊迪思的PLD或者即使有也沒有冗余的I/O資源時,又不想再增加物料成本在板內(nèi)多放一個萊迪思的PLD來專門實(shí)現(xiàn)多邊界掃描鏈的管理,此時給JTAG控制器設(shè)計一塊TAP擴(kuò)展卡是一個很好的選擇。圖3是在萊迪思LCMXO640E上例化 BSCAN2和Open-Cores JTAG 2個IP實(shí)現(xiàn)8個子鏈的TAP擴(kuò)展卡設(shè)計,其有效性經(jīng)過了我司PTN批量生產(chǎn)的實(shí)踐檢驗(yàn)。
解決上述3個使用時的局限性后,BSCN2在實(shí)現(xiàn)多邊界掃描鏈測試上的使用趨于完善。
五、結(jié)語
當(dāng)前PTN設(shè)備的電路設(shè)計中廣泛使用具備JTAG能力的器件,邊界掃描測試也因此成為最重要的測試手段,而長掃描鏈帶來的設(shè)計問題嚴(yán)重影響了測試成本和測試覆蓋率。本文提出的基于BSCAN2軟核的多邊界掃描端口解決方案具備了應(yīng)用靈活,快速部署的特點(diǎn),可在同一塊PLD芯片中整合用戶邏輯和BSCAN2等IP,去除了上下拉電阻和電壓轉(zhuǎn)換器及緩沖器,降低了電路板的成本,減少了測試時間,并通過設(shè)計穿透模式和對用戶邏輯的JTAG包裹彌補(bǔ)了BSCAN2的局限性,具有很高的實(shí)用性。
參考文獻(xiàn)
[1] IEEE Std 1149.1-1990,IEEE Standard Test Access Port and Boundary-Scan Architecture[S]
[2] RD1002, Multiple Boundary Scan Port Linker (BSCAN2) Reference Design,Lattice web,2009
[3] AN8081, Using Multiple Boundary Scan Port Linker, Lattice web,2009
[4] http://opencores.org/project,jtag