CN116881067A - 一种生成vcd文件的方法、装置、设备及存储介质 - Google Patents
一种生成vcd文件的方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116881067A CN116881067A CN202311147270.0A CN202311147270A CN116881067A CN 116881067 A CN116881067 A CN 116881067A CN 202311147270 A CN202311147270 A CN 202311147270A CN 116881067 A CN116881067 A CN 116881067A
- Authority
- CN
- China
- Prior art keywords
- port
- chip
- test
- interconnection
- tested
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 72
- 238000012360 testing method Methods 0.000 claims abstract description 202
- 230000008569 process Effects 0.000 claims description 41
- 230000008859 change Effects 0.000 claims description 36
- 238000012546 transfer Methods 0.000 claims description 3
- 230000000630 rising effect Effects 0.000 description 33
- 238000004088 simulation Methods 0.000 description 21
- 230000006870 function Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 230000036316 preload Effects 0.000 description 9
- 238000013461 design Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 102100022103 Histone-lysine N-methyltransferase 2A Human genes 0.000 description 2
- 101001045846 Homo sapiens Histone-lysine N-methyltransferase 2A Proteins 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000005284 excitation Effects 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 102100031082 Choline/ethanolamine kinase Human genes 0.000 description 1
- 101000777313 Homo sapiens Choline/ethanolamine kinase Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011990 functional testing Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/2851—Testing of integrated circuits [IC]
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318533—Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
- G01R31/318597—JTAG or boundary scan test of memory devices
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本公开提供一种生成VCD文件的方法、装置、设备及存储介质。该方法包括:根据互连待测芯片中每个待测芯片的BSDL文件及互连关系文件将互连待测芯片的端口划分为互连端口及非互连端口;针对互连待测芯片的连接方向生成测试序列和期望值序列;根据状态机跳转规则获取完成测试所需的总时钟周期数;根据测试序列和期望值序列获取每个时钟周期内TAP端口、互连端口及非互连端口的值;根据总时钟周期数、设定的时钟周期和每个时钟周期内TAP端口、互连端口及非互连端口的值记录端口值变化的时间戳;根据互连端口、非互连端口、时间戳以及每个时钟周期内TAP端口、互连端口及非互连端口的值生成VCD文件。提高了生成VCD文件的效率。
Description
技术领域
本发明实施例涉及芯片测试技术领域,尤其涉及一种生成值变更转存(ValueChange Dump,VCD)文件的方法、装置、设备及存储介质。
背景技术
为了测试芯片的功能是否能够实现设计目的,需要对芯片进行功能测试。简要来说,首先将包括一组数据序列的测试向量施加至待测芯片;随后采集待测芯片的输出信号;若输出信号为预期的期望信号,则表示该待测芯片实现了预设功能,满足该芯片的设计目的,测试通过。
对于VCD文件格式的测试向量来说,由于VCD文件能够记录电路中各个信号的状态变化,从而帮助设计人员快速定位和解决问题,提高设计的质量和效率。因此,VCD文件格式被广泛地应用在芯片测试技术。
当前,VCD文件的生成过程通常需要使用仿真工具运行待测芯片的设计文件以模拟该待测芯片的实际运行。在模拟运行过程中,记录仿真结果并生成VCD文件。由此可知,当前VCD文件的生成依赖于仿真过程,当待测芯片设计文件较大时,仿真过程耗时较长,生成VCD文件的效率较低。
发明内容
本发明实施例期望提供一种生成VCD文件的方法、装置、设备及存储介质;无需经过仿真过程就能够生成VCD文件,提高了生成VCD文件的效率。
本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供了一种生成VCD文件的方法,所述方法包括:
根据互连待测芯片中的每一个待测芯片的边界扫描描述语言(Boundary ScanDescription Language,BSDL)文件以及互连关系文件将所述互连待测芯片的端口划分为互连端口以及非互连端口;
基于设定的测试规则以及测试算法,针对所述互连待测芯片的测试方向生成测试序列和期望值序列;
根据设定的状态机跳转规则获取完成测试所需的总时钟周期数;
根据所述测试序列和期望值序列获取每个时钟周期内测试访问端口(TestAccess Port,TAP)、互连端口及非互连端口的值;
根据所述总时钟周期数、设定的时钟周期以及每个时钟周期内TAP端口、互连端口及非互连端口的值记录端口值变化的时间戳;
根据所述互连端口、非互连端口、所述时间戳以及每个时钟周期内TAP端口、互连端口及非互连端口的值生成VCD文件。
第二方面,本发明实施例提供了一种生成VCD文件的装置,所述装置包括:划分部分、第一生成部分、第一获取部分、第二获取部分、记录部分以及第二生成部分;其中,
所述划分部分,经配置为根据互连待测芯片中的每一个待测芯片的BSDL文件以及互连关系文件将所述互连待测芯片的端口划分为互连端口以及非互连端口;
所述第一生成部分,经配置为基于设定的测试规则以及测试算法,针对所述互连待测芯片的测试方向生成测试序列和期望值序列;
所述第一获取部分,经配置为根据设定的状态机跳转规则获取完成测试所需的总时钟周期数;
所述第二获取部分,经配置为根据所述测试序列获取每个时钟周期内TAP端口、互连端口及非互连端口的值;
所述记录部分,经配置为根据所述总时钟周期数、设定的时钟周期以及每个时钟周期内TAP端口、互连端口及非互连端口的值记录端口值变化的时间戳;
所述第二生成部分,经配置为根据所述互连端口、非互连端口、所述时间戳以及每个时钟周期内TAP端口、互连端口及非互连端口的值生成VCD文件。
第三方面,本发明实施例提供了一种计算设备,所述计算设备包括:处理器和存储器;所述处理器用于执行所述存储器中存储的指令,以实现如第一方面所述的生成VCD文件的方法。
第四方面,本发明实施例提供了一种计算机存储介质,所述存储介质存储有至少一条指令,所述至少一条指令用于被处理器执行以实现如第一方面所述的生成VCD文件的方法。
第五方面,本发明实施例提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中;电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行以实现如第一方面所述的生成VCD文件的方法。
本发明实施例提供了一种生成VCD文件的方法、装置、设备及存储介质;通过BSDL文件以及互连关系文件将互连的待测芯片端口划分为互连端口以及非互连端口;接着针对所述互连待测芯片的测试方向,根据测试规则以及测试算法生成测试序列和期望值序列;随后,根据时钟周期以及每个时钟周期内端口的值形成时间戳与端口值变化之间的对应关系,从而构建VCD文件。无需进行仿真过程就能够生成VCD文件,缩短了生成VCD文件所耗费的时间,提高了生成VCD文件的效率;此外,由于避免了仿真过程,因此无需仿真工具的支持,从而降低了生成VCD文件所耗费的资源成本。
附图说明
图1为本发明实施例提供的一种实施环境示意图。
图2为本发明实施例提供的一种生成VCD文件的方法流程示意图。
图3为本发明实施例提供的互连芯片示意图。
图4为本发明实施例提供的互连关系文件示意图。
图5为本发明实施例基于IEEE1149.1-2013协议定义的信号状态机跳转规则的示意图。
图6为本发明实施例提供的测试序列文件部分内容示意图。
图7为本发明实施例提供的TDO观测的期望值序列文件部分内容示意图。
图8为本发明实施例提供的时间戳与端口值之间的对应关系示意图。
图9为本发明实施例提供的一种生成VCD文件的装置组成示意图。
图10为本发明实施例提供的一种计算设备的组成框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
本发明实施例所提供的技术方案能够应用于芯片测试场景,具体来说,在使用自动测试设备(Automatic Test Equipment,ATE)对芯片进行测试的过程中,ATE可以对用于进行芯片测试的VCD文件进行分析得到激励信号(或称为测试向量),然后将激励信号输入待测芯片的管脚,若待测芯片的输出信号为预期的信号,则表示该芯片实现了预设功能,能够实现设计目的,测试通过。若待测芯片的输出信号不是预期的信号,则表示芯片未能实现预设功能,测试不通过,需要对芯片进行调试。
针对上述场景中所涉及的VCD文件,相关方案中通常采用仿真方式获得。依赖于仿真过程,增加了VCD文件的生成时间,导致生成VCD文件的效率较低;此外,由于仿真过程还需要仿真工具的支持,导致生成VCD文件所耗费的资源成本较高。基于此,本发明实施例期望提供一种生成VCD文件的方案,通过利用边界扫描描述语言BSDL文件以及用于描述芯片互连信息的互连关系文件生成VCD文件,无需经过仿真过程就能够生成VCD文件,缩短了生成VCD文件所耗费的时间,提高了生成VCD文件的效率;此外,由于避免了仿真过程,因此无需仿真工具的支持,降低了生成VCD文件所耗费的资源成本。
有鉴于此,参见图1,其示出了本发明实施例所提供的一种实施环境示意图。从图1中可以看出,本发明实施例所提供的生成VCD文件的方案能够由计算设备10执行。在一些示例中,计算设备10可以根据接收到的BSDL文件以及互连关系文件执行本发明实施例的技术方案,从而生成用于进行芯片测试的VCD文件。
计算设备10可以为智能手机、智能手表、台式电脑、手提电脑、虚拟现实终端、增强现实终端、无线终端和膝上型便携计算机等设备中的至少一种。计算设备10具有通信功能,可以接入有线网络或无线网络。计算设备10可以泛指多个终端中的一个,本领域技术人员可以知晓,上述终端的数量可以更多或更少。在一些示例中,计算设备10可以基于所接入的有线网络或无线网络接收BSDL文件以及互连关系文件,也可以基于操作者(或称用户)的输入接收SDL文件以及互连关系文件。可以理解地,计算设备10承担本发明技术方案的计算及处理工作,本公开实施例对此不作限定。
参见图2,其示出了本发明实施例提供的一种生成VCD文件的方法,所述方法包括:
S201:根据互连待测芯片中的每一个待测芯片的BSDL文件以及所述互连关系文件将所述互连待测芯片的端口划分为互连端口以及非互连端口;
在本发明实施例中,互连待测芯片可以为两个相互具有连接关系的待测芯片。以图3所示为例,相互连接的芯片1和芯片2之间各存在6个用于连接的端口,这些用于连接的端口在本发明实施例中可以被称之为互连端口。详细来说,如图3中的矩形方块所示,芯片1的输出端口out11通过连接线Net1与芯片2的输入端口in21连接;芯片1的输出端口out12通过连接线Net2与芯片2的输入/输出端口(也称之为双向端口)inout22连接;芯片1的输入端口in13通过连接线Net3与芯片2的输出端口out23连接;芯片1的输入端口in14通过连接线Net4与芯片2的输入/输出端口inout24连接;芯片1的输入/输出端口inout15通过连接线Net5与芯片2的输入端口in25连接;芯片1的输入/输出端口inout16通过连接线Net6与芯片2的输出端口out26连接。
在一些示例中,上述芯片1和芯片2之间连接关系可以通过互连关系文件进行记录,互连关系文件通常由芯片制造商进行提供,可以由一张二维数据表进行表示,在该二维数据表中,第一列为芯片1的互连端口标识,第二列为芯片2的互连端口标识,每行的两个端口标识表示相互连接的端口。
除去以上所阐述的互连端口以外,芯片1和芯片2还包括没有相互连接的其他端口,这些端口在本发明实施例中可以被称之为非互连端口。在一些示例中,比如图3中所示的测试模式选择(Test Mode Select,TMS)端口、测试数据输入(TestData Input ,TDI)端口、测试时钟(Test Clock,TCK)端口、测试复位(TestReset ,TRST)端口以及测试数据输出(Test Data Output ,TDO)端口,由于这些端口能够在芯片测试过程中被访问,于是这些端口可以称之为TAP。在另一些示例中,非互连端口还可以包括其他端口,如芯片1和芯片2中虚线箭头所示。
在本发明实施例中,芯片的BSDL文件是对边界扫描器件的边界扫描特性的描述,通常由芯片厂商提供,其记录有芯片的所有端口信息以及符合IEEE1149.1-2013协议测试组件的详细描述。具体来说,一个BSDL文件最多定义了25个内容部分,在本发明实施例中,主要使用的是其中的边界扫描寄存器描述(boundary-scan register description)部分、逻辑端口描述(logical port description)部分、使能IEEE1149.1-2013协议组件的端口描述(compliance-enable description)部分、组件名称描述(component name)部分以及指令寄存器描述(instruction register description)部分。
根据互连关系文件,可以获知芯片1以及芯片2的互连端口。在BSDL文件中的所有端口信息中,将存在于互连关系文件的端口去除之后,就能够获知芯片1以及芯片2的非互连端口。结合BSDL文件以及上述互连关系文件,可以将芯片1以及芯片2的端口划分获得互连端口以及非互连端口。
S202:基于设定的测试规则以及测试算法,针对互连待测芯片的测试方向生成测试序列和期望值序列。
在本发明实施例中,以边界扫描测试为例,设定的测试规则可选为IEEE1149.1-2013协议所定义的对边界扫描寄存器(Boundary-Scan Register,BSR)进行测试的规则,测试算法可选为CHKB算法。可选的,对于互连待测芯片的测试方向,结合图3所示示例,包括从芯片1向芯片2传输数据的第一测试方向以及从芯片2向芯片1传输数据的第二测试方向。
S203:根据设定的状态机跳转规则获取完成测试所需的总时钟周期数。
在本发明实施例中,仍然以边界扫描测试为例,状态机跳转规则可选为IEEE1149.1-2013协议所定义的边界扫描测试的状态机跳转规则。为了能够在IEEE1149.1-2013协议所定义的状态机状态之间进行跳转,需要加载相应的指令。通过计算加载指令以及数据所需的周期数以及完成测试算法所需的周期数,就能够获得完成测试所需的总时钟周期数。
S204:根据测试序列和期望值序列获取每个时钟周期内测试访问端口TAP、互连端口以及非互连端口的值。
在本发明实施例中,基于测试序列、期望值序列以及上述状态机状态,对每个时钟周期,TAP端口、互连端口及非互连端口都分别获取相应的端口值。
S205:根据总时钟周期数、设定的时钟周期以及每个时钟周期内TAP端口、互连端口及非互连端口的值记录端口值变化的时间戳。
在本发明实施例中,可以根据总时钟周期数获得总时间戳,并且根据执行S204所获得的端口值以及总时间戳获得端口值变化的时间戳,也就是端口值在每个时钟周期的值与时间戳之间的对应关系。
S206:根据互连端口、非互连端口、时间戳以及每个时钟周期内TAP端口、互连端口及非互连端口的值生成VCD文件。
在本发明实施例中,可以将互连端口、非互连端口以及BSDL文件中的组件名称(component name)部分组成VCD文件的信号声明部分。可以根据时间戳以及每个时钟周期内TAP端口、互连端口及非互连端口的值可以记录信号变化的过程,并将该部分作为VCD文件中的值变化部分。最后,将信号声明部分以及值变化部分组成完整的VCD文件。
通过图2所示的技术方案,通过BSDL文件以及互连关系文件将互连的待测芯片端口划分为互连端口以及非互连端口;接着针对互连待测芯片的测试方向,根据测试规则以及测试算法生成测试序列和期望值序列;随后,根据时钟周期以及每个时钟周期内端口的值形成时间戳与端口值变化之间的对应关系,从而构建VCD文件。无需进行仿真过程就能够生成VCD文件,缩短了生成VCD文件所耗费的时间,提高了生成VCD文件的效率;此外,由于无需仿真过程,也就无需仿真工具的支持,降低了生成VCD文件所耗费的资源成本。
对于图2所示的技术方案,在一些可能的实现方式中,根据互连待测芯片中的每一个待测芯片的BSDL文件以及互连关系文件将互连待测芯片的端口划分为互连端口以及非互连端口,包括:
根据每一个待测芯片的BSDL文件中边界扫描寄存器描述(boundary-scanregister description)部分所记录端口名称和端口类型,以及互连关系文件中所记录的端口名称和连接关系确定互连端口,并为互连端口按照端口类型进行分类,获得分类后的互连端口;
根据每一个待测芯片的BSDL文件中边界扫描寄存器描述(boundary-scanregister description)部分、逻辑端口描述(logical port description)部分以及使能IEEE1149.1-2013协议组件的端口描述(compliance-enabledescription)部分所记录的端口名称和端口类型,剔除互连端口,获得非互连端口,并为非互连端口按照端口类型进行分类,获得分类后的非互连端口。
对于上述实现方式,确定互连端口并进行分类的具体实施过程可以包括:
在两个待测芯片的BSDL文件的边界扫描寄存器描述部分的端口名称中,查找互连关系文件中出现的端口名称;
如果互连关系文件中的端口名称在对应待测芯片的BSDL文件中均出现,则根据两个待测芯片的BSDL文件的边界扫描寄存器描述部分的端口类型判断互连关系文件中每一行互连端口是否符合以下条件:a、输入端口连接至输出或双向端口;b、输出端口连接至输入或双向端口;c、双向端口连接至双向端口。如果这些条件均符合,则将两个待测芯片的互连端口按照端口类型进行分类,即芯片1的输入互连端口、芯片1的输出互连端口、芯片2的输入互连端口以及芯片2的输出互连端口。
如果互连关系文件中的端口名称在对应待测芯片的BSDL文件中没有均出现,那么可以表示互连关系文件有缺失,需要重新获得新的互连关系文件并进行上述查找以及判断过程。
对于上述具体实施过程,以图4所示的互连关系文件为例,该互连关系文件可以为一个二维数据表,文件格式可选为.csv。在该互连关系文件中,第一列(图中的A列)表示互连待测芯片的芯片1中与芯片2连接的端口名称列表,第二列(图4中的B列)表示互连待测芯片的芯片2中与芯片1连接的端口名称列表,每一行的两个端口名称则表示两个实际互连端口。通过上述具体实施过程,结合BSDL文件中所记录的端口类型,示意性地,本发明实施例可以设定互连关系文件的第一行到第六行为芯片1的输出端口,芯片2的输入端口。互连关系文件的第七行到第十一行为芯片1的输入端口,芯片2的输出端口。
对于上述实现方式,确定非互连端口并进行分类的具体实施过程可以包括:
将两个待测芯片的BSDL文件的边界扫描寄存器描述部分、逻辑端口描述部分以及使能IEEE1149.1-2013协议组件的端口描述部分所记录的端口名称剔除互连端口名称,获得两个待测芯片的非互连端口;
针对两个待测芯片的非互连端口,根据两个待测芯片的BSDL文件的边界扫描寄存器描述部分、逻辑端口描述部分以及使能IEEE1149.1-2013协议组件的端口描述部分所记录的端口类型进行分类后,合并获得两个芯片分类后的非互连端口。
对于上述具体实施过程,BSDL文件中的两个待测芯片的BSDL文件的边界扫描寄存器描述部分、逻辑端口描述部分以及使能IEEE1149.1-2013协议组件的端口描述部分记录了芯片所有端口的名称以及所有端口的类型,在所有端口中剔除互连端口之后,剩余的就是非互连端口名称,并且也就能够获得相应的互连端口类型。对于非互连端口的端口类型进行分类,可以得到以下4类:
a、芯片1的非互连输入端口,其中非互连双向端口配置为输入模式;b、芯片1的非互连输出端口;c、芯片2的非互连输入端口,其中非互连双向端口配置为输入模式;d、芯片2的非互连输出端口。
分类完成后,可以将两个芯片的非互连输入端口进行合并得到输入端口列表,以及将两个芯片的非互连输出端口进行合并得到输出端口列表;最后将输入端口列表以及输出端口列表合并,获得两个芯片的分类后的非互连端口列表。
对于图2所示的技术方案,在一些可能的实现方式中,所述基于设定的测试规则以及测试算法,针对互连待测芯片的测试方向生成测试序列和期望值序列,包括:
根据芯片测试流程中的配置过程,确定互连待测芯片中的第一待测芯片和第二待测芯片用于加载指令的指令值序列;
根据芯片测试流程中的测试算法,确定第一待测芯片和第二待测芯片用于加载测试数据的数据值序列;
根据指令值序列和数据值序列生成测试序列;其中,测试序列以第一待测芯片向第二待测芯片发送数据为互连待测芯片的测试方向;
根据算法类型获取第二待测芯片的互连输入端口对应的边界扫描寄存器所捕获的值;
将第二待测芯片的互连输出端口、非互连输入端口和非互连输出端口对应的边界扫描寄存器的值设置为非关心位值;
根据第二待测芯片的BSDL文件所记录的边界扫描寄存器顺序,将第二待测芯片的互连输入端口对应的边界扫描寄存器所捕获的值、第二待测芯片的互连输出端口、非互连输入端口和非互连输出端口对应的边界扫描寄存器的值生成期望值序列。
对于上述实现方式,以芯片1通过互连端口向芯片2输出数据的测试方向为例进行说明。需要说明的是,对于该测试方向,芯片1为上述第一待测芯片,芯片2为第二待测芯片。若芯片2通过互连端口向芯片1输出数据,那么对于该测试方向,芯片2为第一待测芯片,芯片1为第二待测芯片。可以理解地,以下说明尽管以芯片1通过互连端口向芯片2输出数据的测试方向为例,但是同样可以应用于芯片2通过互连端口向芯片1输出数据的测试方向,本发明实施例对此不再赘述。
在上述实现方式中,由于芯片的测试流程涉及到信号状态的跳转规则,该规则在具体实施过程中可选为符合联合测试工作组(Joint Test Action Group ,JTAG)测试接口的IEEE1149.1-2013协议所定义跳转规则,如图5所示,右侧的路径是指令寄存器IR的状态的跳转的规则(Instruction Column)。左侧的路径是数据寄存器DR的状态的跳转的规则(DataColumn)。其中,控制器的下一个状态由TMS信号决定,TMS信号通常在TCK的上升沿被采样生效。图5中所出现的状态及其跳转规则介绍如下:
Test-Logic-Reset测试逻辑复位状态:
处于这种状态下,测试逻辑被禁止以允许芯片正常操作,读标志代码(IDCODE)寄存器将禁止测试逻辑。无论TAP控制器处于何种状态,只要将TMS信号在5个连续的TCK信号的上升沿保持高电平,TAP就将进入Test-Logic-Reset状态,如果TMS信号一直为高电平,那么TAP将保持在Test-Logic-Reset状态,另外TRST信号也可以强迫TAP进入Test-Logic-Reset状态。处于Test-Logic-Reset状态的TAP控制器,如果下一个TCK的上升沿时TMS信号处于低电平,那么TAP控制器将被切换到Run-Test/Idle状态。
Run-Test/Idle运行测试空闲状态:
Run-Test/Idle是TAP控制器扫描操作空闲状态,如果TMS信号一直处于低电平,那么TAP控制器将保持在Run-Test/Idle状态。当TMS信号在TCK上升沿处于高电平,TAP控制器将进入Select-DR-Scan状态。
Select-DR-Scan选择数据寄存器扫描状态:
Select-DR-Scan,也可以记为Select-DR,是TAP控制器的一个临时状态,边界扫描寄存器BSR保持它们先前的状态。当TMS信号在下一个TCK上升沿处于低电平,TAP控制器进入Capture-DR状态,一个BSR的扫描操作同时被初始化。如果TMS信号在下一个TCK上升沿处于高电平,TAP控制器将进入Select-IR-Scan状态。
Capture-DR捕获数据寄存器状态:
如果TAP控制器处于Capture-DR状态,且当前指令是SAMPLE/PRELOAD指令,那么边界扫描寄存器BSR在TCK信号的上升沿捕获输入管脚的数据。如果此时不是SAMPLE/PRELOAD指令,那么BSR保持它们先前的值,另外BSR的值被放入连接在TDI和TDO管脚之间的移位寄存器中。处于Capture-DR状态时,指令不会被改变。如果TMS信号在下一个TCK上升沿处于高电平,TAP控制器进入Exit1-DR状态。如果TMS信号在下一个TCK上升沿处于低电平,则TAP控制器进入Shift-DR状态。
Shift-DR移位数据寄存器状态:
在Shift-DR状态下,在每个TCK的上升沿,TDI-移位寄存器-TDO串行通道向右移一位,TDI的数据移入移位寄存器,移位寄存器最靠近TDO的位移到TDO管脚上。处于Shift-DR状态时,指令不会被改变。如果TMS信号在下一个TCK上升沿处于高电平,TAP控制器进入Exit1-DR状态。如果TMS信号处于低电平,则TAP控制器一直进行移位操作。
Exit1-DR退出数据寄存器状态1:
Exit1-DR是TAP控制器的一个临时状态,如果TMS信号在下一个TCK上升沿处于高电平,TAP控制器进入Update-DR状态;如果TMS信号在下一个TCK上升沿处于低电平,则TAP控制器进入Pause-DR状态。处于Exit1-DR状态时,指令不会被改变。
Pause-DR暂停数据寄存器状态:
Pause-DR状态允许TAP控制器暂时停止TDI-移位寄存器-TDO串行通道的移位操作。处于Pause-DR状态时,指令不会被改变。如果TMS信号在下一个TCK上升沿处于高电平,TAP控制器进入Exit2-DR状态;如果TMS信号处于低电平,则TAP控制器一直保持暂停状态。
Exit2-DR退出数据寄存器状态2:
Exit2-DR也是TAP控制器的临时状态,如果TMS信号在下一个TCK上升沿处于高电平,TAP控制器进入Update-DR状态,结束扫描操作;如果TMS信号在下一个TCK上升沿处于低电平,则TAP控制器重新进入Shift-DR状态。处于Exit-2-D状态时,指令不会被改变。
Update-DR更新数据寄存器状态:
在正常情况下,边界扫描寄存器BSR的值是被锁存在并行输出管脚中,以免在EXTEST或SAMPLE/PRELOAD命令下执行移位操作时改变 BSR寄存器的值。当处于Update-DR状态时选择的是BSR寄存器,那么移位寄存器中的值将在TCK的下降沿被锁存到BSR寄存器的并行输出管脚中去。处于Update-DR状态时,指令不会被改变。如果TMS信号在下一个TCK上升沿处于高电平,TAP控制器进入Select-DR-Scan状态;如果TMS信号在下一个TCK上升沿处于低电平,则TAP控制器进入Run-Test/Idle状态。
Select-IR-Scan选择指令寄存器扫描状态:
Select-IR-Scan,也可以记为Select-IR是TAP控制器的一个临时状态。如果TMS信号在下一个TCK上升沿处于低电平,TAP控制器进入Capture-IR状态,一个对指令寄存器的扫描操作同时被初始化。如果TMS信号在下一个TCK上升沿处于高电平,TAP控制器将进入Test-Logic-Reset状态。处于Select-IR-Scan状态时,指令不会被改变。
Capture-IR捕获指令寄存器状态:
处于Capture-IR状态时,指令寄存器中的值被固定设置成0b0000001,并将它放入连接在TDI与TDO之间的移位寄存器中。处于Capture-DR状态时,指令不会被改变。如果TMS信号在下一个TCK上升沿处于高电平,TAP控制器进入Exit1-IR状态;如果TMS信号在下一个TCK上升沿处于低电平,则TAP控制器进入Shift-IR状态。
Shift-IR移位指令寄存器状态:
在Shift-IR状态下,在每个TCK的上升沿,TDI-移位寄存器-TDO串行通道向右移一位,JTAG指令从TDI管脚上被逐位移入移位寄存器,而移位寄存器中的0b0000001则被逐位从TDO管脚移出。处于Shift-IR状态时,指令不会被改变。如果TMS信号在下一个TCK上升沿处于高电平,TAP控制器进入Exit1-IR状态;如果TMS信号处于低电平,则TAP控制器一直进行移位操作。
Exit1-IR退出指令寄存器状态1:
Exit1-IR是TAP控制器的一个临时状态,如果TMS信号在下一个TCK上升沿处于高电平,TAP控制器进入Update-IR状态;如果TMS信号在下一个TCK上升沿处于低电平,则TAP控制器进入Pause-IR状态。处于Exit1-IR状态时,指令不会被改变。
Pause-IR暂停指令寄存器状态:
Pause-IR状态允许TAP控制器暂时停止TDI-移位寄存器-TDO串行通道的移位操作。处于Pause-IR状态时,指令不会被改变。如果TMS信号在下一个TCK上升沿处于高电平,TAP控制器进入Exit2-IR状态;如果TMS信号处于低电平,则TAP控制器一直处于暂停状态。
Exit2-IR退出指令寄存器状态2:
Exit2-IR也是TAP控制器的临时状态,如果TMS信号在下一个TCK上升沿处于高电平,TAP控制器进入Update-IR状态,结束扫描操作;如果TMS信号在下一个TCK上升沿处于低电平,则TAP控制器重新进入Shift-IR状态。处于Exit2-IR状态时,指令不会被改变。
Update-IR更新指令寄存器状态:
处于Update-IR状态时,移位寄存器中的值将在TCK的下降沿被锁存到指令寄存器中,一旦锁存成功,新的指令将成为当前的指令。如果TMS信号在下一个TCK上升沿处于高电平,TAP控制器进入Select-DR-Scan状态;如果TMS信号在下一个TCK上升沿处于电平,则TAP控制器进入Run-Test/Idle状态。
关于上述状态,能够跳转这些状态的JTAG接口指令集可以包括:
EXTEST指令
EXTEST指令是一种外部测试指令,如互连测试,必须全为0,TAP控制器强制定义。该指令初始化外部电路测试,主要用于板级互连以及片外电路测试。EXTEST指令在Shift-DR状态时将扫描寄存器BSR连接到TDI与TDO之间。在Capture-DR状态时,EXTEST指令将输入管脚的状态在TCK的上升沿装入BSR中。EXTEST指令从不使用移入BSR中的输入锁存器中的数据,而是直接从管脚上捕获数据。在Update- DR状态时,EXTEST指令将锁存在并行输出寄存器单元中的数据在TCK的下降沿驱动到对应的输出管脚上去。
SAMPLE/PRELOAD指令
采样/预装载指令是TAP控制器强制定义的。在Capture-DR状态下,SAMPLE/PRELOAD指令提供一个从管脚到片上系统逻辑的数据流快照,快照在TCK的上升沿提取。在Update-DR状态时,SAMPLE/PRELOAD指令将BSR寄存器单元中的数据锁存到并行输出寄存器单元中,然后由EXTEST指令将锁存在并行输出寄存器单元中的数据在TCK的下降沿驱动到对应的输出管脚上。
BYPASS指令
是一种旁路指令,必须全为1,TAP控制器强制定义。BYPASS指令通过在TDI和TDO之间放置一个1位的旁通寄存器,这样移位操作时只经过1位的旁通寄存器的边界扫描寄存器BSR,从而使得对连接在同一JTAG链上主CPU之外的其他芯片进行测试时提高效率。
IDCODE指令
选择IDCODE指令时,IC工作在正常工作模式,选择数据识别寄存器(dataidentification register)连通TDI和TDO。读取CPU ID号指令,TAP控制器强制定义。该指令将处理器的ID号寄存器连接到TDI和TDO之间。
CLAMP指令
CLAMP指令使芯片IC的输出置于由边界扫描寄存器BSR的当前内容决定的逻辑电平上,选择BYPASS寄存器连通 TDI和TDO。在加载这个指令之前,BSR的内容可以由SAMPLE/PRELOAD指令来预置。在CLAMP指令下,数据通过BYPASS寄存器从TDI传递至TDO,不会影响此IC的输出。
基于上述实现方式及其状态跳转规则和指令,在一些示例中,根据芯片测试流程中的配置过程,确定互连待测芯片中的第一待测芯片和第二待测芯片用于加载指令的指令值序列的具体实施过程可以包括:
对芯片1和芯片2的测试组件(比如boundary scan 测试电路)进行复位之后,分别对芯片1和芯片2配置测试模式,具体来说:
首先,芯片1加载PRELOAD指令,状态跳转为:
Idle->Select-DR->Select-IR->Capture-IR->Shift-IR->Exit1-IR->Update-IR->Idle,
其中,“->”表示跳转方向;并且在Shift-IR和Exit1-IR状态从芯片1的TDI端口按位移入BSDL文件记录的PRELOAD指令码至指令寄存器。
接着,芯片1加载PRELOAD数据,将BSDL文件中boundary-scan registerdescription部分所描述的BSR对应的安全safe值加载至BSR,并按照顺序生成配置数据,状态跳转为:
Idle->Select-DR->Capture-DR->Shift-DR->Exit1-DR->Update-DR->Idle;
并且,在Shift-DR以及Exit1-DR状态,从芯片1的TDI端口按位移入配置数据至BSR;
然后,芯片1加载EXTEST指令,将BSR配置为外测试模式,此时状态跳转为:
Idle->Select-DR->Select-IR->Capture-IR->Shift-IR->Exit1-IR->Update-IR->Idle;
并且,在Shift-IR和Exit1-IR状态从芯片1的TDI端口按位移入BSDL文件记录的EXTEST指令码至指令寄存器。
接着,芯片1保持IDEL状态,并对芯片2进行配置,具体配置过程为:
首先,芯片2加载PRELOAD指令,状态跳转为:
Idle->Select-DR->Select-IR->Capture-IR->Shift-IR->Exit1-IR->Update-IR->Idle;
并且,在Shift-IR以及Exit1-IR状态从芯片2的TDI端口按位移入BSDL文件记录的PRELOAD指令码至指令寄存器。
接着,芯片2加载PRELOAD数据,将BSR加载BSDL文件中boundary-scan registerdescription部分描述的BSR对应的safe值,并按照顺序生成配置数据,状态跳转为:
Idle->Select-DR->Capture-DR->Shift-DR->Exit1-DR->Update-DR->Idle;
并且,在Shift-DR和Exit1-DR状态从芯片2的TDI端口按位移入的配置数据至BSR。
然后,芯片2加载EXTEST指令,将BSR配置为外测试模式,状态跳转为:
Idle->Select-DR->Select-IR->Capture-IR->Shift-IR->Exit1-IR->Update-IR->Idle;
并且,在Shift-IR和Exit1-IR状态从芯片2的TDI端口按位移入BSDL文件记录的EXTEST指令码至指令寄存器。
通过上述示例的具体实施过程,完成了芯片1和芯片2的配置以及生成用于配置的指令值序列。在配置完成后,芯片1和芯片2均处于IDEL状态。
在上述示例的具体实施过程完成之后,在一些示例中,根据芯片测试流程中的测试算法,确定第一待测芯片和第二待测芯片用于加载测试数据的数据值序列的具体实施过程可以包括:
首先,将芯片1的互连输出端口的BSR的值设定为根据设定的测试算法从芯片1的TDI端口在Shift-DR和Exit1-DR状态按位移入的值;具体来说,对于ALL0算法,芯片1的互连输出端口对应的BSR值全为0;对于ALL1算法,芯片1的互连输出端口对应的BSR值全为1;对于ODD算法,芯片1的互连输出端口列表的奇数位对应的BSR值1,偶数位对应的BSR值为0;对于EVEN算法,芯片1的互连输出端口列表中的奇数位对应的BSR值0,偶数位对应的BSR值为1;
接着,将芯片1的互连输入端口以及非互连输入端口对应的BSR值设置为BSDL文件的boundary-scan register description部分中对应端口的cell spec字段中定义的safebit;
随后,将芯片1的非互连端口中输出端口对应的BSR值设置为safe bit,此边界扫描寄存器对应的控制位扫描单元值为BSDL文件的boundary-scan register description部分中对应端口的disable spec字段中的无效值(disable value);
对于上述设置的值,按照芯片1的BSDL中boundary-scan register description部分描述的边界扫描寄存器顺序生成芯片1从TDI端口在Shift-DR和Exit1-DR状态按位移入边界扫描寄存器的数据值序列。此时,芯片2的TDI端口按位移入的测试数据为BSDL中boundary-scan register description部分描述的safe值。
详细来说,基于上述测试序列的生成过程,在后续实施测试的过程中,芯片1和芯片2在测试过程中的状态跳变过程,以及芯片1和芯片2在加载测试数据状态跳转节点的承接关系可以包括:
首先,芯片1加载测试数据,芯片1从Idle到Pause-DR状态期间,芯片2停在Idle状态,芯片1加载测试数据时的状态跳转为:
Idle->Select-DR->Capture-DR->Shift-DR->Exit1-DR->Pause-DR->Exit2-DR->Update-DR->Idle;
此外,芯片1在Shift-DR和Exit1-DR状态从TDI按位移入数据。
接着,芯片1在从Pause-DR状态跳转Exit2-DR状态的同时,芯片2从Idle状态跳转至Select-DR状态;芯片1从Exit2-DR状态跳转到Update-DR状态同时,芯片2从Select-DR状态跳转到Capture-DR状态。为了控制芯片2状态机跳转至Capture-DR状态时能够捕获芯片1在Update-DR状态下芯片互连输出端口对应边界扫描寄存器的值,在Shift-DR和Exit1-DR状态移入BSDL文件中boundary-scan register description部分描述的边界扫描寄存器对应的safe值,将捕获的值按位移出,并且,在芯片2的TDO端口观测测试结果。在此阶段,芯片1状态跳转到IDEL状态并保持于IDEL状态。芯片2的状态跳转为:
Idle->Select-DR->Capture-DR->Shift-DR->Exit1-DR->Update-DR->Idle。
通过将前述两个示例所阐述的指令值序列和数据值序列按照前述示例顺序就可以生成测试序列。测试序列文件的部分内容的一个示例如图6所示,在图6中,标注部分为芯片1互连输出端口应该移入的测试值。
上述针对芯片1生成测试序列的过程完成之后,在一些示例中,需要生成芯片2的期望值序列,具体可以包括:
首先,根据测试算法类型,将芯片2的互连输入端口的边界扫描寄存器在Capture-DR状态下获取芯片1在Update-DR状态下互连输出端口对应的边界扫描寄存器的值。
接着,将芯片2互连输出端口、非互连输入端口以及非互连输出端口对应的边界扫描寄存器的值设置为非关心位,比如X。
最后,按照芯片2的BSDL文件中boundary-scan register description部分描述的边界扫描寄存器顺序生成期望值序列。
基于上述示例,对于芯片2的TDO端口观测的期望值序列文件的部分内容可以如图7所示,需要说明的是,图7中框选标注的期望值是芯片2的互连输入端口应该捕获的值,这些值与芯片1已移入互连输出端口且符合ALL0、ALL1、ODD或EVEN算法的测试值相对应。
对于图2所示的技术方案,在一些可能的实现方式中,所述根据设定的状态机跳转规则获取完成测试所需的总时钟周期数,包括:
将芯片测试流程的状态机跳转过程中的一个状态设定为一个时钟周期;
基于设定的时钟周期,获取指令加载所需的周期数以及边界扫描寄存器加载数据所需的周期数;
基于互连待测芯片的两个测试方向,根据指令加载所需的周期数以及边界扫描寄存器加载数据所需的周期数获得总时钟周期数。
对于上述实现方式,需要说明的是,以图5所示出的IEEE1149.1-2013协议所定义的边界扫描测试的状态机跳转规则在状态跳转过程中的一个状态时长为一个周期,Shift-DR状态持续周期数为BSDL文件记录的边界扫描寄存器长度-1;Shift-IR状态持续周期数为BSDL文件记录的指令寄存器长度-1。总时钟周期数包括由芯片1发送数据到芯片2的测试方向以及由芯片2发送数据到芯片1的测试方向的测试周期数。
具体来说,以图5所示出的IEEE1149.1-2013协议所定义的边界扫描测试的状态机跳转规则为例,需要分别获取以下周期数:
芯片1完成PRELOAD指令加载的周期数、芯片1完成PRELOAD数据加载的周期数、芯片1完成EXTEST指令加载的周期数、芯片2完成PRELOAD指令加载的周期数、芯片2完成PRELOAD数据加载的周期数、芯片2完成EXTEST指令加载的周期数、芯片1完成测试数据ALL0加载的周期数、芯片2完成针对测试数据ALL0的数据加载的周期数、芯片1完成测试数据ALL1加载的周期数、芯片2完成测试数据ALL1的数据加载的周期数、芯片1完成测试数据ODD加载的周期数、芯片2完成测试数据ODD的数据加载的周期数、芯片1完成测试数据EVEN加载的周期数以及芯片2完成测试数据EVEN的数据加载的周期数。在获取到上述周期数之后,对这些周期数进行求和就能够得到完成测试所需的总时钟周期数。
对于图2所示的技术方案,在一些可能的实现方式中,所述根据测试序列和期望值序列获取每个时钟周期内TAP端口、互连端口以及非互连端口的值,包括:
对于TAP端口中的TDI端口,在Shift-DR状态获取移入边界扫描寄存器的测试数据、在Shift-IR状态获取移入指令寄存器的指令码、以及在其余时间保持为0;
对于TAP端口中的TDO端口,在Shift-DR状态获取为上一次移入边界扫描寄存器的测试数据、在Shift-IR状态获取移出指令寄存器在Capture-IR 状态的指令码、以及在其余时间保持高阻态;
对于TAP端口中的TMS端口,根据测试流程获取控制状态跳转的条件值;
对于TAP端口中的TRST端口,在测试开始时复位边界扫描测试组件,并保持一个时钟周期的低电平,在其他时间保持高电平;
将所有待测芯片的非互连输出端口的初始值设置为非关心位并保持,直到加载完成preload数据的Update-DR状态时转变为高阻态值,并保持高阻态值;
将所有待测芯片的非互连输入端口一直设置为非关心位;
将第一待测芯片的互连输出端口在Update-DR状态时将边界扫描寄存器值传递给端口,其他时间保持上一次状态值;
将第二待测芯片的互连输入端口在Capture-DR状态获取值,其他时间保持其他时间保持上一次状态值;
将第一待测芯片的互连输入端口值保持为不确定值;
将第二待测芯片的互连输出端口值保持为高阻态值。
通过前述实现方式获取到总周期数以及每个时钟周期TAP端口、互连端口及非互连端口的值之后,就可以为这些端口的端口值变化设定对应的时间戳。在一些可能的实现方式中,根据总时钟周期数、设定的时钟周期以及每个时钟周期内TAP端口、互连端口及非互连端口的值记录端口值变化的时间戳,包括:
对于互连待测芯片的每个测试方向,获取总时间戳数;
根据总时间戳数、设定的时钟周期以及待测试的延迟时间获取第一待测芯片和第二待测芯片的时间戳;
将获取到的时间戳按照由小到大的顺序获得用于记录值变化的时间戳;
构建用于记录值变化的时间戳与每个时钟周期内TAP端口、互连端口及非互连端口的值之间的对应关系。
对于上述实现方式,具体来说,设定时钟端口值每半周期变化一次,针对由芯片1发送数据到芯片2的测试方向以及由芯片2发送数据到芯片1的测试方向,总时间戳数=总的时钟周期数*4。
对于第一待测芯片,比如芯片1来说,其时间戳的计算方式为:第一次变化时刻=当前周期数*0.5*时钟精度(比如1000),后续变化时刻= 前次变化时刻+后续变化时的周期数*0.5*时钟精度(比如1000)。
对于第二待测芯片,比如芯片2来说,其时间戳的计算方式为:在芯片1的变化时刻+延迟时间时钟精度(比如1000)。
按照由小到大进行排序,得到能够记录在VCD文件中的值变化的时间戳。
通过上述实现方式,构建了时间戳与端口值之间的对应关系,如图8所示,在具体实施过程中可以保存至数据库内,以供后续生成VCD文件使用。
对于图2所示的技术方案,在一些可能的实现方式中,根据互连端口、非互连端口、时间戳以及每个时钟周期内TAP端口、互连端口及非互连端口的值生成VCD文件,包括:
根据互连端口、非互连端口以及BSDL中的component name部分生成VCD文件的信号声明部分;
根据用于记录值变化的时间戳与每个时钟周期内TAP端口、互连端口及非互连端口的值之间的对应关系生成VCD文件的值变化部分;
将信号声明部分和值变化部分生成VCD文件。
对于上述实现方式,具体来说,对于VCD的信号声明部分,可以包括:
根据BSDL中的component name部分确定的VCD文件中scopemodule 的内容;
端口列表所记录的芯片的端口名称;
以及,根据端口列表顺序生成和端口名称一一对应的端口标识符号。
对于值变化部分,可以根据数据库中时间戳与端口值之间的对应关系读取每行数据,以第一行出入为初始值;以及,判断当前行和上一行数据,将与上一行不同数据写入到当前行对应的时间戳下面,同时记录不同数据对应的端口标识符;以此类推直至读完所有的数据。
通过上述方案生成VCD文件,无需仿真过程,不依赖仿真工具以及芯片设计文件,相较于当前常规的VCD文件生成方案,节省了90%的时间,提高了生成VCD文件的效率,降低了生成VCD文件所耗费的资源成本。
基于前述技术方案相同的发明构思,参见图9,其示出了本发明实施例提供的一种生成VCD文件的装置90,所述装置90包括:划分部分901、第一生成部分902、第一获取部分903、第二获取部分904、记录部分905以及第二生成部分906;其中,
所述划分部分901,经配置为根据互连待测芯片中的每一个待测芯片的边界扫描描述语言BSDL文件以及互连关系文件将互连待测芯片的端口划分为互连端口以及非互连端口;
所述第一生成部分902,经配置为基于设定的测试规则以及测试算法,针对互连待测芯片的测试方向生成测试序列和期望值序列;
所述第一获取部分903,经配置为根据设定的状态机跳转规则获取完成测试所需的总时钟周期数;
所述第二获取部分904,经配置为根据测试序列和期望值序列获取每个时钟周期内测试访问端口TAP、互连端口以及非互连端口的值;
所述记录部分905,经配置为根据总时钟周期数、设定的时钟周期以及每个时钟周期内TAP端口、互连端口及非互连端口的值记录端口值变化的时间戳;
所述第二生成部分906,经配置为根据互连端口、非互连端口、时间戳以及每个时钟周期内TAP端口、互连端口及非互连端口的值生成VCD文件。
需要说明的是,上述实施例提供的生成VCD文件的装置90,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将终端的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的生成VCD文件的装置90与生成VCD文件的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图10,其示出了本申请一个示例性实施例提供的电子设备的结构方框图。本申请中的电子设备可以包括一个或多个如下部件:处理器1010和存储器1020。
可选的,处理器1010利用各种接口和线路连接整个电子设备内的各个部分,通过运行或执行存储在存储器1020内的指令、程序、代码集或指令集,以及调用存储在存储器1020内的数据,执行电子设备的各种功能和处理数据。可选的,处理器1010可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-ProgrammableGateArray,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器1010可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)、神经网络处理器(Neural-networkProcessing Unit,NPU)和基带芯片等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责触摸显示屏所需要显示的内容的渲染和绘制;NPU用于实现人工智能(Artificial Intelligence,AI)功能;基带芯片用于处理无线通信。可以理解的是,上述基带芯片也可以不集成到处理器1010中,单独通过一块芯片进行实现。
存储器1020可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory,ROM)。可选地,该存储器1020包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1020可用于存储指令、程序、代码、代码集或指令集。存储器1020可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等;存储数据区可存储根据电子设备的使用所创建的数据等。
除此之外,本领域技术人员可以理解,上述附图所示出的电子设备的结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,终端中还包括显示屏、摄像组件、麦克风、扬声器、射频电路、输入单元、传感器(比如加速度传感器、角速度传感器、光线传感器等等)、音频电路、WiFi模块、电源、蓝牙模块等部件,在此不再赘述。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有至少一条指令,所述至少一条指令用于被处理器执行以实现如上各个实施例所述的生成VCD文件的方法。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中;电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行以实现上述方面的各种可选实现方式中提供的生成VCD文件的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
需要说明的是:本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种生成值变更转存VCD文件的方法,其特征在于,所述方法包括:
根据互连待测芯片中的每一个待测芯片的边界扫描描述语言BSDL文件以及互连关系文件将所述互连待测芯片的端口划分为互连端口以及非互连端口;
基于设定的测试规则以及测试算法,针对所述互连待测芯片的测试方向生成测试序列和期望值序列;
根据设定的状态机跳转规则获取完成测试所需的总时钟周期数;
根据所述测试序列和期望值序列获取每个时钟周期内测试访问端口TAP、互连端口及非互连端口的值;
根据所述总时钟周期数、设定的时钟周期以及每个时钟周期内TAP端口、互连端口及非互连端口的值记录端口值变化的时间戳;
根据所述互连端口、非互连端口、所述时间戳以及每个时钟周期内TAP端口、互连端口及非互连端口的值生成值变更转存VCD文件。
2.根据权利要求1所述的方法,其特征在于,所述根据互连待测芯片中的每一个待测芯片的边界扫描描述语言BSDL文件以及互连关系文件将所述互连待测芯片的端口划分为互连端口以及非互连端口,包括:
根据所述每一个待测芯片的BSDL文件中边界扫描寄存器描述部分所记录端口名称和端口类型,以及所述互连关系文件中所记录的端口名称和连接关系确定所述互连端口,并为所述互连端口按照端口类型进行分类,获得分类后的互连端口;
根据所述每一个待测芯片的BSDL文件中边界扫描寄存器描述部分、逻辑端口描述部分以及使能IEEE1149.1-2013协议组件的端口描述部分所记录的端口名称和端口类型,剔除所述互连端口,获得所述非互连端口,并为所述非互连端口按照端口类型进行分类,获得分类后的非互连端口。
3.根据权利要求1所述的方法,其特征在于,所述基于设定的测试规则以及测试算法,针对所述互连待测芯片的测试方向生成测试序列和期望值序列,包括:
根据芯片测试流程中的配置过程,确定所述互连待测芯片中的第一待测芯片和第二待测芯片用于加载指令的指令值序列;
根据芯片测试流程中的测试算法,确定所述第一待测芯片和第二待测芯片用于加载测试数据的数据值序列;
根据所述指令值序列和所述数据值序列生成所述测试序列;其中,所述测试序列以所述第一待测芯片向所述第二待测芯片发送数据为所述互连待测芯片的测试方向;
根据算法类型获取所述第二待测芯片的互连输入端口对应的边界扫描寄存器所捕获的值;
将所述第二待测芯片的互连输出端口、非互连输入端口和非互连输出端口对应的边界扫描寄存器的值设置为非关心位值;
根据所述第二待测芯片的BSDL文件所记录的边界扫描寄存器顺序,将所述第二待测芯片的互连输入端口对应的边界扫描寄存器所捕获的值、所述第二待测芯片的互连输出端口、非互连输入端口和非互连输出端口对应的边界扫描寄存器的值生成所述期望值序列。
4.根据权利要求1所述的方法,其特征在于,所述根据设定的状态机跳转规则获取完成测试所需的总时钟周期数,包括:
将芯片测试流程的状态机跳转过程中的一个状态设定为一个时钟周期;
基于设定的时钟周期,获取指令加载所需的周期数以及边界扫描寄存器加载数据所需的周期数;
基于所述互连待测芯片的两个测试方向,根据指令加载所需的周期数以及边界扫描寄存器加载数据所需的周期数获得所述总时钟周期数。
5.根据权利要求1所述的方法,其特征在于,所述根据所述测试序列和期望值序列获取每个时钟周期内测试访问端口TAP、互连端口及非互连端口的值,包括:
对于TAP端口中的测试数据输入TDI端口,在移位数据寄存器SHIFT-DR状态获取移入边界扫描寄存器的测试数据、在移位指令寄存器SHIFT-IR状态获取移入指令寄存器的指令码、以及在其余时间保持为0;
对于TAP端口中的测试数据输出TDO端口,在SHIFT-DR状态获取为上一次移入边界扫描寄存器的测试数据、在SHIFT-IR状态获取移出指令寄存器在捕获指令寄存器CAPTURE-IR状态的指令码、以及在其余时间保持高阻态;
对于TAP端口中的测试模式选择TMS端口,根据测试流程获取控制状态跳转的条件值;
对于TAP端口中的测试复位TRST端口,在测试开始时复位边界扫描测试组件,并保持一个时钟周期的低电平,在其他时间保持高电平;
将所有待测芯片的非互连输出端口的初始值设置为非关心位并保持,直到加载完成预装载preload数据的更新数据寄存器UPDATE-DR状态时转变为高阻态值,并保持高阻态值;
将所有待测芯片的非互连输入端口一直设置为非关心位;
将所述互连待测芯片中的第一待测芯片的互连输出端口在UPDATE-DR状态时将边界扫描寄存器值传递给端口,其他时间保持上一次状态值;
将所述互连待测芯片中的第二待测芯片的互连输入端口在捕获数据寄存器CAPTURE-DR状态获取值,其他时间保持上一次状态值;
将所述第一待测芯片的互连输入端口值保持为不确定值;
将所述第二待测芯片的互连输出端口值保持为高阻态值。
6.根据权利要求1所述的方法,其特征在于,所述根据所述总时钟周期数、设定的时钟周期以及每个时钟周期内TAP端口、互连端口及非互连端口的值记录端口值变化的时间戳,包括:
对于所述互连待测芯片的每个测试方向,获取总时间戳数;
根据总时间戳数、设定的时钟周期以及待测试的延迟时间获取第一待测芯片和第二待测芯片的时间戳;
将获取到的时间戳按照由小到大的顺序获得用于记录值变化的时间戳;
构建所述用于记录值变化的时间戳与每个时钟周期内TAP端口、互连端口及非互连端口的值之间的对应关系。
7.根据权利要求1所述的方法,其特征在于,所述根据所述互连端口、非互连端口、所述时间戳以及每个时钟周期内TAP端口、互连端口及非互连端口的值生成值变更转存VCD文件,包括:
根据所述互连端口、非互连端口以及BSDL中的组件名称描述部分生成所述VCD文件的信号声明部分;
根据用于记录值变化的时间戳与每个时钟周期内TAP端口、互连端口及非互连端口的值之间的对应关系生成所述VCD文件的值变化部分;
将所述信号声明部分和所述值变化部分生成所述VCD文件。
8.一种生成值变更转存VCD文件的装置,其特征在于,所述装置包括:划分部分、第一生成部分、第一获取部分、第二获取部分、记录部分以及第二生成部分;其中,
所述划分部分,经配置为根据互连待测芯片中的每一个待测芯片的边界扫描描述语言BSDL文件以及互连关系文件将所述互连待测芯片的端口划分为互连端口以及非互连端口;
所述第一生成部分,经配置为基于设定的测试规则以及测试算法,针对所述互连待测芯片的测试方向生成测试序列和期望值序列;
所述第一获取部分,经配置为根据设定的状态机跳转规则获取完成测试所需的总时钟周期数;
所述第二获取部分,经配置为根据所述测试序列和期望值序列获取每个时钟周期内测试访问端口TAP、互连端口及非互连端口的值;
所述记录部分,经配置为根据所述总时钟周期数、设定的时钟周期以及每个时钟周期内TAP端口、互连端口及非互连端口的值记录端口值变化的时间戳;
所述第二生成部分,经配置为根据所述互连端口、非互连端口、所述时间戳以及每个时钟周期内TAP端口、互连端口及非互连端口的值生成值变更转存VCD文件。
9.一种计算设备,其特征在于,所述计算设备包括:处理器和存储器;所述处理器用于执行所述存储器中存储的指令,以实现如权利要求1至7任一所述的生成值变更转存VCD文件的方法。
10.一种计算机存储介质,其特征在于,所述存储介质存储有至少一条指令,所述至少一条指令用于被处理器执行以实现如权利要求1至7任一所述的生成值变更转存VCD文件的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311147270.0A CN116881067B (zh) | 2023-09-07 | 2023-09-07 | 一种生成vcd文件的方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311147270.0A CN116881067B (zh) | 2023-09-07 | 2023-09-07 | 一种生成vcd文件的方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116881067A true CN116881067A (zh) | 2023-10-13 |
CN116881067B CN116881067B (zh) | 2023-11-21 |
Family
ID=88262641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311147270.0A Active CN116881067B (zh) | 2023-09-07 | 2023-09-07 | 一种生成vcd文件的方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116881067B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117707875A (zh) * | 2024-02-06 | 2024-03-15 | 西安简矽技术有限公司 | 一种测试硬件电路连接的生成方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101083507A (zh) * | 2006-05-31 | 2007-12-05 | 中国科学院微电子研究所 | 遵循ieee1149.1协议的通用测试ip方法 |
US20110307233A1 (en) * | 1998-08-31 | 2011-12-15 | Tseng Ping-Sheng | Common shared memory in a verification system |
CN114528254A (zh) * | 2021-12-31 | 2022-05-24 | 无锡亚科鸿禹电子有限公司 | 一种按指定层次生成波形方法 |
CN115202947A (zh) * | 2022-08-02 | 2022-10-18 | 无锡众星微系统技术有限公司 | 基于调试接口的芯片测试向量生成方法 |
CN115562930A (zh) * | 2022-11-24 | 2023-01-03 | 北京紫光芯能科技有限公司 | 用于测试多核芯片的方法及装置、电子设备、存储介质 |
CN116224042A (zh) * | 2023-04-28 | 2023-06-06 | 北京壁仞科技开发有限公司 | 生成测试待测器件的测试向量的方法、系统、设备和介质 |
US20230229837A1 (en) * | 2022-01-19 | 2023-07-20 | International Business Machines Corporation | Auto generation of debug trace in pre-silicon verification |
CN116663490A (zh) * | 2023-05-31 | 2023-08-29 | 深圳市国微电子有限公司 | 一种异步存储芯片的验证方法、平台、装置及介质 |
-
2023
- 2023-09-07 CN CN202311147270.0A patent/CN116881067B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110307233A1 (en) * | 1998-08-31 | 2011-12-15 | Tseng Ping-Sheng | Common shared memory in a verification system |
CN101083507A (zh) * | 2006-05-31 | 2007-12-05 | 中国科学院微电子研究所 | 遵循ieee1149.1协议的通用测试ip方法 |
CN114528254A (zh) * | 2021-12-31 | 2022-05-24 | 无锡亚科鸿禹电子有限公司 | 一种按指定层次生成波形方法 |
US20230229837A1 (en) * | 2022-01-19 | 2023-07-20 | International Business Machines Corporation | Auto generation of debug trace in pre-silicon verification |
CN115202947A (zh) * | 2022-08-02 | 2022-10-18 | 无锡众星微系统技术有限公司 | 基于调试接口的芯片测试向量生成方法 |
CN115562930A (zh) * | 2022-11-24 | 2023-01-03 | 北京紫光芯能科技有限公司 | 用于测试多核芯片的方法及装置、电子设备、存储介质 |
CN116224042A (zh) * | 2023-04-28 | 2023-06-06 | 北京壁仞科技开发有限公司 | 生成测试待测器件的测试向量的方法、系统、设备和介质 |
CN116663490A (zh) * | 2023-05-31 | 2023-08-29 | 深圳市国微电子有限公司 | 一种异步存储芯片的验证方法、平台、装置及介质 |
Non-Patent Citations (2)
Title |
---|
BAISHAKHI RAY等: "A Case Study of Cross-System Porting in Forked Projects", PROCEEDINGS OF THE ACM SIGSOFT 20TH INTERNATIONAL SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, pages 1 - 11 * |
李九州等: "一种实用的VCD文件处理方法", 电子设计工程, vol. 21, no. 15, pages 61 - 64 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117707875A (zh) * | 2024-02-06 | 2024-03-15 | 西安简矽技术有限公司 | 一种测试硬件电路连接的生成方法 |
CN117707875B (zh) * | 2024-02-06 | 2024-05-14 | 西安简矽技术有限公司 | 一种测试硬件电路连接的生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116881067B (zh) | 2023-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11567131B2 (en) | Programmable test compression architecture input/output shift register coupled to SCI/SCO/PCO | |
CA2404059C (en) | Method and apparatus for providing optimized access to circuits for debug, programming, and test | |
CN105631077B (zh) | 具有增大的故障覆盖率的集成电路 | |
US9459319B2 (en) | Device and method for generating input control signals of a serialized compressed scan circuit | |
EP2010927B1 (en) | Test access port switch | |
US7352169B2 (en) | Testing components of I/O paths of an integrated circuit | |
US7702980B2 (en) | Scan-load-based dynamic scan configuration | |
US7137086B2 (en) | Assertion checking using two or more cores | |
US8756467B2 (en) | Methods and apparatus for testing multiple-IC devices | |
CN116881067B (zh) | 一种生成vcd文件的方法、装置、设备及存储介质 | |
US9766289B2 (en) | LBIST debug controller | |
US10509072B2 (en) | Test application time reduction using capture-per-cycle test points | |
US20180340977A1 (en) | Efficient test architecture for multi-die chips | |
Milewski et al. | Full-scan LBIST with capture-per-cycle hybrid test points | |
EP0849678A2 (en) | A system and method for testing electronic devices | |
WO2017190124A1 (en) | Increase data transfer throughput by enabling dynamic jtag test mode entry and sharing of all jtag pins | |
US9599673B2 (en) | Structural testing of integrated circuits | |
US10963612B2 (en) | Scan cell architecture for improving test coverage and reducing test application time | |
US7607057B2 (en) | Test wrapper including integrated scan chain for testing embedded hard macro in an integrated circuit chip | |
CN218825512U (zh) | 内嵌逻辑分析系统、逻辑器件和器件分析设备 | |
Alves et al. | From design-for-test to design-for-debug-and-test: analysis of requirements and limitations for 1149.1 | |
KR20060095283A (ko) | 다중 시스템 클럭 및 이종 코어를 포함하는 시스템 온 칩용연결선 지연 고장 테스트 제어기 | |
KR100672082B1 (ko) | 이종 코아를 가진 시스템 온 칩에서의 연결선 지연 고장점검 테스트 제어기 및 이를 구비한 시스템 온 칩 | |
US12013434B2 (en) | Programmable test compression architecture input/output shift register coupled to SCI/SCO/PCO | |
KR20030027989A (ko) | 칩 테스트 장치 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |