掌桥专利:专业的专利平台
掌桥专利
首页

自动生成仿真激励的方法、装置及存储介质

文献发布时间:2023-06-19 19:37:02


自动生成仿真激励的方法、装置及存储介质

技术领域

本公开实施例涉及半导体技术领域,尤其涉及一种自动生成仿真激励的方法、装置及存储介质。

背景技术

集成电路的规模不断扩大以及集成电路功能的不断丰富,对芯片验证的质量和效率提出了更大的挑战。为了保证芯片验证的充分性,在仿真时需要给芯片施加大量不同的激励(Stimulus),以验证芯片的功能性和时序性的错误。相关技术中的仿真激励开发过程需要专门的验证人员通过一系列复杂的步骤手动完成,该过程非常耗时且易错。因此,需要缩短仿真激励的开发时间,提高芯片验证的效率。

发明内容

有鉴于此,本公开实施例提供了一种自动生成仿真激励的方法、装置及存储介质,以缩短仿真激励的开发时间,提高芯片验证的效率。

本发明的技术方案是这样实现的:

本公开实施例提供了一种自动生成仿真激励的方法,包括:获取待仿真电路的仿真配置信息,仿真配置信息包括:产品基本配置信息、模式寄存器配置信息和功能命令配置信息;基于仿真配置信息设置待仿真电路的仿真配置表,基于仿真配置表生成测试图案;根据符合规则的测试图案生成测试代码;对测试代码进行仿真,得到对应的仿真结果;基于仿真结果,生成仿真激励文件。

上述方案中,根据测试图案生成测试代码,包括:根据预设的规则文件,检查测试图案是否符合规则;若测试图案符合规则,则基于测试图案生成测试代码。

上述方案中,根据预设的规则文件,检查测试图案是否符合规则之后,方法还包括:若测试图案不符合规则,则重新获取待仿真电路的仿真配置信息设置仿真配置表,并生成新的测试图案,直至新的测试图案符合规则。

上述方案中,规则文件包括:模式寄存器配置规则和功能命令配置规则。

上述方案中,基于测试图案生成测试代码还包括:根据代码语法及对应规则,通过自动化脚本将测试图案生成应用于仿真的测试代码。

上述方案中,对测试代码进行仿真,得到对应的仿真结果,包括:确定待仿真电路对应的标准模型;根据标准模型,自动建立验证平台的仿真环境;将测试代码加载至仿真环境进行verilog仿真,以得到对应的仿真结果。

上述方案中,仿真结果包括:输入波形和输出波形;其中,输入波形对应测试代码中对应的输入信号波形;输出波形为对标准模型执行仿真后的输出信号波形。

上述方案中,将测试代码加载至仿真环境进行verilog仿真,以得到对应的仿真结果之后,还包括:获取verilog仿真的日志文件,并根据日志文件检查verilog仿真是否成功;若verilog仿真成功,则基于仿真结果,生成仿真激励文件;若verilog仿真不成功,则结束当前流程。

上述方案中,基于仿真结果,生成仿真激励文件,包括:基于仿真配置表,根据仿真结果中的部分波形生成原始激励文件;对原始激励文件进行后处理,生成仿真激励文件。

上述方案中,对原始激励文件进行后处理,包括:向原始激励文件添加矢量模式定义和波形参数设置。

上述方案中,产品基本配置信息包括:产品类型、频率和组成模式;模式寄存器配置信息包括:突发长度、突发类型、列地址选通脉冲延迟、运行方式和写入突发模式;功能命令配置信息包括:读命令、写命令、激活命令、存储体地址、行地址、列地址。

本公开实施例还提供了一种自动生成仿真激励的装置,包括:仿真配置界面,被配置为获取待仿真电路的仿真配置信息,以及,基于仿真配置信息设置待仿真电路的仿真配置表,并且,基于仿真配置表生成测试图案;仿真配置信息包括:产品基本配置信息、模式寄存器配置信息和功能命令配置信息;测试代码生成模块,被配置为接收来自仿真配置界面符合规则的测试图案;并且,根据符合规则的测试图案生成测试代码;验证平台,被配置为接收来自测试代码生成模块的测试代码;并且,对测试代码进行仿真,得到对应的仿真结果;激励生成模块,被配置为接收来自验证平台的仿真结果;并且,基于仿真结果,生成仿真激励文件。

上述方案中,自动生成仿真激励的装置还包括检查模块,检查模块被配置为根据预设的规则文件,检查测试图案是否符合规则。

