一种复用追踪缓存的触发装置及设计方法与流程

文档序号:11432355阅读:151来源:国知局
一种复用追踪缓存的触发装置及设计方法与流程

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



背景技术:

随着集成电路设计复杂度的增加,可调试性设计作为硅后调试的关键性技术可加速芯片的调试,缩短芯片上市时间,增强产品市场竞争力。现有的硅前验证技术无法检测出原型设计中的所有错误,一些错误被遗漏到原型芯片中。如果不能在硅后检测出所有的遗漏错误,而使错误出现在上市产品中,则会带来更大的损失。因此硅后调试作为量产前的最后一道质量控制环节,需完全验证流片后原型芯片的正确性,还需快速定位和修复检测出的错误。由于原型芯片可观测性差,调试者可以观测的信号极为有限,使得错误调试过程极为费时,甚至需要占据大半的芯片开发时间。可调试性设计是在芯片设计阶段添加辅助硅后调试的逻辑,以提高硅后调试时芯片的可观测性,从而降低硅后调试的难度。

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

触发模块可用于检测开启追踪的触发条件。触发模块可由调试者配置,并通过监测触发信号,以检测触发条件是否满足。触发信号可以是程序计数器,指令中读写的数据地址,读写的数据的数值或者内部信号状态等,而触发条件可分为:触发事件和触发事件序列,触发事件指当前时刻的触发信号取值在一定的范围内,可为某些特定数值或者符合某些特定的条件,并只与当前时刻的触发信号的取值有关,触发事件序列指触发信号的取值在一段时钟周期内满足特定的取值要求,其不仅与当前时刻的触发信号的取值有关,还与触发信号在过去时钟周期内的历史状态有关。

传统的触发模块设计是基于比较器、匹配器或者可编程逻辑。

基于比较器的触发模块设计如图2所示,采用比较器单元检测触发信号是否在特定的取值范围内,每个比较器单元包括一个不小于比较器和一个不大于比较器,可以实现对触发信号在一个取值区间的检测。例如触发事件为4位触发信号a的值满足5=<a<=8,则可用不小于比较器检测5<=a,并用不大于比较器检测a<=8。同时集成多个比较器单元就能实现较复杂的触发事件,可将复杂的触发事件分解成多个单比较器单元可检测的子触发事件,然后使用每个比较器单元实现子触发事件的检测,当任意一个比较器单元被触发,则复杂的触发事件被检测到。

基于匹配器的触发模块设计如图3所示,每个触发模块包括一个或多个匹配器单元,可以通过配置匹配器内的掩盖寄存器和匹配寄存器实现对一些简单或复杂的触发事件的检测。每个匹配器单元先使用与门将触发信号中的无关位清零,无关位上的状态对匹配结果没有影响,既可为1也可为0,然后使用异或门检测是否与匹配寄存器中的数值完全相同。使用单个匹配器单元可以实现对一些简单的触发事件的检测。例如触发条件为4位触发信号a为偶数,可将掩盖寄存器设置为4’b0001并将匹配寄存器设置为4’b0000,即可检测a的末尾为0,即a为偶数。使用多个匹配器单元则可实现更复杂的触发事件的检测,可将复杂的触发条件分解成多个单匹配器可检测的子触发事件,然后将子触发事件分别分配到对应的匹配单元上。

基于可编程逻辑的触发模块设计如图4所示,此方案采用在芯片上集成可编程逻辑的方法,并编程实现对于不同的触发条件的检测。当触发条件确定后,可通过调试端口配置基于查找表的可配置逻辑,从而实现对于触发条件的检测。

针对基于追踪的可调试性设计中的触发模块设计,现有的基于比较器、基于匹配器和基于可编程逻辑的设计方案都存在明显的不足,即无法以有限的调试硬件开销实现强大的触发检测功能。基于比较器和匹配器的设计方法可以实现简单的触发条件的检测,但复杂的触发条件需要极多的比较器单元或匹配器单元,硬件开销较大。基于可编程逻辑的设计方案需要在芯片上集成可编程模块,设计复杂度高,硬件成本也较高。

同时基于比较器、基于匹配器的触发设计方案对于触发事件序列的检测能力有限。这两种方案都需要集成有限状态机去检测触发事件,而有限状态机的结构和设计是流片前就需确定的,可配置性差,由此造成整个触发模块对于触发序列的检测能力低。



技术实现要素:

针对现有技术的不足,本发明提出一种复用追踪缓存的触发装置及设计方法。

本发明提出一种复用追踪缓存的触发装置,包括:

地址生成模块,用于根据触发信号与当前的检测状态生成读追踪缓存地址;

