全可编程SOC芯片的MIO功能快速验证方法转让专利

申请号 : CN202110195437.5

文献号 : CN113010361B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 郭佳形丛红艳闫华单悦尔赵赛

申请人 : 无锡中微亿芯有限公司中国电子科技集团公司第五十八研究所

摘要 :

本发明公开了一种全可编程SOC芯片的MIO功能快速验证方法,涉及芯片验证技术领域,该方法利用集成AXI系统环境的验证环境平台,能够根据全可编程SOC芯片的MIO参数数据快速将验证用例加入到验证环境当中,通过AXI系统环境提供的相应序列可以遍历所有MIO端口的所有功能模式进行快速验证,可有效提升验证速度、提高验证覆盖率和调试的效率,在MIO参数数据发生变化时也可以快速迭代重新仿真,满足全可编程SOC芯片的MIO功能验证的需求。

权利要求 :

1.一种全可编程SOC芯片的MIO功能快速验证方法,其特征在于,所述方法包括:初始化验证环境平台,所述验证环境平台包括测试用例层及其包含的验证环境层,所述验证环境层集成AXI系统环境;

将待验证的全可编程SOC芯片的MIO参数数据输入所述验证环境平台的测试用例层,所述测试用例层调用测试代码根据所述MIO参数数据在验证环境中构建得到验证用例,所述MIO参数数据至少包括所述全可编程SOC芯片中的MIO端口的数量以及每个MIO端口的所有功能模式,MIO端口的功能模式包括所述MIO端口作为输入端口时的所有MOS管传输类型、所有上拉状态电压值和所有三态电压值,以及,所述MIO端口作为输出端口时的所有MOS管传输类型、所有上拉状态电压值和所有三态电压值;

所述验证用例利用所述AXI系统环境中的master_base_sequence根据第i个目标地址以及第j个目标数据对所述全可编程SOC芯片中的寄存器进行配置、将所述第i个目标地址的寄存器配置为所述第j个目标数据,使得所述全可编程SOC芯片中由第i个目标地址的寄存器控制的第i个MIO端口工作在所述第j个目标数据对应的第j个功能模式下,i和j均为参数且起始值均为1;所述测试用例调用uvm_hdl_*类函数利用测试数据对所述第i个MIO端口的第j个功能模式进行测试得到验证结果;

若j<N则令j=j+1,若j=N且i<M则令i=i+1并令j=1,再次执行所述利用所述AXI系统环境中的master_base_sequence根据第i个目标地址以及第j个目标数据对所述全可编程SOC芯片中的寄存器进行配置的步骤;

若j=N且i=M,则完成对所述全可编程SOC芯片的MIO功能验证,N为所述第i个MIO端口的功能模式的总数量,M为所述全可编程SOC芯片中的MIO端口的数量。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:使用带参数的宏定义将所述AXI系统环境中的master_base_sequence对寄存器的配置操作编写为宏函数,所述宏函数的参数包括寄存器地址和配置值;

则所述利用所述AXI系统环境中的master_base_sequence根据第i个目标地址以及第j个目标数据对所述全可编程SOC芯片中的寄存器进行配置,包括:将所述第i个目标地址作为所述宏函数的寄存器地址、将所述第j个目标数据作为所述宏函数的配置值,调用所述宏函数生成符合AXI协议的数据对所述全可编程SOC芯片中的寄存器进行访问配置。

3.根据权利要求1所述的方法,其特征在于,所述全可编程SOC芯片中的寄存器的寄存器地址连续,则所述第i个目标地址为在基地址与偏移地址之和,所述偏移地址与循环次数变量i的取值相关,所述基地址为第一个目标地址。

4.根据权利要求1所述的方法,其特征在于,所述测试数据包括若干个测试输入值及各自对应的输出预估值,所述利用测试数据对所述第i个MIO端口的第j个功能模式进行测试得到验证结果,包括:

当所述第j个功能模式为所述第i个MIO端口作为输入端口时的功能模式时,在所述第i个MIO端口依次输入测试输入值、在所述全可编程SOC芯片内部IO模块的输出端获取对应的测试实际值并与对应的输出预估值比较得到验证结果;

