一种使用快照的可调试性设计追踪方法及装置与流程

文档序号:11519973阅读:168来源:国知局
一种使用快照的可调试性设计追踪方法及装置与流程

本发明涉及集成电路可调试性设计技术领域,特别涉及一种使用快照的可调试性设计追踪方法及装置。



背景技术:

随着集成电路设计复杂度的增加和快速产品化压力的增大,可调试性设计成为硅后调试的支撑技术。由于设计复杂度高、软件模拟速度慢、时延模型精度低等因素制约,硅前验证已无法保证硬件设计的正确性,一些设计错误遗漏到硅后,甚至在芯片投入市场后才被发现,造成巨大损失,硅后调试作为量产前最后一道质量控制环节,可验证流片后芯片的正确性,并检测、定位和诊断硅前遗漏的错误,由于流片后芯片可观测性差,使得硅后调试成为集成电路开发流程中的重要瓶颈,甚至需要耗费一半以上的开发时间,可调试性设计通过在芯片设计阶段增加辅助硅后调试的调试电路,以提高硅后调试时的芯片的可观测性,缩短硅后调试时间。

基于追踪的可调试性设计作为主流的设计方案,通过在芯片中增加追踪缓存,可在硅后调试时提供连续多拍的实时追踪能力,并已成为硅后调试的主要技术之一,并广泛应用于商业等处理器中,例如arm架构的处理器和ibmpower系列处理器。一个完整的追踪设计通常包括:触发模块、追踪控制器、追踪缓存,如图1所示。触发模块用于监控调试中的触发事件或者触发序列,当指定的触发事件或序列发生时,触发单元会监测到触发信息并告知追踪控制器。追踪控制器接收到触发模块的触发信号,开启信号追踪,将追踪数据存储到追踪缓存中。追踪控制器还可以根据调试需求配置触发单元中的触发事件等调试参数。追踪缓存可实时存储追踪数据。当追踪缓存存满追踪数据后,可将追踪缓存中的数据通过调试接口输出到片外,以用于后续的状态恢复和错误调试。

工业界现有的追踪设计的方法是选择重要的功能信号或者与处理器指令流相关的功能信号,并将这些功能信号通过调试总线连接到追踪缓存上。例如arm的调试架构一般是将处理器的指令计数器、指令等存储到片上追踪缓存中。这类方法有助于软件级别的调试,但对电路级错误的调试帮助有限,如何在流片后细粒度的准确查找、诊断和定位设计错误成为硅后调试的瓶颈。

状态恢复是电路级错误检测和定位的主要技术,其利用已知的电路逻辑状态恢复未知电路逻辑状态的方法,通过状态恢复可知更多电路内部信号的状态值,从而提高了电路的可观测性,辅助硅后调试中错误的诊断和定位。其基本原理是利用逻辑单元的逻辑功能进行逻辑推导,使用已知信号状态恢复未知信号状态。通常有三种逻辑门的恢复策略:前向恢复,后向恢复和组合恢复。前向恢复是利用逻辑门的输入推断逻辑门的输出,后向恢复是利用逻辑门的输出推断逻辑门的输入,组合恢复是结合逻辑门的输出和部分输入推断未知的输入。这些恢复操作如图2所示。对于时序逻辑门,也可进行恢复操作,但需要考虑时序关系。利用这些恢复原理,可以构建状态恢复模拟器,它以追踪缓存获取的追踪数据作为输入,恢复未追踪的数据,从而获知更多的门级信号状态,通过与模拟仿真得到的数据进行比较,可以在电路级检测、定位和诊断硅前的设计错误。状态恢复率是评价追踪信号对未追踪信号的恢复能力的指标。状态恢复率定义为:经过状态恢复后所有可知的寄存器状态的总数目与追踪获取的寄存器状态的总数目的比值。在同样数目的追踪信号和同样的追踪周期下,状态恢复率大,就代表可以获知的内部寄存器状态更多,内部的可观测性就更大,更有助于电路级错误的调试。