本公开实施例还提供了一种自动生成仿真激励的装置,包括:存储器,用于存储可执行指令;处理器,用于执行存储器中存储的可执行指令时,实现上述方案中的方法。

本公开实施例还提供了一种存储介质,存储有可执行指令,用于引起处理器执行时,实现上述方案中的方法。

本公开实施例中,自动生成仿真激励的方法包括:获取待仿真电路的仿真配置信息,仿真配置信息包括:产品基本配置信息、模式寄存器配置信息和功能命令配置信息;基于仿真配置信息设置待仿真电路的仿真配置表,基于仿真配置表生成测试图案;根据符合规则的测试图案生成测试代码;对测试代码进行仿真,得到对应的仿真结果;基于仿真结果,生成仿真激励文件。这样,相较于相关技术,采用本公开实施例,有效地保障了测试图案的正确性,降低了出错率;同时,能够自动生成测试代码和仿真环境,缩短了仿真激励的开发时间,提高了芯片的验证效率。

附图说明

图1为本公开实施例提供的自动生成仿真激励的方法的流程示意图一;

图2为本公开实施例提供的自动生成仿真激励的装置的结构示意图一;

图3为本公开实施例提供的自动生成仿真激励的方法的流程示意图二;

图4为本公开实施例提供的自动生成仿真激励的方法的流程示意图三;

图5为本公开实施例提供的自动生成仿真激励的装置的结构示意图二;

图6为本公开实施例提供的自动生成仿真激励的方法的流程示意图四;

图7为本公开实施例提供的自动生成仿真激励的装置的结构示意图三;

图8为本公开实施例提供的自动生成仿真激励的方法的流程示意图五;

图9为本公开实施例提供的自动生成仿真激励的装置的结构示意图四。

具体实施方式

为了使本公开的目的、技术方案和优点更加清楚,下面结合附图和实施例对本公开的技术方案进一步详细阐述,所描述的实施例不应视为对本公开的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。

在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。

如果申请文件中出现“第一/第二”的类似描述则增加以下的说明,在以下的描述中,所涉及的术语“第一/第二/第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一/第二/第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本公开实施例能够以除了在这里图示或描述的以外的顺序实施。

除非另有定义,本文所使用的所有的技术和科学术语与属于本公开的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本公开实施例的目的,不是旨在限制本公开。

相关技术中,仿真激励开发过程需要专门的验证人员通过一系列复杂的步骤手动完成,包括:产品相关参数的配置,例如,设置模式寄存器(Mode Register)和功能命令(Command Sequence)等;测试代码的撰写及检查;Verilog验证环境的搭建;以及Spice(Simulation program with integrated circuit emphasis)仿真激励的抽取等步骤。该过程非常耗时且易错,不利于整个项目的研发;复杂的流程也增加了快速定制包含某些功能命令的仿真激励的难度。

图1是本公开实施例提供的自动生成仿真激励的方法的一个可选的流程示意图,将结合图1示出的步骤进行说明。

S101、获取待仿真电路的仿真配置信息;仿真配置信息包括:产品基本配置信息、模式寄存器配置信息和功能命令配置信息。

本公开实施例中,仿真配置信息包括:产品基本配置信息、模式寄存器配置信息和功能命令配置信息等信息。待仿真电路可以是动态随机存储器(Dynamic Random AccessMemory,DRAM)。相应地,产品基本配置信息包括:产品类型、DRAM频率和组成模式等信息。产品类型可以是动态随机存储器的规格;例如,DDR4和DDR5等。DRAM频率可以是动态随机存储器的内存频率(Frequency);例如,DDR4有1600MHz、2400MHz、2800MHz和3200MHz等频率。组成模式可以是指动态随机存储器的数据通道数量;例如,X4、X8和X16等模式。

本公开实施例中,不同产品类型所对应的产品规格不同,会使得产品所对应的测试图案(Pattern)存在差别;不同频率的产品,其对应的仿真环境不一样;不同的组成模式下使用的产品的引脚及信号数量不同,会影响最终的仿真激励。因此,生成仿真激励时,需要先获取待仿真电路的产品类型、频率和组成模式等产品基本配置信息。