当所述第j个功能模式为所述第i个MIO端口作为输出端口时的功能模式时,在所述全可编程SOC芯片内部IO模块的输入端依次输入测试输入值、在所述第i个MIO端口获取对应的测试实际值并与对应的输出预估值比较得到验证结果。

5.根据权利要求4所述的方法,其特征在于,所述在所述第i个MIO端口依次输入测试输入值、在所述全可编程SOC芯片内部IO模块的输出端获取对应的测试实际值,包括:利用$psprintf格式化输出函数根据循环次数变量i形成第i个MIO端口的后门操作地址并传入uvm_hdl_deposit函数作为参数,将所述测试数据中的测试输入值也传入uvm_hdl_deposit函数作为参数,调用uvm_hdl_deposit函数利用第i个MIO端口的后门操作地址对所述第i个MIO端口写入所述测试输入值;

利用$psprintf格式化输出函数第i个MIO端口的后门操作地址传入uvm_hdl_read函数作为参数,调用uvm_hdl_read函数利用所述第i个MIO端口的后门操作地址读取所述全可编程SOC芯片内部IO模块的输出端的值获取对应的测试实际值。

6.根据权利要求1所述的方法,其特征在于,所述方法还包括:输出对所述全可编程SOC芯片的MIO功能验证的仿真日志和仿真波形。

说明书 :

全可编程SOC芯片的MIO功能快速验证方法

技术领域

[0001] 本发明涉及芯片验证技术领域,尤其是一种全可编程SOC芯片的MIO功能快速验证方法。

背景技术

[0002] 随着半导体制造技术的不断快速发展,芯片的集成度越来越高、功能也越来越强大,传统的SOC芯片已经无法满足需求,因此全可编程SOC芯片应运而生,该芯片集成了嵌入
式处理器和FPGA芯片、提供了一个更加灵活的解决方案,既具备了传统SOC芯片的所有优
势,又克服了传统SOC芯片灵活性差、专用性强以及设计复杂的缺点。
[0003] 全可编程SOC芯片中包含较多的多路复用IO(MIO,Multiuse I/O),MIO是内部数据与外设之间交互的窗口,因此对MIO的功能验证是保证芯片正常工作的最后一道关口。在全
可编程SOC芯片中,每个MIO可以配置为输入/输出端口,在输入/输出两种情况,分别可以配
置成上拉和三态的状态,实现输出驱动强度的调整,同时还有多种不同的MOS类型,各种功
能模式在芯片实际使用过程中均会触发,因此验证过程复杂繁琐,目前对MIO的验证都是手
动编写每一个MIO测试案例,验证周期较长而且验证覆盖率难以保证,验证效率较低。

发明内容