国内外研究者提出了通过解析电路并从中选择某些对于状态恢复重要的信号作为追踪信号,即在追踪信号的选取时采用基于状态恢复率的追踪信号选择方法,并将追踪信号通过追踪总线和多路复用网络连接到追踪缓存上。当追踪周期开始时,与调试相关的追踪信号的数据即被存储到追踪缓存中。在追踪周期内,追踪信号的各拍数据均被存储到追踪缓存中,一直到追踪缓存没有空余的存储空间。在调试数据分析时,需将追踪缓存中存储的各个时钟周期的追踪数据导出,并进行状态恢复,从而辅助错误的调试。目前研究较多的基于状态恢复率的追踪信号选择方法,主要分为两类:基于概率的追踪信号选择和基于模拟的追踪信号选择。基于概率的选择方法通过综合考虑寄存器之间的组合电路的拓扑结构和逻辑门的逻辑特征,使用概率分析方法估计状态恢复率,并迭代地选择使得状态恢复率达到最大的追踪信号。基于模拟的选择方法使用实际的模拟数据去预估状态恢复率,并以此选择追踪信号。

现有的状态恢复方法只从简单的组合电路的拓扑结构进行逻辑推导,受限于复杂的逻辑结构,状态恢复率低,对硅后调试的帮助有限。现有的基于状态恢复的调试技术以追踪信号在追踪周期内的追踪数据作为已知信号,进而通过逻辑门的逻辑推导,迭代的恢复其他信号,信号的恢复是基于逻辑门的恢复操作,对于复杂的逻辑门结构,例如多输入的与或非门,利用单独的已知输入或输出恢复其他未知信号的几率较低。此方法受限于组合逻辑的结构和基本逻辑门的逻辑复杂度,在复杂电路中利用追踪信号进行状态恢复得到的状态恢复率低。

此外,现有的基于状态恢复的追踪信号选择方法不能在较短时间内取得高状态恢复率的追踪信号。基于概率的方法运行速度快,但概率估计精度低,得到的状态恢复率较模拟方法低;基于模拟的方法可取得更高的状态恢复率,但运行时间过长。这些不足制约了基于状态恢复率的选择方法在实际中的运用。



技术实现要素:

针对现有技术的不足,本发明提出一种使用快照的可调试性设计追踪方法及装置。

本发明提出一种使用快照的可调试性设计追踪方法,包括:

步骤1,设置追踪缓存与快照缓存的容量,确定追踪信号的宽度限制与快照信号的宽度限制;

步骤2,根据所述追踪信号与所述快照信号的宽度限制,生成寄存器簇并迭代选择寄存器簇,从而确定所述追踪信号与所述快照信号;

步骤3,根据所述追踪信号与所述快照信号,设置追踪结构,其中所述追踪结构包括追踪控制器、触发器、追踪总线、追踪缓存、快照缓存。

所述追踪缓存用于存储所述追踪信号,所述追踪缓存包括追踪缓存的宽度与深度,其中所述宽度为同时追踪所述追踪信号的信号数,所述深度为追踪所述追踪信号的时钟周期数。

所述快照缓存,用于存储所述快照信号,其中将所述快照信号通过传输网络连接到所述快照缓存上。

所述快照信号中包括簇快照,其中所述簇状态为所有簇内寄存器在当前时钟周期的状态集。

还包括选择追踪信号步骤,其中,通过前向搜索生成寄存器簇,估计每个所述寄存器簇带来的全局状态恢复率,并选择对所述状态恢复率改善最多的寄存器簇作为追踪簇,并将簇输入作为追踪信号,寄存器簇的簇内寄存器作为快照信号,直至追踪信号的宽度预设阈值。

本发明还提出一种使用快照的可调试性设计追踪装置,包括:

确定宽度限制模块,用于设置追踪缓存与快照缓存的容量,确定追踪信号的宽度限制与快照信号的宽度限制;

确定信号模块,用于根据所述追踪信号与所述快照信号的宽度限制,生成寄存器簇并迭代选择寄存器簇,从而确定所述追踪信号与所述快照信号;

