CN109858195A - 一种sram型fpga上必要位单粒子翻转故障的在线仿真系统 - Google Patents

一种sram型fpga上必要位单粒子翻转故障的在线仿真系统 Download PDF

Info

Publication number
CN109858195A
CN109858195A CN201910219751.5A CN201910219751A CN109858195A CN 109858195 A CN109858195 A CN 109858195A CN 201910219751 A CN201910219751 A CN 201910219751A CN 109858195 A CN109858195 A CN 109858195A
Authority
CN
China
Prior art keywords
frame
module
test
circuit
dut
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
Application number
CN201910219751.5A
Other languages
English (en)
Other versions
CN109858195B (zh
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.)
Institute of Optics and Electronics of CAS
Original Assignee
Institute of Optics and Electronics of CAS
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 Institute of Optics and Electronics of CAS filed Critical Institute of Optics and Electronics of CAS
Priority to CN201910219751.5A priority Critical patent/CN109858195B/zh
Publication of CN109858195A publication Critical patent/CN109858195A/zh
Application granted granted Critical
Publication of CN109858195B publication Critical patent/CN109858195B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明公开了一种SRAM型FPGA上必要位单粒子翻转故障的在线仿真系统。所述系统设计方法属于测试技术领域。所述系统设计由上位机(1)即PC端和下位机(2)即FPGA端组成。其中,上位机(1)系统设计包括:测试界面(101),必要位文件提取模块(102),解析调试比特流文件模块(103),通信接口(104);下位机(2)系统设计包括:主控制模块(201)、待测电路(202)、黄金电路(203)、比较电路(204)、串口通信模块(205)、JTAG接口(206)、配置RAM(207)。本发明中位于上位机(1)的测试界面(101)通过向下位机(2)发送指示命令控制单粒子翻转故障模拟的仿真流程,下位机(2)根据接收到的命令执行相应操作后将结果返回。本发明无需处理器参与,无需外部硬件开销,可以灵活地移植到其他支持ICAP的FPGA芯片。

Description

一种SRAM型FPGA上必要位单粒子翻转故障的在线仿真系统
技术领域
本发明涉及一种SRAM型FPGA上必要位单粒子翻转故障的在线仿真系统,属于测试技术领域。
背景技术
SRAM(Static Random Access Memory)型FPGA(Field Programmable GateArray)由于其成本低、逻辑资源丰富、可重构、开发周期短等优势,越来越多地被应用在空天领域。然而由于SRAM型FPGA本身的工艺结构特性,其在太空等辐照环境下极易受高能带电粒子撞击而产生单粒子翻转效应(Single Event Upset,SEU),会导致FPGA中的存储单元发生位翻转。因配置RAM是芯片中数量最多的存储单元,且考虑到配置RAM对用户电路逻辑的直接影响,因此对于配置RAM上SEU故障的分类对FPGA在航天领域的应用评估显得尤为重要。
目前,故障注入大体分为两种:外部故障注入和内部故障注入。两者都访问了FPGA的配置RAM,前者通过外部配置接口(JTAG,Joint Test Action Group或SelectMAP),后者通过内部配置接口(Internal Configuration Access Port,ICAP)。对于外部故障注入,通常需要外部控制器如一片反熔丝型FPGA来辅助做故障注入处理,这不仅增加了硬件开销,还降低了空间应用中的可靠性。对于内部故障注入,大部分的设计都采用了片上内嵌的处理器来辅助实现故障注入。从Virtex-6/Spartan-6开始,Xilinx公司提供了一个基于PicoPlaze处理器的SEM(Soft Error Mitigation)IP核,其功能全面,可实现故障注入、故障修复、故障分类等功能。然而由于PicoPlaze处理器没有官方的C编译器且指令空间极小(1024个字),SEM控制器不能灵活地被重编程以实现新的刷新机制。
发明内容
本发明要解决的技术问题为:克服现有单粒子翻转模拟技术普遍需要外部控制器或内嵌处理器的不足,采用将故障注入系统和待测电路布置在同一片FPGA上的方式来对待测电路进行故障模拟实现,因此需要对配置RAM的帧物理组织进行研究并需要给出一种提取必要位的方法。
为了解决上述技术问题,本发明提出一种SRAM型FPGA上必要位单粒子翻转故障的在线仿真系统。所设计的系统无需处理器参与,无需外部硬件开销,可以灵活地移植到其他支持ICAP(Internal Configuration Access Port)的芯片。所述系统测试流程如下:上位机1的测试界面101通过串口通信接口向下位机2发送指示命令控制单粒子翻转故障模拟的仿真流程,下位机2的主控制模块201选择对应的命令模式,执行相应操作后将结果返回给上位机1。所述向下位机2发送的命令和相应命令需要的参数信息包括:命令一为翻转一个位,所需参数包括命令标识1、帧地址、字地址、位地址;命令二为回读一整帧,所需参数包括命令标识2、帧地址;命令三为开始待测电路(DUT,Design Under Test)功能测试,所需参数包括命令标识3。
所述上位机1系统包括:
帧结构解析模块101:实现对指定芯片的帧结构解析,用以获取相应芯片配置bit流的帧组织;该模块根据芯片手册中的数据包格式对输入的调试比特流文件1011进行一次解析,提取出所有的帧地址,得到帧地址列表文件1012;之后对帧地址列表文件1012进行二次解析得到比特流结构可视化文档1013,进而得到具体芯片的帧结构以及配置比特流文件中的具体帧组织;
必要位提取模块102:用于从SEM(Soft Error Mitigation)IP核的中间文件EBD(Essential Bit Data)文件中提取出用户设计电路的必要位位置;EBD文件内容是配置bit流文件的子集,但其文件内容首部增加了一帧伪帧;必要位定义为与用户设计相关的位;必要位位置格式寻址形式为:{块类型,顶部/底部指示器,行位置,列位置,帧位置,帧中所处的字位置,字中所处的位位置};
测试界面103:基于QT所设计的人机交互界面;控制单粒子翻转故障模拟的仿真流程;对待测电路的必要位进行逐位的单粒子翻转故障模拟及修复测试;
布局工具104:为FPGA开发套件工具下的PlanAhead工具;用于将待测电路和其余电路分别布局在不同的Pblock(Physical block),据此布局信息可得到待测电路的必要位数据库;所提取出的待测电路必要位数据库作为故障库;
通信接口105,包括JTAG接口与串口;JTAG接口用于对FPGA进行首次配置,配置bit流通过JTAG接口写入FPGA的配置RAM;串口实现上位机1与下位机2的数据通讯,所述三种命令通过串口发送至下位机;以及,接收下位机2传回的操作结果数据。
所述测试界面103包括:
故障注入模块1031,回读一帧模块1032,待测电路功能检测模块1033和故障分类结果显示模块1034组成;故障注入模块1031用于发送翻转一个位的操作,以实现对FPGA配置RAM中单粒子翻转问题的模拟实现,其命令组成为{AA99556601,帧地址,帧中所处的字地址,字中所处的位地址};
回读一帧模块1032用于发送回读指定地址的帧内容的操作,以测试对帧中某一位进行翻转后是否影响同帧的其他位,该操作要在mask文件的掩码下与配置bit流文件的相应帧内容对比进行,其命令组成为{AA99556602,帧地址};
待测电路功能检测模块1033用于发送启动DUT测试的命令,以测试对帧中某一位进行翻转后是否会影响DUT的正常功能逻辑,其命令组成为{AA99556603};
故障分类结果显示模块1034用于对下位机2返回的操作结果信息进行解析并对结果进行总结分类,分类结果有5种:①非关键可修复位;②非关键不可修复位;③关键可修复位;④关键不可修复位;⑤影响了同帧的其他非掩码位的位;其中,关键位表示对该位进行翻转会导致DUT功能测试期间出现错误,非关键位表示对该位进行翻转不会影响DUT的功能逻辑。
所述下位机2系统包括:
主控制模块201:控制下位机2进行单粒子翻转模拟实现的命令读取、命令切换与命令交付操作;包括:与上位机的通讯功能,解析上位机的命令功能,主程序状态切换与控制功能(对必要位所在位置进行翻转操作、回读整帧操作、修复操作以及对DUT进行功能测试操作);
待测电路202:用于在模拟的单粒子翻转故障环境下运行;
黄金电路203:是待测电路的正确备份,用于在正常环境下运行;
对比电路204:用于遍历对比待测电路和黄金电路的运行结果;
串口通信模块205:接收上位机1传来的命令;以及,返回下位机2的命令执行结果;返回信息包括:翻转一位的操作是否成功,回读一帧的操作是否成功并返回帧内容,修复一位的操作是否成功;对比电路对DUT和黄金电路遍历输入向量后DUT功能逻辑是否正确;
JTAG接口206:用于接收上位机1的配置bit流,实现对FPGA配置信息的首次加载;
本发明提供了一种SRAM型FPGA上必要位单粒子翻转故障的在线仿真系统设计方法,所述主控制模块201包括:
Inj_fault_FSM 2011:主状态机,控制命令的操作与切换;在空闲状态下,该模块向Rx_fifo_controller 2013模块发送start_get_cmd信号,请求获取一个命令;Rx_fifo_controller 2013模块根据与上位机1约定好的协议从Rx_fifo 2012中读出一个有效命令给Inj_fault_FSM 2011模块,同时发出cmd_mode和cmd_valid信号分别作为命令标识头和有效命令标志;其中,cmd_mode的3种标识及含义如下:0b“00”表示注入一位错即翻转一个位,0b“01”表示回读一整,0b“10”表示开始DUT测试;
Rx_fifo 2012:用于存储来自上位机1的命令数据;
Rx_fifo_Controller 2013:用于从Rx_fifo 2012中读取一个有效命令交由主状态机;以及,该模块还需向Inj_fault_FSM 2011模块提供执行命令所需的参数:cmd_mode为0b“00”时需要提供帧地址、字地址、位地址,cmd_mode为0b“01”时需要提供帧地址,cmd_mode为0b“10”时无需提供参数;
ICAP_Controller 2014:通过ICAP接口对配置RAM进行回读与动态重配置,实现对配置RAM的读写;ICAP(Internal Configuration Access Port)作为内部配置访问端口,可以通过FPGA上配置的应用电路直接访问,允许他们在运行时更改自己的结构和功能;ICAP配置一帧所需的具体命令信息包括:总线宽度同步字、总线位宽检测字、同步字、复位CRC命令、WCFG命令、写FAR寄存器、向FDRI寄存器写入两帧内容(第一帧为有效帧,第二帧为用于缓冲的伪帧)、去同步命令;ICAP回读一帧所需的具体命令信息包括:总线宽度同步字、总线位宽检测字、同步字、复位CRC命令、RCFG命令、写FAR寄存器、从FDRO寄存器回读两帧内容(第一帧为缓冲的伪帧,第二帧为有效帧)、去同步命令;
RAM41x32 2018:用于暂存一帧的数据内容;
Flip_Bit_Controller 2015:用于翻转RAM中暂存的帧内容的某一位,其需要输入的参数为字地址和位地址;
Tx_fifo 2019:用于存储准备向上位机1发送的数据;
Write_to_tx_fifo_Controller 2016:用于向Tx_fifo中写入执行结果,包括:cmd_mode为0b“00”时写入翻转前后目标位所处的字节,cmd_mode为0b“01”时写入故障注入后目标帧的完整帧内容,cmd_mode为0b“10”时写入DUT_Test_Controller 2017的测试结果;
DUT_Test_Controller 2017:实现对待测电路的功能逻辑正确性测试;用于向待测电路和黄金电路发送测试输入向量,接收测试结果向量;黄金电路Golden_DUT_Circuit203用于同DUT_Circuit 204在比较器Comparator 205模块下进行比较。一旦两者的结果不一致,Comparator 205模块会返回0x“FF”标识DUT_Circuit功能出错。若所有的输入参数遍历完后两者的结果仍一致,则该模块会返回0x“00”标识DUT_Circuit功能正常;
本发明实施方式包括一种SRAM型FPGA上必要位单粒子翻转故障的在线仿真系统装置,其具体步骤包括:
步骤301、生成故障库,故障库生成的大致流程如下:帧结构解析模块101输出比特流帧组织、设计好DUT电路并将其与其他模块经由布局工具104布局在不同的列、必要位提取模块102从ebd文件中解析出必要位的帧地址列表、从帧地址列表中根据布局信息提取出DUT的必要位文件作为故障库。
步骤302、若故障库不为空,测试界面103从故障库中读取一位必要位地址;若故障库已读取结束,则整个测试流程随之结束;
步骤303、故障注入模块1031发送故障注入指令至下位机2;
步骤304、下位机2中Inj_fault_FSM(2011)成功读取故障注入指令后,设置cmd_mode和read_mode均为0b“00”并需要执行以下具体步骤:①ICAP_Controller 2014读取指定帧地址的帧内容存于RAM41x32 2018;②Flip_Bit_Controller 2015翻转RAM中暂存的帧内容的指定的一位;③read_mode为0b“00”,则write_to_tx_fifo_Controller 2016根选择从RAM41x32 2018读取翻转前后该位所在字节内容写到Tx_fifo 2019;④一旦Tx_fifo2019不为空,则Write_to_tx_fifo_Controller 2016将其中所存内容发送至上位机1,上位机1等待接收操作结果以判断故障注入是否成功;若故障注入成功,转至步骤305,否则,跳转至步骤312,手动重配置FPGA;
步骤305、回读一帧模块1032发送回读整帧指令至下位机2;下位机2中Inj_fault_FSM2011成功读取回读整帧指令后,设置cmd_mode和read_mode均为0b“01”并需要执行以下具体步骤:①ICAP_Controller 2014读取指定帧地址的帧内容存于RAM41x32 2018;②ead_mode为0b“01”,则Write_to_tx_fifo_Controller 2016选择读取RAM41x32 2018的全部内容并写入Tx_fifo 2019;③一旦Tx_fifo 2019不为空,其中所存内容将会逐字节地发送至上位机1;
步骤306、回读一帧模块1032接收下位机2传来的帧数据,将其与原始配置bit文件的相应帧地址处的内容在mask文件屏蔽下进行逐位对比;
步骤307、若对比结果仅有目标位不一致,则说明对目标位进行翻转位影响同帧的其他非掩码位;否则,说明对目标位进行翻转位影响了同帧的其他非掩码位也出现了翻转;
步骤308、待测电路功能检测模块1033发送启动DUT测试的命令至下位机2;
步骤309、下位机2中Inj_fault_FSM 2011成功读取故障注入指令后,设置cmd_mode为0b“10”,交由DUT_Test_Controller 2017向Golden_DUT_Circuit 203和DUT_Circuit204遍历输入向量并返回测试结果写入Tx_fifo 2019;若上位机(1)接收到0x“FF”,表明该位为关键位,否则,该位为非关键位;
步骤310、故障注入模块1031发送故障修复指令至下位机2,与步骤303相同;
步骤311、判断故障修复是否成功,判断流程同步骤304;若故障修复失败,转至步骤312,手动重配置FPGA;
步骤312、对FPGA进行重配置操作,重新加载原始配置bit流内容;
步骤313、上位机中的故障分类结果显示模块1034将对应的必要位属性写入到相应的分类结果。
本发明与现有技术相比的优点在于:
(1)本发明对于配置RAM的帧结构进行了研究,由此可推动对其上的配置数据进行不同类型的容错算法实施和研究,同时获取到的帧结构也可用于推动对FPGA的配置流解析工作;
(2)本发明通过解析相关文件给出了提取配置比特流中与用户设计相关的配置位——必要位的过程,同时进行了结果验证。对必要位的提取将大大减少配置流中需要进行容错的帧数量,为后续进行故障修复算法上的速率改进提供了知识基础;
(3)本发明通过对SEU效应的故障分类实现系统设计,可对用户设计电路中的相关配置位进行逐位分类,分类结果可用于评估不同FPGA设计的SEU防护有效性,以保证空间应用下的高可靠度模块的优先级;
(4)本发明对SEU效应的故障修复实现了系统设计,对Xilinx内置ECC编码逻辑进行了测试与解码,对ICAP回读/配置机制进行了实现,所设计的系统摆脱了对于片上内嵌处理器的束缚,可方便地移植到任何支持ICAP的FPGA器件。所设计的故障修复电路可用于在实际的辐射环境中连续工作,旨在确保FPGA在高安全和关键任务中的抗辐射功能。
附图说明
图1为本发明实施例中一种SRAM型FPGA上必要位单粒子翻转故障的在线仿真系统的整体结构设计图;
图2为所设计的基于QT的人机交互界面即测试界面101;
图3为帧结构解析流程及结果图;
图4为所设计的下位机2端即FPGA端的结构框图;
图5为所设计的一种SRAM型FPGA上必要位单粒子翻转故障的在线仿真系统实现故障分类的测试流程图;
图6为待测电路与所设计SEU仿真系统的必要位经自动布局后在不同工具下的图示,其中图6(a)为实际PlanAhead工具下看到的布局结果,图6(b)为实际FPGA Editor工具下看到的布线结果,图6(c)为所提取出的必要位在matlab下按照必要位寻址{顶部/底部指示器,行位置,列位置,帧位置,帧中所处的字位置,字中所处的位位置}所绘的位置分布图;
图7为待测电路与所设计SEU仿真系统的必要位经手动布局后在不同工具下的图示,其中图7(a)为实际PlanAhead工具下看到的布局结果,图7(b)为实际FPGA Editor工具下看到的布线结果,图7(c)为所提取出的必要位在matlab下按照必要位寻址{顶部/底部指示器,行位置,列位置,帧位置,帧中所处的字位置,字中所处的位位置}所绘的位置分布图;
具体实施方式
下面结合附图对本发明的实施例作详细说明。本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于以下的实施例。
参照图1,示出了本发明实施例中一种SRAM型FPGA上必要位单粒子翻转故障的在线仿真系统的结构框图。所述系统设计由上位机1即PC端和下位机2即FPGA端组成。其中,上位机1系统设计包括:测试界面101,必要位文件提取模块102,解析调试比特流文件模块103,通信接口104;下位机2系统设计包括:主控制模块201、待测电路202、黄金电路203、比较电路204、串口通信模块205、JTAG接口206、配置RAM 207。本发明中,位于上位机1的测试界面101通过向下位机2发送指示命令控制单粒子翻转故障模拟的仿真流程,下位机2根据接收到的命令执行相应操作后将结果返回。
所设计的测试界面101基于QT实现,界面实物如图2所示。测试界面101与下位机2的串口通讯基于QT5.9中的QserialPort类实现。
在下位机2系统中,待测电路202用于在模拟的单粒子翻转故障环境下运行;黄金电路203是待测电路的正确备份,用于在正常环境下运行。在具体测试流程中,读写配置RAM的操作由ICAP_Controller 2014模块执行;翻转一位的操作由Flip_Bit_Controller 2015模块执行;DUT测试的操作由DUT_Test_Controller 2017模块执行。DUT_Test_Controller2017模块实现对待测电路的功能逻辑正确性测试,用于向待测电路和黄金电路发送测试输入向量,接收测试结果向量。黄金电路203用于同待测电路204在比较器205模块下进行比较。
下面以对一个待测电路的必要位做故障分类的过程来详细描述具体的实施过程。本实施例用以测试Xilinx XC5VFX70T芯片上所设计的三个经典电路(4位加法器、4位乘法器、8位乘法器)的单粒子翻转故障率,具体测试流程包括以下步骤:
1,帧结构解析模块101解析调试比特流文件并最终输出比特流帧组织。采用的芯片得到的调试比特流文件结构如下,其由四部分组成。其中FDRI为帧数据输入寄存器,LOUT寄存器称为Legacy Output Register,作为串行调试时菊花链的数据输出。第三部分给出的十六进制数0x30004029为Xilinx类型1格式的数据包,表示向FDRI寄存器写入41个字即一帧长度的命令。0x30010001同样为Xilinx类型1格式的数据包,表示向LOUT寄存器写帧地址。
(1)文件头;
(2)一些配置寄存器操作命令;
(3)帧内容相关部分:
30004029,即FDRI写41个字;
第0帧数据;
30010001,即向LOUT写帧地址;
第0帧地址;
30004029,即FDRI写41个字;
第1帧数据;
30010001,即向LOUT写帧地址;
第1帧地址;
……
30004029,即FDRI写41个字;
第20559帧数据;
30010001,即向LOUT写帧地址;
第20559帧地址;
(4)一些配置寄存器操作命令。
最终解析得到的文档1013示出了所得到的比特流帧结构可视化文件。总结配置帧的物理分布结构:分为上下两部分,上半部分4行,下半部分4行,共8行,每行又按照列再次划分(图6(c)中局部放大的矩阵块所示为列地址为47的CLB块,CLB列每列有36帧)。配置bit流包含块0和块1部分,块0为每行1802帧,共14416帧,块1为每行768帧,共6144帧,另外发现在块0每行切换时有2帧填充帧,块1每行切换时同样有2帧填充帧,因此每行有4帧填充帧,共32帧,共20592帧,与配置bit流中向FDRI寄存器写入的帧数量一致。
2,在FPGA片上设计实现待测电路及其黄金电路、对比电路;以及,通过布局工具将待测电路与其他模块至于不同的pblock;
3,在FPGA开发工具下首先经自动布局得到的ebd文件进行解析。图6为必要位的一个直观体现,图6(a)为实际PlanAhead工具下看到的布局结果,图6(b)为实际FPGA Editor工具下看到的布线结果,图6(c)为所提取出的必要位在matlab下按照必要位寻址{顶部/底部指示器,行位置,列位置,帧位置,帧中所处的字位置,字中所处的位位置}所绘的位置分布图,可以看到图6(c)与图6(a)、图6(b)的轮廓一致。接着,手动布局将待测电路与其余电路分离以提取出待测电路的必要位文件。如图7所示,待测电路位于标“A”部分,其余电路位于标“B”部分;
4,待测电路必要位文件作为待分类的故障库,配置bit文件、掩码文件存于上位机1用于后续同帧逐位对比;
5,若故障库不为空,测试界面103从故障库中读取一位必要位地址;若故障库已读取结束,则整个测试流程随之结束;
6,故障注入模块1031发送故障注入指令至下位机2;
7,下位机2中Inj_fault_FSM 2011成功读取故障注入指令后,设置cmd_mode和read_mode均为0b“00”并需要执行以下具体步骤:①ICAP_Controller 2014读取指定帧地址的帧内容存于RAM41x32 2018;②Flip_Bit_Controller 2015翻转RAM中暂存的帧内容的指定的一位;③read_mode为0b“00”,则write_to_tx_fifo_Controller 2016根选择从RAM41x32 2018读取翻转前后该位所在字节内容写到Tx_fifo 2019;④一旦Tx_fifo 2019不为空,则Write_to_tx_fifo_Controller 2016将其中所存内容发送至上位机1,上位机1等待接收操作结果以判断故障注入是否成功;若故障注入成功,转至步骤305,否则,跳转至步骤312,手动重配置FPGA;
8,回读一帧模块1032发送回读整帧指令至下位机2;下位机2中Inj_fault_FSM2011成功读取回读整帧指令后,设置cmd_mode和read_mode均为0b“01”并需要执行以下具体步骤:①ICAP_Controller 2014读取指定帧地址的帧内容存于RAM41x32 2018;②ead_mode为0b“01”,则Write_to_tx_fifo_Controller 2016选择读取RAM41x32(2018)的全部内容并写入Tx_fifo 2019;③一旦Tx_fifo(2019)不为空,其中所存内容将会逐字节地发送至上位机1;
9,回读一帧模块1032接收下位机2传来的帧数据,将其与原始配置bit文件的相应帧地址处的内容在mask文件屏蔽下进行逐位对比;
10,若对比结果仅有目标位不一致,则说明对目标位进行翻转位影响同帧的其他非掩码位;否则,说明对目标位进行翻转位影响了同帧的其他非掩码位也出现了翻转;
11,待测电路功能检测模块1033发送启动DUT测试的命令至下位机2;
12,下位机2中Inj_fault_FSM(2011)成功读取故障注入指令后,设置cmd_mode为0b“10”,交由DUT_Test_Controller 2017向Golden_DUT_Circuit 203和DUT_Circuit204遍历输入向量并返回测试结果写入Tx_fifo 2019;若上位机(1)接收到0x“FF”,表明该位为关键位,否则,该位为非关键位;
13,故障注入模块1031发送故障修复指令至下位机2,与步骤303相同;
14,判断故障修复是否成功,判断流程同步骤304;若故障修复失败,转至步骤312,手动重配置FPGA;
15,对FPGA进行重配置操作,重新加载原始配置bit流内容;
16,上位机中的故障分类结果显示模块1034将对应的必要位属性写入到相应的分类结果。
对三个经典待测电路的故障分类测试结果如表1所示。为了验证本发明方法的有效性,分别对三个待测电路进行三模冗余后再次进行故障分类测试,可以看到三模冗余后,关键位的比例会大幅减小,但不会降至0%,说明三模冗余可以减少SEU引起的电路故障率,但无法彻底规避该故障。至此验证了所设计的故障注入和分类系统的有效性。
表1
注:
(1)必要位即为与DUT设计相关的位;
(2)非关键可修复位即对该位进行翻转不会影响DUT的功能逻辑,且该位翻转后可被修复,其占比为非关键可修复位个数与必要位个数之比;
(3)关键可修复位即对该位进行翻转会导致DUT功能测试期间出现错误,但该位翻转后可被修复,其占比为关键可修复位个数与必要位个数之比;
综上所述,本发明具体实施例提供的技术方案对于SRAM型FPGA在辐照环境下其配置RAM易发生的SEU问题进行了实物模拟实现。通过分析调试比特流文件提取出了FPGA器件的帧结构并解析了比特流文件和SEM IP核的中间文件——ebc和ebd文件的结构,给出了提取必要位的方法。通过在XC5VFX70T器件上对三个经典电路进行故障注入测试,验证了所设计的故障注入系统的有效性。所设计的故障注入系统无需处理器参与,无需外部硬件开销,可以灵活地移植到其他支持ICAP的芯片。同时本系统对于DUT的必要位进行了分类,此分类结果可用于在容错加固实现中对特殊位进行重点防护。
本发明未详细阐述部分属于本领域技术人员的公知技术。
本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本发明,而并非用作为对本发明的限定,只要在本发明的实质精神范围内,对以上所述实施例变化,变型都将落在本发明权利要求书的范围内。

