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