畢楠楠
芯片設(shè)計中系統(tǒng)調(diào)試的新方法
畢楠楠
畢楠楠 嚴(yán)家亮 吳 牧
炬力集成電路設(shè)計有限公司
畢南楠,男,(1980-)碩士研究生,工程師,研究領(lǐng)域?yàn)榧呻娐吩O(shè)計;嚴(yán)家亮,男,碩士研究生,工程師,研究方向?yàn)榧呻娐吩O(shè)計;吳牧,男,碩士研究生,工程師,研究領(lǐng)域?yàn)榧呻娐吩O(shè)計。
提出了一種用于Soc系統(tǒng)設(shè)計過程中調(diào)試使用的數(shù)據(jù)采集處理方法,設(shè)計數(shù)據(jù)存儲單元,容量可以保存足夠長時間的調(diào)試信息。調(diào)試過程中記錄數(shù)據(jù)實(shí)時性很強(qiáng),保證異常斷電等異常情況下也能實(shí)時保存重要數(shù)據(jù)。
隨著芯片片上系統(tǒng)復(fù)雜度以及操作系統(tǒng)的多樣性,調(diào)試手段是否有效直接跟生產(chǎn)效率相關(guān),顯得越來越重要。方案開發(fā)過程中,記錄調(diào)試信息是最常用和必須的調(diào)試手段之一,調(diào)試信息能幫助工程師提高調(diào)試效率,提供解決問題的思路等。從繁雜的調(diào)試信息中獲得關(guān)鍵信息,尤為重要。
芯片片上系統(tǒng)是一個復(fù)雜系統(tǒng),在這樣一個系統(tǒng)的設(shè)計和實(shí)現(xiàn)過程中有失誤是在所難免的。從硬件角度來看,更高的集成度,更多的模塊,更復(fù)雜的功能和上市時間的壓力都使得芯片很難一次投片成功。統(tǒng)計表明,一個產(chǎn)品的調(diào)試周期往往是開發(fā)周期的兩倍以上,所以系統(tǒng)調(diào)試穩(wěn)定需要耗費(fèi)相當(dāng)多的資源。對于一些芯片或系統(tǒng)相關(guān)的低概率事件,往往重現(xiàn)問題就耗費(fèi)工程師比較多的時間和精力。漫長的重現(xiàn)過程需要把所有調(diào)試信息記錄下來,以便了解系統(tǒng)內(nèi)部正在進(jìn)行何種操作以及是否符合預(yù)期。
目前常用的調(diào)試手段如下:
(1)串口調(diào)試信息記錄。需要把芯片的串口接到一個UART接收端,往往是PC的串口(或者是UART轉(zhuǎn)USB的串口工具),通過PC的工具抓取log信息保存下來,供后續(xù)分析。
(2)ADB調(diào)試信息記錄。ADB全稱Android Debug Bridge,調(diào)試Android程序的有效手段,需要通過PC端的USB口連接Android設(shè)備。需要安裝ADB調(diào)試環(huán)境和PC。
(3)調(diào)試信息保存到設(shè)備內(nèi)存。系統(tǒng)端調(diào)試,可以把調(diào)試信息保存到設(shè)備的內(nèi)存上,需要是隨時抓取出來。但抓取調(diào)試信息只有系統(tǒng)完全啟動完以后才能進(jìn)行,很有可能出現(xiàn)關(guān)鍵信息丟失的情況。
本文提出了一種數(shù)據(jù)記錄方案,設(shè)計數(shù)據(jù)存儲單元,容量可以保存足夠長時間的調(diào)試信息,可以較低成本的完成調(diào)試信息的抓取,提高開發(fā)人員的效率,產(chǎn)生明顯的經(jīng)濟(jì)效益。
調(diào)試信息經(jīng)由待調(diào)試設(shè)備的物理接口輸出,物理調(diào)試接口包含但不限于UART、IIC、SDIO、SPI、USB口。數(shù)據(jù)采集設(shè)備內(nèi)部也有與之對應(yīng)的物理接口與待測設(shè)備連接,MCU負(fù)責(zé)采集數(shù)據(jù),并及時存放到內(nèi)部的數(shù)據(jù)存儲單元中。當(dāng)需要查看調(diào)試信息時,可以方便通過上位機(jī)調(diào)取存儲在數(shù)據(jù)采集設(shè)備內(nèi)部的數(shù)據(jù)。
特別的,在調(diào)試過程中,往往最后一筆數(shù)據(jù)也是關(guān)鍵數(shù)據(jù)。例如:設(shè)備正好運(yùn)行到有問題的數(shù)據(jù)時,很有可能會死機(jī),而這筆數(shù)據(jù)恰好是我們需要捕捉并用于分析調(diào)試的關(guān)鍵數(shù)據(jù),為了保證設(shè)備在插拔、掉電、死機(jī)等特殊情況時最后一筆數(shù)據(jù)能被保存下來,我們采用了增加中斷快速響應(yīng)并實(shí)時保存的做法。具體實(shí)現(xiàn)為:
(1)內(nèi)置MCU通過中斷方式實(shí)時獲取設(shè)備狀態(tài),快速響應(yīng)及時保存信息。
(2)設(shè)備的電源管理單元增加電路(例如,增加大電容等方法),在DUT異常情況下,保證設(shè)備供電有足夠時間(ms級別)用于保存信息。記錄數(shù)據(jù)的流程圖1。
圖1 數(shù)據(jù)采集流程圖
使用提出的數(shù)據(jù)采集方案,只需要把數(shù)據(jù)采集設(shè)備插入待測設(shè)備的外部接口,不需要借助PC,不需要人員值守,就可以實(shí)時的抓取待測設(shè)備的調(diào)試信息,并且掉電后不會丟失。需要查看的時候隨時拔下數(shù)據(jù)采集設(shè)備調(diào)取即可,實(shí)現(xiàn)無人值守及即插即用。
下面兩個圖分別指明本設(shè)備在數(shù)據(jù)采集以及數(shù)據(jù)獲取回放分析兩種場景下的連接框圖。
圖2是采集待測設(shè)備DUT的調(diào)試信息階段。直接把數(shù)據(jù)采集設(shè)備和待測設(shè)備進(jìn)行物理連接即可(例如,如果數(shù)據(jù)采集設(shè)備是TF卡接口,那么直接把數(shù)據(jù)采集設(shè)備接口插入待測設(shè)備的TF卡槽即可)。開啟待測設(shè)備開始運(yùn)行,此后就不再需要人工等候,待測設(shè)備把相應(yīng)的信息輸出向數(shù)據(jù)采集設(shè)備。數(shù)據(jù)采集設(shè)備進(jìn)行采集和存儲。等待數(shù)據(jù)收集完畢,拔下數(shù)據(jù)待測設(shè)備即可。
圖2 數(shù)據(jù)采集連接框圖
圖3是上位機(jī)調(diào)試階段。上位機(jī)讀取數(shù)據(jù)采集設(shè)備采集的調(diào)試信息,用于進(jìn)一步的調(diào)試工作。
圖3 數(shù)據(jù)獲取和分析連接框圖
本文提出了一種用于Soc系統(tǒng)設(shè)計過程中調(diào)試使用的數(shù)據(jù)采集處理方法,由此形成的設(shè)備成本低廉,便于復(fù)制用于批量生產(chǎn)。設(shè)備可完全脫離PC獨(dú)立運(yùn)行,實(shí)現(xiàn)無人值守。調(diào)試過程中記錄數(shù)據(jù)實(shí)時性很強(qiáng),保證異常斷電等異常情況下也能實(shí)時保存最后一筆數(shù)據(jù)。
10.3969/j.issn.1001-8972.2015.01.028