[0004] 本发明人针对上述问题及技术需求,提出了一种全可编程SOC芯片的MIO功能快速验证方法,本发明的技术方案如下:
[0005] 一种全可编程SOC芯片的MIO功能快速验证方法,该方法包括:
[0006] 初始化验证环境平台,验证环境平台包括测试用例层及其包含的验证环境层,验证环境层集成AXI系统环境;
[0007] 将待验证的全可编程SOC芯片的MIO参数数据输入验证环境平台的测试用例层,测试用例层调用测试代码根据MIO参数数据在验证环境中构建得到验证用例,MIO参数数据至
少包括全可编程SOC芯片中的MIO端口的数量以及每个MIO端口的所有功能模式;
[0008] 验证用例利用AXI系统环境中的master_base_sequence根据第i个目标地址以及第j个目标数据对全可编程SOC芯片中的寄存器进行配置、将第i个目标地址的寄存器配置
为第j个目标数据,使得全可编程SOC芯片中由第i个目标地址的寄存器控制的第i个MIO端
口工作在第j个目标数据对应的第j个功能模式下,i和j均为参数且起始值均为1;测试用例
调用uvm_hdl_*类函数利用测试数据对第i个MIO端口的第j个功能模式进行测试得到验证
结果;
[0009] 若j<N则令j=j+1,若j=N且i<M则令i=i+1并令j=1,再次执行利用AXI系统环境中的master_base_sequence根据第i个目标地址以及第j个目标数据对全可编程SOC芯片
中的寄存器进行配置的步骤;
[0010] 若j=N且i=M,则完成对全可编程SOC芯片的MIO功能验证,N为第i个MIO端口的功能模式的总数量,M为全可编程SOC芯片中的MIO端口的数量。
[0011] 其进一步的技术方案为,MIO端口的功能模式包括MIO端口作为输入端口时的所有MOS管传输类型、所有上拉状态电压值和所有三态电压值,以及,MIO端口作为输出端口时的
所有MOS管传输类型、所有上拉状态电压值和所有三态电压值。
[0012] 其进一步的技术方案为,该方法还包括:
[0013] 使用带参数的宏定义将AXI系统环境中的master_base_sequence对寄存器的配置操作编写为宏函数,宏函数的参数包括寄存器地址和配置值;
[0014] 则利用AXI系统环境中的master_base_sequence根据第i个目标地址以及第j个目标数据对全可编程SOC芯片中的寄存器进行配置,包括:
[0015] 将第i个目标地址作为宏函数的寄存器地址、将第j个目标数据作为宏函数的配置值,调用宏函数生成符合AXI协议的数据对全可编程SOC芯片中的寄存器进行访问配置。
[0016] 其进一步的技术方案为,全可编程SOC芯片中的寄存器的寄存器地址连续,则第i个目标地址为在基地址与偏移地址之和,偏移地址与循环次数变量i的取值相关,基地址为
第一个目标地址。
[0017] 其进一步的技术方案为,测试数据包括若干个测试输入值及各自对应的输出预估值,利用测试数据对第i个MIO端口的第j个功能模式进行测试得到验证结果,包括:
[0018] 当所第j个功能模式为第i个MIO端口作为输入端口时的功能模式时,在第i个MIO端口依次输入测试输入值、在全可编程SOC芯片内部IO模块的输出端获取对应的测试实际
值并与对应的输出预估值比较得到验证结果;
[0019] 当第j个功能模式为第i个MIO端口作为输出端口时的功能模式时,在全可编程SOC芯片内部IO模块的输入端依次输入测试输入值、在第i个MIO端口获取对应的测试实际值并
与对应的输出预估值比较得到验证结果。
[0020] 其进一步的技术方案为,在第i个MIO端口依次输入测试输入值、在全可编程SOC芯片内部IO模块的输出端获取对应的测试实际值,包括:
[0021] 利用$psprintf格式化输出函数根据循环次数变量i形成第i个MIO端口的后门操作地址并传入uvm_hdl_deposit函数作为参数,将测试数据中的测试输入值也传入uvm_
hdl_deposit函数作为参数,调用uvm_hdl_deposit函数利用第i个MIO端口的后门操作地址
对第i个MIO端口写入测试输入值;
[0022] 利用$psprintf格式化输出函数第i个MIO端口的后门操作地址传入uvm_hdl_read函数作为参数,调用uvm_hdl_read函数利用第i个MIO端口的后门操作地址读取全可编程
SOC芯片内部IO模块的输出端的值获取对应的测试实际值。
[0023] 其进一步的技术方案为,该方法还包括:
[0024] 输出对全可编程SOC芯片的MIO功能验证的仿真日志和仿真波形。
[0025] 本发明的有益技术效果是:
[0026] 本申请公开了一种全可编程SOC芯片的MIO功能快速验证方法,该方法利用集成AXI系统环境的验证环境平台能够根据全可编程SOC芯片的MIO参数数据快速将验证用例加
入到验证环境当中,自动在验证用例中遍历所有MIO端口进行包括读写测试、状态控制等的
功能快速验证,该方法可以一次性将所有MIO端口的所有功能模式覆盖,提升验证速度、提
高验证覆盖率和调试的效率。另外,该方法使得在MIO参数数据发生变化时可以快速迭代重
新仿真,减少了重复工作和后期环境的维护负担,满足全可编程SOC芯片的MIO功能验证的
需求。

附图说明

[0027] 图1是本申请公开的方法的流程示意图。
[0028] 图2是本申请中的验证环境平台的结构示意图。