本公开实施例中,每个产品需要根据产品规格制定模式寄存器配置,定义每个模式寄存器的配置选项。每个产品需要根据产品规格制定功能命令列表,定义产品所有支持的命令及参数。因此,需要选择产品的产品基本配置信息,从而,确定对应的产品规格,设置模式寄存器和功能命令,从而,获取待仿真电路的模式寄存器配置信息和功能命令配置信息。

图2为本公开实施例提供的自动生成仿真激励的装置的一个可选的结构示意图,可利用图2示出的自动生成仿真激励的装置100实现图1中所示的自动生成仿真激励的方法。

本公开实施例中,参考图2,可以在仿真配置界面提供定制测试图案的用户接口,即:在仿真配置界面提供设置产品基本配置信息的输入端(对应图2中的产品基本配置信息)、模式寄存器配置信息的输入端(对应图2中的模式寄存器)和功能命令配置信息的输入端(对应图2中的功能命令),并提供预设的配置选项,从而用户可以通过仿真配置界面选择并确定产品的仿真配置信息。这样,能够避免错写信息或者漏选信息,降低出错率;同时,能够避免对后续操作造成干扰。

S102、基于仿真配置信息设置待仿真电路的仿真配置表,基于仿真配置表生成测试图案。

本公开实施例中,测试图案是指:施加给存储器芯片的一系列的功能命令,即:不同的读指令和写指令等功能命令组合。测试图案主要用于验证存储器芯片的功能性错误。

本公开实施例中,仿真配置表包括产品基本配置表、模式寄存器配置表和功能命令配置列表等。继续参考图2,仿真配置表所包含的信息具有层级和先后顺序。用户需要先选择产品类型,进而,根据产品类型所确定的多个频率中选择对应的频率,以及,根据产品类型所确定的多个组成模式中选择对应的组成模式;从而,获取产品基本配置信息,生成对应的产品基本配置表。例如,DDR4有1600MHz、2400MHz、2800MHz、3200MHz等频率。用户在确定产品类型为DDR4之后,在1600MHz、2400MHz、2800MHz、3200MHz等选项中选择一个频率作为产品的频率。

本公开实施例中,产品基本配置信息处于一个层级。模式寄存器和功能命令处于同一个层级,并且,处于产品基本配置信息所在层级的下一层级。用户在选择产品基本配置信息之后,才能根据产品基本配置信息所对应的产品规格,设置待仿真电路的模式寄存器和功能命令等其他配置,获取产品的模式寄存器配置信息和功能命令配置信息,从而,生成对应的模式寄存器配置表和功能命令配置列表。例如,用户将产品类型设置为DDR4之后,才能够根据DDR4所对应的产品规格,单独配置MR0-MR6这七个模式寄存器,以及,配置不同功能命令以及设置功能命令对应的参数。

需要说明的是,错误的模式寄存器或非法的功能命令都会导致测试图案出错,因此,本公开实施例按照层级和先后顺序获取待仿真电路的所有仿真配置表。这样,在设置仿真配置表的过程中,能够有效避免漏配或错配,降低了出错率;并且,按照层级逐个设置仿真配置表,能够避免遍历所有的配置信息,提高了获取仿真配置表的效率;从而,提高了芯片的验证效率。同时,本公开实施例能够提供设置功能命令的输入端,更加便于定制具有特定功能命令的产品。

S103、根据符合规则的所述测试图案生成测试代码。

本公开实施例中,需要根据预设的规则文件,检查测试图案是否符合规则;在测试图案符合规则后,根据符合规则的测试图案生成测试代码。

需要说明的是,规则文件是通过产品规格生成的,规则文件可以包括寄存器规则和功能命令配置规则等规则。例如,规则文件内容可以包括:有些功能命令不能在另一个功能命令之后出现;在特定的频率下,部分模式寄存器必须要按照特定的要求进行定义。

也就是说,可以通过检查测试图案的模式寄存器的定义和功能命令的顺序等信息是否符合规则文件,以判断测试图案是否符合产品规格,从而,确保测试图案的准确性。

进一步地,若测试图案不符合规则,则重新获取待仿真电路的仿真配置信息,设置仿真配置表,并生成新的测试图案,直至新的测试图案符合规则。这样,确保生成的测试图案符合产品规格,有效地保障了图案的正确性,从而,降低了出错率,提高了芯片的验证效率。