Claims (7)

1.一种SRAM型FPGA上必要位单粒子翻转故障的在线仿真系统,其特征在于,所述系统包括:由上位机(1)即PC端和下位机(2)即FPGA端,其中,上位机(1)包括:测试界面(101),必要位文件提取模块(102),解析调试比特流文件模块(103),通信接口(104);下位机(2)包括:主控制模块(201)、待测电路(202)、黄金电路(203)、比较电路(204)、串口通信模块(205)、JTAG接口(206)、配置RAM(207);上位机(1)的测试界面(101)通过串口通信接口向下位机(2)发送指示命令控制单粒子翻转故障模拟的仿真流程,下位机(2)的主控制模块(201)选择对应的命令模式,执行相应操作后将结果返回给上位机(1)。
2.根据权利要求1所述的SRAM型FPGA上必要位单粒子翻转故障的在线仿真系统,其特征在于,所述向下位机(2)发送的命令和相应命令需要的参数信息包括:命令一为翻转一个位,所需参数包括命令标识1、帧地址、字地址、位地址;命令二为回读一整帧,所需参数包括命令标识2、帧地址;命令三为开始待测电路(DUT,Design Under Test)功能测试,所需参数包括命令标识3。
3.根据权利要求2所述的SRAM型FPGA上必要位单粒子翻转故障的在线仿真系统,其特征在于,所述上位机(1)系统包括:
帧结构解析模块(101):实现对指定芯片的帧结构解析,用以获取相应芯片配置bit流的帧组织;该模块根据芯片手册中的数据包格式对输入的调试比特流文件(1011)进行一次解析,提取出所有的帧地址,得到帧地址列表文件(1012);之后对帧地址列表文件(1012)进行二次解析得到比特流结构可视化文档(1013),进而得到具体芯片的帧结构以及配置比特流文件中的具体帧组织;
必要位提取模块(102):用于从SEM(Soft Error Mitigation)IP核的中间文件ebd(Essential Bit Data)文件中提取出用户设计电路的必要位位置;ebd文件内容是配置bit流文件的子集,但其文件内容首部增加了一帧伪帧;必要位定义为与用户设计相关的位;必要位位置格式寻址形式为:{块类型,顶部/底部指示器,行位置,列位置,帧位置,帧中所处的字位置,字中所处的位位置};
测试界面(103):基于QT所设计的人机交互界面;控制单粒子翻转故障模拟的仿真流程;对待测电路的必要位进行逐位的单粒子翻转故障模拟及修复测试;
布局工具(104):为FPGA开发套件工具下的PlanAhead工具;用于将待测电路和其余电路分别布局在不同的Pblock(Physical block),据此布局信息可得到待测电路的必要位数据库;所提取出的待测电路必要位数据库作为故障库;
通信接口(105),包括JTAG接口与串口;JTAG接口用于对FPGA进行首次配置,配置bit流通过JTAG接口写入FPGA的配置RAM;串口实现上位机(1)与下位机(2)的数据通讯,所述三种命令通过串口发送至下位机;以及,接收下位机(2)传回的操作结果数据。
4.根据权利要求3所述的SRAM型FPGA上必要位单粒子翻转故障的在线仿真系统,其特征在于,所述测试界面(103)包括:
故障注入模块(1031),回读一帧模块(1032),待测电路功能检测模块(1033)和故障分类结果显示模块(1034)组成;故障注入模块(1031)用于发送翻转一个位的操作,以实现对FPGA配置RAM中单粒子翻转问题的模拟实现,其命令组成为{AA99556601,帧地址,帧中所处的字地址,字中所处的位地址};
回读一帧模块(1032)用于发送回读指定地址的帧内容的操作,以测试对帧中某一位进行翻转后是否影响同帧的其他位,该操作要在mask文件的掩码下与配置bit流文件的相应帧内容对比进行,其命令组成为{AA99556602,帧地址};
待测电路功能检测模块(1033)用于发送启动DUT测试的命令,以测试对帧中某一位进行翻转后是否会影响DUT的正常功能逻辑,其命令组成为{AA99556603};
故障分类结果显示模块(1034)用于对下位机(2)返回的操作结果信息进行解析并对结果进行总结分类,分类结果有5种:①非关键可修复位;②非关键不可修复位;③关键可修复位;④关键不可修复位;⑤影响了同帧的其他非掩码位的位;其中,关键位表示对该位进行翻转会导致DUT功能测试期间出现错误,非关键位表示对该位进行翻转不会影响DUT的功能逻辑。
5.根据权利要求1所述的SRAM型FPGA上必要位单粒子翻转故障的在线仿真系统,其特征在于,所述下位机(2)系统包括:
主控制模块(201):控制下位机(2)进行单粒子翻转模拟实现的命令读取、命令切换与命令交付操作;包括:与上位机的通讯功能,解析上位机的命令功能,主程序状态切换与控制功能(对必要位所在位置进行翻转操作、回读整帧操作、修复操作以及对DUT进行功能测试操作);
待测电路(202):用于在模拟的单粒子翻转故障环境下运行;
黄金电路(203):是待测电路的正确备份,用于在正常环境下运行;
对比电路(204):用于遍历对比待测电路和黄金电路的运行结果;
串口通信模块(205):接收上位机(1)传来的命令;以及,返回下位机(2)的命令执行结果;返回信息包括:翻转一位的操作是否成功,回读一帧的操作是否成功并返回帧内容,修复一位的操作是否成功;对比电路对DUT和黄金电路遍历输入向量后DUT功能逻辑是否正确;
JTAG接口(206):用于接收上位机(1)的配置bit流,实现对FPGA配置信息的首次加载。
6.根据权利要求5所述的SRAM型FPGA上必要位单粒子翻转故障的在线仿真系统,其特征在于,所述主控制模块(201)包括:
Inj_fault_FSM(2011):主状态机,控制命令的操作与切换;在空闲状态下,该模块向Rx_fifo_controller(2013)模块发送start_get_cmd信号,请求获取一个命令;Rx_fifo_controller(2013)模块根据与上位机(1)约定好的协议从Rx_fifo(2012)中读出一个有效命令给Inj_fault_FSM(2011)模块,同时发出cmd_mode和cmd_valid信号分别作为命令标识头和有效命令标志;其中,cmd_mode的3种标识及含义如下:0b“00”表示注入一位错即翻转一个位,0b“01”表示回读一整,0b“10”表示开始DUT测试;
Rx_fifo(2012):用于存储来自上位机(1)的命令数据;
Rx_fifo_Controller(2013):用于从Rx_fifo(2012)中读取一个有效命令交由主状态机;以及,该模块还需向Inj_fault_FSM(2011)模块提供执行命令所需的参数:cmd_mode为0b“00”时需要提供帧地址、字地址、位地址,cmd_mode为0b“01”时需要提供帧地址,cmd_mode为0b“10”时无需提供参数;
ICAP_Controller(2014):通过ICAP接口对配置RAM进行回读与动态重配置,实现对配置RAM的读写;ICAP(Internal Configuration Access Port)作为内部配置访问端口,可以通过FPGA上配置的应用电路直接访问,允许他们在运行时更改自己的结构和功能;ICAP配置一帧所需的具体命令信息包括:总线宽度同步字、总线位宽检测字、同步字、复位CRC命令、WCFG命令、写FAR寄存器、向FDRI寄存器写入两帧内容(第一帧为有效帧,第二帧为用于缓冲的伪帧)、去同步命令;ICAP回读一帧所需的具体命令信息包括:总线宽度同步字、总线位宽检测字、同步字、复位CRC命令、RCFG命令、写FAR寄存器、从FDRO寄存器回读两帧内容(第一帧为缓冲的伪帧,第二帧为有效帧)、去同步命令;
RAM41x32(2018):用于暂存一帧的数据内容;
Flip_Bit_Controller(2015):用于翻转RAM中暂存的帧内容的某一位,其需要输入的参数为字地址和位地址;
Tx_fifo(2019):用于存储准备向上位机(1)发送的数据;
Write_to_tx_fifo_Controller(2016):用于向Tx_fifo中写入执行结果,包括:cmd_mode为0b“00”时写入翻转前后目标位所处的字节,cmd_mode为0b“01”时写入故障注入后目标帧的完整帧内容,cmd_mode为0b“10”时写入DUT_Test_Controller(2017)的测试结果;
DUT_Test_Controller(2017):实现对待测电路的功能逻辑正确性测试;用于向待测电路和黄金电路发送测试输入向量,接收测试结果向量;黄金电路Golden_DUT_Circuit(203)用于同DUT_Circuit(204)在比较器Comparator(205)模块下进行比较。一旦两者的结果不一致,Comparator(205)模块会返回0x“FF”标识DUT_Circuit功能出错。若所有的输入参数遍历完后两者的结果仍一致,则该模块会返回0x“00”标识DUT_Circuit功能正常。
7.根据权利要求1、3或5所述的SRAM型FPGA上必要位单粒子翻转故障的在线仿真系统,其特征在于,所述系统的具体工作流程包括:
步骤301、生成故障库,故障库生成的大致流程如下:帧结构解析模块(101)输出比特流帧组织、设计好DUT电路并将其与其他模块经由布局工具(104)布局在不同的列、必要位提取模块(102)从ebd文件中解析出必要位的帧地址列表、从帧地址列表中根据布局信息提取出DUT的必要位文件作为故障库;
步骤302、若故障库不为空,测试界面(103)从故障库中读取一位必要位地址;若故障库已读取结束,则整个测试流程随之结束;
步骤303、故障注入模块(1031)发送故障注入指令至下位机(2);
步骤304、下位机(2)中Inj_fault_FSM(2011)成功读取故障注入指令后,设置cmd_mode和read_mode均为0b“00”并需要执行以下具体步骤:①ICAP_Controller(2014)读取指定帧地址的帧内容存于RAM41x32(2018);②Flip_Bit_Controller(2015)翻转RAM中暂存的帧内容的指定的一位;③read_mode为0b“00”,则write_to_tx_fifo_Controller(2016)根选择从RAM41x32(2018)读取翻转前后该位所在字节内容写到Tx_fifo(2019);④一旦Tx_fifo(2019)不为空,则Write_to_tx_fifo_Controller(2016)将其中所存内容发送至上位机(1),上位机(1)等待接收操作结果以判断故障注入是否成功;若故障注入成功,转至步骤305,否则,跳转至步骤312,手动重配置FPGA;
步骤305、回读一帧模块(1032)发送回读整帧指令至下位机(2);下位机(2)中Inj_fault_FSM(2011)成功读取回读整帧指令后,设置cmd_mode和read_mode均为0b“01”并需要执行以下具体步骤:①ICAP_Controller(2014)读取指定帧地址的帧内容存于RAM41x32(2018);②ead_mode为0b“01”,则Write_to_tx_fifo_Controller(2016)选择读取RAM41x32(2018)的全部内容并写入Tx_fifo(2019);③一旦Tx_fifo(2019)不为空,其中所存内容将会逐字节地发送至上位机(1);
步骤306、回读一帧模块(1032)接收下位机(2)传来的帧数据,将其与原始配置bit文件的相应帧地址处的内容在mask文件屏蔽下进行逐位对比;
步骤307、若对比结果仅有目标位不一致,则说明对目标位进行翻转位影响同帧的其他非掩码位;否则,说明对目标位进行翻转位影响了同帧的其他非掩码位也出现了翻转;
步骤308、待测电路功能检测模块(1033)发送启动DUT测试的命令至下位机(2);
步骤309、下位机(2)中Inj_fault_FSM(2011)成功读取故障注入指令后,设置cmd_mode为0b“10”,交由DUT_Test_Controller(2017)向Golden_DUT_Circuit(203)和DUT_Circuit(204)遍历输入向量并返回测试结果写入Tx_fifo(2019);若上位机(1)接收到0x“FF”,表明该位为关键位,否则,该位为非关键位;
步骤310、故障注入模块(1031)发送故障修复指令至下位机(2),与步骤303相同;
步骤311、判断故障修复是否成功,判断流程同步骤304;若故障修复失败,转至步骤312,手动重配置FPGA;
步骤312、对FPGA进行重配置操作,重新加载原始配置bit流内容;
步骤313、上位机中的故障分类结果显示模块(1034)将对应的必要位属性写入到相应的分类结果。
CN201910219751.5A 2019-03-22 2019-03-22 一种sram型fpga上必要位单粒子翻转故障的在线仿真系统 Active CN109858195B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910219751.5A CN109858195B (zh) 2019-03-22 2019-03-22 一种sram型fpga上必要位单粒子翻转故障的在线仿真系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910219751.5A CN109858195B (zh) 2019-03-22 2019-03-22 一种sram型fpga上必要位单粒子翻转故障的在线仿真系统

