畢楠楠
芯片設計中系統調試的新方法
畢楠楠
畢楠楠 嚴家亮 吳 牧
炬力集成電路設計有限公司
畢南楠,男,(1980-)碩士研究生,工程師,研究領域為集成電路設計;嚴家亮,男,碩士研究生,工程師,研究方向為集成電路設計;吳牧,男,碩士研究生,工程師,研究領域為集成電路設計。
提出了一種用于Soc系統設計過程中調試使用的數據采集處理方法,設計數據存儲單元,容量可以保存足夠長時間的調試信息。調試過程中記錄數據實時性很強,保證異常斷電等異常情況下也能實時保存重要數據。
隨著芯片片上系統復雜度以及操作系統的多樣性,調試手段是否有效直接跟生產效率相關,顯得越來越重要。方案開發過程中,記錄調試信息是最常用和必須的調試手段之一,調試信息能幫助工程師提高調試效率,提供解決問題的思路等。從繁雜的調試信息中獲得關鍵信息,尤為重要。
芯片片上系統是一個復雜系統,在這樣一個系統的設計和實現過程中有失誤是在所難免的。從硬件角度來看,更高的集成度,更多的模塊,更復雜的功能和上市時間的壓力都使得芯片很難一次投片成功。統計表明,一個產品的調試周期往往是開發周期的兩倍以上,所以系統調試穩定需要耗費相當多的資源。對于一些芯片或系統相關的低概率事件,往往重現問題就耗費工程師比較多的時間和精力。漫長的重現過程需要把所有調試信息記錄下來,以便了解系統內部正在進行何種操作以及是否符合預期。
目前常用的調試手段如下:
(1)串口調試信息記錄。需要把芯片的串口接到一個UART接收端,往往是PC的串口(或者是UART轉USB的串口工具),通過PC的工具抓取log信息保存下來,供后續分析。
(2)ADB調試信息記錄。ADB全稱Android Debug Bridge,調試Android程序的有效手段,需要通過PC端的USB口連接Android設備。需要安裝ADB調試環境和PC。
(3)調試信息保存到設備內存。系統端調試,可以把調試信息保存到設備的內存上,需要是隨時抓取出來。但抓取調試信息只有系統完全啟動完以后才能進行,很有可能出現關鍵信息丟失的情況。
本文提出了一種數據記錄方案,設計數據存儲單元,容量可以保存足夠長時間的調試信息,可以較低成本的完成調試信息的抓取,提高開發人員的效率,產生明顯的經濟效益。
調試信息經由待調試設備的物理接口輸出,物理調試接口包含但不限于UART、IIC、SDIO、SPI、USB口。數據采集設備內部也有與之對應的物理接口與待測設備連接,MCU負責采集數據,并及時存放到內部的數據存儲單元中。當需要查看調試信息時,可以方便通過上位機調取存儲在數據采集設備內部的數據。
特別的,在調試過程中,往往最后一筆數據也是關鍵數據。例如:設備正好運行到有問題的數據時,很有可能會死機,而這筆數據恰好是我們需要捕捉并用于分析調試的關鍵數據,為了保證設備在插拔、掉電、死機等特殊情況時最后一筆數據能被保存下來,我們采用了增加中斷快速響應并實時保存的做法。具體實現為:
(1)內置MCU通過中斷方式實時獲取設備狀態,快速響應及時保存信息。
(2)設備的電源管理單元增加電路(例如,增加大電容等方法),在DUT異常情況下,保證設備供電有足夠時間(ms級別)用于保存信息。記錄數據的流程圖1。

圖1 數據采集流程圖
使用提出的數據采集方案,只需要把數據采集設備插入待測設備的外部接口,不需要借助PC,不需要人員值守,就可以實時的抓取待測設備的調試信息,并且掉電后不會丟失。需要查看的時候隨時拔下數據采集設備調取即可,實現無人值守及即插即用。
下面兩個圖分別指明本設備在數據采集以及數據獲取回放分析兩種場景下的連接框圖。
圖2是采集待測設備DUT的調試信息階段。直接把數據采集設備和待測設備進行物理連接即可(例如,如果數據采集設備是TF卡接口,那么直接把數據采集設備接口插入待測設備的TF卡槽即可)。開啟待測設備開始運行,此后就不再需要人工等候,待測設備把相應的信息輸出向數據采集設備。數據采集設備進行采集和存儲。等待數據收集完畢,拔下數據待測設備即可。

圖2 數據采集連接框圖
圖3是上位機調試階段。上位機讀取數據采集設備采集的調試信息,用于進一步的調試工作。

圖3 數據獲取和分析連接框圖
本文提出了一種用于Soc系統設計過程中調試使用的數據采集處理方法,由此形成的設備成本低廉,便于復制用于批量生產。設備可完全脫離PC獨立運行,實現無人值守。調試過程中記錄數據實時性很強,保證異常斷電等異常情況下也能實時保存最后一筆數據。
10.3969/j.issn.1001-8972.2015.01.028