一种逻辑存储单元自动验证的方法及装置的制作方法

文档序号:6426722阅读:162来源:国知局
专利名称:一种逻辑存储单元自动验证的方法及装置的制作方法
技术领域
本发明涉及集成电路设计中逻辑验证技术领域,尤其涉及一种逻辑存储单元自动验证的方法及装置。
背景技术
逻辑存储单兀(寄存器/ 存储器)在 ASIC (Application Specific IntegratedCircuits,专用集成电路)/FPGA(Field-Programmable Gate Array,现场可编程门阵列)设计中是不可或缺的,逻辑存储单元具有数量大和不断变化的特点,在设计和验证过程中给开发和验证工作带来困难。以寄存器为例,一般来说,芯片中的寄存器数目往往达到成百上千个;并且,这些寄存器的设计规范经常需要修改,甚至在验证过程中,寄存器的设计规范仍在变化。
逻辑存储单元的这两个特点使得其维护及验证工作十分困难。一方面在编码阶段,大量的逻辑存储单元的RTL(Register Transfer Level,寄存器传输级)代码的编写较为耗时,验证工程师也需要编写大量的验证代码对它进行功能验证;更重要的是,一旦在设计中增加或减少了逻辑存储单元,或者修改了逻辑存储单元的字段长度、位置、读写性质初始值等属性,开发工程师必须修改逻辑存储单元的设计规范及代码,验证工程师必须在整个验证环境和所有测试文件中,对发生变化的逻辑存储单元的测试激励进行相应修改,这种维护工作是非常繁琐、耗时和容易出错的,同时这类对逻辑存储单元的修改操作,在验证过程中将始终存在并且频繁出现的。在现有技术中,Synopsys和Cadence公司公开了一种寄存器/存储器自动验证的解决方案,但是这两家公司的方案都有局限性一、它们都是基于验证方法学的,在不采用方法学的情况下,无法使用;二、它们采用自定义的文件格式来产生寄存器/存储器模型,工程师需要根据逻辑存储单元的设计规范去编写该寄存器/存储器模型文档,额外增加了工程师的工作量,也加大了出错的可能性。

发明内容
本发明要解决的技术问题是,提供一种逻辑存储单元自动验证的方法及装置,简化逻辑存储单元的验证流程,减少人为参与的工作量和出错几率。本发明采用的技术方案是,所述逻辑存储单元自动验证的方法,包括将一个逻辑芯片中所有逻辑存储单元的相关信息填入通用格式的逻辑存储单元模型文档;根据所述逻辑存储单元模型文档生成逻辑存储单元对应的RTL级代码;基于所述逻辑存储单元模型文档验证逻辑存储单元对应的RTL级代码。进一步的,对于逻辑芯片中的寄存器,所述逻辑存储单元相关信息包括寄存器的属性;对于逻辑芯片中的存储器,所述逻辑存储单元相关信息包括存储器的属性;
所述通用格式的模型文档为通用表格文件或者通用文本文件。进一步的,所述根据所述逻辑存储单元模型文档生成逻辑存储单元对应的RTL级代码,具体包括对于逻辑芯片中的寄存器,生成寄存器的RTL级代码的过程如下
将所述逻辑存储单元模型文档转换成逻辑仿真工具可识别的格式;从转换后的模型文档中读取寄存器的属性,通过逻辑仿真工具生成寄存器的RTL级代码;对于逻辑芯片中的存储器,生成存储器的RTL级代码的过程如下从所述逻辑存储单元模型文档中直接读取存储器的属性,输入到逻辑芯片自带的IP核(Intellectual Property core)生成工具中,生成存储器的RTL级代码。进一步的,所述基于所述逻辑存储单元模型文档验证逻辑存储单元对应的RTL级代码,具体包括从所述逻辑存储单元模型文档中读取所有逻辑存储单元的相关信息,为每个逻辑存储单元建立参考模型;通过将所述参考模型的预期结果与所述RTL级代码仿真的结果进行比较,对逻辑存储单元读写操作进行验证。进一步的,对于逻辑芯片中的寄存器,所述基于所述逻辑存储单元模型文档验证逻辑存储单元对应的RTL级代码,还包括通过将所述逻辑存储单元模型文档中寄存器的属性与寄存器的RTL级代码仿真的结果进行比较,对寄存器的复位初值进行验证。本发明还提供一种逻辑存储单元自动验证的装置,包括模型文档建立模块,用于将一个逻辑芯片中所有逻辑存储单元的相关信息填入通用格式的逻辑存储单元模型文档;RTL代码生成模块,用于根据所述逻辑存储单元模型文档生成逻辑存储单元对应的RTL级代码;逻辑存储单元验证模块,用于基于所述逻辑存储单元模型文档验证逻辑存储单元对应的RTL级代码。进一步的,对于逻辑芯片中的寄存器,所述逻辑存储单元相关信息包括寄存器的属性;对于逻辑芯片中的存储器,所述逻辑存储单元相关信息包括存储器的属性;所述通用格式的模型文档为通用表格文件或者通用文本文件。进一步的,所述RTL代码生成模块,具体包括针对逻辑芯片中寄存器的,格式转换子模块,用于将所述逻辑存储单元模型文档转换成逻辑仿真工具可识别的格式;逻辑仿真工具子模块,从转换后的模型文档中读取寄存器的属性,通过逻辑仿真工具生成寄存器的RTL级代码;以及,针对逻辑芯片中存储器的,读取模块,用于从所述逻辑存储单元模型文档中直接读取存储器的属性,输入到逻辑芯片自带的IP核生成工具中;IP核生成工具,用于根据存储器的属性生成存储器的RTL级代码。进一步的,所述逻辑存储单元验证模块,具体包括参考模型生成子模块,用于从所述逻辑存储单元模型文档中读取所有逻辑存储单元的相关信息,为每个逻辑存储单元建立参考模型;读写操作验证子模块,用于通过将所述参考模型的预期结果与所述RTL级代码仿真的结果进行比较,对逻辑存储单元的读写操作进行验证。进一步的,对于逻辑芯片中的寄存器,所述逻辑存储单元验证模块还包括初值验证子模块,用于通过将所述逻辑存储单元模型文档中寄存器的属性与寄存器的RTL级代码仿真的结果进行比较,对寄存器的复位初值进行验证。 采用上述技术方案,本发明至少具有下列优点本发明所述逻辑存储单元自动验证的方法及装置,由于采用在通用格式的逻辑存储单元模型文档中填入逻辑存储单元的相关信息作为设计规范,无需额外编写逻辑存储单元模型文件,在逻辑存储单元的设计及验证方面,提高自动化程度,减少人为参与的工作量、减少人为因素引起的错误。本发明具有简便、易用、高效、通用性高等特点。