Publications (2)

Publication Number Publication Date
CN109858195A true CN109858195A (zh) 2019-06-07
CN109858195B CN109858195B (zh) 2022-11-08

Family

ID=66901574

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910219751.5A Active CN109858195B (zh) 2019-03-22 2019-03-22 一种sram型fpga上必要位单粒子翻转故障的在线仿真系统

Country Status (1)

Country Link
CN (1) CN109858195B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111090584A (zh) * 2019-11-25 2020-05-01 大唐半导体科技有限公司 一种fpga平台ip原型快速验证方法及系统
CN111274183A (zh) * 2020-02-21 2020-06-12 山东超越数控电子股份有限公司 多路高速协议接口动态可重构系统及实现方法
CN111680467A (zh) * 2020-06-08 2020-09-18 重庆邮电大学 一种用于5g终端模拟器pdcch盲检测的fpga设计方法
CN111881636A (zh) * 2020-07-07 2020-11-03 广芯微电子(广州)股份有限公司 一种基于risc-v芯片的仿真调试方法及装置
CN112527361A (zh) * 2021-02-08 2021-03-19 鹏城实验室 Fpga测试程序更新方法、装置、电子设备及存储介质
CN113253097A (zh) * 2021-05-31 2021-08-13 中国人民解放军国防科技大学 一种基于整帧翻转的sram型fpga故障注入加速试验方法
CN113254288A (zh) * 2021-06-02 2021-08-13 中国人民解放军国防科技大学 一种星载设备中fpga单粒子翻转故障注入方法
CN113268263A (zh) * 2021-06-10 2021-08-17 北京无线电测量研究所 一种fpga的回读刷新方法和系统
CN113886158A (zh) * 2021-09-28 2022-01-04 北京时代民芯科技有限公司 一种自动化的fpga故障注入测试系统以及方法
CN114089161A (zh) * 2021-11-19 2022-02-25 浙江大学 一种基于Zynq芯片的自动化故障注入系统及方法
CN114661531A (zh) * 2022-02-28 2022-06-24 成都市硅海武林科技有限公司 一种针对fpga的细粒度自修复电路和方法
WO2023019745A1 (zh) * 2021-08-19 2023-02-23 无锡中微亿芯有限公司 通过复用缓冲内存提高关键配置码流可靠性的fpga
US11604696B2 (en) 2021-08-19 2023-03-14 Wuxi Esiontech Co., Ltd. Field programmable gate array (FPGA) for improving reliability of key configuration bitstream by reusing buffer memory

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8099625B1 (en) * 2009-04-03 2012-01-17 Xilinx, Inc. Self-checking and self-correcting internal configuration port circuitry
CN102636744A (zh) * 2012-04-24 2012-08-15 中国科学院空间科学与应用研究中心 一种检测fpga单粒子效应与其时序特性关系的装置及方法
CN106802645A (zh) * 2016-12-21 2017-06-06 北京时代民芯科技有限公司 一种fpga单粒子翻转故障模拟系统和方法
CN107678896A (zh) * 2017-09-13 2018-02-09 湖南斯北图科技有限公司 一种sram型fpga翻转故障注入器及故障注入方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8099625B1 (en) * 2009-04-03 2012-01-17 Xilinx, Inc. Self-checking and self-correcting internal configuration port circuitry
CN102636744A (zh) * 2012-04-24 2012-08-15 中国科学院空间科学与应用研究中心 一种检测fpga单粒子效应与其时序特性关系的装置及方法
CN106802645A (zh) * 2016-12-21 2017-06-06 北京时代民芯科技有限公司 一种fpga单粒子翻转故障模拟系统和方法
CN107678896A (zh) * 2017-09-13 2018-02-09 湖南斯北图科技有限公司 一种sram型fpga翻转故障注入器及故障注入方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
RONGSHENG ZHANG ET AL.: "A fast fault injection platform of multiple SEUs for SRAM-based FPGAs", 《MICROELECTRONICS RELIABILITY》 *
祝周荣 等: "抗 SEU动态刷新FPGA的仿真验证技术研究", 《数字技术与应用》 *

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111090584A (zh) * 2019-11-25 2020-05-01 大唐半导体科技有限公司 一种fpga平台ip原型快速验证方法及系统
CN111274183A (zh) * 2020-02-21 2020-06-12 山东超越数控电子股份有限公司 多路高速协议接口动态可重构系统及实现方法
CN111680467A (zh) * 2020-06-08 2020-09-18 重庆邮电大学 一种用于5g终端模拟器pdcch盲检测的fpga设计方法
CN111881636A (zh) * 2020-07-07 2020-11-03 广芯微电子(广州)股份有限公司 一种基于risc-v芯片的仿真调试方法及装置
CN111881636B (zh) * 2020-07-07 2021-05-04 广芯微电子(广州)股份有限公司 一种基于risc-v芯片的仿真调试方法及装置
CN112527361A (zh) * 2021-02-08 2021-03-19 鹏城实验室 Fpga测试程序更新方法、装置、电子设备及存储介质
CN112527361B (zh) * 2021-02-08 2021-05-11 鹏城实验室 Fpga测试程序更新方法、装置、电子设备及存储介质
CN113253097B (zh) * 2021-05-31 2021-09-21 中国人民解放军国防科技大学 一种基于整帧翻转的sram型fpga故障注入加速试验方法
CN113253097A (zh) * 2021-05-31 2021-08-13 中国人民解放军国防科技大学 一种基于整帧翻转的sram型fpga故障注入加速试验方法
CN113254288A (zh) * 2021-06-02 2021-08-13 中国人民解放军国防科技大学 一种星载设备中fpga单粒子翻转故障注入方法
CN113254288B (zh) * 2021-06-02 2021-09-21 中国人民解放军国防科技大学 一种星载设备中fpga单粒子翻转故障注入方法
CN113268263A (zh) * 2021-06-10 2021-08-17 北京无线电测量研究所 一种fpga的回读刷新方法和系统
CN113268263B (zh) * 2021-06-10 2024-06-07 北京无线电测量研究所 一种fpga的回读刷新方法和系统
WO2023019745A1 (zh) * 2021-08-19 2023-02-23 无锡中微亿芯有限公司 通过复用缓冲内存提高关键配置码流可靠性的fpga
US11604696B2 (en) 2021-08-19 2023-03-14 Wuxi Esiontech Co., Ltd. Field programmable gate array (FPGA) for improving reliability of key configuration bitstream by reusing buffer memory
CN113886158A (zh) * 2021-09-28 2022-01-04 北京时代民芯科技有限公司 一种自动化的fpga故障注入测试系统以及方法
CN113886158B (zh) * 2021-09-28 2024-04-02 北京时代民芯科技有限公司 一种自动化的fpga故障注入测试系统以及方法
CN114089161A (zh) * 2021-11-19 2022-02-25 浙江大学 一种基于Zynq芯片的自动化故障注入系统及方法
CN114661531A (zh) * 2022-02-28 2022-06-24 成都市硅海武林科技有限公司 一种针对fpga的细粒度自修复电路和方法
CN114661531B (zh) * 2022-02-28 2023-08-29 成都市硅海武林科技有限公司 一种针对fpga的细粒度自修复电路和方法