追踪缓存模块,用于根据触发条件配置追踪缓存,并根据所述读追踪缓存地址输出对应地址行的内容;

输出选择模块,用于根据所述触发信号的部分低位信号输出对应的触发信息并用于触发判断,当触发标志位有效时,则代表检测到触发条件。

包括4种触发检测模式。

所述4种触发检测模式包括基本触发事件检测模式、低位行内索引的触发事件检测模式、基本触发序列检测模式、低位行内索引的触发序列检测模式。

所述基本触发事件检测模式用于检测触发事件,其中触发信号直接作为追踪缓存的读地址,读取追踪缓存中与所述读地址相对应地址行中存储的标志位。

所述低位行内索引的触发事件检测模式用于检测宽度大于一阈值的触发信号对应的触发事件,其中触发信号的部分低位作为输出选择信号,从宽度w位输出选择出对应输出值。

所述基本触发序列检测模式用于检测触发序列,其中根据触发序列构建检测所述触发序列的有限状态机,并将所有的状态跳转存储到追踪缓存中,触发信号与当前的检测状态共同组成追踪缓存的读地址,其中触发信号作为读地址的高位部分,当前的检测状态作为读地址的低位部分。对应所述读地址的地址行中存储的内容为对应的下一检测状态与触发条件是否被激活的标志位。

所述低位行内索引的触发序列检测模式用于检测宽度大于一阈值的触发信号对应的触发序列,其中追踪缓存的每一行内存储了m个触发值对应的下一检测状态与检测标志位,以充分利用追踪缓存的存储空间,并使用触发信号的低log2m位用于检索追踪缓存的输出,以得到与当前时刻触发值对应的触发信息。

本发明还提出一种复用追踪缓存的触发装置的设计方法,包括:

步骤1,根据触发信号与当前的检测状态生成读追踪缓存地址;

步骤2,根据触发条件配置追踪缓存,并根据所述读追踪缓存地址输出对应地址行的内容;

步骤3,根据所述触发信号的部分低位信号输出对应的触发信息并用于触发判断,当触发标志位有效时,则代表检测到触发条件。

包括4种触发检测模式。

所述4种触发检测模式包括基本触发事件检测模式、低位行内索引的触发事件检测模式、基本触发序列检测模式、低位行内索引的触发序列检测模式。

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

第一点,本发明可以提供对于触发条件的更强的检测能力。对于触发事件,满足追踪信号宽度约束的任意触发事件都可以被本发明检测到,假设本发明支持的触发信号的最大宽度为n,对于满足约束的触发信号,存在种可能的触发事件,这些触发事件都可被本发明检测,对于触发事件序列,满足追踪信号宽度约束的任意触发事件都可以被本发明检测到。

第二点,本发明硬件开销更小。通过复用追踪缓存空间,用以存储触发条件或者检测触发条件的有限状态机,可完全不使用用于触发条件检测的且开销较大的比较器或者匹配器,硬件开销小,相对于现有设计,本发明可在提供更强大的触发条件检测能力的基础上,减少硬件开销。

第三点,本发明可配置性好。本发明是通过向追踪缓存中载入不同的存储内容,以实现不同的触发事件和触发事件序列的检测,触发条件改变后,只需重新通过调试端口配置追踪缓存的内容,即可实现对新触发条件的检测,特别是对于触发序列,现有的基于有限状态机的实现的可配置性较差,而本发明可通过适当配置以检测任意的满足约束的触发序列。

附图说明

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

图2是基于比较器的触发模块设计图;

图3是基于匹配器的触发模块设计图;

图4是基于可配置逻辑的触发模块实现图;

图5是本发明提出的触发模块设计的总架构图;

图6是本发明的触发设计的基本触发事件检测模式图;

图7是本发明的触发设计的低位行内索引的触发事件检测模式图;

图8是本发明的触发设计的基本触发序列检测模式图;

图9是本发明的触发设计的低位行内索引的触发序列检测模式图;

图10是本发明的触发模块使用流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的一种复用追踪缓存的触发装置及设计方法进行进一步详细说明,应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。

本发明的基本实施框图如图5所示,采用复用追踪缓存的设计,主要由地址生成,追踪缓存和输出选择三部分组成,其中地址生成和输出选择受模式寄存器的控制。根据触发条件配置追踪缓存,地址生成单元根据触发信号和当前的检测状态生成读追踪缓存地址,追踪缓存在读请求下(根据读请求的读追踪缓存地址)输出对应地址行的内容,输出处理单元根据触发信号的部分低位信号输出对应的触发信息并用于触发判断,触发标志位有效时,即代表触发条件被检测到。2位模式寄存器用于配置当前的触发检测模式,本发明提供4种不同的模式,以实现对触发事件和触发事件序列的检测。与现有的追踪设计相比,本发明省掉了独立的触发单元设计,仅仅增加了地址生成和输出选择功能,极大了减少了调试设计的硬件开销。

