沈志春,夏 玥,農(nóng)凱政,劉心舸,吳欣延
(珠海晶通科技有限公司,廣東 珠海 519000)
如圖1所示,在IC研發(fā)流程中,驗證應(yīng)在開發(fā)階段之后發(fā)布階段之前結(jié)束,因為在開發(fā)階段完成后可以盡可能還原芯片真實使用場景,達到充分驗證芯片功能的目的,此時的修改和調(diào)整都比較容易,可以確保各個功能模塊的可靠性和穩(wěn)定性,能夠提高芯片的整體性能。同時也可以在此階段進行預(yù)售演示給客戶看,從而節(jié)省大量成本[1]。
圖1 芯片開發(fā)流程圖
芯片開發(fā)總體流程劃分為以下4個階段。
以MCU芯片為案例,我們需要根據(jù)客戶需求制定MCU芯片的《項目需求表》并與研發(fā)部一起進行項目評估,確保項目需求完整、準(zhǔn)確和明晰。項目評估之后由立項建議小組和立項評審小組進行項目評審,記錄立項評審論證、立項評審小組意見和結(jié)論,并輸出《項目評審報告》。如果通過則召開立項會議并輸出《立項報告》,主要涉及內(nèi)容包括:立項目的、項目研發(fā)背景、項目研發(fā)目標(biāo)、項目技術(shù)方案、創(chuàng)新點、主要達成技術(shù)指標(biāo)、經(jīng)濟指標(biāo)、經(jīng)費概算、項目組主要研發(fā)人員及職責(zé)、項目研發(fā)工作進度安排、預(yù)期研發(fā)成果、確定工藝、是否多項目流片MPW及時間點、工程片及流片時間等。依據(jù)MCU芯片的各模塊功能或其相關(guān)的協(xié)議標(biāo)準(zhǔn),評審各個模塊特征功能描述是否合理、是否符合客戶要求的規(guī)格、其MCU內(nèi)部工作流程或者狀態(tài)機是否合理、芯片內(nèi)部寄存器等技術(shù)關(guān)鍵點是否表達正確、是否達到業(yè)界標(biāo)準(zhǔn)。
研發(fā)人員根據(jù)計劃階段所輸出的MCU芯片的《項目需求表》確定芯片的整體架構(gòu),根據(jù)MCU芯片的《邏輯需求說明》明確設(shè)計規(guī)則,明確功能特點,明確MCU芯片接口時序關(guān)系。架構(gòu)師設(shè)計出整體結(jié)構(gòu)圖并對每部分簡要描述,簡述前后模塊關(guān)系,簡述子模塊劃分原則及功能,從整體結(jié)構(gòu)及處理過程分析是否可以低功耗設(shè)計,考慮模塊是否可以復(fù)用。數(shù)字前端工程師根據(jù)詳細設(shè)計說明編寫代碼并驗證通過,用設(shè)計編譯器(Design Complier)將代碼編譯成電路網(wǎng)表,然后再用物理實現(xiàn)工具,如ICC工具,對芯片的電路網(wǎng)表按照相關(guān)要求進行布局布線PR(Place Route)設(shè)計。模擬電路工程師根據(jù)設(shè)計要求設(shè)計相關(guān)的模擬電路,然后再進行模擬版圖設(shè)計,最后進行芯片整個頂層的集成,驗證通過后便完成芯片的設(shè)計[2]。
依據(jù)spec,從功能、性能、可靠性方面編寫驗證方案,確定測試場景,保證驗證覆蓋率滿足要求,并組織相關(guān)設(shè)計人員進行評審。然后再編寫驗證代碼,設(shè)計驗證電路,完成驗證方案所有驗證項目。發(fā)現(xiàn)bug及時向設(shè)計人員反饋,并與設(shè)計人員共同查找bug,評估bug影響范圍,最后整理驗證報告,發(fā)出評審。在這里我們特意以控制器與I2C總線之間的數(shù)據(jù)傳輸為案例。根據(jù)項目的詳細功能特性表提取的功能點如下:兼容主模式和從模式;自動結(jié)束模式(主模式);軟件結(jié)束模式(主模式);主模式發(fā)送重復(fù)起始位,從模式識別重復(fù)起始位;字節(jié)重載模式;允許時鐘延長(從模式);不允許時鐘延長(從模式);字節(jié)控制模式(從模式);發(fā)送數(shù)據(jù)功能和接收數(shù)據(jù)功能;主時鐘生成功能;從時鐘延長功能;時序寄存器中配置的各種時間計數(shù)器;起始位與停止位的時序約束;可調(diào)節(jié)濾波脈沖寬度的數(shù)字濾波器功能;仲裁功能;幾種錯誤模式(上溢/下溢、仲裁失敗、總線錯誤);寄存器讀寫測試;各種中斷事件。以上就是本次提取到的所有功能點,后續(xù)搭建的所有的測試用例都會以上述的功能點為基礎(chǔ)。搭建測試用例的目標(biāo)就是覆蓋上述所有的功能點并讓試圖全部驗證通過這些功能點。
發(fā)布階段主要包括兩方面。一方面解決芯片生產(chǎn)過程中出現(xiàn)良率低及測試不穩(wěn)定問題,例如,測試過程中如果發(fā)現(xiàn)良率低于目標(biāo)值則需要找出原因并分析改進,優(yōu)化其設(shè)計;如果測試過程不穩(wěn)定,則查找原因,檢查是否是測試程序或者測試平臺有問題,是否是生產(chǎn)芯片工藝有問題,是否是芯片中本身設(shè)計或者IP有問題等。
另一方面解決客戶壞片問題,分析應(yīng)用過程中出現(xiàn)的問題。如果在給客戶試用的芯片中出現(xiàn)壞片問題和應(yīng)用過程中出現(xiàn)問題,技術(shù)支持人員應(yīng)現(xiàn)場提供技術(shù)支持,找出問題:是否是芯片本身有問題,或者是客戶由于使用不當(dāng)?shù)纫鸬膯栴}。如果沒有以上的問題,芯片可以發(fā)布量產(chǎn)上市。
為了進一步說明驗證芯片可靠性,為應(yīng)用場景提供技術(shù)指導(dǎo),為此,本文從以下幾個方面對芯片驗證內(nèi)容加以說明。
(1)寄存器驗證。寄存器驗證主要驗證相關(guān)模塊所分配寄存器默認值是否正確,讀寫功能是否正常等。以本項目I2C總線從機尋址為例:根據(jù)I2C總線的地址(Addressing)寄存器狀態(tài),從機可以支持7位(bit)或者10位(bit)尋址過程,從機地址由Addressing寄存器定義,對于10bit從機地址應(yīng)用,即Addressing=1的情況下,要求第一字節(jié)必須以11110開頭;而在Addressing=0的情況下,如果從機收到了11110開頭的地址字節(jié),也會置位ADDR_ERROR錯誤標(biāo)志。
(2)功能驗證。功能驗證主要依據(jù)模塊詳細設(shè)計書所列功能,編寫相應(yīng)代碼,配置相關(guān)寄存器,驗證相關(guān)功能(包括時鐘選擇、復(fù)位、中斷等)是否正常。以I2C從機接收數(shù)據(jù)這一功能為例:從機接收到地址字節(jié)(R/W=0),回發(fā)ACK,產(chǎn)生地址匹配中斷;由于R/W=0,硬件自動進行SCL延展,從機保持接收狀態(tài);軟件響應(yīng)中斷,查詢R/W標(biāo)志,確認是從機接收;軟件讀SSPBUF,硬件自動釋放SCL,開始接收數(shù)據(jù);主機數(shù)據(jù)字節(jié)到來,字節(jié)接收完成后硬件置位BF標(biāo)志;從機回發(fā)ACK,并產(chǎn)生接收完成中斷;硬件自動進行SCL延展(SCLSEN=1);軟件響應(yīng)中斷,讀取SSPBUF,硬件自動清零BF標(biāo)志;硬件自動釋放SCL;重復(fù)數(shù)據(jù)接收過程直到接收到STOP時序,或者軟件將ACKEN置0。
(3)性能驗證。性能驗證主要是驗證芯片性能是否滿足規(guī)格要求,或者信號質(zhì)量、時序是否符合協(xié)議要求,確定在特定場景條件下,相關(guān)模塊所達到最高性能,比如,I2C接口訪問從設(shè)備時鐘頻率是否滿足400 kHz,電氣特性是否滿足相關(guān)協(xié)議要求等。相關(guān)案例見第4節(jié)回樣驗證案例參考中的I2C性能驗證。
(4)可靠性驗證,包括高溫工作壽命(HTOL)。一是發(fā)現(xiàn)產(chǎn)品中可能比較容易出現(xiàn)故障的零部件,以確定影響產(chǎn)品周期和質(zhì)量的重要原因和需要采取的保障性措施;二是驗證產(chǎn)品在設(shè)定環(huán)境下的使用周期是否達到規(guī)格規(guī)定的要求;三是環(huán)境適應(yīng)性驗證,芯片在使用壽命期間對環(huán)境條件的容忍能力。相關(guān)案例見第4節(jié)回樣驗證案例參考中的I2C可靠性驗證。本項目最大的創(chuàng)新點就是按照芯片在消費級、商業(yè)級、工業(yè)級等不同應(yīng)用場景環(huán)境下進行可靠性驗證,提高了芯片驗證和應(yīng)用的一致性和可靠性。因充分老化驗證提前發(fā)現(xiàn)芯片隱藏的問題而提高了產(chǎn)品的良率,避免了產(chǎn)品上市后發(fā)現(xiàn)問題而帶來的麻煩,節(jié)約了成本。
(5)驗證反饋??偨Y(jié)上述驗證結(jié)果,如果有bug,列出各模塊bug等級,與相關(guān)人員評估是否影響應(yīng)用,是否能通過軟件規(guī)避,是否滿足IC規(guī)格要求,是否需要改版以解決當(dāng)前bug,并給出相關(guān)模塊量產(chǎn)規(guī)格,最后整理驗證報告,發(fā)出評審。
各模塊bug等級分類參考:A級為致命問題,IC關(guān)鍵規(guī)格指標(biāo)不達標(biāo),通過應(yīng)用無法解決不達標(biāo)問題,導(dǎo)致IC無法批量進行生產(chǎn);B級為嚴(yán)重問題,IC關(guān)鍵規(guī)格指標(biāo)不達標(biāo),可以通過應(yīng)用彌補,對產(chǎn)品的功能、性能、良率等造成較大影響;C級為一般問題,IC規(guī)格指標(biāo)不達標(biāo),可以通過應(yīng)用彌補,對產(chǎn)品的功能、性能、良率等造成輕微影響;D級為輕微問題,與設(shè)計目標(biāo)不符,可以通過應(yīng)用彌補,但對產(chǎn)品的功能、性能、良率等無影響。通過以上等級分類歸類問題,可以很快速地對芯片成品進行分類以及調(diào)整修改。
回樣驗證的總體要求就是在盡量模擬客戶的實際使用場景中,芯片依然能夠工作正常。而實際使用場景有:煉鋼廠環(huán)境下的高溫環(huán)境,海上作業(yè)的鉆井平臺所處的高濕度、強腐蝕性的環(huán)境,煤礦井下作業(yè)的強震動、需要防爆防靜電等特殊的場景。不同應(yīng)用場景中回樣驗證的內(nèi)容和要求就有所區(qū)別,而一般的驗證流程主要包括如何驗證芯片各模塊功能、性能是否滿足預(yù)期設(shè)計要求。本項目的MCU驗證流程不但驗證芯片各個模塊的功能、性能,而且還驗證在特殊環(huán)境中芯片的可靠性,保證芯片驗證和實際應(yīng)用的一致性和芯片的穩(wěn)定性。
為了模擬客戶的實際使用場景,同時為了更加清楚地表述上文中提出的5個回樣驗證的內(nèi)容,為此,本文從I2C接口驗證案例里面分享芯片回樣驗證的可靠性和安全性相關(guān)內(nèi)容。
I2C總線在物理連接上非常簡單,其在圖2中分別由SDA(串行數(shù)據(jù)線)和SCL(串行時鐘線)及上拉電阻組成。通信原理是通過對SCL和SDA線高低電平時序的控制,來產(chǎn)生I2C總線協(xié)議所需要的信號進行數(shù)據(jù)傳遞。在總線空閑狀態(tài)時,這兩根線一般被上面所接的上拉電阻拉高,保持著高電平。
圖2 I2C總線物理拓撲圖
I2C總線上的每一個設(shè)備都可以作為主設(shè)備或者從設(shè)備,而且每一個設(shè)備都會對應(yīng)一個唯一的地址(可以從I2C器件的數(shù)據(jù)手冊得知),主從設(shè)備之間就通過這個地址來確定與哪個器件進行通信,在通常的應(yīng)用中,我們把CPU帶I2C總線接口的模塊作為主設(shè)備,把掛接在總線上的其他設(shè)備都作為從設(shè)備。主設(shè)備可以向從設(shè)備中寫數(shù)據(jù),也可從從設(shè)備中讀數(shù)據(jù),如圖3所示,主設(shè)備向從設(shè)備中寫數(shù)據(jù),然后重啟起始條件,緊接著從從設(shè)備中讀取數(shù)據(jù);或者是主設(shè)備從從設(shè)備中讀數(shù)據(jù),然后重啟起始條件,緊接著主設(shè)備向從設(shè)備中寫數(shù)據(jù)。I2C總線數(shù)據(jù)傳輸速率在標(biāo)準(zhǔn)模式下可達100 kbps,快速模式下可達400 kbps,高速模式下可達3.4 Mbps。同時I2C總線上的主設(shè)備與從設(shè)備之間以字節(jié)(8位)為單位進行雙向的數(shù)據(jù)傳輸。
圖3 主從設(shè)備讀寫數(shù)據(jù)圖
I2C功能驗證:在Master模式下啟動I2C,通過I2C對eeprom芯片進行讀寫測試,對比讀寫數(shù)據(jù)完全一致,表明功能驗證通過。
I2C性能驗證:如表1所示,通過分別設(shè)置I2C時鐘頻率為100 kHz和400 kHz,對芯片進行讀寫測試,用示波器抓取讀寫信號進行相關(guān)參數(shù)測量,測量數(shù)據(jù)完全符合I2C標(biāo)準(zhǔn)協(xié)議及芯片的設(shè)計目標(biāo)。
表1 I2C性能驗證結(jié)果
I2C可靠性驗證:可靠性驗證是驗證芯片各模塊在客戶指定不同應(yīng)用場合的環(huán)境溫度條件下,是否能正常工作一定時間,達到驗證各模塊滿足相應(yīng)級別的可靠性要求如表2所示,本項目MCU芯片在消費級和商業(yè)級都符合要求,而在工業(yè)級發(fā)現(xiàn)了問題,經(jīng)過對芯片進行優(yōu)化后再重新進行驗證全都符合要求,實驗表明可靠性驗證能驗出其他驗證方法不易發(fā)現(xiàn)的問題,為芯片的量產(chǎn)提供了重要的保障。
表2 I2C可靠性驗證
一款芯片從立項到流片生產(chǎn)需要經(jīng)過層層自測和驗證,芯片的質(zhì)量在很大程度上依賴于驗證,驗證環(huán)節(jié)則是個特殊而重要,貫穿著芯片設(shè)計流程的始末。驗證的意義在于不斷地給設(shè)計或者實現(xiàn)過程提供迭代的關(guān)鍵意見,芯片回樣驗證主要是驗證芯片各模塊功能、性能、可靠性是否滿足預(yù)期設(shè)計要求,為應(yīng)用場景提供技術(shù)指導(dǎo);同時還可以通過各種驗證手段找出各模塊bug,協(xié)助設(shè)計者分析、解決bug問題,提供可靠的數(shù)據(jù)分析,為芯片的順利量產(chǎn)和上市提供重要的保障?!?/p>