Also Published As

Publication number Publication date
CN109858195B (zh) 2022-11-08

Similar Documents

Publication Publication Date Title
CN109858195A (zh) 一种sram型fpga上必要位单粒子翻转故障的在线仿真系统
US6286114B1 (en) Enhanced embedded logic analyzer
US6986125B2 (en) Method and apparatus for testing and evaluating a software component using an abstraction matrix
US8627249B1 (en) Method and system for generating design constraints
Graham Logical hardware debuggers for FPGA-based systems
US7610568B2 (en) Methods and apparatus for making placement sensitive logic modifications
US7756695B2 (en) Accelerated simulation and verification of a system under test (SUT) using cache and replacement management tables
US20070005323A1 (en) System and method of automating the addition of programmable breakpoint hardware to design models
US8788993B2 (en) Computer system for generating an integrated and unified view of IP-cores for hierarchical analysis of a system on chip (SoC) design
CN106098104B (zh) Fpga芯片内嵌bram核的测试系统及方法
US20070005322A1 (en) System and method for complex programmable breakpoints using a switching network
Attia et al. StateMover: Combining simulation and hardware execution for efficient FPGA debugging
US20060259834A1 (en) Method and system for debug and test using replicated logic
CN109254883B (zh) 一种片上存储器的调试装置及方法
US6959272B2 (en) Method and system for generating an ATPG model of a memory from behavioral descriptions
Ullah et al. An FPGA-based dynamically reconfigurable platform for emulation of permanent faults in ASICs
US8265918B1 (en) Simulation and emulation of a circuit design
US8245166B2 (en) Optimal correlated array abstraction
Alderighi et al. A tool for injecting SEU-like faults into the configuration control mechanism of Xilinx Virtex FPGAs
US6131079A (en) Method and device for automatic simulation verification
US9864830B1 (en) Method and apparatus for placement and routing of circuit designs
US9672094B1 (en) Interconnect circuitry fault detection
Kafka et al. FPGA-based fault simulator
Napoles et al. Radiation environment emulation for VLSI designs: A low cost platform based on Xilinx FPGA's
CN111079356B (zh) 一种单粒子加固有效性系统级验证方法

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