本公开实施例中,测试图案需转换成Verilog仿真环境可加载的代码行,因此需要根据代码语法及对应规则,通过自动化脚本将测试图案生成应用于仿真的测试代码。例如,代码语法可以是System Verilog语言、C语言和Verilog语言等,本公开中以SystemVerilog语言为例进行说明。对应规则是指产品的仿真配置表中的功能命令与代码语法的对应关系。可以根据不同的产品,定义功能命令与System Verilog语法的对应关系,确定对应的代码模板;从而,利用自动化脚本,将功能命令替换为代码行,即:根据产品的测试图案自动生成对应的测试代码。这样,相较于相关技术,采用本公开实施例,能够自动生成测试代码,降低了出错率,缩短了仿真激励的开发时间,提高了芯片的验证效率。

S104、对测试代码进行仿真,得到对应的仿真结果。

本公开实施例中,确定待仿真电路对应的标准模型(Golden Model);根据标准模型,自动建立验证平台的仿真环境。例如,验证平台根据产品类型和DRAM频率,自动建立测试图案所对应的标准模型,生成对应的仿真环境。这样,相较于相关技术,采用本公开实施例,能够自动建立对应的仿真环境,缩短了仿真激励的开发时间,提高了芯片的验证效率。

本公开实施例中,将测试代码加载至仿真环境进行verilog仿真,以得到对应的所述仿真结果。例如,使用EDA工具,对测试图案所对应的测试代码进行Verilog仿真,而后,将生成的仿真结果以及测试图案对应的测试代码转存为波形(Waveform)文件。

S105、基于仿真结果,生成仿真激励文件。

本公开实施例中,根据产品的组成模式,将波形文件中相应的若干个信号导出到CSV文本中,即:基于仿真结果,生成原始激励文件。例如,可以通过EDA工具Sim Vison的命令行接口simvisdbutil将波形文件中的部分信号导出,生成原始激励文件。也就是说,基于所述仿真配置表,根据所述仿真结果中的部分波形生成原始激励文件。

本公开实施例中,一个标准的仿真激励文件通常包含矢量模式定义(VectorPattern Definition)、波形参数设置(Waveform Parameter Setting)和列表数据(Tabular Data)。以下文中截取的仿真激励文件的示例进行说明:

;Vector Pattern Definition

Radix

1 1 4 4 4 4 1 4 4

nodename

clk out addr[15-0]R data[7:0]

io

i o i i i i x b b

;Waveform Parameter Setting

Slope 2.1

VIH 5

;Tabular Data

;pwl_type 0(or 1)

;Default is 0 1.0L H 1 1a e 1 0 0

结合截取的仿真激励文件示例,矢量模式定义用于定义信号的矢量名称、矢量大小和矢量类型;其中,矢量类型用于定义信号为输入信号或者输出信号,矢量大小用于定义信号的位数。波形参数设置用于定义信号的各种属性;例如,时间单位、上升和下降时间、驱动强度、逻辑高阈值或低阈值等具体属性。表格数据列出了指定时间的输入信号。指定时间可以按照矢量模式定义的nodename语句设置在顺序列的第一列中,对应的信号值在指定时间之后。当信号在1和0之间切换时,为了考虑上升和下降时间,FineSim Pro工具提供了注释字符形式的pwl_type定义,pwl_type定义在列表数据之前。

本公开实施例中,从波形文件中导出的原始激励文件为CSV文本。CSV文本包括信号名称以及数据序列;其中,数据序列仅有1和0的数值序列,以及开始时间和结束时间。Spice无法识别CSV文本中的信号名称以及数据序列;其中,数据序列仅有1和0的数值序列,以及开始时间和结束时间。因而,原始激励文件并不能用于Spice仿真验证,必须进行后处理;例如,通过矢量模式定义对CSV文本中的信号进行定义,得到信号对应的矢量名称、矢量大小和矢量类型;同时,通过波形参数设置对CSV文本中的信号设置对应的属性,得到信号的时间单位、上升和下降时间、驱动强度等具体属性,即:对原始激励文件进行补充矢量模式定义、波形参数设置的操作。从而,得到标准的Spice仿真激励文件。也就是说,对所述原始激励文件进行后处理,生成标准的Spice仿真激励文件。

可以理解的是,按照层级和先后顺序获取待仿真电路的仿真配置信息以及设置待仿真电路的仿真配置表;而后,生成对应仿真配置表的测试图案并判断测试图案是否符合规则;最后,利用自动化脚本将符合规则的所述测试图案生成测试代码,自动生成仿真环境对测试代码进行仿真,并基于仿真结果中相关的信号波形,生成标准的仿真激励文件。这样,相较于相关技术,采用本公开实施例,有效地保障了测试图案的正确性,降低了出错率;同时,能够自动生成测试代码和仿真环境,缩短了仿真激励的开发时间,提高了芯片的验证效率。

