芯片设计中系统调试的新方法
2015-11-16毕楠楠
毕楠楠
芯片设计中系统调试的新方法
毕楠楠
毕楠楠 严家亮 吴 牧
炬力集成电路设计有限公司
毕南楠,男,(1980-)硕士研究生,工程师,研究领域为集成电路设计;严家亮,男,硕士研究生,工程师,研究方向为集成电路设计;吴牧,男,硕士研究生,工程师,研究领域为集成电路设计。
提出了一种用于Soc系统设计过程中调试使用的数据采集处理方法,设计数据存储单元,容量可以保存足够长时间的调试信息。调试过程中记录数据实时性很强,保证异常断电等异常情况下也能实时保存重要数据。
1 概述
随着芯片片上系统复杂度以及操作系统的多样性,调试手段是否有效直接跟生产效率相关,显得越来越重要。方案开发过程中,记录调试信息是最常用和必须的调试手段之一,调试信息能帮助工程师提高调试效率,提供解决问题的思路等。从繁杂的调试信息中获得关键信息,尤为重要。
芯片片上系统是一个复杂系统,在这样一个系统的设计和实现过程中有失误是在所难免的。从硬件角度来看,更高的集成度,更多的模块,更复杂的功能和上市时间的压力都使得芯片很难一次投片成功。统计表明,一个产品的调试周期往往是开发周期的两倍以上,所以系统调试稳定需要耗费相当多的资源。对于一些芯片或系统相关的低概率事件,往往重现问题就耗费工程师比较多的时间和精力。漫长的重现过程需要把所有调试信息记录下来,以便了解系统内部正在进行何种操作以及是否符合预期。
目前常用的调试手段如下:
(1)串口调试信息记录。需要把芯片的串口接到一个UART接收端,往往是PC的串口(或者是UART转USB的串口工具),通过PC的工具抓取log信息保存下来,供后续分析。
(2)ADB调试信息记录。ADB全称Android Debug Bridge,调试Android程序的有效手段,需要通过PC端的USB口连接Android设备。需要安装ADB调试环境和PC。
(3)调试信息保存到设备内存。系统端调试,可以把调试信息保存到设备的内存上,需要是随时抓取出来。但抓取调试信息只有系统完全启动完以后才能进行,很有可能出现关键信息丢失的情况。
本文提出了一种数据记录方案,设计数据存储单元,容量可以保存足够长时间的调试信息,可以较低成本的完成调试信息的抓取,提高开发人员的效率,产生明显的经济效益。
2 数据存取方案
调试信息经由待调试设备的物理接口输出,物理调试接口包含但不限于UART、IIC、SDIO、SPI、USB口。数据采集设备内部也有与之对应的物理接口与待测设备连接,MCU负责采集数据,并及时存放到内部的数据存储单元中。当需要查看调试信息时,可以方便通过上位机调取存储在数据采集设备内部的数据。
特别的,在调试过程中,往往最后一笔数据也是关键数据。例如:设备正好运行到有问题的数据时,很有可能会死机,而这笔数据恰好是我们需要捕捉并用于分析调试的关键数据,为了保证设备在插拔、掉电、死机等特殊情况时最后一笔数据能被保存下来,我们采用了增加中断快速响应并实时保存的做法。具体实现为:
(1)内置MCU通过中断方式实时获取设备状态,快速响应及时保存信息。
(2)设备的电源管理单元增加电路(例如,增加大电容等方法),在DUT异常情况下,保证设备供电有足够时间(ms级别)用于保存信息。记录数据的流程图1。
图1 数据采集流程图
3 系统连接
使用提出的数据采集方案,只需要把数据采集设备插入待测设备的外部接口,不需要借助PC,不需要人员值守,就可以实时的抓取待测设备的调试信息,并且掉电后不会丢失。需要查看的时候随时拔下数据采集设备调取即可,实现无人值守及即插即用。
下面两个图分别指明本设备在数据采集以及数据获取回放分析两种场景下的连接框图。
图2是采集待测设备DUT的调试信息阶段。直接把数据采集设备和待测设备进行物理连接即可(例如,如果数据采集设备是TF卡接口,那么直接把数据采集设备接口插入待测设备的TF卡槽即可)。开启待测设备开始运行,此后就不再需要人工等候,待测设备把相应的信息输出向数据采集设备。数据采集设备进行采集和存储。等待数据收集完毕,拔下数据待测设备即可。
图2 数据采集连接框图
图3是上位机调试阶段。上位机读取数据采集设备采集的调试信息,用于进一步的调试工作。
图3 数据获取和分析连接框图
4 结束语
本文提出了一种用于Soc系统设计过程中调试使用的数据采集处理方法,由此形成的设备成本低廉,便于复制用于批量生产。设备可完全脱离PC独立运行,实现无人值守。调试过程中记录数据实时性很强,保证异常断电等异常情况下也能实时保存最后一笔数据。
10.3969/j.issn.1001-8972.2015.01.028