欢迎光临小豌豆知识网!
当前位置:首页 > 物理技术 > 测量测试> 基于Python的芯片自动化验证测试系统及方法独创技术10177字

基于Python的芯片自动化验证测试系统及方法

2021-02-07 06:59:05

基于Python的芯片自动化验证测试系统及方法

  技术领域

  本发明涉及芯片验证技术领域的一种测试及控制技术,尤其是对于芯片功能验证中的多待测板的透传指令下发与程控测试仪器自动化测量方面。

  背景技术

  近年来,随着集成电路开发与制造技术的飞速发展,越来越多高集成度且功能复杂的芯片被设计出来,以满足不同行业的需求。芯片验证作为芯片开发中关键的一环,其不仅是对功能模块的逻辑设计进行检验与分析,更是整个开发流程中耗费人力与时间成本最多,脚本设计最为复杂的工程。

  目前现有的芯片验证过程中,PC端上位机脚本与仪器测量在系统层面上普遍是分离的,大部分验证工作都需要手动配置好测试仪器后,再进行脚本指令的下发,直到测试数据被仪器检测到时再进行录入,这样浪费了大量的人力成本与调试时间。而一些含有程控仪器的测试系统,普遍只兼容一种或两种设备,其功能同时也受限于仪器动态库函数的限制,无法满足自定义功能的拓展,而后期添加新设备的工作也存在开发周期较长,难以短期实现。在验证流程上,需遍历大量多层级的测试参数,以达到全功能覆盖的目的。当面对较大量样品同时测量时,人为的仪器调试与操作难免会存在失误风险,影响到测试质量与结果。

  发明内容

  本发明主要解决的技术问题是提供了一种使用Python编程为基础的高拓展性芯片自动化验证测试方法,其整合仪器控制框架,多接口透传协议框架,芯片JTAG调试功能,数据分析以及脚本运行功能的自动化测试系统。

  为了解决上述问题,本发明的芯片自动化验证测试方法包含如下四个步骤:

  步骤1:硬件环境搭建,PC端上位机连接待测板与程控测试仪器。通过USB转串口转接板与待测板建立物理连接。其中PC端需与转接板的USB端口进行连接,待测板根据测试需求,选择合适的通讯接口(UART、SPI、I2C)并使用杜邦线与转接板串口端对应接口进行连接。程控测试仪器可通过其所支持的USB,COM,LAN或GPIB与PC端直接进行连接。在完成与PC端的连接后,程控设备的测试接口需根据需求与待测板上引出的功能pin脚进行连接。

  步骤2:软件环境搭建,PC端安装Python运行环境与IEEE 488.2程控驱动协议后搭建PC端上位机测试软件环境。测试软件环境通过辨别设备的描述信息与物理地址进行自动筛选分类。即当检测到设备为单台或多台待测板时,通讯通道切换至测试指令下发的透传接口等待下一步操作的流程为:

  

  上述代码中的“USBtoUART”为USB转接板设备名称,可根据需求进行自定义修改。

  当检测到程控测试仪器时,PC端上位机与仪器使用IEEE 488.2标准协议的握手通讯指令“*IDN?”,用于获取设备返回的身份信息,并自动建立连接等待下一步仪器操作指令:

  

  上述代码中的“Dev_ADDR”为IEEE 488.2标准的程控仪器固定的连接端口物理地址,可在PC端设备管理器中查看。

  步骤3,在软硬件环境搭建好之后,通过测试软件环境即可进行透传指令的下发,并配合程控指令搭建测试流程。

  PC端上位机使用可自定义帧格式的透传指令进行测试动作下发。自定义帧格式目的是使透传信息与芯片的通讯指令解析相互匹配,通讯指令总体结构定义为:

  身份ID信息+指令字节长度+指令数据+结束码

  其中的身份ID信息的作用是供芯片判别此条指令的来源,可自定义不同私有的身份ID,应用于多台上位机指令下发的测试应用场景。

  其中的指令字节长度作用是定义指令数据长度,供芯片进行实际接收的指令的长度判断。

  其中结束码的作用是,供芯片判别接收是否结束的特定字节。

  为满足测试流程中,对芯片寄存器的直接修改与读写操作的需求。PC端上位机可通过测试软件环境的JTAG通道,进行芯片寄存器级的操作。其包含的功能函数如下:

  JTAG_Open(JTAG_ID)(3)

  (3)中函数用于打开芯片的JTAG调试接口,其中“JTAG_ID”为JTAG身份信息。

  JTAG_Read(address)(4)

  (4)中函数用于读取芯片寄存器中的数值,其中“address”为需读取的寄存器物理地址。

  JTAG_Write(address,var)(5)

  (5)中函数用于对芯片寄存器写入指定数值,其中“address”为需写入数值的寄存器物理地址,“var”为写入具体的数值。

  JTAG_Reset()(6)

  (6)中函数用于重置JTAG调试通道,在出错情况下进行参数复位操作。

  程控测试仪器的程控指令使用基于Python开发且符合IEEE 488.2通信协议的功能函数。函数主体功能包含:仪器测量参数配置;测量通道选择;仪器状态查询;测量数据回读。在使用时,通过Python threading模块中对多线程运行的支持,实现与透传指令协同并发的工作模式,使仪器控制与测试指令紧密结合。

  步骤4,在测试流程运行中或结束时,根据PC端下发给程控测试仪器的量数据回读指令,测试设备会将数据实时采集回PC端,在PC端中进行包含数据解析,绘图与文档记录的流程。

  从以上描述可以看出,本发明在软硬件环境搭建上进行了结构简化且清晰,对连接的设备都会进行自动编码与地址整理,进一步增强了PC端上位机仪器自动化的调度统一性;在对芯片进行指令下发时,自定义的指令结构确保了一定安全性与兼容性;在JTAG调试功能的使测试流程中,无需经过芯片的通讯协议,便可修改芯片寄存器数值用于配置芯片的不同功能;仪器自动化控制与回传数据的打包分析,在实现了仪器控制与透传指令协同并发的工作模式的同时,也使仪器控制与测试指令紧密结合,缩短了人为操作时间与测试流程运行效率。

  附图说明

  下面结合附图和实施例对本发明进一步说明。

  图1为本发明硬件环境连接示意图;

  图2为本发明软件设计总体流程图;

  图3为本发明总体架构图;

  具体实施方式

  下面结合具体软硬件操作搭建为例对本发明专利做详细说明:

  图1中包含1.PC端,2.USB转串口转接板,3.JTAG调试通道,4.待测板,5.待测芯片,6.可编程电源,7.程控测试仪器(根据需求可拓展),8.仪器适配连接线(USB、COM、LAN、GPIB),9.(同8),10.测试设备夹线,11.电源夹线,12.杜邦线,13.(同12),14.USB连接线,15.(同14)。

  下面结合附图与具体实施方式对本发明作进一步详细的说明:

  图1所示为本发明的芯片自动化验证测试系统的总体结构图。测试系统的PC端1使用基于Python开发的开源架构,通过物理联连接的方式与待测板4和程控测试仪器7进行连接。通过统一的脚本流程,对仪器控制,芯片测试操作与数据记录进行同步执行。测试系统主体由PC端1,待测件4及待测芯片5,程控测试仪器7,USB转串口转接2部分组成。PC端1负责总体测试流程控制,对程控测试仪器所采集的数据进行包含记录,绘制与报告生成的可视化处理。待测板4与待测芯片5使用焊接的方式连接,并引出芯片的各pin脚供测试使用。程控测试仪器7可根据测试需求进行拓展,上位机可扩容兼容IEEE 488.2协议的设备,将其工控指令进行功能函数封装。待测板4连接调试部分主要包含USB转串口转接板2与JTAG调试通道3,主要用于建立PC端1与待测板4的物理连接,透传指令下发与数据回读通路。总体测试流程通过三个步骤来实现:

  步骤一:PC端1使用仪器适配连接线8、9与可编程电源6和程控测试仪器7进行连接。可编程电源6使用电源夹线11与待测板4上的Vin引脚连接,程控测试仪器7使用测试设备夹线10与待测板4上的测试引脚连接。接下来,PC端1使用USB连接线14、15分别与USB转串口转接板2和JTAG调试通道3进行连接。USB转串口转接板2使用杜邦线13与待测板4上的选定通讯端口进行连接,JTAG调试通道3使用杜邦线12与待测板4上引出的芯片JTAG调试端口进行连接。

  PC端1上位机的软件流程如图2所示,进入测试流程前,首先开启PC端1的上位机设备检测,并自动进行归类与握手操作,确保设备通讯正常;根据需求,进行测试脚本流程的设置,流程中包含透传指令,设备控制指令与JTAG调试指令的下发操作;待PC端1接收到测试仪器数据与芯片返回的信息后,进行数据绘图与测试报告的生成。

  步骤二:测试流程中,使用选定的芯片指令下发接口,通过USB转串口转接板2对待测板4上的待测芯片5进行流水式的测试指令下发,仪器控制指令通过仪器适配连接线8、9,在测试流程中保持与测试指令并发,以达到同步配置与测量的操作。可编程电源6根据测试需求,实时改变待测芯片5的工作电压环境。程控测试仪器7将所采集的数据实时传回至PC端1,生成直观的数据图像与图表等数据报告,供测试人员进行分析。如图3所示,总体架构为软件与硬件的结合,配合使用PC端1的测试脚本,可进行自定义的测试流程设计。

  以上通过结合具体实施方式对本发明作了详细的说明,并非构成对本发明的限制,在不脱离本发明原理的情况下,可做出若干变形和改进,这些也应视为属于本发明的保护范围。

《基于Python的芯片自动化验证测试系统及方法.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)