设置追踪结构模块,用于根据所述追踪信号与所述快照信号,设置追踪结构,其中所述追踪结构包括追踪控制器、触发器、追踪总线、追踪缓存、快照缓存。

所述追踪缓存用于存储所述追踪信号,所述追踪缓存包括追踪缓存的宽度与深度,其中所述宽度为同时追踪所述追踪信号的信号数,所述深度为追踪所述追踪信号的时钟周期数。

所述快照缓存,用于存储所述快照信号,其中将所述快照信号通过传输网络连接到所述快照缓存上。

所述快照信号中包括簇快照,其中所述簇状态为所有簇内寄存器在当前时钟周期的状态集。

还包括选择追踪信号模块,其中,通过前向搜索生成寄存器簇,估计每个所述寄存器簇带来的全局状态恢复率,并选择对所述状态恢复率改善最多的寄存器簇作为追踪簇,并将簇输入作为追踪信号,寄存器簇的簇内寄存器作为快照信号,直至追踪信号的宽度预设阈值。

由以上方案可知,本发明的优点在于:

第一点,本发明可以显著的提高调试数据的状态恢复率,增加硅后调试的可观测性,缩短硅后调试时间。通过追踪快照信号的输入和快照信号的初始状态,本发明可以确定性的恢复出快照信号在整个调试周期内的状态值,这些被恢复出来的状态值还可恢复出其他的未知信号,从而提高了整个追踪方案的状态恢复率。

第二点,本发明可以确定性的恢复关键信号。在传统的追踪设计和状态恢复中,除了追踪数据,其他可被恢复的信号极为有限。本发明通过获取快照信号的初始状态,并结合追踪信号,可以确定性的恢复出快照信号在追踪周期内的状态。

第三点,本发明可以减少追踪信号选择方法的运行时间。本发明通过选择寄存器簇,从而确定追踪信号和快照信号。选择一个寄存器簇可同时确定多个追踪信号,加快了追踪信号选择的速度。由于选择时间短,可以针对选择结果,进行多次的迭代优化。

附图说明

图1是基于追踪的可调试性设计框架图;

图2是状态恢复的示例图;

图3是簇恢复的实例电路图;

图4是本发明提出的使用快照的追踪装置图;

图5是快照追踪实例图;

图6是追踪信号选择方法流程图;

图7是使用快照的追踪设计的流程图。

具体实施方式

本发明的使用快照的状态恢复的方法具体为:对于选定的寄存器簇,结合寄存器簇的簇输入和寄存器簇的簇内寄存器的快照,即簇内寄存器的初始状态,即可恢复出整个寄存器簇在整个追踪周期内的状态。一个寄存器簇是由电路中抽取的若干寄存器组成,这些寄存器称为簇内寄存器。簇状态表示所有簇内寄存器在当前时钟周期的状态集,也称簇快照,而簇内寄存器的前驱寄存器称为簇输入,通过组合逻辑直接影响簇内寄存器的前驱原始输入也被称为簇输入。图3所示为一个从电路中抽取的寄存器簇,它包括4个簇内寄存器,即{b,c,d,e},而簇输入集为{a},通过获取簇初始状态和簇输入在所有追踪周期的状态值,可恢复出寄存器簇在所有追踪周期的簇状态值,因为根据簇初始状态和簇初始输入,可以得知下一追踪周期的簇状态,以此递推,可以得知此后所有追踪周期的簇状态,如表1所示,如果已知簇初始状态,即已知{b,c,d,e}在周期0的状态,并且持续追踪簇输入,即已知a在周期0到周期4的值,利用这些值可以恢复出{b,c,d,e}在周期1到5的状态,即可恢复出追踪周期内的所有簇状态,如表1中灰色阴影部分所示,如果采取传统的状态恢复方法,即不使用簇初始状态,那么选择图3中任何1个作为追踪信号,都不能完全恢复出寄存器簇在追踪周期的所有状态。

表1