本公开的一些实施例中,可以通过图3示出的S201~S202来实现图1示出的S103,将结合各步骤进行说明。

S201、根据预设的规则文件,检查测试图案是否符合规则。

本公开实施例中,用户设置仿真配置信息时,可能会出现错配或漏配的问题,因而,测试图案会存在问题。因此,需要根据预设的规则文件,检查测试图案是否符合规则,以生成准确的测试图案。

S202、若测试图案符合规则,则基于测试图案生成测试代码。

本公开实施例中,规则文件可以包括寄存器规则和功能命令配置规则等规则。测试图案的模式寄存器的定义和功能命令的顺序等信息符合规则文件,则可以判断测试图案符合规则。然后,基于该测试图案生成对应的测试代码,即:根据符合规则的测试图案生成测试代码。这样,相较于相关技术,采用本公开实施例,有效地保障了测试图案的正确性,降低了出错率,提高了芯片的验证效率。

本公开的另一些实施例中,可以通过图3示出的S201和S203来实现图1示出的S103,将结合各步骤进行说明。

S203、若测试图案不符合规则,则重新获取待仿真电路的仿真配置信息,设置仿真配置表,并生成新的测试图案,直至新的测试图案符合规则。

本公开实施例中,在进行根据预设的规则文件检查测试图案是否符合规则的操作之后,若测试图案不符合规则,则说明用于设置仿真配置信息的过程中出现了错配或者漏配。因此,需要再次获取待仿真电路的仿真配置信息,设置待仿真电路的仿真配置表,直至新的测试图案符合规则。

本公开的一些实施例中,规则文件包括:模式寄存器配置规则和功能命令配置规则。

本公开实施例中,规则文件包括模式寄存器配置规则(Mode Register SettingRule)和功能命令配置规则(Command Sequence Rule)等具体规则。

本公开的一些实施例中,基于测试图案生成测试代码还包括:根据代码语法及对应规则,通过自动化脚本将测试图案生成应用于仿真的测试代码。

本公开实施例中,可以根据不同配置信息的产品,定义功能命令与SystemVerilog语法的对应关系;从而,生成对应于不同配置信息产品的不同代码模板。在生成测试代码的过程中,就可以利用这些代码模板,通过自动化脚本将对应的功能命令替换为Verilog仿真环境可加载的代码行,从而,将测试图案生成应用于仿真的测试代码。这样,能够自动生成测试代码,缩短了仿真激励的开发时间,提高了芯片的验证效率。

本公开的一些实施例中,可以通过图4示出的S301~S303来实现图1示出的S104,将结合各步骤进行说明。

S301、确定待仿真电路对应的标准模型。

图5是本公开实施例提供的自动生成仿真激励的装置的一个可选的结构示意图,可利用图5示出的自动生成仿真激励的装置实现图4中所示的自动生成仿真激励的方法。

本公开实施例中,参考图5,可以根据仿真配置表确定待仿真电路对应的标准模型(Golden Model)。例如,验证平台根据产品类型和DRAM频率,自动建立测试图案所对应的标准模型。

S302、根据标准模型,自动建立验证平台的仿真环境。

本公开实施例中,验证平台能够根据标准模型自动建立对应当前测试图案的Verilog仿真环境。这样,相较于相关技术,采用本公开实施例,能够自动建立对应的仿真环境,缩短了仿真激励的开发时间,提高了芯片的验证效率。

S303、将测试代码加载至仿真环境进行verilog仿真,以得到对应的仿真结果。

本公开实施例中,继续参考图5,将测试代码加载至验证平台所搭建仿真环境进行verilog仿真,测试代码通过验证平台对应转换成输入信号波形,并作为仿真结果的一部分,以便于最终生成Spice的仿真激励文件。

本公开实施例中,仿真激励文件中也需要包括标准模型对应的理想化输出信号波形,以便在根据仿真激励文件执行Spice仿真得到实际输出信号波形时,将理想化输出信号波形作为参照与Spice仿真的实际输出信号波形进行比较,生成Spice仿真结果。因此,在生成仿真结果时,需要转存对应的理想模型的输出信号波形;从而,生成包括输出波形和输入波形的仿真结果。

