柏娜,朱非凡,許耀華,王翊,陳冬
(1.安徽大學(xué)信息材料與智能感知安徽省實(shí)驗(yàn)室,合肥 230601;2.安徽大學(xué)物聯(lián)網(wǎng)頻譜感知與測試工程技術(shù)研究中心,合肥 230601)
隨著集成電路行業(yè)的發(fā)展,在傳輸接口方面,國內(nèi)外對數(shù)據(jù)傳輸速率的要求越來越高[1]。近些年,串行解串器(SerDes)接口因其具有較少的信道需求與器件管腳數(shù)目的優(yōu)勢,逐漸取代了傳統(tǒng)并行接口芯片成為通信行業(yè)的新寵,其跟隨通信協(xié)議,被廣泛應(yīng)用在電信、IT 和個(gè)人消費(fèi)電子領(lǐng)域[2]。與此同時(shí),隨著集成技術(shù)和制造工藝的不斷進(jìn)步,專業(yè)SerDes 接口的電路結(jié)構(gòu)愈加復(fù)雜,性能要求也愈加嚴(yán)格,越來越高的集成度與越來越快的傳輸速度對測試技術(shù)也提出了越來越嚴(yán)格的要求[3]。為保證芯片的成功流片,降低測試所需的成本,針對高速SerDes 的高效調(diào)試方法成為了必要的研究課題[4]。
對于SerDes 的相關(guān)功能測試,大多數(shù)廠商采用儀器儀表與評估板來評估待測器件的方式效率低下,只適用于產(chǎn)品評估階段[5],采用FPGA 可以覆蓋不同層的測試,安全性高但通用性較差[6]。本文利用SerDes 芯片的環(huán)回模式,引入內(nèi)建自測試的方法,可以快速定位故障點(diǎn),同時(shí)降低對測試設(shè)備通道和速度的要求[7]。但在常規(guī)的內(nèi)建自測試中,由于SerDes 芯片在封裝時(shí)有管腳數(shù)量的限制,難以把物理層(PHY)的測試點(diǎn)全部引出作為測試芯片的管腳,從而導(dǎo)致測試操作繁瑣,調(diào)試配置參數(shù)的周期延長[8]。而把通用異步收發(fā)器(UART)模塊與待測IP 級聯(lián),將UART 模塊作為PHY與外界通信的轉(zhuǎn)換模塊,通過UART 模塊將SerDes調(diào)試所需的配置參數(shù)傳輸?shù)絇HY 的控制寄存器,控制寄存器的控制端可以完成對PHY 內(nèi)部寄存器的讀寫操作,由此實(shí)現(xiàn)了對SerDes 芯片參數(shù)的動(dòng)態(tài)調(diào)試,極大地減少了測試復(fù)雜度和測試時(shí)間。該方法方便測試人員進(jìn)行調(diào)試,具有通用性。本文介紹了基于UART的高速SerDes 測試方案,詳細(xì)闡述測試電路的設(shè)計(jì)以及前仿功能驗(yàn)證、邏輯綜合與靜態(tài)時(shí)序分析、后仿驗(yàn)證等測試具體流程。
待測SerDes IP 的總體結(jié)構(gòu)如圖1 所示,該模塊可以滿足必要的PCIe 和RapidIO 協(xié)議物理介質(zhì)接入層(PMA)的要求,模塊可分為數(shù)字和模擬兩個(gè)部分。其中偽隨機(jī)序列產(chǎn)生器與檢測器(PRBSgen,PRBSchk)、COMMA 檢測與字界對齊模塊(COMMA detect,Word alignment)、Beacon 產(chǎn)生器(Beacongen)以及控制寄存器(Regmap)組成了數(shù)字部分。COMMA 檢測與字界對齊模塊通過檢測串并轉(zhuǎn)換得到并行數(shù)據(jù)中的COMMA 字符,尋找并行數(shù)據(jù)的字界邊界,對齊字界邊界后輸出串并轉(zhuǎn)換后的并行數(shù)據(jù)。Beacon 產(chǎn)生器產(chǎn)生PCIe 協(xié)議定義的Beacon 信號,用于低功耗模式下的喚醒操作??刂萍拇嫫鞔鎯?chǔ)了SerDes 的所有配置信息,SoC 可以通過其訪問通道進(jìn)行修改配置,調(diào)節(jié)SerDes 的參數(shù)配置。鎖相環(huán)(PLL)、帶隙基準(zhǔn)(Bandgap)、四個(gè)獨(dú)立傳輸通道(Lane0、Lane1、Lane2、Lane3)組成了模擬部分。鎖相環(huán)給發(fā)送端和接收端提供四相時(shí)鐘,用來恢復(fù)對數(shù)據(jù)進(jìn)行采樣的時(shí)鐘。帶隙基準(zhǔn)給其他模塊提供與溫度無關(guān)的偏置電流[9]。
圖1 待測SerDes IP 的總體結(jié)構(gòu)
待測IP 內(nèi)部包含的PRBSgen 與PRBSchk,可以產(chǎn)生lfsr7/15/21/31 格式的偽隨機(jī)序列,便于通過SerDes 的環(huán)回模式進(jìn)行SerDes 的內(nèi)建自測試。
待測SerDes IP 在測試中面臨的問題主要有以下三點(diǎn)。
1)信號衰弱:考慮到信號在傳輸過程中會(huì)發(fā)生不可避免的衰弱問題[10],從而導(dǎo)致信號對之后功能單元的驅(qū)動(dòng)能力不足,進(jìn)而產(chǎn)生新的問題,因此設(shè)計(jì)了輸入輸出緩沖單元用來增強(qiáng)信號驅(qū)動(dòng)能力和實(shí)現(xiàn)靜電保護(hù)作用,此單元由大量緩沖器構(gòu)成,除了差分參考時(shí)鐘外,其余時(shí)鐘信號的輸入、輸出均通過此單元。
2)亞穩(wěn)態(tài):本設(shè)計(jì)采用異步復(fù)位,特地設(shè)計(jì)了由觸發(fā)器構(gòu)成的復(fù)位同步單元,采用雙重時(shí)鐘周期同步方式進(jìn)行單bit 同步,實(shí)現(xiàn)同步復(fù)位異步釋放功能,確保復(fù)位信號的釋放依賴于時(shí)鐘有效沿,避免了恢復(fù)時(shí)間和消除時(shí)間的不足產(chǎn)生亞穩(wěn)態(tài)[11]。
3)測試點(diǎn)過多:SerDes 芯片在封裝時(shí)管腳數(shù)量受限,難以把PHY 的測試點(diǎn)全部引出作為測試芯片的管腳[12]。為了減少測試點(diǎn)的數(shù)量,本文引入了UART 作為PHY 與外界通信的轉(zhuǎn)換模塊。將UART 等模塊與待測IP 級聯(lián),通過UART 單元將SerDes 調(diào)試所需的配置參數(shù)傳輸?shù)絇HY 的控制寄存器,進(jìn)而完成控制寄存器控制端對PHY 內(nèi)部寄存器的讀寫操作,并基于此設(shè)計(jì)引用了UART 與控制寄存器的橋接單元,使UART 的數(shù)據(jù)及控制信號通過UART 橋接單元與PHY 內(nèi)部的寄存器連接,從而進(jìn)一步減少了管腳數(shù)量。
利用SerDes 的環(huán)回模式進(jìn)行內(nèi)建自測試,依照模塊設(shè)計(jì)方案引入U(xiǎn)ART 單元,設(shè)計(jì)出包括待測IP 的PHY 和SerDes 附加測試結(jié)構(gòu)(SerDes_Addition)的測試電路,如圖2 所示。其中SerDes_Addition 包括輸入輸出緩沖單元、復(fù)位同步單元、通道配置單元、通道默認(rèn)配置單元、UART 單元和UART 橋接單元。輸入輸出緩沖單元由大量的緩沖器構(gòu)成,被用于解決信號衰弱問題;復(fù)位同步單元由觸發(fā)器構(gòu)成,以打兩拍的形式進(jìn)行單bit 同步,可實(shí)現(xiàn)同步復(fù)位異步釋放功能,避免產(chǎn)生亞穩(wěn)態(tài);通道配置單元與通道默認(rèn)配置單元主要實(shí)現(xiàn)對SerDes 各個(gè)通道的配置;UART 單元、UART 橋接單元作為PHY 與外界通信的轉(zhuǎn)換模塊。
圖2 測試電路整體結(jié)構(gòu)
搭建相應(yīng)模塊并與SerDes 進(jìn)行級聯(lián),最后得到的整體電路如圖3 所示。
圖3 整體電路
前仿驗(yàn)證的測試方案為在依次完成PMA 環(huán)回配置、物理編碼子層(PCS)環(huán)回配置、外環(huán)回配置、偽隨機(jī)序列(PRBS)配置、低頻鏈路層配置等相關(guān)配置后,選擇PRBS 內(nèi)建自測試,配置PRBS 產(chǎn)生器開始發(fā)送PRBS,PRBS 檢測器隨之開始檢查,首先測試當(dāng)數(shù)據(jù)傳輸正確時(shí)PRBS 檢測模塊是否能夠正確地檢測,預(yù)期檢測結(jié)果的錯(cuò)誤數(shù)為0;驗(yàn)證完成后注入錯(cuò)誤,觀察測試模塊是否仍然能夠正確地檢測,發(fā)現(xiàn)注入錯(cuò)誤的數(shù)量。在此過程中,PRBS 產(chǎn)生器生成的PRBS(在每個(gè)周期內(nèi)PRBS 的數(shù)值隨機(jī)出現(xiàn),但每個(gè)周期的碼流完全相同)經(jīng)過相關(guān)配置的選擇、轉(zhuǎn)換模塊,最終到達(dá)PRBS 檢測模塊。
PRBS 檢測波形如圖4 所示,選擇待測SerDes 的工作模式為1.25 Gbit/s、20 bit,配置PRBS 產(chǎn)生器和PRBS 檢測器,按照測試方案分別對其端口進(jìn)行設(shè)置,當(dāng)沒有注入錯(cuò)誤時(shí),傳輸?shù)絇RBS 檢測器的序列與檢測器產(chǎn)生的序列一致,r_prbs7(由PRBS 產(chǎn)生器最終輸入到PRBS 檢測器相應(yīng)模塊的序列)與r_prbs7_20b_d0(對齊后的檢測序列)保持一致,所以o_prbs_chk_cnt(錯(cuò)誤計(jì)數(shù)器)顯示的計(jì)數(shù)一直為0,該過程涉及到的端口及其功能如表1 所示。
表1 相關(guān)端口及其功能
圖4 PRBS 檢測波形
設(shè)置PRBS 產(chǎn)生器注入錯(cuò)誤,圖5 為注入錯(cuò)誤后的檢測波形圖。可以看出,當(dāng)注入錯(cuò)誤時(shí),傳輸?shù)絇RBS 檢測器的序列與檢測器產(chǎn)生的序列不一致,該過程涉及到的端口及其功能見表1。
圖5 注入錯(cuò)誤后的檢測波形
圖6 為錯(cuò)誤1 的偽隨機(jī)序列檢測波形圖,當(dāng)r_prbs7 為20’h 2AFE0 時(shí),r_prbs7_20b_d0 為20’h 0AFE0,兩者不一致,這表示出現(xiàn)了一個(gè)錯(cuò)誤,此時(shí)錯(cuò)誤計(jì)數(shù)器開始計(jì)數(shù),顯示結(jié)果為1;圖7 為錯(cuò)誤2 的偽隨機(jī)序列檢測波形圖,當(dāng)r_prbs7 為20’h 87126 時(shí),r_prbs7_20b_d0 為20’h A7126,說明再次出現(xiàn)了一個(gè)錯(cuò)誤,錯(cuò)誤計(jì)數(shù)器的顯示結(jié)果為2。
圖6 錯(cuò)誤1 的偽隨機(jī)序列檢測波形
圖7 錯(cuò)誤2 的偽隨機(jī)序列檢測波形
各通道錯(cuò)誤數(shù)結(jié)果如圖8 所示,其中16’h 000C、16’h 040C、16’h 080C、16’h 0C0C 分別表示通道0~3通道,共4 條通道。檢測報(bào)告如圖9 所示,測試電路正確地檢測出“沒有注入錯(cuò)誤”和“注入兩次單個(gè)錯(cuò)誤”兩種結(jié)果,說明在前仿驗(yàn)證中測試電路可以正確地檢測出SerDes 是否存在誤碼。
圖8 各通道錯(cuò)誤數(shù)結(jié)果
圖9 檢測報(bào)告
根據(jù)測試電路對時(shí)鐘的要求,寫出了時(shí)序約束,定義出所有邏輯路徑的約束,包括所有輸入路徑、輸出路徑、內(nèi)部(寄存器到寄存器)路徑[13],設(shè)計(jì)出的時(shí)鐘結(jié)構(gòu)如圖10 所示。圖10 所示的結(jié)構(gòu)是將PHY 看作一個(gè)整體的時(shí)鐘結(jié)構(gòu),忽略了PHY 內(nèi)部的時(shí)鐘結(jié)構(gòu),對于PHY 的內(nèi)部時(shí)鐘結(jié)構(gòu),根據(jù)導(dǎo)入PHY 的單元庫文件將PHY 展平,完整的電路時(shí)鐘結(jié)構(gòu)(進(jìn)行后仿驗(yàn)證的電路結(jié)構(gòu))如圖11 所示。將綜合后生成的網(wǎng)表與設(shè)計(jì)的RTL 代碼進(jìn)行功能比較,看結(jié)果是否一致[14],通過一致性檢查后對電路進(jìn)行靜態(tài)時(shí)序分析。
圖10 測試電路的時(shí)鐘結(jié)構(gòu)
圖11 進(jìn)行后仿驗(yàn)證的電路結(jié)構(gòu)
相較于前仿驗(yàn)證,后仿驗(yàn)證具有真實(shí)的反標(biāo)延時(shí),可以采用后端工具產(chǎn)生的標(biāo)準(zhǔn)延遲格式文件對布局布線后的電路門級網(wǎng)表進(jìn)行時(shí)序功能驗(yàn)證,從而達(dá)到模擬真實(shí)工作中仿真芯片的目的[15]。對完整的電路時(shí)鐘結(jié)構(gòu)進(jìn)行后仿驗(yàn)證,在后仿過程中,根據(jù)生成報(bào)告中的時(shí)序違反確定與其相關(guān)的寄存器,再根據(jù)產(chǎn)生時(shí)序違反的具體時(shí)間點(diǎn)檢查RTL 代碼,判斷該時(shí)序違反是否可以被忽略。后仿時(shí)序報(bào)告如圖12 所示,在2 575 ps 時(shí)產(chǎn)生了時(shí)序違反,其余時(shí)序未發(fā)現(xiàn)錯(cuò)誤。根據(jù)報(bào)告信息確定寄存器位置,由寄存器RTL 代碼與端口的波形圖(見圖13)可以判斷,在2 575 ps 時(shí),時(shí)鐘端(i_rx_clk)不處于上升沿,同時(shí)復(fù)位端(i_rx_rst_n)數(shù)據(jù)一直為0,未發(fā)生變化,表明此時(shí)產(chǎn)生的時(shí)序違反不會(huì)對后續(xù)數(shù)據(jù)產(chǎn)生影響,可以將其忽略。后仿報(bào)告表明時(shí)序功能正常,測試電路可以正確地測試出SerDes是否存在誤碼,驗(yàn)證測試方案可行。
圖12 后仿時(shí)序違反報(bào)告
圖13 時(shí)序違反波形圖
在1.25 Gbit/s、20 bit 的工作模式下完成了對SerDes 芯片誤碼率的測試,測試結(jié)果符合預(yù)期,為SerDes 芯片的測試提供了一種新的解決方案。與傳統(tǒng)測試方案相比,本文利用SerDes 芯片的環(huán)回模式快速定位故障點(diǎn),通過引入U(xiǎn)ART 模塊作為PHY 與外界通信的轉(zhuǎn)換模塊,實(shí)現(xiàn)了對SerDes 芯片參數(shù)的動(dòng)態(tài)調(diào)試,同時(shí)降低了對測試設(shè)備通道和速度的要求,減少了為進(jìn)行SerDes 芯片測試配置的引腳,從而減少了SerDes 芯片測試的復(fù)雜度與測試時(shí)間周期,進(jìn)而降低了流片的成本,具有較強(qiáng)的通用性。本文所介紹的測試流程提高了SerDes 芯片測試的可靠性,使測試結(jié)果更加準(zhǔn)確,為芯片最終的流片成功提供了保障。