相对于传统追踪设计,本发明的追踪方案在硬件设计上有明显的改进,如图4所示,本发明需要捕获两种不同类型的信号:追踪信号和快照信号,而传统的追踪设计不捕获快照信号,追踪信号在追踪周期内每周期都需捕获,而对于快照信号只捕获其初始状态,为了满足捕获要求,本发明的追踪设计方案需要增加快照缓存,也就是共有两种类型的缓存:追踪缓存和快照缓存。

追踪缓存是用来存储追踪信号,一般其宽度和深度均有限,宽度代表可以同时追踪的信号数,深度代表了可以追踪的时钟周期数,例如:16*1024的追踪缓存可以同时追踪16位追踪信号,并持续追踪1024个周期。

快照缓存是本发明的追踪设计新增的缓存,用以存储快照信号,即选定的追踪寄存器簇的初始状态,选定的快照信号通过传输网络连接到快照缓存上,各个不同簇的快照信号可以在不同的追踪周期里先后捕获,如果这些寄存器簇没有时序依赖关系,且其快照信号数目之和不大于快照缓存的宽度,则多个寄存器簇的快照也可同时捕获。

如图5所示,三个寄存器簇{a,b,c}的快照存储至快照缓存中,可在三个追踪周期内先后捕获寄存器簇a,b和c的快照,如果满足快照缓存宽度约束,也可同时捕获寄存器簇a、b和c的快照。

由于本发明使用了快照缓存中快照信号改善状态恢复率,故相应的追踪信号选择方法也有改变,使用快照的追踪信号选择问题可以分解为寄存器簇生成和寄存器簇选择的问题,追踪信号和快照信号由追踪寄存器簇决定,由于调试设计开销有限,追踪寄存器簇同时需满足追踪信号宽度wt和快照信号宽度ws的约束。

本发明的使用快照的追踪信号选择方法可分为两步:寄存器簇的簇生成和寄存器簇选择,即首先通过前向搜索生成寄存器簇,然后估计每个寄存器簇可带来的全局状态恢复率,并选择对状态恢复率改善最多的簇作为追踪簇,并将簇输入作为追踪信号,簇内寄存器作为快照信号,直至追踪信号的宽度满足设计要求(即宽度满足一预设阈值),追踪信号选择方法流程如图6所示。

使用快照的追踪方案的具体设计步骤为:

步骤一:确定缓存容量和信号约束。设计追踪缓存和快照缓存的容量,确定追踪信号的宽度限制和快照信号的宽度限制。

步骤二:追踪信号和快照信号选择。根据追踪信号和快照信号的宽度限制,生成寄存器簇并迭代选择寄存器簇,从而确定追踪信号和快照信号。

步骤三:设计整体追踪结构。确定完整的追踪调度方案,设计整个追踪结构,包括追踪控制器、触发器、追踪总线、追踪缓存、快照缓存等。

本发明还提出一种使用快照的可调试性设计追踪装置,包括:

确定宽度限制模块,用于设置追踪缓存与快照缓存的容量,确定追踪信号的宽度限制与快照信号的宽度限制;

确定信号模块,用于根据所述追踪信号与所述快照信号的宽度限制,生成寄存器簇并迭代选择寄存器簇,从而确定所述追踪信号与所述快照信号;

设置追踪结构模块,用于根据所述追踪信号与所述快照信号,设置追踪结构,其中所述追踪结构包括追踪控制器、触发器、追踪总线、追踪缓存、快照缓存。

所述追踪缓存用于存储所述追踪信号,所述追踪缓存包括追踪缓存的宽度与深度,其中所述宽度为同时追踪所述追踪信号的信号数,所述深度为追踪所述追踪信号的时钟周期数。

所述快照缓存,用于存储所述快照信号,其中将所述快照信号通过传输网络连接到所述快照缓存上。

所述快照信号中包括簇快照,其中所述簇状态为所有簇内寄存器在当前时钟周期的状态集。

还包括选择追踪信号模块,其中,通过前向搜索生成寄存器簇,估计每个所述寄存器簇带来的全局状态恢复率,并选择对所述状态恢复率改善最多的寄存器簇作为追踪簇,并将簇输入作为追踪信号,寄存器簇的簇内寄存器作为快照信号,直至追踪信号的宽度预设阈值。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1