一种时钟信号测试方法和装置与流程

文档序号:12469852阅读:725来源:国知局
一种时钟信号测试方法和装置与流程
本发明涉及电子信息
技术领域
,尤其涉及一种时钟信号测试方法和装置。
背景技术
:随着数字芯片规模的增加、集成度的提高,芯片项目中验证工作的工作量也随之增加。据业界统计,芯片验证工作量约占整个芯片项目开发周期的70%,提高验证效率是缩短项目开发周期的必由之路。研究表明,验证自动化、验证模块标准化已经成为芯片验证领域一个重要的技术方向发展。验证自动化解决了对于数量庞大的验证对象进行相同的、重复性的检测问题,有效地帮助验证工程师避免了大量的简单重复性劳动,节约了验证流程的时间。时钟信号是数字芯片中一类非常重要的信号。对于电路规模较大的数字芯片来说,时钟信号的个数可能会很多,对于一百万门的数字电路来说,10个以上的时钟信号并不罕见,并且每个时钟信号可能会存在或多或少的使能控制逻辑以及参数配置关系,对这样一个时钟数量大、复杂性高的时钟树进行检查异常复杂。公开于该
背景技术
部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。技术实现要素:技术问题有鉴于此,本发明要解决的技术问题是,如何提供一种时钟信号测试方法和装置,能够自动且高效的测试时钟信号。解决方案为解决以上技术问题,本发明在第一方面提供一种时钟信号测试方法,包括:通过Perl脚本提取输入文件中与时钟相关的信息,所述输入文件包括Excel格式文件;根据所述与时钟相关的信息生成输出文件,所述文件包括Verilog文件;调用所述输出文件以实时检测时钟信号的状态,所述时钟信号的状态包括所述时钟信号的周期及当前周期的占空比,或者缺省状态。在一种可能的实现方式中,当所述时钟信号的状态包括所述时钟信号的周期及当前周期的占空比时,包括:将所述时钟信号当前上升沿的时间减去所述时钟信号的最近一次上升沿的时间点从而得到当前周期的周期值;当所述当前周期的周期值的小于所述时钟信号的周期的理论值下限,或者大于所述时钟信号的周期的理论值上限时,将所述时钟信号的周期检测为发生错误。在一种可能的实现方式中,当所述时钟信号的状态包括所述时钟信号的周期及当前周期的占空比时,包括:将所述时钟信号的最近一次下降沿的时间点减去所述时钟信号的最近一次上升沿的时间点得到第一差值;将所述时钟当前上升沿时间减去所述时钟信号的最近一次上升沿的时间点得到第二差值;用所述第一差值除以所述第二差值得到所述当前周期的占空比;当所述当前周期的占空比小于所述时钟信号占空比的理论值下限,或者大于所述时钟信号占空比的理论值上限时,将所述时钟信号的占空比检测为发生错误。在一种可能的实现方式中,当所述时钟信号的状态包括所述时钟信号的缺省状态时,包括:当所述时钟信号未出现上升沿时,用当前时间减去测试开始的时间点得到第三差值;当所述第三差值大于预设的容忍缺省的上限值时,检测为所述时钟信号的缺省状态发生错误。在一种可能的实现方式中,当所述时钟信号的状态包括所述时钟信号的缺省状态时,包括:当所述时钟信号已出现上升沿,并且当所述第二差值大于预设的容忍缺省的上限值时,检测为所述时钟信号的缺省状态发生错误。为解决以上技术问题,本发明在第二方面提供一种时钟信号测试装置,包括:处理模块,用于通过Perl脚本提取输入文件中与时钟相关的信息,所述输入文件包括Excel格式文件;输出模块,用于根据所述与时钟相关的信息生成输出文件,所述文件包括Verilog文件;检测模块,用于调用所述输出文件以实时检测时钟信号的状态,所述时钟信号的状态包括所述时钟信号的周期及当前周期的占空比,或者缺省状态。在一种可能的实现方式中,所述检测模块用于:当所述时钟信号的状态包括所述时钟信号的周期及当前周期的占空比时,将所述时钟信号当前上升沿的时间减去t2_21从而得到当前周期的周期值;当所述当前周期的周期值的小于所述时钟信号的周期的理论值下限tmin_21,或者大于所述时钟信号的周期的理论值上限tmax_21时,将所述时钟信号的周期检测为发生错误。在一种可能的实现方式中,所述检测模块用于:当所述时钟信号的状态包括所述时钟信号的周期及当前周期的占空比时,将所述时钟信号的最近一次下降沿的时间点减去所述时钟信号的最近一次上升沿的时间点得到第一差值;将所述时钟当前上升沿的时间减去所述时钟信号的最近一次上升沿的时间点得到第二差值;用所述第一差值除以所述第二差值得到所述当前周期的占空比;当所述当前周期的占空比小于所述时钟信号占空比的理论值下限,或者大于所述时钟信号占空比的理论值上限时,将所述时钟信号的占空比检测为发生错误。在一种可能的实现方式中,所述检测模块用于:当所述时钟信号的状态包括所述时钟信号的缺省状态时,当所述时钟信号未出现上升沿时,用当前时间减去测试开始的时间点得到第三差值;当所述第三差值大于预设的容忍缺省的上限值时,检测为所述时钟信号的缺省状态发生错误。在一种可能的实现方式中,所述检测模块用于:当所述时钟信号的状态包括所述时钟信号的缺省状态,所述时钟信号已出现上升沿,并且所述第二差值大于预设的容忍缺省的上限值时,检测为所述时钟信号的缺省状态发生错误。有益效果本发明提供的一种时钟信号测试方法和装置,通过Perl脚本提取输入文件中与时钟相关的信息,所述输入文件包括Excel格式文件;根据所述与时钟相关的信息生成输出文件,所述文件包括Verilog文件;调用所述输出文件以实时检测时钟信号的状态,所述时钟信号的状态包括所述时钟信号的周期及当前周期的占空比,或者缺省状态,能够自动且高效的测试时钟信号。根据下面参考附图对示例性实施例的详细说明,本发明的其它特征及方面将变得清楚。附图说明包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。图1示出本发明实施例提供的一种时钟信号测试方法的流程图;图2示出步骤S2的流程图;图3示出根据本发明实施例测试时钟的仿真波形的示例图;图4示出本发明实施例提供的时钟信号测试装置的结构示意图。具体实施方式下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本发明同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件未作详细描述,以便于凸显本发明的主旨。实施例1图1示出本发明实施例提供的一种时钟信号测试方法的流程图,如图1所示,该方法包括:步骤S1、通过Perl脚本提取输入文件中与时钟相关的信息,所述输入文件包括Excel格式文件。输入文件文件中(除工作组名,列名外)所有输入的时钟参数都可以满足编程语言Verilog的语法的规则。其中定义的工作组名及列名是固定不可被修改的,而其余没有定义的列名等信息可以不被脚本提取。时钟信号自动化测试的输入文件的主要内容包含两个部分:第一部分是采样时钟(主时钟)。采样时钟是用来确定检测的时间点,在这个检测时间点上检查被测试时钟的缺省状态。采样时钟的选择可以注意其频率的选择,当采样时钟的频率越高观察点越密集,检查被测试时钟缺省状态的频率也越高。不过过高的采样频率会造成仿真资源的浪费,但是过低的采样频率也会影响时钟缺省值的检测精度。因此采样时钟一般选取验证环境或者待测器件DUT中频率最高的时钟信号(大于所有被测时钟频率),且该时钟信号在仿真过程中也需要一直存在。采样时钟可以记录在Excel表格名为“mainclock”的工作组中。该工作组中有一列,名为“Clock”。该列下保存的即为采样时钟信号的路径(时钟实例化的路径)。其中定义的工作组名“mainclock”以及列名“Clock”是固定不能被修改的。例,下表所示为该输入文件Excel表格的第一部分,名为“mainclock”的工作组。其中“Clock”为列名,“TB_TOP.u_DUT.u_CLKG.CLK_480M”为设置的采样时钟路径。ClockTB_TOP.u_DUT.u_CLKG.CLK_480M表1第二部分是被测时钟参数。这些参数被记录在该Excel表格中名称不为“mainclock”的其他工作组中。被测时钟参数可分为七类:Clock,Period,Tolerance_Period,Duty_Radio,Tolerance_DR,Valid_Window,Tolerance_empty。这七类参数的名字将作为列名,固定不能被修改,位于每个工作组的第一行。随后的每一行对应的为一个测试项。Clock:该列定义的是被测时钟的路径(时钟实例化的路径)。该时钟路径是可以与其他测试项中的被测时钟路径相同,即同一个被测时钟可被分别写入不同的行,作为不同的被测项,用来测试这个被测时钟在不同条件下的状况。Period:该列定义的是被测时钟的理论周期值。由于该列设置值是一个数值(或者计算公式)不带时间单位,默认采用的时间单位为仿真器设置的时间单位。因此需注意与仿真器时间单位的设置相匹配,以保证设置的理论周期值没有偏差。Tolerance_Period:该列定义的是被测时钟周期与理论周期值偏差的允许范围。其允许范围上下限周期值的偏差比例是相同的,都为该位置设置的数值。此外由于参数计算的取值存在近似值的情况,因此该位的设置数值应大于0。Duty_Radio:该列定义的是被测时钟的理论占空比。Tolerance_DR:该列定义的是被测时钟占空比与理论占空比偏差的允许范围。与周期偏差类似,占空比允许范围的上下限偏差比例也相同,都为该位置设置的数值。此外由于计算的取值存在近似值的情况,因此该位的设置数值也应大于0。Valid_Window:该列定义的是被测时钟的测试窗口(观察窗口)。在该设置参数逻辑高时,会启动参数计算,对该被测时钟的进行实时监控。Tolerance_empty:该列定义的是在测试窗口中被测时钟缺省的容忍值(多少个该被测时钟的时钟周期)。当Period被设置为0时,即说明被测时钟被设置为理论就不存在,这种情况下被测时钟将不进行缺省值的监控。上述的各类型参数的设置(数值或者计算公式)应注意其属性都应为浮点数,从而确保其用于计算时结果的精度。例,下表为Excel中被测时钟的基本信息。第一行是列名。该例子中存在两个测试项,这两个测试项所对应的被测时钟参数分别位于第二和第三行。表2步骤S2、根据所述与时钟相关的信息生成输出文件,所述文件包括Verilog文件。图2示出步骤S2的具体流程,如图2所示,打开输入的Excel文件,遍历工作组,从clock列提取主时钟参数,遍历列查找上述七类参数所在列的位置,根据列位置提取相应参数,并且在所有测试项结束后生成输出文件。本步骤分别由两个子程序实现,代码存储于名为Tool的库中,待顶层程序调用。输出文件为Verilog格式的文件。为了与仿真验证环境配套,它被设计成一段行为级代码,是仿真环境的一部分。与仿真器配合,在仿真过程中通过保存采样时钟和被测时钟等信号线的上升或者下降沿的时间点参数。对这些保存的采样时间参数的计算后与相应的理论值参数进行比对,实现对被测时钟信号的实时检测。对于每个测试项都有一组相对应的Verilog代码。其中声明了九个变量,如下表所示:(变量中的数字为测试项的序号,每个测试项对应一个独立的序号,由脚本根据Excel表格中各测试项的位置自动生成。为方便说明,之后文档中变量的数字将沿用21这个编号)表3步骤S3、调用所述输出文件以实时检测时钟信号的状态。所述时钟信号的状态包括所述时钟信号的周期及当前周期的占空比,或者缺省状态。被测时钟的检测包括两种情况:第一种是检测被测时钟的周期和占空比是否满足要求,在被测时钟的上升沿触发的时刻进行计算和比较。当此时的t2_21为0时,则说明是该被测时钟的第一个上升沿,将不进行被测时钟参数的计算和比较,仅将此时刻保存在变量t2_21中。在被测时钟随后的上升沿时刻,除了对变量的处理和保存外,还将进行参数的计算和比较。周期检测的计算是用当前时间减去t2_21($realtime-t2_21)从而得到当前周期的周期值。当它的大小在tmin_21和tmax_21之间时,则说明这个时钟周期是在允许范围内的。否则将生成相应的错误信息,打印在此时刻($realtime)被测时钟的周期检测错误。占空比检测的计算是用t3_21减去t2_21的差除以当前时间减去t2_21的差((t3_21-t2_21)/($realtime-t2_21))从而得到当前周期的占空比。当它的大小在dmin_21和dmax_21之间时,则说明这个时钟周期的占空比是在允许范围内的,否则也将生成相应的错误信息,打印在此时刻($realtime)被测时钟的占空比检测错误。第二种是检测被测时钟的缺省情况,在采样时钟的上升沿触发的时刻进行计算和比较。检测时钟缺省情况的使能条件除需要满足valid_window为逻辑高以外,其测试项的被测时钟周期理论值(Period)设置不为0,这个条件是用于区分检测测试时钟应为缺省的情况。当上述两个条件都满足时,在采样时钟上升沿的时刻,对被测时钟的缺省情况进行分析计算。当t2_21为0时,即说明被测时钟从未有上升沿出现。这种情况下,如果当前时间减去ts_21($realtime-ts_21)大于设置的容忍缺省的上限值(tempty_21)时,则说明被测时钟缺省时间已超过允许范围,需打印错误信息。如果t2_21不为0时,即说明之前存在被测时钟的上升沿。这种情况下,如果当前时间减去t2_21($realtime-t2_21)大于容忍缺省的上限值(tempty_21)时,则说明被测时钟缺省时间已超过允许范围,需打印错误信息。当测试项的被测时钟周期理论值设置为0时,即测试时钟在使能条件满足的情况下应为缺省的。用上述两种检测原理也能满足需求。因为当被测时钟周期理论值为0时,上述第二种检测的使能条件不满足,因此不会启动。如果被测时钟信号产生了一个周期以上(包括一个周期)的跳变时,则会触发第一种检测,从而被检测出周期和占空比错误。图3示出根据本发明实施例测试时钟的仿真波形的示例图,如图3所示,采样时钟(主时钟)为“DPLL_CLK_OUT”,被测时钟为“clk_adc_b”。本发明提供的一种时钟信号测试方法,通过Perl脚本提取输入文件中与时钟相关的信息,所述输入文件包括Excel格式文件;根据所述与时钟相关的信息生成输出文件,所述文件包括Verilog文件;调用所述输出文件以实时检测时钟信号的状态,所述时钟信号的状态包括所述时钟信号的周期及当前周期的占空比,或者缺省状态,能够自动且高效的测试时钟信号。实施例2图4示出本发明实施例提供的时钟信号测试装置的结构示意图,如图4所示,该装置10包括:处理模块110、输出模块120和检测模块130。处理模块110,用于通过Perl脚本提取输入文件中与时钟相关的信息,所述输入文件包括Excel格式文件;输出模块120,用于根据所述与时钟相关的信息生成输出文件,所述文件包括Verilog文件;检测模块130,用于调用所述输出文件以实时检测时钟信号的状态,所述时钟信号的状态包括所述时钟信号的周期及当前周期的占空比,或者缺省状态。在一种可能的实现方式中,检测模块110用于当所述时钟信号的状态包括所述时钟信号的周期及当前周期的占空比时,将所述时钟信号当前上升沿时间减去t2_21从而得到当前周期的周期值;当所述当前周期的周期值的小于所述时钟信号的周期的理论值下限tmin_21,或者大于所述时钟信号的周期的理论值上限tmax_21时,将所述时钟信号的周期检测为发生错误。在一种可能的实现方式中,所述检测模块110用于当所述时钟信号的状态包括所述时钟信号的周期及当前周期的占空比时,将所述时钟信号的最近一次下降沿的时间点减去所述时钟信号的最近一次上升沿的时间点得到第一差值;将所述时钟当前上升沿时间减去所述时钟信号的最近一次上升沿的时间点得到第二差值;用所述第一差值除以所述第二差值得到所述当前周期的占空比;当所述当前周期的占空比小于所述时钟信号占空比的理论值下限,或者大于所述时钟信号占空比的理论值上限时,将所述时钟信号的占空比检测为发生错误。在一种可能的实现方式中,其特征在于,检测模块110用于当所述时钟信号的状态包括所述时钟信号的缺省状态时,当所述时钟信号未出现上升沿时,用当前时间减去测试开始的时间点得到第三差值;当所述第三差值大于预设的容忍缺省的上限值时,检测为所述时钟信号的缺省状态发生错误。在一种可能的实现方式中,检测模块110用于当所述时钟信号的状态包括所述时钟信号的缺省状态,所述时钟信号已出现上升沿,并且所述第二差值大于预设的容忍缺省的上限值时,检测为所述时钟信号的缺省状态发生错误。本发明提供的一种时钟信号测试装置,通过Perl脚本提取输入文件中与时钟相关的信息,所述输入文件包括Excel格式文件;根据所述与时钟相关的信息生成输出文件,所述文件包括Verilog文件;调用所述输出文件以实时检测时钟信号的状态,所述时钟信号的状态包括所述时钟信号的周期及当前周期的占空比,或者缺省状态,能够自动且高效的测试时钟信号。前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1