本公开的一些实施例中,仿真结果包括:输入波形和输出波形;其中,输入波形对应测试代码中对应的输入信号波形;输出波形为对标准模型执行仿真后的输出信号波形。

本公开实施例中,仿真结果包括:输入波形和输出波形。测试代码通过验证平台对应转换成的输入信号波形。标准模型对应的理想化的输出信号波形可用于与Spice仿真的结果进行比较,因而,输出信号波形也需要作为仿真激励文件的一部分。

本公开的一些实施例中,在执行完S301~S303后,可以通过图4示出的S304~S305进一步来实现图1示出的S104,将结合各步骤进行说明。

S304、获取verilog仿真的日志文件,并根据日志文件检查verilog仿真是否成功。

本公开实施例中,verilog仿真的步骤会记录在对应的日志文件中,因此,可以获取verilog仿真的日志文件,并根据日志文件检查verilog仿真是否成功。

S305、若verilog仿真成功,则基于仿真结果,生成仿真激励文件。

本公开实施例中,在获取日志文件之后,根据日志文件检查verilog仿真是否成功。若verilog仿真成功,则基于输出的仿真结果,生成仿真激励文件。

S306、若verilog仿真不成功,则结束当前流程。

本公开的另一些实施例中,在执行完S301~S304后,也可以通过图4示出的S306进一步来实现图1示出的S104。

本公开实施例中,在获取verilog仿真的日志文件之后,根据日志文件检查verilog仿真是否成功。若verilog仿真不成功,则结束当前流程。这样,能够及时了解verilog仿真的进度,从而,能够缩短仿真激励的开发时间,提高芯片的验证效率。

本公开的一些实施例中,可以通过图6示出的S401~S402来实现图1示出的S105,将结合各步骤进行说明。

S401、基于仿真配置表,根据仿真结果中的部分波形生成原始激励文件。

本公开实施例中,根据产品基本配置表中的组成模式的定义,将输入波形和输出波形中相应的若干个信号导出到CSV文本中,即:基于仿真配置表,根据仿真结果中的部分波形生成原始激励文件。例如,可以通过EDA工具Sim Vison生成原始激励文件,结合下文中截取的代码行进行说明:

simvisdbutil

-range:

-radix bin

-showx

-csv

-signal

-output stimulus_raw.csv

由截取的代码行可知,EDA工具Sim Vison的命令行接口(对应simvisdbutil)将波形文件(对应waveform)中的部分信号(对应signal_list)导出,生成原始激励文件(对应stimulus_raw.csv)。

S402、对原始激励文件进行后处理,生成仿真激励文件。

本公开实施例中,从波形文件中导出的原始激励文件仅包含列表数据,因而,原始激励文件并不能用于Spice仿真验证,因此,需要在原始激励文件中补充矢量模式定义和波形参数设置,即:对原始激励文件进行后处理,生成仿真激励文件。

本公开的一些实施例中,对原始激励文件进行后处理,包括:向原始激励文件添加矢量模式定义和波形参数设置。

本公开实施例中,仿真激励文件通常包含矢量模式定义、波形参数设置和列表数据。原始激励文件仅包含列表数据,需要在原始激励文件进行补充矢量模式定义和波形参数设置,从而,将原始激励文件转化为仿真激励文件。

本公开实施例中,波形参数设置能够将CSV文本中的数值序列(0和1变化)转换为连续变化的多数值波形(可近似于连续变化的模拟电压波形),即:将数字表示的激励文件转化为连续变化量表示的激励文件。矢量模式定义能够所有输入信号按照功能定义或者类型进行划分。以按照类型划分进行说明:不同类型输入的延迟可能会有差别,因而,需要利用矢量模式定义将所有输入信号按照类型进行划分。例如,输入信号类型包括DQ0-DQ7、CA0-CA13、CS/CK等。

本公开的一些实施例中,产品基本配置信息包括:产品类型、频率和组成模式;模式寄存器配置信息包括:突发长度、突发类型、列地址选通脉冲延迟、运行方式和写入突发模式;功能命令配置信息包括:读命令、写命令、激活命令、存储体地址、行地址、列地址。

图7是本公开实施例提供的自动生成仿真激励的装置的仿真配置界面的一个可选的结构示意图。本公开实施例中,结合图2和图7,待仿真电路可以是动态随机存储器产品。相应地,产品基本配置信息包括:产品类型、频率和组成模式。模式寄存器配置信息包括多个模式寄存器的配置信息,每个模式寄存器的配置信息可以包括突发长度(Burst Length,BL)、突发类型(Burst Type)、列地址选通脉冲延迟(Column Address Strobe Latency,CL)、运行方式(Operating Mode)和写入突发模式(Read Burst Mode)等信息;功能命令配置信息可以包括读命令(Read)、写命令(Write)、激活命令(Actcive)等多个命令,每个功能命令的参数包括存储体组地址(Bank Group,BG)、存储体地址(Bank Address,BA)、数据掩码(Data Mask,DM)、行地址(Row Address)、列地址(Column Address)、数据I/O通道(DQ)等信息。

图8是本公开实施例提供的自动生成仿真激励的方法的一个可选的流程示意图,本公开实施例中,参考图8,自动生成仿真激励的方法,包括:

S501、设置产品基本参数。

本公开实施例中,产品可以是动态随机存储器。相应地,产品的基本参数可以包括:产品类型,频率及组成模式等。设置产品的基本参数以获取产品基本配置信息,生成对应的产品基本配置表。

S502、根据产品规格,配置模式寄存器。

本公开实施例中,根据产品基本配置信息确定产品规格,从而,根据产品规格配置模式寄存器,从而,获取产品的模式寄存器配置表。

S503、施加功能命令序列及其参数。

本公开实施例中,获取产品的功能命令配置列表,为产品施加不同功能的功能命令及设置每个功能命令的参数配置。

S504、检查测试图案准确性。

本公开实施例中,获取上述S501~S503步骤中测试图案的定义,也即:获取产品的仿真配置表。根据规则文件检查测试图案是否正确,也即:检查测试图案是否符合规则文件。

S505、判断测试图案是否正确。

本公开实施例中,若测试图案正确,则进行S506步骤。若测试图案不正确,则返回步骤S502,即:重新获取该产品的仿真配置信息,设置对应的仿真配置表。

S506、生成测试代码。

本公开实施例中,利用自动化脚本生成测试代码。测试代码一般为SystemVerilog语言描述的命令行。

S507、仿真并转存波形。

本公开实施例中,根据产品类型及DRAM频率,自动加载Verilog仿真的验证环境,将S506步骤中生成的测试代码通过标准模型跑仿真,并将部分输入信号波形和输出信号波形转存为波形文件。

S508、判断仿真是否成功。

本公开实施例中,调取Verilog仿真的日志文件,查看Verilog仿真是否成功。若仿真成功,则进入S509步骤;若仿真失败,则报错并结束流程。

S509、生成原始激励文件。

本公开实施例中,根据组成模式,将部分波形从仿真结果中导出成CSV文本,得到原始的激励。例如,可通过EDA工具Sim Vision的相关接口实现。

S510、后处理并生成仿真激励文件。

本公开实施例中,用自动化脚本对原始激励文件进行后处理操作,将数字表示的激励文件转化为连续变化量表示的激励文件,即:用自动化脚本将矢量模式定义和波形参数设置补充至原始激励文件;从而,生成仿真激励文件。

本公开实施例还提供了一种自动生成仿真激励的装置100,参考图2,自动生成仿真激励的装置100包括:

仿真配置界面,被配置为获取待仿真电路的仿真配置信息,以及,基于仿真配置信息设置待仿真电路的仿真配置表,并且,基于仿真配置表生成测试图案;仿真配置信息包括:产品基本配置信息、模式寄存器配置信息和功能命令配置信息。

测试代码生成模块,被配置为接收来自仿真配置界面符合规则的测试图案;并且,根据符合规则的测试图案生成测试代码。

验证平台,被配置为接收来自测试代码生成模块的测试代码;并且,对测试代码进行仿真,得到对应的仿真结果。

激励生成模块,被配置为接收来自验证平台的仿真结果;并且,基于仿真结果,生成仿真激励文件。

本公开实施例中,参考图7,仿真配置界面设置有多个输入端,用户能够在仿真配置界面设置产品基本配置信息、模式寄存器配置信息和功能命令配置信息;从而,用户可以通过仿真配置界面选择并确定产品的仿真配置信息。