图I为本发明第一实施例中逻辑存储单元自动验证的方法流程图;图2为本发明第一实施例中对逻辑芯片中的寄存器步骤S103具体流程图;图3为本发明第一实施例中对于逻辑芯片中的存储器步骤S103具体流程图;图4为本发明第二实施例中逻辑存储单元自动验证的装置结构示意图。
具体实施例方式为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明进行详细说明如后。本发明第一实施例,一种逻辑存储单元自动验证的方法,如图I所示,包括如下具体步骤步骤S101,将一个逻辑芯片中所有逻辑存储单元的相关信息填入通用格式的逻辑存储单元模型文档,作为逻辑存储单元的设计规范,即逻辑存储单元设计及验证的依据。具体的,通用格式的模型文档为通用表格文件或者通用文本文件,比如Xls文档、txt文档和doc文档等。通用格式的逻辑存储单元模型文档可以包含存储器和寄存器的所有可能属性,这些属性包括但不限于基址、起始偏移地址、结束偏移地址,逻辑存储单元名称、位宽、所选的逻辑芯片、掩码、读写属性、复位初值、类型、验证状态、逻辑存储单元说明。其中,验证状态包括参数化定义的表示该逻辑存储单元未验证或者已验证的状态信息,逻辑存储单元说明中描述的是该逻辑存储单元的其它信息,供开发人员查看。对于逻辑芯片中的存储器,可以向通用格式的逻辑存储单元模型文档中填入存储器的相关信息,即存储器的各项属性基址、起始偏移地址、结束偏移地址,位宽(包括读写数据总线位宽、读写地址总线位宽)、所选的逻辑芯片、类型、读写属性、验证状态、存储器说明;对于逻辑芯片中的寄存器,可以向通用格式的逻辑存储单元模型文档中填入寄存器的相关信息,即寄存器的各项属性基址、偏移地址、寄存器名称、位宽、掩码、读写属性、复位初值、类型、验证状态、寄存器说明,该偏移地址可以填入起始偏移地址中。步骤S102,生成逻辑存储单元对应的RTL级代码。具体的,步骤S102包括如下流程对于逻辑芯片中的寄存器, 将通用格式的逻辑存储单元模型文档转换成逻辑仿真工具可识别的格式。比如,Synopsys和Cadence公司的逻辑仿真工具可以识别的文件格式包括csv格式,故将通用格式的逻辑存储单元模型文档转换成csv的格式即可。从转换后的模型文档中读取寄存器的各项属性,通过逻辑仿真工具生成相应的RTL级代码。被测单元中寄存器的RTL级代码至少包括寄存器的地址、寄存器的复位初值和寄存器读写操作信息。一个被测单元中通常包含多个寄存器或者多个存储器。被测单元对外提供统一的输入输出端口,后续验证也是基于被测单元进行的。被测单元中的若干寄存器可以根据其所在的功能模块归属于不同的RTL级代码文件。对于逻辑芯片中的存储器,从所述逻辑存储单元模型文档中直接读取存储器的各项属性,输入到存储器所在的ASIC/FPGA自带的IP核生成工具,生成存储器的RTL级代码。存储器的RTL级代码可以按照存储器的类型来生成,每种类型生成一个即可。步骤S103,基于通用格式的逻辑存储单元模型文档验证逻辑存储单元对应的RTL级代码。具体的,一、对于逻辑芯片中的寄存器,如图2所示,步骤S103具体包括如下流程BI,从通用格式的逻辑存储单元模型文档中读取所有寄存器的相关信息,为每个寄存器建立行为级参考模型。所有寄存器的参考模型可以采用数组形式,每个数组元素中的数值是根据对应的寄存器的读写属性处理后得到的预期结果,能够反映出寄存器的行为级读写操作的功能。B2,通过将通用格式的逻辑存储单元模型文档中寄存器的相关信息与寄存器的RTL级代码仿真的结果进行比较,对寄存器的复位初值进行验证。具体的,模拟符合总线接口的时序对被测单元中寄存器的RTL级代码执行读操作的测试用例,将读操作的返回值与寄存器的复位初值进行比较,输出比较结果。B3,通过将参考模型的预期结果与寄存器的RTL级代码仿真的结果进行比较,对寄存器读写操作进行验证。例如,模拟符合总线接口的时序对被测单元中寄存器的RTL级代码执行读写操作的测试用例,通过写操作写入若干随机数后,再进行读操作,将读操作的返回值与参考模型中的预期结果进行比较,输出比较结果。比较时可以结合寄存器的掩码属性,只比较有效的比特位。优选的,读写操作的测试用例包括如下两种测试用例I :进行单个逻辑存储单元的读写功能验证,即完成一个存储单元进行多次写入、读出、结果判断的操作,再进行下一个存储单元的验证;测试用例2 :对所有的逻辑存储单元进行写操作,要求每个存储单元写入的值各不相同,同时将写入的数据保存到数组形式的参考模型中,写操作完成之后,再对所有的存储单元中进行读操作,将读操作的返回值和写入参考模型中的数值进行比较,以上操作重复多次。二、对于逻辑芯片中的存储器,如图3所示,步骤S103具体包括如下流程Cl,从通用格式的逻辑存储单元模型文档中读取所有存储器的相关信息,为每个存储器建立行为级参考模型。所有存储器的参考模型可以采用数组形式,每个数组元素中的数值是根据对应的存储器的读写属性处理后得到的预期结果,能够反映出存储器的行为级读写操作的功能。C2,通过将参考模型的预期结果与存储器的RTL级代码仿真的结果进行比较,对 存储器读写操作进行验证。本发明第二实施例,一种逻辑存储单元自动验证的装置,如图4所示,包括如下组成部分—、模型文档建立模块10,用于将一个逻辑芯片中所有逻辑存储单元的相关信息填入通用格式的逻辑存储单元模型文档,作为逻辑存储单元的设计规范。通用格式的模型文档为通用表格文件或者通用文本文件,比如xls文档、txt文档和doc文档等。通用格式的逻辑存储单元模型文档可以包含存储器和寄存器的所有可能属性,这些属性包括但不限于基址、起始偏移地址、结束偏移地址,逻辑存储单元名称、位宽、所选的逻辑芯片、掩码、读写属性、复位初值、类型、验证状态、逻辑存储单元说明。对于逻辑芯片中的存储器,可以向通用格式的逻辑存储单元模型文档中填入存储器的相关信息,即存储器的各项属性基址、起始偏移地址、结束偏移地址,位宽(包括读写数据总线位宽、读写地址总线位宽)、所选的逻辑芯片、类型、读写属性、验证状态、存储器说明;对于逻辑芯片中的寄存器,可以向通用格式的逻辑存储单元模型文档中填入寄存器的相关信息,即寄存器的各项属性基址、偏移地址、寄存器名称、位宽、掩码、读写属性、复位初值、类型、验证状态、寄存器说明,该偏移地址可以填入起始偏移地址中。二、寄存器RTL代码生成模块20,用于根据通用格式的逻辑存储单元模型文档生成寄存器的RTL级代码。寄存器RTL代码生成模块,具体包括格式转换子模块21,用于将通用格式的逻辑存储单元模型文档转换成逻辑仿真工具可识别的格式。比如,Synopsys和Cadence公司的逻辑仿真工具可以识别的文件格式包括csv格式,故,将通用格式的逻辑存储单元模型文档转换成csv的格式即可。逻辑仿真工具子模块22,用于从转换后的模型文档中读取寄存器的各项属性,生成寄存器的RTL级代码。被测单元中寄存器的RTL级代码至少包括寄存器的地址、寄存器的复位初值和寄存器读写操作信息。被测单元中的若干寄存器可以根据其所在的功能模块归属于不同的RTL级代码文件。一个被测单元中通常包含多个寄存器或者多个存储器。被测单元对外提供统一的输入输出端口,后续验证也是基于被测单元进行的。三、存储器RTL级代码生成模块30,用于根据通用格式的逻辑存储单元模型文档生成存储器的RTL级代码,存储器RTL级代码生成模块30具体包括
读取模块31,用于从通用格式的逻辑存储单元模型文档中直接读取存储器的属性,输入到逻辑芯片自带的IP核生成工具中;IP核生成工具32,用于根据存储器的属性生成存储器的RTL级代码。存储器的RTL级代码可以按照存储器的类型来生成,每种类型生成一个即可。四、逻辑存储单元验证模块40,用于基于所述逻辑存储单元模型文档验证其对应的RTL级代码。逻辑存储单元验证模块,具体包括参考模型生成子模块41,用于从逻辑存储单元模型文档中读取所有逻辑存储单元的相关信息,为每个逻辑存储单元建立行为级参考模型;初值验证子模块42,所述初值验证子模块仅针对逻辑存储单元为寄存器的情况存在,用于通过将逻辑存储单元模型文档中逻辑存储单元的相关信息与所述RTL级代码仿真的结果进行比较,对逻辑存储单元的复位初值进行验证。
具体的,初值验证子模块42驱动BFM(bus functional model,总线功能模型)产生符合总线接口的时序的读操作的测试用例,将读操作的返回值与寄存器的复位初值进行比较,输出比较结果。读写操作验证子模块43,用于通过将所述参考模型的预期结果与所述RTL级代码仿真的结果进行比较,对逻辑存储单元的读写操作进行验证。例如,读写操作验证子模块43驱动BFM产生符合总线接口的时序的读写操作,对RTL级代码执行读写操作的测试用例,通过写操作写入若干随机数后,再进行读操作,将读操作的返回值与参考模型中的预期结果进行比较,输出比较结果。对于寄存器的RTL级代码,比较时可以结合寄存器的掩码属性,之比较有效的比特位。优选的,读写操作的测试用例包括如下两种测试用例I :进行单个逻辑存储单元的读写功能验证,即完成一个存储单元进行多次写入、读出、结果判断的操作,再进行下一个存储单元的验证;测试用例2 :对所有的逻辑存储单元进行写操作,要求每个存储单元写入的值各不相同,同时将写入的数据保存到数组形式的参考模型中,写操作完成之后,再对所有的存储单元中进行读操作,将读操作的返回值和写入从参考模型中的数值进行比较,以上操作
重复多次。本发明所述逻辑存储单元自动验证的方法及装置,由于采用在通用格式的逻辑存储单元模型文档中填入逻辑存储单元的相关信息作为设计规范,无需额外编写逻辑存储单元模型文件,在逻辑存储单元的设计及验证方面,提高自动化程度,减少人为参与的工作量、减少人为因素引起的错误。本发明具有简便、易用、高效、通用性高等特点。通过具体实施方式
的说明,应当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图示仅是提供参考与说明之用,并非用来对本发明加以限制。
权利要求
1.一种逻辑存储单元自动验证的方法,其特征在于,包括 将一个逻辑芯片中所有逻辑存储单元的相关信息填入通用格式的逻辑存储单元模型文档; 根据所述逻辑存储单元模型文档生成逻辑存储单元对应的RTL级代码; 基于所述逻辑存储单元模型文档验证逻辑存储单元对应的RTL级代码。
2.根据权利要求I所述的方法,其特征在于, 对于逻辑芯片中的寄存器,所述逻辑存储单元相关信息包括寄存器的属性; 对于逻辑芯片中的存储器,所述逻辑存储单元相关信息包括存储器的属性; 所述通用格式的模型文档为通用表格文件或者通用文本文件。
3.根据权利要求2所述的方法,其特征在于,所述根据所述逻辑存储单元模型文档生成逻辑存储单元对应的RTL级代码,具体包括 对于逻辑芯片中的寄存器,生成寄存器的RTL级代码的过程如下 将所述逻辑存储单元模型文档转换成逻辑仿真工具可识别的格式; 从转换后的模型文档中读取寄存器的属性,通过逻辑仿真工具生成寄存器的RTL级代码; 对于逻辑芯片中的存储器,生成存储器的RTL级代码的过程如下 从所述逻辑存储单元模型文档中直接读取存储器的属性,输入到逻辑芯片自带的IP核生成工具中,生成存储器的RTL级代码。
4.根据权利要求I或2或3所述的方法,其特征在于,所述基于所述逻辑存储单元模型文档验证逻辑存储单元对应的RTL级代码,具体包括 从所述逻辑存储单元模型文档中读取所有逻辑存储单元的相关信息,为每个逻辑存储单元建立参考模型; 通过将所述参考模型的预期结果与所述RTL级代码仿真的结果进行比较,对逻辑存储单元读写操作进行验证。
5.根据权利要求4所述的方法,其特征在于,对于逻辑芯片中的寄存器,所述基于所述逻辑存储单元模型文档验证逻辑存储单元对应的RTL级代码,还包括 通过将所述逻辑存储单元模型文档中逻辑存储单元的属性与逻辑存储单元的RTL级代码仿真的结果进行比较,对逻辑存储单元的复位初值进行验证。
6.一种逻辑存储单元自动验证的装置,其特征在于,包括 模型文档建立模块,用于将一个逻辑芯片中所有逻辑存储单元的相关信息填入通用格式的逻辑存储单元模型文档; RTL代码生成模块,用于根据所述逻辑存储单元模型文档生成逻辑存储单元对应的RTL级代码; 逻辑存储单元验证模块,用于基于所述逻辑存储单元模型文档验证逻辑存储单元对应的RTL级代码。
7.根据权利要求6所述的装置,其特征在于,对于逻辑芯片中的寄存器,所述逻辑存储单元相关信息包括寄存器的属性; 对于逻辑芯片中的存储器,所述逻辑存储单元相关信息包括存储器的属性; 所述通用格式的模型文档为通用表格文件或者通用文本文件。
8.根据权利要求7所述的装置,其特征在于,所述RTL代码生成模块,具体包括 针对逻辑芯片中寄存器的, 格式转换子模块,用于将所述逻辑存储单元模型文档转换成逻辑仿真工具可识别的格式; 逻辑仿真工具子模块,从转换后的模型文档中读取寄存器的属性,通过逻辑仿真工具生成寄存器的RTL级代码;以及, 针对逻辑芯片中存储器的, 读取模块,用于从所述逻辑存储单元模型文档中直接读取存储器的属性,输入到逻辑 芯片自带的IP核生成工具中; IP核生成工具,用于根据存储器的属性生成存储器的RTL级代码。
9.根据权利要求6或7或8所述的装置,其特征在于,所述逻辑存储单元验证模块,具体包括 参考模型生成子模块,用于从所述逻辑存储单元模型文档中读取所有逻辑存储单元的相关信息,为每个逻辑存储单元建立参考模型; 读写操作验证子模块,用于通过将所述参考模型的预期结果与逻辑存储单元的RTL级代码仿真的结果进行比较,对逻辑存储单元的读写操作进行验证。
10.根据权利要求9所述的装置,其特征在于,对于逻辑芯片中的寄存器,所述逻辑存储单元验证模块还包括 初值验证子模块,用于通过将所述逻辑存储单元模型文档中逻辑存储单元的属性与逻辑存储单元的RTL级代码仿真的结果进行比较,对逻辑存储单元的复位初值进行验证。
全文摘要
本发明公开了一种逻辑存储单元自动验证的方法及装置,将一个逻辑芯片中所有逻辑存储单元的相关信息填入通用格式的逻辑存储单元模型文档;根据所述逻辑存储单元模型文档生成逻辑存储单元对应的RTL级代码;基于所述逻辑存储单元模型文档验证逻辑存储单元对应的RTL级代码。由于采用在通用格式的逻辑存储单元模型文档中填入逻辑存储单元的相关信息作为设计规范,无需额外编写逻辑存储单元模型文件,在逻辑存储单元的设计及验证方面,提高自动化程度,减少人为参与的工作量、减少人为因素引起的错误。本发明具有简便、易用、高效、通用性高等特点。
文档编号G06F17/50GK102841950SQ20111016738
公开日2012年12月26日 申请日期2011年6月21日 优先权日2011年6月21日
发明者洪瑞煌, 张轩, 陈文军 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1