CN116450427A - 芯片中复用引脚的自动化验证方法、装置、存储介质及计算机设备 - Google Patents

芯片中复用引脚的自动化验证方法、装置、存储介质及计算机设备 Download PDF

Info

Publication number
CN116450427A
CN116450427A CN202310162766.9A CN202310162766A CN116450427A CN 116450427 A CN116450427 A CN 116450427A CN 202310162766 A CN202310162766 A CN 202310162766A CN 116450427 A CN116450427 A CN 116450427A
Authority
CN
China
Prior art keywords
pin
assertion
chip
multiplexing
task
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310162766.9A
Other languages
English (en)
Inventor
肖云飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhuhai Taiwei Electronic Co ltd
Original Assignee
Zhuhai Taiwei Electronic Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhuhai Taiwei Electronic Co ltd filed Critical Zhuhai Taiwei Electronic Co ltd
Priority to CN202310162766.9A priority Critical patent/CN116450427A/zh
Publication of CN116450427A publication Critical patent/CN116450427A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2247Verification or detection of system hardware configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2289Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by configuration test
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本申请实施例公开了一种芯片中复用引脚的自动化验证方法、装置、存储介质及计算机设备,涉及芯片测试领域。本申请的方法包括:获取待测芯片的芯片引脚映射表;根据芯片引脚映射表确定待测芯片中各个引脚复用的特征;调用脚本生成的激励文件对引脚复用关系进行仿真验证输出仿真波形;利用脚本生成的断言实例文件对仿真波形进行检查;根据检查结果输出各个引脚的验证报告,本申请可以提高芯片的测试效率大大增加,以及避免人工检查波形造成的失误。

Description

