本发明涉及一种集成电路验证技术领域,特别是一种基于断言的存储器控制器接口时序参数化验证系统。
背景技术:
随着SoC越来越复杂,所使用的各个存储器的类型以及访问时序的复杂度也不断增加,对其进行仿真验证所需要的时间和人力资源也越来越多,在有限的项目时间内完成验证任务的紧迫性越来越强。
对于存储器时序验证的传统验证方法,是通过抓取仿真过程中的存储器接口访问波形,然后通过人工确认的方式保证时序的正确性。
上述已有方式存在的缺点主要表现在:(1)耗时,需要耗费大量的时间抓取波形并确认时序。(2)不准确,人为因素不能保证时序验证的正确性,容易出错。
技术实现要素:
本发明的目的在于克服现有技术的上述不足,提供基于断言的存储器控制器接口时序参数化验证系统,提供基于断言的存储器控制器接口时序参数化验证系统,该方法能够大量节省验证时间,降低工作难度,并提高验证的准确性。
本发明的上述目的是通过如下技术方案予以实现的:
基于断言的存储器控制器接口时序参数化验证系统,包括配置单元、控制单元、断言文件库、验证所需的断言文件、待验证存储器控制器、连接单元、检测单元:
配置单元:人工录入配置参数,并将配置参数传输至断言文件库;
控制单元:人工录入控制参数,并将控制参数传输至断言文件库;
断言文件库:包括多个人工预先录入的断言文件;接收配置单元传来的配置参数;接收控制单元传来的控制参数;根据配置参数的数值和控制参数的数值选择验证所需的断言文件;
待验证存储器控制器:生成接口信号时序,通过连接单元将接口信号时序传输至验证所需的断言文件;接收检测单元传来的失败匹配信息,并根据检测单元传来的失败匹配信息对接口信号时序进行修改;
验证所需的断言文件:包括接口信号时序要求;接收待验证存储器控制器传来的接口信号时序,对接口信号时序和验证所需的断言文件中的接口信号时序要求进行匹配,生成匹配信息,并将匹配信息传输至检测单元;所述匹配信息包括匹配成功信号INFO_SUC、或匹配失败信号INFO_FAIL和失败匹配信息;
检测单元:接收验证所需的断言文件传来的匹配信息,对匹配信息进行检测,当检测到匹配成功信号INFO_SUC时,不做处理;当检测到匹配失败信号INFO_FAIL时,将失败匹配信息传输至待验证存储器控制器;
直至所有匹配信息中全部为匹配成功信号时,验证结束。
在上述的基于断言的存储器控制器接口时序参数化验证系统,所述的配置参数包括:
type_prom为是否产生prom类型断言;
type_sram为是否产生sram类型断言;
type_sdram为是否产生sdram类型断言;
bw_prom为prom存储器位宽;
bw_sram为sram存储器位宽;
bw_sdram为sdram存储器位宽;
n_prom为prom存储器数量;
n_sram为sram存储器数量;
n_sdram为sdram存储器数量;
rw_prom为prom读等待周期数;
rw_sram为sram读等待周期数;
ww_prom为prom写等待周期数;
ww_sram为sram写等待周期数;
cas_sdram为sdram的cas延时等待周期数;
type_mem为自定义设备类型;
n_mem为自定义设备数量;
bw_mem为自定义设备存储器位宽;
info_suc为断言成功信息;
info_fail为断言失败信息;
其中type_prom、type_sram、type_sdram、type_mem取值为0或1;bw_prom、bw_prom、bw_sdram、bw_mem取值为8或16或32或64中之一,n_prom、n_sram、n_sdram、n_mem取值为任一正整数。
在上述的基于断言的存储器控制器接口时序参数化验证系统,所述的控制参数包括:
SVA_EN为待验证存储器控制器断言功能使能参数,当其取值为1时,使能断言功能,当其取值为0时,禁止断言功能;
ASSERTSTART_PROM为PROM断言启动参数,当SVA_EN取值为1且当ASSERTSTART_PROM取值为1时,启用验证所需的断言文件中的PROM断言文件;当ASSERTSTART_PROM取值为0时,不启用验证所需的断言文件中的PROM断言文件;
ASSERTSTART_SRAM为SRAM断言启动参数,当SVA_EN取值为1且ASSERTSTART_SRAM取值为1时,启用验证所需的断言文件中的SRAM断言文件,当ASSERTSTART_SRAM取值为0时,不启用验证所需的断言文件中的SRAM断言文件;
ASSERTSTART_SDRAM为SDRAM断言启动参数,当SVA_EN取值为1且ASSERTSTART_SDRAM取值为1时,启用验证所需的断言文件中的SDRAM断言文件,当ASSERTSTART_SDRAM取值为0时,不启用验证所需的断言文件中的SDRAM断言文件;
MSG为测试程序中可配置的参数,当测试程序中设置MSG为ASSERT_SRAM TRUN_ON时,可设置验证环境中的控制参数ASSERTSTART_SRAM为1,当测试程序中设置MSG为ASSERT_SRAMTRUN_OFF时,可设置验证环境中的控制参数ASSERTSTART_SRAM为0;当测试程序中设置MSG为ASSERT_SDRAM TRUN_ON时,可设置验证环境中的控制参数ASSERTSTART_SDRAM为1,当测试程序中设置MSG为ASSERT_SDRAM TRUN_OFF时,可设置验证环境中的控制参数ASSERTSTART_SDRAM为0。
在上述的基于断言的存储器控制器接口时序参数化验证系统,所述的验证所需的断言文件包括PROM断言文件、SRAM断言文件或SDRAM断言文件中的一种或多种。
在上述的基于断言的存储器控制器接口时序参数化验证系统,选择配置参数中的类型、存储器位宽、存储器数量和等待周期数与多个人工预先录入的断言文件中相同的断言文件作为验证所需的断言文件;根据SVA_EN、ASSERTSTART_PROM、ASSERTSTART_SRAM和ASSERTSTART_SDRAM的取值,判断验证所需的断言文件中,PROM断言文件、SRAM断言文件和SDRAM断言文件是否启用。
在上述的基于断言的存储器控制器接口时序参数化验证系统,所述的PROM断言文件、SRAM断言文件和SDRAM断言文件均包括接口信号时序要求。
在上述的基于断言的存储器控制器接口时序参数化验证系统,所述的接口信号时序包括:
PROM_RST[N_PROM]为PROM复位信号;
PROM_CLK[N_PROM]为PROM时钟信号;
PROM_ADDR[N_PROM]为PROM地址信号;
PROM_DATA[N_PROM]为PROM数据信号;
PROM_SN[N_PROM]为PROM片选信号;
PROM_WRITEN[N_PROM]为PROM写使能信号;
PROM_OEN[N_PROM]为PROM读使能信号;
N_PROM为待验证存储器控制器所具有的PROM接口的数量;
SRAM_RST[N_SRAM]为SRAM复位信号;
SRAM_CLK[N_SRAM]为SRAM时钟信号;
SRAM_ADDR[N_SRAM]为SRAM地址信号;
SRAM_DATA[N_SRAM]为SRAM数据信号;
SRAM_SN[N_SRAM]为SRAM片选信号;
SRAM_WRITEN[N_SRAM]为SRAM写使能信号;
SRAM_OEN[N_SRAM]为SRAM读使能信号;
N_SRAM为待验证存储器控制器所具有的SRAM接口的数量;
SDRAM_RST[N_SDRAM]为SDRAM复位信号;
SDRAM_CLK[N_SDRAM]为SDRAM时钟信号;
SDRAM_SDCSN[N_SDRAM]为SDRAM片选信号;
SDRAM_SDRASN[N_SDRAM]为SDRAM行地址选择信号;
SDRAM_SDCASN[N_SDRAM]为SDRAM列地址选择信号;
SDRAM_SDWEN[N_SDRAM]为SDRAM写使能信号;
SDRAM_SDDQM[N_SDRAM]为SDRAM字节选通信号;
N_SDRAM为待验证存储器控制器所具有的SDRAM接口的数量;
其中N_PROM、N_SRAM、N_SDRAM的个数可为任一正整数。
在上述的基于断言的存储器控制器接口时序参数化验证系统,所述的接口信号时序要求为:
要求PROM复位信号PROM_RST[N_PROM取值为0或1;
要求PROM时钟信号PROM_CLK[N_PROM]取值为0或1;
要求PROM地址信号PROM_ADDR[N_PROM]取值为0或1;
要求PROM数据信号PROM_DATA[N_PROM]取值为0或1;
要求PROM片选信号PROM_SN[N_PROM]取值为0或1;
要求PROM写使能信号PROM_WRITEN[N_PROM]取值为0或1;
要求PROM读使能信号PROM_OEN[N_PROM]取值为0或1;
要求SRAM复位信号SRAM_RST[N_SRAM]取值为0或1;
要求SRAM时钟信号SRAM_CLK[N_SRAM]取值为0或1;
要求SRAM地址信号SRAM_ADDR[N_SRAM]取值为0或1;
要求SRAM数据信号SRAM_DATA[N_SRAM]取值为0或1;
要求SRAM片选信号SRAM_SN[N_SRAM]取值为0或1;
要求SRAM写使能信号SRAM_WRITEN[N_SRAM]取值为0或1;
要求SRAM读使能信号SRAM_OEN[N_SRAM]取值为0或1;
要求SDRAM复位信号SDRAM_RST[N_SDRAM]取值为0或1;
要求SDRAM时钟信号SDRAM_CLK[N_SDRAM]取值为0或1;
要求SDRAM片选信号SDRAM_SDCSN[N_SDRAM]取值为0或1;
要求SDRAM行地址选择信号SDRAM_SDRASN[N_SDRAM]取值为0或1;
要求SDRAM列地址选择信号SDRAM_SDCASN[N_SDRAM]取值为0或1;
要求SDRAM写使能信号SDRAM_SDWEN[N_SDRAM]取值为0或1;
要求SDRAM字节选通信号SDRAM_SDDQM[N_SDRAM]取值为0或1。
在上述的基于断言的存储器控制器接口时序参数化验证系统,当接收待验证存储器控制器传来的接口信号时序的取值与验证所需的断言文件中接口信号时序要求相同时,认为匹配,否则认为不匹配。
本发明与现有技术相比具有如下优点:
(1)本发明连接单元能够把各种类型的存储器控制器的接口信号连接到断言文件库接口,增加本发明的易用性,使本发明能够重复利用,扩展应用范围;
(2)本发明配置单元把断言文件库产生断言所需确定的因素全部转化为可配置的参数,使得操作更加简单,容易掌握;
(3)本发明控制单元分别在验证环境和测试程序中设置控制参数,是断言的控制更加灵活多变,满足更多的需求;
(4)本发明在断言文件库单元例化了各存储器类型所需要使用的断言文件,能使断言的验证更加充分,且避免编写断言过程中造成的错误;
(5)本发明检测单元能够自动检测并报告失败的断言,节省大量的项目时间。
附图说明
图1为本发明验证系统示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细的描述:
如图1所示为验证系统示意图,由图可知,基于断言的存储器控制器接口时序参数化验证系统,包括配置单元、控制单元、断言文件库、验证所需的断言文件、待验证存储器控制器、连接单元、检测单元:
配置单元:人工录入配置参数,并将配置参数传输至断言文件库;其中,配置参数包括:
type_prom为是否产生prom类型断言;
type_sram为是否产生sram类型断言;
type_sdram为是否产生sdram类型断言;
bw_prom为prom存储器位宽;
bw_sram为sram存储器位宽;
bw_sdram为sdram存储器位宽;
n_prom为prom存储器数量;
n_sram为sram存储器数量;
n_sdram为sdram存储器数量;
rw_prom为prom读等待周期数;
rw_sram为sram读等待周期数;
ww_prom为prom写等待周期数;
ww_sram为sram写等待周期数;
cas_sdram为sdram的cas延时等待周期数;
type_mem为自定义设备类型;
n_mem为自定义设备数量;
bw_mem为自定义设备存储器位宽;
info_suc为断言成功信息;
info_fail为断言失败信息;
其中type_prom、type_sram、type_sdram、type_mem取值为0或1;bw_prom、bw_prom、bw_sdram、bw_mem取值为8或16或32或64中之一,n_prom、n_sram、n_sdram、n_mem取值为任一正整数。
控制单元:人工录入控制参数,并将控制参数传输至断言文件库;其中,控制参数包括:
SVA_EN为待验证存储器控制器断言功能使能参数,当其取值为1时,使能断言功能,当其取值为0时,禁止断言功能;
ASSERTSTART_PROM为PROM断言启动参数,当SVA_EN取值为1且当ASSERTSTART_PROM取值为1时,启用验证所需的断言文件中的PROM断言文件;当ASSERTSTART_PROM取值为0时,不启用验证所需的断言文件中的PROM断言文件;
ASSERTSTART_SRAM为SRAM断言启动参数,当SVA_EN取值为1且ASSERTSTART_SRAM取值为1时,启用验证所需的断言文件中的SRAM断言文件,当ASSERTSTART_SRAM取值为0时,不启用验证所需的断言文件中的SRAM断言文件;
ASSERTSTART_SDRAM为SDRAM断言启动参数,当SVA_EN取值为1且ASSERTSTART_SDRAM取值为1时,启用验证所需的断言文件中的SDRAM断言文件,当ASSERTSTART_SDRAM取值为0时,不启用验证所需的断言文件中的SDRAM断言文件;
MSG为测试程序中可配置的参数,当测试程序中设置MSG为ASSERT_SRAM TRUN_ON时,可设置验证环境中的控制参数ASSERTSTART_SRAM为1,当测试程序中设置MSG为ASSERT_SRAMTRUN_OFF时,可设置验证环境中的控制参数ASSERTSTART_SRAM为0;当测试程序中设置MSG为ASSERT_SDRAM TRUN_ON时,可设置验证环境中的控制参数ASSERTSTART_SDRAM为1,当测试程序中设置MSG为ASSERT_SDRAM TRUN_OFF时,可设置验证环境中的控制参数ASSERTSTART_SDRAM为0。
断言文件库:包括多个人工预先录入的断言文件;接收配置单元传来的配置参数;接收控制单元传来的控制参数;根据配置参数的数值和控制参数的数值选择验证所需的断言文件,验证所需的断言文件包括PROM断言文件、SRAM断言文件或SDRAM断言文件中的一种或多种。
选择验证所需的断言文件的方法为:选择配置参数中的类型、存储器位宽、存储器数量和等待周期数与多个人工预先录入的断言文件中相同的断言文件作为验证所需的断言文件;根据SVA_EN、ASSERTSTART_PROM、ASSERTSTART_SRAM和ASSERTSTART_SDRAM的取值,判断验证所需的断言文件中,PROM断言文件、SRAM断言文件和SDRAM断言文件是否启用;PROM断言文件、SRAM断言文件和SDRAM断言文件均包括接口信号时序要求。
待验证存储器控制器:生成接口信号时序,通过连接单元将接口信号时序传输至验证所需的断言文件;接收检测单元传来的失败匹配信息,并根据检测单元传来的失败匹配信息对接口信号时序进行修改;
其中,接口信号时序包括:
PROM_RST[N_PROM]为PROM复位信号;
PROM_CLK[N_PROM]为PROM时钟信号;
PROM_ADDR[N_PROM]为PROM地址信号;
PROM_DATA[N_PROM]为PROM数据信号;
PROM_SN[N_PROM]为PROM片选信号;
PROM_WRITEN[N_PROM]为PROM写使能信号;
PROM_OEN[N_PROM]为PROM读使能信号;
N_PROM为待验证存储器控制器所具有的PROM接口的数量;
SRAM_RST[N_SRAM]为SRAM复位信号;
SRAM_CLK[N_SRAM]为SRAM时钟信号;
SRAM_ADDR[N_SRAM]为SRAM地址信号;
SRAM_DATA[N_SRAM]为SRAM数据信号;
SRAM_SN[N_SRAM]为SRAM片选信号;
SRAM_WRITEN[N_SRAM]为SRAM写使能信号;
SRAM_OEN[N_SRAM]为SRAM读使能信号;
N_SRAM为待验证存储器控制器所具有的SRAM接口的数量;
SDRAM_RST[N_SDRAM]为SDRAM复位信号;
SDRAM_CLK[N_SDRAM]为SDRAM时钟信号;
SDRAM_SDCSN[N_SDRAM]为SDRAM片选信号;
SDRAM_SDRASN[N_SDRAM]为SDRAM行地址选择信号;
SDRAM_SDCASN[N_SDRAM]为SDRAM列地址选择信号;
SDRAM_SDWEN[N_SDRAM]为SDRAM写使能信号;
SDRAM_SDDQM[N_SDRAM]为SDRAM字节选通信号;
N_SDRAM为待验证存储器控制器所具有的SDRAM接口的数量;
其中N_PROM、N_SRAM、N_SDRAM的个数可为任一正整数。
验证所需的断言文件:包括接口信号时序要求;接收待验证存储器控制器传来的接口信号时序,对接口信号时序和验证所需的断言文件中的接口信号时序要求进行匹配,当接收待验证存储器控制器传来的接口信号时序的取值与验证所需的断言文件中接口信号时序要求相同时,认为匹配,否则认为不匹配。
当匹配后,生成匹配信息,并将匹配信息传输至检测单元;所述匹配信息包括匹配成功信号INFO_SUC、或匹配失败信号INFO_FAIL和失败匹配信息;其中,接口信号时序要求为:
要求PROM复位信号PROM_RST[N_PROM取值为0或1;
要求PROM时钟信号PROM_CLK[N_PROM]取值为0或1;
要求PROM地址信号PROM_ADDR[N_PROM]取值为0或1;
要求PROM数据信号PROM_DATA[N_PROM]取值为0或1;
要求PROM片选信号PROM_SN[N_PROM]取值为0或1;
要求PROM写使能信号PROM_WRITEN[N_PROM]取值为0或1;
要求PROM读使能信号PROM_OEN[N_PROM]取值为0或1;
要求SRAM复位信号SRAM_RST[N_SRAM]取值为0或1;
要求SRAM时钟信号SRAM_CLK[N_SRAM]取值为0或1;
要求SRAM地址信号SRAM_ADDR[N_SRAM]取值为0或1;
要求SRAM数据信号SRAM_DATA[N_SRAM]取值为0或1;
要求SRAM片选信号SRAM_SN[N_SRAM]取值为0或1;
要求SRAM写使能信号SRAM_WRITEN[N_SRAM]取值为0或1;
要求SRAM读使能信号SRAM_OEN[N_SRAM]取值为0或1;
要求SDRAM复位信号SDRAM_RST[N_SDRAM]取值为0或1;
要求SDRAM时钟信号SDRAM_CLK[N_SDRAM]取值为0或1;
要求SDRAM片选信号SDRAM_SDCSN[N_SDRAM]取值为0或1;
要求SDRAM行地址选择信号SDRAM_SDRASN[N_SDRAM]取值为0或1;
要求SDRAM列地址选择信号SDRAM_SDCASN[N_SDRAM]取值为0或1;
要求SDRAM写使能信号SDRAM_SDWEN[N_SDRAM]取值为0或1;
要求SDRAM字节选通信号SDRAM_SDDQM[N_SDRAM]取值为0或1。
检测单元:接收验证所需的断言文件传来的匹配信息,对匹配信息进行检测,当检测到匹配成功信号INFO_SUC时,不做处理;当检测到匹配失败信号INFO_FAIL时,将失败匹配信息传输至待验证存储器控制器;
直至所有匹配信息中全部为匹配成功信号时,验证结束。
基于断言的存储器控制器接口时序参数化验证系统有以下单元组成:连接单元,连接单元能够把待验证存储器控制器的接口信号和断言文件库中对应的接口信号连接到一起;配置单元,配置单元中配置断言文件库中需要的存储器类型、数量、断言信息等参数;控制单元,控制单元中设置了控制断言功能使能以及断言信息输出等控制参数;断言文件库单元,断言文件库单元能够通过接收来各单元的参数产生满足条件的断言文件供验证环境使用;检测单元,检测单元能够通过断言文件产生的信息来判断断言文件的检测结果,通过这些检测结果来判断需要验证的设计是否满足要求。
读取存储器类型参数,对存储器类型进行判断,存储器类型为1个或多个,此例中存储器类型为SRAM。
根据存储器类型读取接口连接信号,将断言文件库中断言所使用的默认的信号名和实际所使用的存储器设计的信号名对应连接起来,如果在系统配置运行的过程中发现默认配置的信号类别不符合实际应用的存储器信号类别,那么可以再对默认的信号类别进行增删,使其符合和实际使用的存储器的信号类别保持一致。此例中将断言文件库中SRAM断言的信号名和实际使用的SRAM的信号逐一连接。
根据存储器类型读取配置参数内容,根据参数内容设置断言文件库的存储器类型、数量、延时、断言信息等参数内容,如果在系统配置运行的过程中发现默认的配置参数无法满足实际应用的需求,那么可以再对默认的配置参数进行增删,调整配置参数使其满足实际使用需求,此例中将SRAM断言的配置参数读取到断言文件库中。
根据存储器类型读取控制参数内容,根据参数内容设置断言控制功能来控制断言功能的使能,断言模块的启动等。如果在系统配置运行过程中发现默认的控制参数不能够满足实际断言应用的控制需求,那么可以再对默认的控制参数进行增删,调整配置参数使其满足实际控制需求,此例中控制SRAM断言需把SVA_EN取值为1使能断言功能,把ASSERTSTART_SRAM取值为1启用SRAM断言文件,在测试程序中测试代码前后分别把MSG赋值为“ASSERT_SRAM TRUN_ON”和“ASSERT_SRAM TRUN_OFF”来控制SRAM断言文件的启用和停用。
断言文件库产生断言文件,此处需要注意的是如果在前面的步骤中对断言的接口信号、配置参数、控制参数有变动的话,此时断言文件库中的断言文件也需要做出相对应的变动。如果在系统运行过程中发现默认的断言文件的设置无法完全的对待验证存储器控制器接口时序进行断言,那么需要对断言文件库中的断言文件进行增删,以满足接口时序验证需求,此例中断言文件库中将产生PROM接口时序断言文件。
对存储器控制器接口时序进行断言验证后需要对结果进行检测,根据配置参数中设置的断言成功信息和断言失败信息即可查明接口时序的断言结果状态,如果断言失败说明验证的存储器控制器设计不满足断言时序,需更改设计错误,重新验证直到断言验证通过。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。