具体实施方式

[0029] 下面结合附图对本发明的具体实施方式做进一步说明。
[0030] 本申请公开了一种全可编程SOC芯片的MIO功能快速验证方法,该方法包括如下步骤,请参考图1:
[0031] 1、初始化验证环境平台。请参考图2,该验证环境平台包括测试用例层Test及其包含的验证环境层SOC_ENV,验证环境层SOC_ENV集成AXI系统环境Axi_env,验证环境层SOC_
ENV还集成了其他模块的agent环境。AXI系统环境Axi_env中主要包括AXI序列器模块(Axi_
sequence)、AXI驱动器(driver)、Master接口和Slave接口,本申请利用Master接口连接待
验证的全可编程SOC芯片。Axi_env是新思的VIP环境,集成了Axi_env就能调用AXI系统环境
中的序列sequence代替全可编程SOC芯片的cpu发送向全可编程SOC芯片中的寄存器、RAM和
DDR等模块发送命令进行读写操作。利用Axi_env中的各种sequence可以用来验证全可编程
SOC芯片内的不同软核和硬核,同时可以大大减少验证环境的调试时间。
[0032] 2、将待验证的全可编程SOC芯片的MIO参数数据输入验证环境平台的测试用例层Test。本申请中的MIO参数数据至少包括全可编程SOC芯片中的MIO端口的数量以及每个MIO
端口的所有功能模式,每个MIO端口的功能模式包括该MIO端口在作为输入端口时的所有
MOS管传输类型、所有上拉状态电压值和所有三态电压值,以及该MIO端口在作为输出端口
时的所有MOS管传输类型、所有上拉状态电压值和所有三态电压值。
[0033] 3、测试用例层Test调用测试代码根据MIO参数数据在验证环境中构建得到验证用例。为了减少环境的复杂度,本申请的测试代码写在测试用例层Test的主函数中便于
debug。测试代码利用了两个循环结构,外循环用来控制每一个MIO端口的验证,而内循环则
用来控制一个MIO端口的不同功能模式的验证,以此生成相应的验证用例自动对全可编程
SOC芯片的MIO功能实现快速验证。为了保证验证的完备性,简化验证流程,本申请将测试代
码封装成脚本,因此只需执行脚本即可构建得到验证用例,保证了代码准确性,减少验证周
期。同时当MIO网表发生变化导致MIO参数数据发生变化时,可以快速迭代重新仿真,减少了
重复工作和后期环境的维护负担。
[0034] 4、验证用例按照测试代码的两个循环结构来实施,实施过程如下:
[0035] (1)利用AXI系统环境中的master_base_sequence根据第i个目标地址以及第j个目标数据对全可编程SOC芯片中的寄存器进行配置、将第i个目标地址的寄存器配置为第j
个目标数据。全可编程SOC芯片中的MIO端口均由对应的寄存器进行控制,不同寄存器地址
的寄存器控制不同的MIO端口,当寄存器的配置值不同时,寄存器控制对应的MIO端口工作
在相应的功能模式下,因此本申请将第i个目标地址作为寄存器地址、将第j个目标数据作
为寄存器的配置值,从而使得全可编程SOC芯片中由第i个目标地址的寄存器控制的第i个
MIO端口工作在第j个目标数据对应的第j个功能模式下。其中,i和j均为参数且起始值均为
1。
[0036] 本申请使用带参数的宏定义将AXI系统环境中的master_base_sequence对寄存器的配置操作编写为宏函数,宏函数的参数包括寄存器地址和配置值,然后将第i个目标地址
作为宏函数的寄存器地址、将第j个目标数据作为宏函数的配置值,直接调用宏函数生成符
合AXI协议的数据对全可编程SOC芯片中的寄存器进行访问配置,大大减少了对案例代码编
写和维护时间,代码结构也变得十分简洁易懂。
[0037] 另外,由于全可编程SOC芯片中的寄存器的寄存器地址是连续的,因此第i个目标地址为在基地址与偏移地址之和,基地址为第一个目标地址,偏移地址与循环次数变量i的
取值相关,可以表示为偏移地址=(i‑1)*固定偏移量,因此第i个目标地址=基地址+(i‑
1)*固定偏移量,固定偏移量与MIO参数数据相关。比如在一个实际的例子中,全可编程SOC
芯片中共有54个MIO端口需要验证,每个MIO端口在作为输入/输出端口时分别有7种MOS管
传输类型,则第i个目标地址=基地址+(i‑1)*32’h4。
[0038] (2)调用uvm_hdl_*类函数利用测试数据对第i个MIO端口的第j个功能模式进行测试得到验证结果。测试数据包括若干个测试输入值及各自对应的输出预估值,实际测试输
入值包括0/1输入值。
[0039] 当第j个功能模式为该第i个MIO端口作为输入端口时的功能模式时,在第i个MIO端口依次输入测试输入值、在全可编程SOC芯片内部IO模块的输出端获取对应的测试实际
值并与对应的输出预估值比较得到验证结果。具体的,MIO端口在系统中的后门操作地址固
定,只有数组索引数字发生变化,比如第i个MIO端口的后门操作地址可以表示为xxx.MIOi,
因此可以结合循环次数变量i得到每个MIO端口的后门操作地址,而uvm_hdl_*类函数可以
直接接受字符串为地址进行读写访问,因此本申请利用$psprintf格式化输出函数根据循
环次数变量i形成第i个MIO端口的后门操作地址,然后将字符串形式的后门操作地址传入
uvm_hdl_deposit函数作为参数,将测试数据中的测试输入值也传入uvm_hdl_deposit函数
作为参数,调用uvm_hdl_deposit函数利用第i个MIO端口的后门操作地址就可以对第i个
MIO端口写入测试输入值。利用$psprintf格式化输出函数将字符串形式的第i个MIO端口的
后门操作地址传入uvm_hdl_read函数作为参数,调用uvm_hdl_read函数利用第i个MIO端口
的后门操作地址就读取全可编程SOC芯片内部IO模块的输出端的值获取对应的测试实际
值。
[0040] 当第j个功能模式为该第i个MIO端口作为输出端口时的功能模式时,在全可编程SOC芯片内部IO模块的输入端依次输入测试输入值、在第i个MIO端口获取对应的测试实际
值并与对应的输出预估值比较得到验证结果。具体操作方式也类似,本申请不再赘述。
[0041] (3)若j<N则令j=j+1,若j=N且i<M则令i=i+1并令j=1,然后再次执行利用AXI系统环境中的master_base_sequence根据第i个目标地址以及第j个目标数据对全可编
程SOC芯片中的寄存器进行配置的步骤,也即重新执行上述(1)和(2)对该MIO端口的下一个
功能模式进行验证,或者对下一个MIO端口进行验证。其中,N为第i个MIO端口的功能模式的
总数量,M为全可编程SOC芯片中的MIO端口的数量。
[0042] (4)若j=N且i=M,则完成对全可编程SOC芯片的MIO功能验证,简化了整个验证流程,大大缩短了验证的周期,提高了验证的覆盖率,保证芯片的流片质量。
[0043] 本申请的测试用例层Test中主函数中的测试代码还集成有丰富的打印机制,因此本申请在执行时,还会输出对全可编程SOC芯片的MIO功能验证的仿真日志和仿真波形,便
于验证人员分析。
[0044] 本申请提供的上述方法既能满足芯片前期的冒烟测试需求,也可以满足全芯片的bist代码测试需求,也可以满足设计人员验证系统仿真的需求。代码发生变化情况下短时
间内可以快速重新仿真debug,缩短了芯片验证周期。本发明具有灵活生成不同芯片MIO的
验证案例的功能,还能够减少环境代码和测试文件的编写维护,提高验证效率,最大限度的
提高验证模块的覆盖率,能够满足全可编程SOC电路MIO功能验证的需求。
[0045] 以上所述的仅是本申请的优选实施方式,本发明不限于以上实施例。可以理解,本领域技术人员在不脱离本发明的精神和构思的前提下直接导出或联想到的其他改进和变
化,均应认为包含在本发明的保护范围之内。