本公开实施例中,继续参考图7,仿真配置信息所包含的信息具有层级和先后顺序。用户需要先选择产品类型,进而,根据产品类型所确定的多个频率中选择对应的频率,以及,根据产品类型所确定的多个组成模式中选择对应的组成模式,也即:获取产品基本配置信息。在选择产品基本配置信息之后,才能根据产品基本配置信息所对应的产品规格,设置待仿真电路的模式寄存器和功能命令等其他配置,也即:获取产品的模式寄存器配置信息和功能命令配置信息。例如,产品类型选择为DDR4,频率选择为3200MHz,组成模式选择为X8。用户将产品类型设置为DDR4之后,才能够根据DDR4所对应的产品规格,单独配置MR0-MR6这七个模式寄存器,以及,配置不同功能命令以及设置功能命令对应的参数。部分功能命令对应的参数可以随机生成,例如,写命令中的数据I/O通道(DQ)可以利用仿真配置界面进行随机设置。

相应地,仿真配置表也具有层级和先后顺序。产品基本配置表处于一个层级。模式寄存器配置表和功能命令配置列表处于一个层级,并且,处于产品基本配置表所在层级的下一层级。在生成对应的产品基本配置表之后,才能够生成对应的模式寄存器配置表和功能命令配置列表。

也就是说,仿真配置界面提供了能够用于获取待仿真电路的仿真配置信息的用户接口。仿真配置信息的各个信息具有层级,进而,能够按照先后顺序获取仿真配置表。这样,在设置仿真配置表的过程中,能够有效避免漏配或错配,降低了出错率;并且,按照层级逐个设置仿真配置表,能够避免遍历所有的配置信息,提高了获取仿真配置表的效率;从而,提高了芯片的验证效率。同时,本公开实施例能够提供设置功能命令的端口,更加便于定制具有特定功能命令的产品。

本公开的一些实施例中,装置还包括检查模块,检查模块被配置为根据预设的规则文件,检查测试图案是否符合规则。

本公开实施例中,继续参考图2,自动生成仿真激励的装置100还包括检查模块。检查模块被配置为根据预设的规则文件,检查测试图案是否符合规则。这样,相较于相关技术,采用本公开实施例,有效地保障了测试图案的正确性,降低了出错率,提高了芯片的验证效率。

本公开的一些实施例中,仿真配置界面还被配置为:若测试图案不符合规则,则重新获取待仿真电路的仿真配置信息,设置仿真配置表,并生成新的测试图案,直至新的测试图案符合规则。

本公开的一些实施例中,测试代码生成模块还被配置为:根据代码语法及对应规则,通过自动化脚本将测试图案生成应用于仿真的测试代码。

本公开的一些实施例中,验证平台还被配置为:确定待仿真电路对应的标准模型;根据标准模型,自动建立验证平台的仿真环境;以及将测试代码加载至仿真环境进行verilog仿真,以得到对应的仿真结果。

本公开的一些实施例中,验证平台还被配置为:获取verilog仿真日志,并根据日志文件检查verilog仿真是否成功;若verilog仿真成功,则基于仿真结果,生成仿真激励文件;若verilog仿真不成功,则结束当前流程。

本公开的一些实施例中,激励生成模块还被配置为:基于仿真配置表,根据仿真结果中的部分波形生成原始激励文件;对原始激励文件进行后处理,生成仿真激励文件。

本公开的一些实施例中,激励生成模块还被配置为:向原始激励文件添加矢量模式定义和波形参数设置。

图9为本申请实施例提供的自动生成仿真激励的装置100的一个可选的结构示意图,参考图9,自动生成仿真激励的装置100的硬件实体包括:处理器101、存储器102和通信接口103。处理器101通常控制自动生成仿真激励的装置100的总体操作。通信接口103可以使自动生成仿真激励的装置100通过网络与其他装置或设备通信。存储器102配置为存储由处理器101可执行的指令和应用,还可以缓存待处理器101以及自动生成仿真激励的装置100中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random Access Memory,RAM)实现。

需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的芯片测试方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得自动生成仿真激励的装置100(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。

本公开实施例提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述检测装置对应的方法中的步骤。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。本公开所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。本公开所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。本公开所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。

以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 一种APP的自动生成方法、装置、终端设备及可读存储介质
  • 参考文献自动生成方法、装置及计算机可读取存储介质
  • 闪购活动自动生成方法及装置、存储介质、电子设备
  • 物料出入库票据的自动生成方法、装置及计算机存储介质
  • 射频电路仿真方法、射频电路仿真装置及存储介质
  • 随访计划的自动生成方法、自动生成装置及存储介质
  • 测试脚本的自动生成方法、自动生成装置及存储介质
技术分类

06120115970506