根据模式寄存器的不同配置值,本发明的触发设计可以工作在4中不同的触发检测模式下,分别为:基本触发事件检测模式,低位行内索引的触发事件检测模式,基本触发序列检测模式和低位行内索引的触发序列检测模式。基本和低位行内索引的触发事件检测模式用以检测触发事件,其不同之处在于低位行内索引的触发事件检测模式可检测更大宽度的触发信号;同样基本和低位行内索引的触发序列检测模式用以检测触发序列,其不同之处在于低位行内索引的触发序列检测模式可检测更大宽度的触发信号。根据触发条件,特别是根据触发条件的类型(触发事件或触发序列)和触发信号的宽度,选择合适的检测模式。下面将详细介绍以上四种检测模式,并假设追踪缓存的深度为d,宽度为w,且均为2的整数幂。

基本触发事件检测模式用于检测触发事件,对应的模式寄存器设置为00,配置后的触发检测结构如图6所示。触发信号直接作为追踪缓存的读地址,读取追踪缓存对应地址行中存储的标志位。追踪缓存中的每一行存储的即是此地址作为触发信号的取值时,是否满足触发条件。根据追踪缓存的输出即可判断触发信号的取值是否满足触发条件。此模式支持的触发信号的最大宽度为log2d。

低位行内索引的触发事件检测模式用于检测宽度大于一阈值的触发信号对应的触发事件,对应的模式寄存器设置为01,配置后的触发检测结构如图7所示。触发信号的部分低位作为输出选择信号,从w位输出选择出对应输出值。这是因为每一行追踪缓存可以存储w位数据,即可表示w个触发数值是否满足触发要求,而基本触发事件检测模式只使用了每一行的最低位,没能充分的利用追踪缓存的存储空间,在此模式下,触发信号的最低log2w位将作为输出选择信号,其剩余高位作为追踪缓存读地址,故此模式支持的触发信号的最大宽度为(log2d+log2w)。

基本触发序列检测模式用于检测触发序列,对应的模式寄存器设置为10,配置后的触发检测结构如图8所示。触发序列的检测是基于有限状态机的,即根据触发序列构建一个检测此序列的有限状态机,并将所有的状态跳转存储到追踪缓存中,触发信号和当前的检测状态共同组成追踪缓存的读地址,其中触发信号作为读地址的高位部分,当前的检测状态作为读地址的低位部分,对应此读地址的地址行中存储的内容是对应的下一检测状态和触发是否被激活的标志位,对应的下一检测状态即在当前检测状态下,当检测状态机的输入为触发信号对应的值时,检测状态机将会跳转到的下一状态,从追踪缓存中读取的下一状态用来更新当前的检测状态,读取的触发是否被激活的标志位用来指示序列是否已被检测到,假设共需要s位宽度表示检测状态,则s最大值可为(w-1),同时可被检测的触发信号的最大宽度为(log2d–s)。

低位行内索引的触发序列检测模式用于检测宽度大于一阈值的触发信号对应的触发序列,对应的模式寄存器设置为11,配置后的触发检测结构如图9所示。与基本触发序列检测模式不同的是,追踪缓存的每一行内存储了m个触发值对应的下一检测状态和检测标志位,以充分利用追踪缓存的存储空间,并使用了触发信号的低log2m位用于检索追踪缓存的输出,以得到与此时刻触发值对应的触发信息,m的最大取值为w/(s+1),而可被检测的触发信号的最大宽度为(log2d–s+log2m),相比基本触发序列检测模式增加了log2m。

本发明的触发设计在硅后调试时的具体使用流程如图10所示。主要分为三步:准备阶段,配置阶段和检测阶段,准备阶段即根据调试者对于调试故障的理解确定触发条件,配置阶段即根据调试者确定的触发条件确定触发信号,触发模块的工作模式,并配置模式寄存器和追踪缓存,对于触发事件,需计算所有的有效的触发值并配置到追踪缓存中;对于触发序列,需构建一个用于序列检测的有限状态机,并将有限状态机信息存储到追踪缓存中,检测阶段即在调试时使用触发模块检测触发条件,当触发标志位为有效时,即代表触发条件被激活,可以开启追踪信号的信号追踪,即将追踪信号的每拍数据都存储到追踪缓存中。

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