芯片中复用引脚的自动化验证方法、装置、存储介质及计算机 设备
技术领域
本申请涉及芯片测试领域,尤其涉及一种芯片中复用引脚的自动化验证方法、装置、存储介质及计算机设备。
背景技术
通常一款芯片会兼容不同的应用方向,由于应用方向不同和成本的原因,采用不同的芯片引脚映射表也是很常见的。这就必然会使得芯片的外部引脚需要复用不同的内部功能,即某一个外部引脚在不同封装和应用中会与内部不同的内部模块进行连接交互。外部引脚复用的控制和选择通常在引脚复用模块中实现。引脚数量乘以平均每个引脚的复用数得到连接关系总数,数量级通常在几百到几千之间,对于这组连接关系的验证,称为“芯片引脚验证”。要对这个数量级的连接关系进行仿真验证,是一项繁重的任务。
发明内容
本申请实施例提供了芯片中复用引脚的自动化验证方法、装置、存储介质及计算机设备,可以解决现有技术中对芯片的复用引脚进行验证效率不高的问题。所述技术方案如下:
第一方面,本申请实施例提供了一种芯片中复用引脚的自动化验证方法,所述方法包括:
获取待测芯片的芯片引脚映射表;
根据所述芯片引脚映射表确定所述待测芯片中各个引脚复用的特征;
基于通用的UVM验证环境,调用脚本生成的激励文件对引脚复用关系进行仿真验证输出仿真波形;
利用脚本生成的断言实例文件对仿真波形进行检查;
根据检查结果输出各个引脚的验证报告。
第二方面,本申请实例提供了一种芯片中复用引脚的自动化验证装置,包括:
获取单元,用于获取待测芯片的芯片引脚映射表;
确定单元,用于根据所述芯片引脚映射表确定所述待测芯片中各个引脚复用的特征;
输出单元,用于基于通用的UVM验证环境,调用脚本生成的激励文件对引脚复用关系进行仿真验证输出仿真波形;
检查单元,用于利用脚本生成的断言实例文件对仿真波形进行检查;
报告单元,用于根据检查结果输出各个引脚的验证报告
第三方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。
第四方面,本申请实施例提供一种计算机设备,可包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的方法步骤。
本申请一些实施例提供的技术方案带来的有益效果至少包括:
使用统一的仿真验证环境对芯片的复用引脚进行测试,可以兼容不同芯片引脚映射表的芯片。
利用脚本自动调用激励文件对引脚进行信号激励,以及利用断言实例文件自动对输出的仿真模型进行检查,测试效率大大增加,通过断言的自动化检查,避免人工检查波形造成的失误。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本申请实施例提供的网络架构示意图;
图2是本申请实施例提供的芯片中复用引脚的自动化验证方法的流程示意图;
图3是本申请提供的一种芯片中复用引脚的自动化验证装置的结构示意图;
图4是本申请提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例方式作进一步地详细描述。
参见图1,为本申请实施例提供的通用的UVM验证环境的软件架构示意图,计算机设备利用该软件架构对芯片进行自动化验证。
通用的UVM验证环境包括:
Testbench的验证的顶层,会加载断言模版与实例文件,进行时钟设置,将UVM顶层环境(TOP-ENV)与芯片代码(RTL)进行互联。
Testbench加载的断言模板,包含预先写好的断言模版,如:工作状态时推挽模式下输出功能检查断言模版;工作状态时推挽模式下输如功能检查断言模版;工作状态时开漏模式下输入输出功能检查断言模版;非工作状态时内部模块输入信号检查断言模版;非工作状态时外部引脚信号检查断言模版。
Testbench会加载的断言实例文件,包含由脚本生成的所有断言实例。每一组引脚复用关系,都有多个断言实例进行检查。
UVM顶层环境(TOP-ENV,environment)包含一个AHB(Advanced High PerformanceBus,高级高性能总线)/APB(AdvancedPeripheral Bus,高级外围总线)-VIP(VerificationIntellectual Property,验证知识产权核),用于模拟CPU对寄存器进行配置,从而实现引脚复用配置。需要说明的是,AHB/APB-VIP仅仅是示意性的,本专利并不包含AHB/APB-VIP的内容,可以选用权利人的AHB/APB-VIP或者其他接口VIP对CPU进行模拟。Sequencer是一个通用的UVM组件,用于启动sequence。
底层sequence,包含预先写好的通用的底层任务,如:引脚复用配置任务、引脚复用清除任务、强制引脚任务、强制RTL内部输出任务、强制RTL输出失能任务、强制RTL输出使能任务、强制断言使能任务、强制断言失能任务。
顶层sequence,包含由脚本生成的所有激励文件,如:复用配置激励,信号驱动激励,断言使能驱动配置。
仿真验证时,会执行顶层sequence中的激励文件:
1、复用配置激励会调用底层sequence中的引脚复用配置任务和引脚复用清除任务,通过AHB/APB-VIP会配置相应的寄存器,选通或者关闭一组特定的引脚复用通路。
2、信号驱动激励会会调用底层sequence中的强制引脚任务、强制RTL内部输出任务、强制RTL输出失能任务、强制RTL输出使能任务,从而在引脚端或者芯片内部模块端施加或不施加输入或输出激励,以及使能或失能输入输出。
3、断言使能驱动配置会调用底层sequence中的强制断言使能任务、强制断言失能任务,从而开启或关闭特定的断言实例。开启的断言实例会自动检查仿真的波形是否符合预期,对于不符合预期的检查结果会自动输出报告。
4、上述步骤1、2、3根据具体的引脚复用通路,会有不同的执行顺序,实现了一组特定的引脚复用通路的配置、驱动、检查,完成了一组引脚复用关系的仿真验证。顶层sequence中的激励文件会对所有的引脚复用关系进行仿真验证。
请参见图2,为本申请实施例提供了一种芯片中复用引脚的自动化验证方法的流程示意图。如图2所示,本申请实施例的所述方法可以包括以下步骤:
S201、获取待测芯片的芯片引脚映射表。
其中,待测芯片的芯片引脚映射表表示芯片内核外部的封装方式和引脚数量,同一个芯片内核可能具有不同的芯片引脚映射表,芯片引脚映射表表示待测芯片的封装信息和引脚复用信息,封装类型包括但不限于PLGA(Plastic Land GridArray,塑料焊盘栅格阵列)、OLGA(Organic Land GridArray,基板栅格阵列)、BGA(Ball GridArray Package,球栅阵列封装)等。获取待测芯片的芯片引脚映射表的方法可以是:用户在验证装置中手动输入待测芯片的芯片引脚映射表,或上电后,验证装置在待测芯片中读取待测芯片的芯片引脚映射表。
S202、根据芯片引脚映射表确定待测芯片中各个引脚复用的特征。
其中,完成封装后的待测芯片具有多个外部的引脚,某些引脚可能为复用引脚,即一个引脚与待测芯片内部的多个功能模块连接,具有多个不同的功能,在芯片工作时,引脚可以选择其中任意一个功能。
在本申请,验证装置预配置有引脚复用映射表,在引脚复用映射表中,根据待测芯片的芯片引脚映射表查询各个引脚复用的特征(又称子功能)和引脚类型。引脚复用映射表包括芯片的芯片引脚映射表、各个引脚的复用信息,举例来说,引脚复用映射表使用表格pinmux.xls来表示,参见表1所示。
表1
同一个芯片内核可能具有不同的芯片引脚映射表,例如:根据表1中的信息,芯片内核的芯片引脚映射表为LQFP48和LQFP64,LQFP48分别表示封装形式为四侧引脚扁平封装,引脚数量为48;LQFP64表示封装形式为四个引脚扁平封装,引脚数量为64。引脚编号表示芯片内核的内部引脚的编号,引脚名称表示芯片外部引脚的名称,引脚类型包括输入引脚或输出引脚,复用信息表示引脚复用的功能模块和该功能模块的子功能模块,每个引脚复用至少两个子功能模块。例如:表1中的第1行表示,引脚编号为5,如果是LQPF48封装,那么该引脚为该芯片的第7个引脚;如果是LQPF64封装,那么该引脚为芯片的第5个引脚,该引脚的引脚名称为PA5,该引脚为I/O引脚,即可以作为输入引脚或输出引脚,该引脚可以复用芯片内核中的模块A特征1,模块B的特征1和模块C的特征5中的任意一个,具体复用哪个特征由芯片内的引脚复用模块的寄存器来决定。1个模块包括多个特征,每个特征对应不同的功能。
S203、基于通用的UVM验证环境,调用脚本生成的激励文件对引脚复用关系进行仿真验证输出仿真波形。
在本申请中,激励文件用于向引脚关联的各个特征输入激励信号,然后引脚上输出该记录信号对应的仿真波形。当引脚为输入引脚时,验证装置基于脚本自动生成激励文件,然后激励文件中的描述的信号特征生成激励信号,然后将激励信号从芯片外部从引脚输入到其关联的特征,特征处理该激励信号后输出仿真波形;当引脚为输出引脚时,激励信号给带芯片内部的特征,特征处理该激励信号后从引脚上向芯片外部输出仿真波形。
S204、利用脚本生成的断言实例文件对仿真波形进行检查。
其中,验证装置可以根据断言模板生成断言实例文件,断言实例文件根据其断言参数检查仿真波形是否满足预设参数条件,例如:幅度、频率和相位等,从而验证该引脚的功能是否符合要求。
S205、根据检查结果输出各个引脚的验证报告。
其中,验证报告中包括待测芯片中各个引脚的功能是否正常的测试结果。
在本申请中,验证装置通过脚本提取pinmux.xls表格内的信息,并且和RTL(Register Transfer Level,寄存器传输级)上的模块接口信号进行匹配,输出信号声明、信号驱动、断言、寄存器配置、仿真函数等文件。
在对各个引脚的功能进行验证之前,可以基于通用验证方法学(UniversalVerification Methodology,UVM)搭建一个通用的仿真验证环境,在sequence中预先定义若干底层task以及断言模版。在通用的仿真验证环境中调用脚本生成的文件(激励、信号定义、断言等)进行仿真验证。仿真验证过程中,脚本生成的断言实例文件会对仿真波形进行自动检查。
在一些实施例中,通用的仿真验证环境为一种软件架构,包括:test_top、顶层环境(TOP-ENV)和RTL、cpucfg_sequence、pinmux_sequence。
顶层环境仅包含一个AHB-VIP,用于模拟CPU进行寄存器配置。CPU配置寄存器的代码在cpucfg_sequence中实现。pinmux_sequence中实现了整个仿真流程的控制以及激励的驱动。
其中,pinmux_sequence继承自uvm_sequence,定义了8个底层任务task,通过在body_task中调用这8个激励任务task,实现激励驱动和流程控制。其中涉及到激励驱动的task以及断言控制的task,会调用脚本生成的激励文件。8个底层task分别如下:
引脚复用配置任务pinmux_cfg_task用于输入1、引脚名称(pin_name);2、复用号(reuse_id);3、是否是开漏输出。通过输入信息配置相应的寄存器值,从而配置某个引脚(PIN)和某个模块某个功能的复用。针对不同的测试时,在脚本生成的文件会给予pinmux_cfg_task相应的输入信息
引脚复用清除任务pinmux_clr_task用于:将所有pinmux相关的寄存器重新配置成默认值。在脚本生成的激励文件中,某一项测试完成后,会调用此task,将pinmux恢复回默认状态。
强制引脚任务force_pin_task用于:输入引脚名称(pin_name),调用脚本生成的“引脚信号驱动文件”,在“引脚信号驱动文件”的case语句中对外部引脚施加激励。
强制RTL内部输出任务force_rtl_inner_out用于:输入rtl_signal_out,即模块的输出信号名。调用脚本生成的“RTL_out驱动文件”,在“RTL_out驱动文件”case语句中对芯片内部模块的输出信号施加激励。
强制RTL输出0使能任务force_rtl_out_enb0_task用于:输入rtl_singal_oen,即模块的输出使能信号名。调用脚本生成的“RTL_out_en_force0驱动文件”,在“RTL_out_en_force0驱动文件”case语句中对芯片内部模块的输出使能信号施加激励。
强制RTL输出1使能任务force_rtl_out_enb1_task:输入rtl_singal_oen,即模块的输出使能信号名。调用脚本生成的“RTL_out_en_force1驱动文件”,在“RTL_out_en_force1驱动文件”case语句中对芯片内部模块的输出使能信号施加激励。
强制断言使能任务force_assert_enb_task用于:输入func_name_pin_name以及io_type(区分是输入/输出/开漏)。根据引脚类型io_type,调用不同的“断言使能信号驱动文件”(推挽输出使能、推挽输入使能、开漏使能),在文件中,case语句根据func_name_pin_name将不同的断言使能信号置1。
举例来说,模块A特征2为开漏输出,以开漏断言使能置1文件为例,典型代码如下:
Case(func_name_pin_name)
“mA_f2_PC13”:begin
force test_top.mA_f2_PC13_a_enb=1’b1;
end
……
Endcase。
又举例来说,以开漏断言使能置0文件为例,典型代码如下:
Case(func_name_pin_name)
“mA_f2_PC13”:begin
release test_top.mA_f2_PC13_a_enb;
end
……
Endcase。
其中,释放断言使能任务release_assert_enb_task用于:输入func_name_pin_name以及io_type(区分是输入/输出/开漏)。根据io_type,调用“断言使能信号驱动文件”(推挽输出使能、推挽输入使能、开漏使能),在文件中,case语句根据func_name_pin_name将不同的断言使能信号置0。
在本申请的一些实施例中,test_top中主要是加载若干信号定义、信号连接,以及断言相关的文件。加载的文件如下:
断言模板,包含5个断言模板:
1、工作状态时推挽模式下输出功能检查断言模板。
2、工作状态时推挽模式下输如功能检查断言模板。
3、工作状态时开漏模式下输入输出功能检查断言模板。
4、非工作状态时内部模块输入信号检查断言模板。
5、非工作状态时外部引脚信号检查断言模板。
断言模板本身无法直接进行断言检查,需要由验证装置进行实例化后得到断言实例文件后才会生效。
当寄存器配置有某外部引脚复用了某个内部模块的功能时,在pinmux_sequence的body中会将“推挽模式输入、输出断言使能信号”或“开漏模式的断言使能信号”置1,使相应的断言进行检测。
对于寄存器未配置的引脚复用时,由“非工作状态时内部模块输入信号检查断言”以及“非工作状态时外部引脚信号检查断言”检查信号的默认状态是否符合预期。
举例来说,以推挽输出断言为例,推挽输出断言模版代码为:
Module rtl_out_chk(input clk,chk_en,out_en,out,pin_x,input bit[01:00]pin_x_def);
wire rtl_out_logic;
assign rtl_out_logic=out_en?out:(pin_x_def==1?1’b1:(pin_x_def==0?1’b0:1’bz));
property p_rtl_out_chk:
@(posedge clk)disable iff(!chk_en)
rtl_out_logic===pin_x;
endprooerty
a_rtl_out_chk:
assertproperty(p_rtl_out_chk)
else begin
end
Endmodule。
断言使能信号文件:由脚本生成,声明了断言使能信号。
非工作状态时内部模块输入信号检查断言使能信号文件:
非工作状态时外部引脚信号检查断言使能信号文件:
内部模块输入信号、输出信号、使能信号文件:由脚本生成,声明了输入、输出、使能信号,并且使用assign与内部模块输入、输出、使能信号连接,目的是方便断言实例化时使用。
工作状态断言检查文件:由脚本生成,脚本根据模块的功能属性,决定实例化一个或多个工作状态时推挽或开漏的断言实例。通常可以检查出“错误连接”、“错误配置”等多种错误。
以PA5复用模块A_功能1为例,使用的推挽输出断言实例为:
rtl_out_chk mA_f1_PA5_o(clk,mA_f1_PA5_a_enb_o,A1oen_sig,A1out_sig,PA5,3);
非工作状态外部引脚信号断言检查文件:由脚本生成非工作状态外部引脚信号断言,对芯片的引脚信号在非工作状态时检查其行为是否符合预期,通常可以检查出“多余输出连接”的错误。
非工作状态输入信号断言检查文件:由脚本生成非工作状态输入信号断言实例,对模块的输入信号在非工作状态时检查其行为是否符合预期,通常可以检查出“多余输入连接”的错误。
在本申请的一些实施例中,验证装置在执行引脚的功能验证之前,会调用脚本,脚本处理分为两部分:前处理部分和后处理部分。
前处理主要是提取引脚复用映射表pinmux.xls的信息,并且进行重新整理。前处理流程分为以下几个步骤:
解析excel格式。通过关键词匹配标定pin_name、func_name(即“模块X_功能N”)等信息的行列坐标范围。由于不同的项目会采用不同类型的封装形式,并且复用数也不同因此关键词和信息的行列位置通常是有变化的。对于多种封装形式的情况,考虑引脚最多的封装即可。
根据上一步获得的关键词和信息的行列坐标范围,抓取复用号、pin_name、func_name等信息,使用数组、队列、哈希等结构进行存储,以备后续使用。
根据项目的具体RTL代码,编写func_name(即“模块X_功能N”)和RTL信号的映射关系代码。输出如下映射关系文本文档参见表2所示:
表2
OUT/IN,OUT_EN/IN_EN信号取决于具体项目的RTL代码,并且和GPIO是推挽输出还是开漏输出有关。通常情况下,模块本身并不会给出输入使能信号,如果需要输入使能信号,在推挽连接中会将输出使能信号取反,在开漏连接或者推挽连接中会将GPIO上的输入使能固定接1。输出的是文本文档,此处使用表格只是为了便于展示。
人工检查与修改:检查映射关系文件正确性,后续输出文件均基于此表。对于少数特殊信号,无法通过脚本处理的,需要手动修改。
其中,后处理流程主要是输出仿真需要的各个文件,断言使能信号驱动文件包括6个文件,分别是:
1、开漏断言使能置1文件;
2、开漏断言使能置0文件;
3、推挽输出断言使能置1文件;
4、推挽输出断言使能置0文件;
5、推挽输入断言使能置1文件;
6、推挽输入断言使能置0文件。
其中,断言使能信号驱动文件用于控制断言实例文件中断言的开启或关闭。
pinmux_seqence.sv的底层force_assert_enb_task中调用3个置1文件;
pinmux_seqence.sv的底层release_assert_enb_task中调用3个置0文件;
具体某个pin复用的测试激励中调用force_assert_enb_task以及release_assert_enb_task。举例来说,模块A功能2为开漏输出,以开漏断言使能置1文件为例,典型代码如下:
Case(func_name_pin_name)
“mA_f2_PC13”:begin
force test_top.mA_f2_PC13_a_enb=1’b1;
end
……
Endcase。
举例来说,以开漏断言使能置0文件为例,典型代码如下:
Case(func_name_pin_name)
“mA_f2_PC13”:begin
release test_top.mA_f2_PC13_a_enb;
end
……
Endcase。
其中,断言实例文件分成3类:推挽输出的断言文件;推挽输入的断言文件;开漏的断言文件,上述断言各自编写模版,输出的断言实例文件是对断言模版的实例化。
举例来说,以推挽输出断言为例,推挽输出断言名称为“rtl_out_chk”,模版代码为:
Module rtl_out_chk(input clk,chk_en,out_en,out,pin_x,input bit[01:00]pin_x_def);
wire rtl_out_logic;
assign rtl_out_logic=out_en?out:(pin_x_def==1?1’b1:(pin_x_def==0?1’b0:1’bz));
property p_rtl_out_chk:
@(posedge clk)disable iff(!chk_en)
rtl_out_logic===pin_x;
endprooerty
a_rtl_out_chk:
assertproperty(p_rtl_out_chk)
else begin
end
Endmodule。
举例来说,断言实例文件中,模块A_功能1在引脚PA5的复用0上的推挽输出断言实例为:
rtl_out_chk mA_f1_PA5_o(clk,mA_f1_PA5_a_enb_o,A1oen_sig,A1out_sig,PA5,3);
可知对名称为“rtl_out_chk”的模版进行了实例化,实例名为“mA_f1_PA5_o”。其余的断言模版和断言实例文件类似。在仿真运行的过程中,如果断言使能信号“mA_f1_PA5_a_enb_o”为1,则这个断言实例会对“A1oen_sig”,“A1out_sig”,“PA5”进行检查。
在一些实施例中,RTL信号驱动文件包括:RTL_out驱动文件;RTL_out_en_force0驱动文件;RTL_out_en_force1驱动文件;信号的驱动,直接使用force即可。
举例来说,RTL_out驱动文件的典型代码如下:
Case(signal_name)
“A1out_sig”:repeat(4)begin
#`clk_period;force test_top.u_chip.digital_top.A1out_sig=1’b1;
#`clk_period;force test_top.u_chip.digital_top.A1out_sig=1’b0;
end
…………
Endcase。
举例来说,RTL_out_en_force0驱动文件的典型代码如下:
Case(signal_name)
“A1oen_sig”:begin
force test_top.u_chip.digital_top.A1oen_sig=1’b0;
end
…………
Endcase
RTL_out_en_force1驱动文件的典型代码如下:
Case(signal_name)
“A1oen_sig”:begin
force test_top.u_chip.digital_top.A1oen_sig=1’b1;
end
…………
Endcase。
其中,pinmux_seqence.sv的底层force_rtl_inner_out中调用RTL_out驱动文件;
pinmux_seqence.sv的底层force_rtl_out_enb0_task中调用RTL_out_en_force0驱动文件;
pinmux_seqence.sv的底层force_rtl_out_enb1_task中调用RTL_out_en_force1驱动文件;
具体某个pin复用的测试激励中调用force_rtl_inner_out、force_rtl_out_enb0_task以及force_rtl_out_enb1_task。
举例来说,引脚信号驱动文件,典型代码如下:
Case(pin_name)
“PA1”:repeat(4)begin
#`clk_period;force test_top.u_chip.PA1=1’b1;
#`clk_period;force test_top.u_chip.PA1=1’b0;
end
…………
Endcase。
其中,pinmux_seqence.sv的底层force_pin_task中调用引脚信号驱动文件;
具体某个pin复用的测试激励中调用force_pin_task。
在本申请中,激励文件(check_task)。激励文件会调用通用环境里pinmux_sequence.sv中的的8个task,对所有pin复用进行仿真测试,并且进行时序控制以及断言开关的控制。以引脚PA5复用模块A功能1为例,测试代码如下:
force test_top.mA_f1_enb=1’b0;
//注:mA_f1_enb在test_top的“非工作状态时内部模块输入信号检查断言使能信号文件”中声明,置0,则关闭了模块A功能1的“非工作状态时内部模块输入信号检查断言”。
force test_top.PA5_enb=1’b0;
//注:PA5_enb在test_top的“非工作状态时外部引脚信号检查断言使能信号文件”中声明,置0,则关闭了模块A功能1的“非工作状态时外部引脚信号检查断言”。
pinmux_cfg(PA,5,0,0);
//注:配置寄存器,使得引脚PA5,复用模块A的功能1(即复用号0),非开漏连接(即推挽连接)。
force_assert_enb_task(mA_f1_PA5_a_enb_o,out);
//注:使能模块A_功能1的“工作状态时推挽模式下输出功能检查断言”。
force_rtl_out_enb1_task(A1oen_sig);//注:使能模块A功能1的输出。
force_rtl_inner_out_task(A1out_sig);//注:模块A功能1的输出信号施加激励。
force_rtl_out_enb0_task(A1oen_sig);//注:不使能模块A功能1的输出。
force_rtl_inner_out_task(A1out_sig);//注:模块A功能1的输出信号施加激励。
release_assert_enb_task(mA_f1_PA5_a_enb_o,out);
//注:关闭模块A_功能1的“工作状态时推挽模式下输出功能检查断言”。
force_assert_enb_task(mA_f1_PA5_a_enb_o,in);
//注:使能模块A_功能1的“工作状态时推挽模式下输入功能检查断言”。
force_pin_task(PA5);
//注:对引脚PA5施加激励。
release_assert_enb_task(mA_f1_PA5);
//注:关闭模块A_功能1的“工作状态时推挽模式下输入功能检查断言”。
pinmux_clr_task;
//注:清除寄存器配置,恢复默认值
release test_top.mA_f1_enb;
//注:启用了模块A功能1的“非工作状态时内部模块输入信号检查断言”。
release test_top.PA5_enb;
//注:启用了模块A功能1的“非工作状态时外部引脚信号检查断言”。
其中,所有pin复用的仿真测试激励均放在激励文件(check_task)中,pinmux_sequence.sv的body函数会调用激励文件(check_task)。当仿真开始,body函数是自动执行的,因此check_task内的代码会按顺序自动执行,对pin的复用测试就会自动完成,并且自动检查仿真结果。
在现有技术中,对于芯片中复用引脚的功能验证,无论是采用FPGA验证还是UVM仿真验证,编写测试用例,并且进行仿真检查,工作量都比较繁重。本申请可以将功能验证中绝大部分工作进行自动完成,从而极大地提高测试效率。
例如:芯片使用QFP64封装,每个pin平均复用8个功能,则总共有64*8=512种连接关系。使用FPGA仿真在非常理想的情况下,检查一组连接关系需要5分钟,则总共需要约30小时,加上编写和调试测试用例的时间,至少需要2周的人力。人工编写UVM仿真验证case以及断言,并且进行仿真验证所需的时间整体上和FPGA验证相差不大。
本申请使用通用的验证环境以及脚本自动生成测试case和检查断言来进行高效的仿真验证。对于极少数无规律的引脚连接,采用手动调整来修改。使用本方法时,完成超过512种组合的引脚复用功能验证,通常需要不超过半天的人力,极大地提高引脚复用的验证效率。由于几乎所有工作都是自动化的,还可以避免人工引入的失误。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参见图3,其示出了本申请一个示例性实施例提供的芯片中复用引脚的自动化验证装置的结构示意图,以下简称装置3。该装置3可以通过软件、硬件或者两者的结合实现成为计算机设备的全部或一部分。装置3包括:获取单元301、确定单元302、输出单元303、检查单元304、报告单元305。
获取单元301,用于获取待测芯片的芯片引脚映射表;
确定单元302,用于根据所述芯片引脚映射表确定所述待测芯片中各个引脚复用的特征;
输出单元303,用于基于通用的UVM验证环境,调用脚本生成的激励文件对引脚复用关系进行仿真验证输出仿真波形;
检查单元304,用于利用脚本生成的断言实例文件对仿真波形进行检查;
报告单元305,用于根据检查结果输出各个引脚的验证报告。
在一个或多个可能的实施例中,所述调用脚本生成的激励文件对引脚复用关系进行仿真验证输出仿真波形,包括:
解析芯片引脚映射表中的复用关系特征,以及根据复用关系特征在激励文件中生成:复用配置激励、信号驱动激励、断言使能驱动配置;
根据复用配置激励配置芯片内部的寄存器,从而选通特定引脚和芯片内部特定模块特定功能的连接通路;
获取引脚的引脚类型;
若所述引脚类型支持输出功能,将激励信号通过所述引脚输入到关联的特征,通过断言使能驱动配置使能或失能特定的断言检查实例,以及获取该特征的仿真波形;
若所述引脚类型支持输入功能,将所述激励信号输入到所述引脚关联的特征,通过断言使能驱动配置使能或失能特定的断言检查实例以及获取该引脚的仿真波形。
在一个或多个可能的实施例中,所述激励文件是脚本根据如下的一个或多个底层任务生成的:
引脚复用配置任务、引脚复用清除任务、强制引脚任务、强制RTL内部输出任务、强制RTL输出失能任务、强制RTL输出使能任务、强制断言使能任务、强制断言失能任务;其中,上述各个底层任务,存放于通用的UVM验证环境的底层sequence中。
在一个或多个可能的实施例中,所述利用脚本生成的断言实例文件对仿真波形进行检查,包括:
解析芯片引脚映射表中的复用关系特征,以及根据所述复用关系特征对一个或多个断言模板进行实例化生成断言实例文件,以及通过所述断言实例文件在仿真过程中自动对仿真波形进行检查;其中,所述断言实例文件在通用的UVM验证环境的顶层进行加载。
在一个或多个可能的实施例中,所述一个或多个断言模板如下:
工作状态时推挽模式下输出功能检查断言模版;
工作状态时推挽模式下输如功能检查断言模版;
工作状态时开漏模式下输入输出功能检查断言模版;
非工作状态时内部模块输入信号检查断言模版;
非工作状态时外部引脚信号检查断言;其中,上述各个断言模板在通用的UVM验证环境的顶层进行加载。
需要说明的是,上述实施例提供的装置3在执行芯片中复用引脚的自动化验证方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成上述的全部或者部分功能。另外,上述实施例提供的芯片中复用引脚的自动化验证装置与芯片中复用引脚的自动化验证方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本申请实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行如上述图2所示实施例的方法步骤,具体执行过程可以参见图2所示实施例的具体说明,在此不进行赘述。
本申请还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的芯片中复用引脚的自动化验证方法。
请参见图4,为本申请实施例提供了一种计算机设备的结构示意图。如图4所示,所述计算机设备400可以包括:至少一个处理器401,至少一个网络接口404,用户接口403,存储器405,至少一个通信总线402。
其中,通信总线402用于实现这些组件之间的连接通信。
其中,用户接口403可以包括显示屏(Display)、摄像头(Camera),可选用户接口403还可以包括标准的有线接口、无线接口。
其中,网络接口404可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
其中,处理器401可以包括一个或者多个处理核心。处理器401利用各种接口和线路连接整个计算机设备400内的各个部分,通过运行或执行存储在存储器405内的指令、程序、代码集或指令集,以及调用存储在存储器405内的数据,执行计算机设备400的各种功能和处理数据。可选的,处理器401可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable GateArray,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器401可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器401中,单独通过一块芯片进行实现。
其中,存储器405可以包括随机存储器(RandomAccess Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器405包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器405可用于存储指令、程序、代码、代码集或指令集。存储器405可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器405可选的还可以是至少一个位于远离前述处理器401的存储装置。如图4所示,作为一种计算机存储介质的存储器405中可以包括操作系统、网络通信模块、用户接口模块以及应用程序。
在图4所示的计算机设备400中,用户接口403主要用于为用户提供输入的接口,获取用户输入的数据;而处理器401可以用于调用存储器405中存储的应用程序,并具体执行如图2所示的方法,具体过程可参照图2所示,此处不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

Claims (8)

1.一种芯片中复用引脚的自动化验证方法,其特征在于,包括:
获取待测芯片的芯片引脚映射表;
根据所述芯片引脚映射表确定所述待测芯片中各个引脚复用的特征;
基于通用的UVM验证环境,调用脚本生成的激励文件对引脚复用关系进行仿真验证输出仿真波形;
利用脚本生成的断言实例文件对仿真波形进行检查;
根据检查结果输出各个引脚的验证报告。
2.根据权利要求1所述的方法,其特征在于,所述调用脚本生成的激励文件对引脚复用关系进行仿真验证输出仿真波形,包括:
解析芯片引脚映射表中的复用关系特征,以及根据复用关系特征在激励文件中生成:复用配置激励、信号驱动激励、断言使能驱动配置;
根据复用配置激励配置芯片内部的寄存器,从而选通特定引脚和芯片内部特定模块特定功能的连接通路;
获取引脚的引脚类型;
若所述引脚类型支持输出功能,将激励信号通过所述引脚输入到关联的特征,通过断言使能驱动配置使能或失能特定的断言检查实例,以及获取该特征的仿真波形;
若所述引脚类型支持输入功能,将所述激励信号输入到所述引脚关联的特征,通过断言使能驱动配置使能或失能特定的断言检查实例以及获取该引脚的仿真波形。
3.根据权利要求1或2所述的方法,其特征在于,所述激励文件是脚本根据如下的一个或多个底层任务生成的:
引脚复用配置任务、引脚复用清除任务、强制引脚任务、强制RTL内部输出任务、强制RTL输出失能任务、强制RTL输出使能任务、强制断言使能任务、强制断言失能任务;其中,上述各个底层任务,存放于通用的UVM验证环境的底层sequence中。
4.根据权利要求1或2所述的方法,其特征在于,所述利用脚本生成的断言实例文件对仿真波形进行检查,包括:
解析芯片引脚映射表中的复用关系特征,以及根据所述复用关系特征对一个或多个断言模板进行实例化生成断言实例文件,以及通过所述断言实例文件在仿真过程中自动对仿真波形进行检查;其中,所述断言实例文件在通用的UVM验证环境的顶层进行加载。
5.根据权利要求4所述的方法,其特征在于,所述一个或多个断言模板如下:
工作状态时推挽模式下输出功能检查断言模版;
工作状态时推挽模式下输如功能检查断言模版;
工作状态时开漏模式下输入输出功能检查断言模版;
非工作状态时内部模块输入信号检查断言模版;
非工作状态时外部引脚信号检查断言;其中,上述各个断言模板在通用的UVM验证环境的顶层进行加载。
6.一种芯片中复用引脚的自动化验证装置,其特征在于,包括:
获取单元,用于获取待测芯片的芯片引脚映射表;
确定单元,用于根据所述芯片引脚映射表确定所述待测芯片中各个引脚复用的特征;
输出单元,用于基于通用的UVM验证环境,调用脚本生成的激励文件对引脚复用关系进行仿真验证输出仿真波形;
检查单元,用于利用脚本生成的断言实例文件对仿真波形进行检查;
报告单元,用于根据检查结果输出各个引脚的验证报告。
7.一种计算机存储介质,其特征在于,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1~5任意一项的方法步骤。
8.一种计算机设备,其特征在于,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1~5任意一项的方法步骤。
CN202310162766.9A 2023-02-24 2023-02-24 芯片中复用引脚的自动化验证方法、装置、存储介质及计算机设备 Pending CN116450427A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310162766.9A CN116450427A (zh) 2023-02-24 2023-02-24 芯片中复用引脚的自动化验证方法、装置、存储介质及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310162766.9A CN116450427A (zh) 2023-02-24 2023-02-24 芯片中复用引脚的自动化验证方法、装置、存储介质及计算机设备

Publications (1)

Publication Number Publication Date
CN116450427A true CN116450427A (zh) 2023-07-18

Family

ID=87124536

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310162766.9A Pending CN116450427A (zh) 2023-02-24 2023-02-24 芯片中复用引脚的自动化验证方法、装置、存储介质及计算机设备

Country Status (1)

Country Link
CN (1) CN116450427A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117194346A (zh) * 2023-11-06 2023-12-08 上海合见工业软件集团有限公司 一种下载文件清除方法、电子设备及存储介质
CN117271248A (zh) * 2023-11-23 2023-12-22 成都市楠菲微电子有限公司 Io接口测试方法、装置及uvm验证环境
CN117520082A (zh) * 2024-01-08 2024-02-06 凌思微电子(杭州)有限公司 芯片调试方法、装置及电子设备
CN118363869A (zh) * 2024-05-16 2024-07-19 无锡众星微系统技术有限公司 Bifurcation模块验证解决方案自动生成方法和装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117194346A (zh) * 2023-11-06 2023-12-08 上海合见工业软件集团有限公司 一种下载文件清除方法、电子设备及存储介质
CN117194346B (zh) * 2023-11-06 2024-01-23 上海合见工业软件集团有限公司 一种下载文件清除方法、电子设备及存储介质
CN117271248A (zh) * 2023-11-23 2023-12-22 成都市楠菲微电子有限公司 Io接口测试方法、装置及uvm验证环境
CN117271248B (zh) * 2023-11-23 2024-02-09 成都市楠菲微电子有限公司 Io接口测试方法、装置及uvm验证环境
CN117520082A (zh) * 2024-01-08 2024-02-06 凌思微电子(杭州)有限公司 芯片调试方法、装置及电子设备
CN117520082B (zh) * 2024-01-08 2024-04-02 凌思微电子(杭州)有限公司 芯片调试方法、装置及电子设备
CN118363869A (zh) * 2024-05-16 2024-07-19 无锡众星微系统技术有限公司 Bifurcation模块验证解决方案自动生成方法和装置

Similar Documents

Publication Publication Date Title
CN116450427A (zh) 芯片中复用引脚的自动化验证方法、装置、存储介质及计算机设备
US11625521B2 (en) Method, emulator, and storage media for debugging logic system design
US11010283B2 (en) Mock-based unit test(s) for an end-to-end test of a code snippet
US6212667B1 (en) Integrated circuit test coverage evaluation and adjustment mechanism and method
US8732632B1 (en) Method and apparatus for automated extraction of a design for test boundary model from embedded IP cores for hierarchical and three-dimensional interconnect test
Ott et al. A designer's guide to VHDL synthesis
US20140032204A1 (en) Partitionless Multi User Support For Hardware Assisted Verification
US8892386B2 (en) Method and apparatus for post-silicon testing
KR20010067370A (ko) SoC 설계 검증을 위한 방법 및 장치
CN111339731B (zh) 一种面向SoC的FPGA验证平台和验证方法
JP5065113B2 (ja) 等価性検証方法、等価性検証プログラム及び等価性検証プログラムの生成方法
US9690888B2 (en) Method and apparatus for system design verification
CN109885905B (zh) 一种提高数字电路功能验证效率的验证系统
US20150310154A1 (en) Method and apparatus for testing
Bhuvaneswary et al. Exploration on Reusability of Universal Verification Methodology
US7945418B2 (en) Stream based stimulus definition and delivery via interworking
US7865789B2 (en) System and method for system-on-chip interconnect verification
US7065724B2 (en) Method and apparatus for generating and verifying libraries for ATPG tool
CN110704260A (zh) 一种用于处理器io寄存器测试激励的可重用方法
US20030233504A1 (en) Method for detecting bus contention from RTL description
CN114169287B (zh) 生成验证环境的连接示意图的方法、电子设备及存储介质
Sinha et al. Efficient Automation of Memory Model Development Workflow: Streamlining the Design and Optimization Process
Kumar et al. Test Bench Optimization for Better Simulation Performance
US11983478B2 (en) Selection of full or incremental implementation flows in processing circuit designs
Bhattacharya et al. Advanced verification topics

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination