CN111339731B - 一种面向SoC的FPGA验证平台和验证方法 - Google Patents

一种面向SoC的FPGA验证平台和验证方法 Download PDF

Info

Publication number
CN111339731B
CN111339731B CN202010068805.5A CN202010068805A CN111339731B CN 111339731 B CN111339731 B CN 111339731B CN 202010068805 A CN202010068805 A CN 202010068805A CN 111339731 B CN111339731 B CN 111339731B
Authority
CN
China
Prior art keywords
soc
fpga
verified
verification
signal
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.)
Active
Application number
CN202010068805.5A
Other languages
English (en)
Other versions
CN111339731A (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.)
National Defense Technology Innovation Institute PLA Academy of Military Science
Original Assignee
National Defense Technology Innovation Institute PLA Academy of Military Science
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 National Defense Technology Innovation Institute PLA Academy of Military Science filed Critical National Defense Technology Innovation Institute PLA Academy of Military Science
Priority to CN202010068805.5A priority Critical patent/CN111339731B/zh
Publication of CN111339731A publication Critical patent/CN111339731A/zh
Application granted granted Critical
Publication of CN111339731B publication Critical patent/CN111339731B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

一种面向SoC的FPGA验证平台,所述验证平台包括:上位机和FPGA;所述上位机通过串口与FPGA连接;所述FPGA包括片上验证逻辑,待验证SoC与所述FPGA的片上验证逻辑连接,并烧录在所述FPGA上;所述上位机用于通过串口向FPGA的片上验证逻辑发送指令序列,并读取FPGA的片上验证逻辑返回的响应信号,根据所述响应信号对待验证SoC进行验证;所述FPGA的片上验证逻辑用于根据所述上位机发送的指令序列,生成对待验证SoC的测试激励,并采集待验证SoC的响应信号,发送给上位机。本发明提供的技术方案不需要在待验证SoC上挂接真实的外设,适应各种SoC测试验证场景,可复用性高。

Description

一种面向SoC的FPGA验证平台和验证方法
技术领域
本发明涉及SoC验证领域,具体涉及一种面向SoC的FPGA验证平台和验证方法。
背景技术
片上系统(SoC,System on Chip)是指在单个芯片上集成一个完整的系统。由于集成了包括处理器、加速器、总线、存储资源、外设接口等组件,芯片功能和性能都得到了大幅提升。SoC的出现使得专用集成芯片(ASIC,Application Specific Integrated Circuit,专用集成电路)设计的复杂度以指数增长,这使得验证工作成为芯片设计中的关键瓶颈,FPGA(Field-Programmable Gate Array,现场可编程门阵列)验证的重要性进一步凸显。FPGA是一种半定制电路,其中的硬件逻辑可由用户编程决定,通过FPGA对SoC进行验证相比仿真验证具有如下优势:(1)仿真验证的性能难以达到MHz量级,而FPGA验证的性能至少在百MHz量级,对于SoC设计的验证,采用FPGA可以极大地节约时间成本。(2)在仿真环境下,难以模拟出片上系统的真实应用场景,而通过FPGA验证提供了真实芯片的一个近乎精确的的复制品,且通常也足够便携,可用于现场测试。(3)SoC一般需要嵌入式软件,而FPGA验证提供了硬件-软件协同开发和验证的最有效方法。
FPGA验证的一般方法是将待验证的SoC综合并烧录到FPGA芯片,相当于将FPGA芯片变成了SoC芯片的一个复制品,然后在FPGA开发板上挂接各种外设,在真实应用场景下对SoC的逻辑功能进行验证。然而,上述FPGA验证方法对于片上系统(SoC)的验证而言,存在如下不足:
·引脚资源消耗大:片上系统,SoC不同于一般的硬件逻辑,其外设接口往往相当丰富,将SoC直接烧录到FPGA上生成SoC芯片复制品的验证方式,SoC设计中的引脚需要映射到FPGA引脚上,往往需要占用FPGA开发板相当多,可达近百个的引脚资源,现市场上大部分FPGA开发板难以满足需求。
·灵活性不高:为模拟出SoC真实使用场景进行验证,需要灵活生成各种测试激励,尤其是针对不同的外设接口和总线类型,需要生成对应通信协议的接口/总线事务,传统的FPGA验证方法为模拟出真实场景,往往需要在接口处挂载相应外设或总线,验证成本高、难度大且灵活性不高。
·可复用性不高:现有的FPGA验证方法缺乏标准化,针对一套SoC搭建的验证环境难以应用到另一套SoC的验证中。
因此,为克服上述缺陷,本发明提供了一种在FPGA上提供定制化片上验证逻辑,再将待验证SoC与片上验证逻辑连接并烧录到FPGA上的验证方式。
发明内容
为了解决现有技术中所存在的上述不足,本发明提供一种面向SoC的FPGA验证平台和验证方法。
本发明提供的技术方案是:
一种面向SoC的FPGA验证平台,所述验证平台包括:上位机和FPGA;所述上位机通过串口与FPGA连接;
所述FPGA包括片上验证逻辑,待验证SoC与所述FPGA的片上验证逻辑连接,并烧录在所述FPGA上;
所述上位机用于通过串口向FPGA的片上验证逻辑发送指令序列,并读取FPGA的片上验证逻辑返回的响应信号,根据所述响应信号对待验证SoC进行验证;
所述FPGA的片上验证逻辑用于根据所述上位机发送的指令序列,生成对待验证SoC的测试激励,并采集待验证SoC的响应信号,发送给上位机。
优选地,所述FPGA的片上验证逻辑包括微控制器、通用激励产生模块、通用信号监测模块;
所述微控制器与所述通用激励产生模块和通用信号监测模块连接;所述通用激励产生模块与待验证SoC的GPIO以及需要激励的接口连接;所述通用信号监测模块与待验证SoC中需要观测的内部信号和内部寄存器连接;
所述微控制器用于将上位机发送的指令序列解析成控制信号,控制所述通用激励产生模块和通用信号监测模块执行操作;所述通用激励产生模块用于按照从微控制器接收的控制信号向待验证SoC提供激励;所述通用信号监测模块用于按照从微控制器接收的控制信号采集待验证SoC内部寄存器和内部信号的值。
优选地,所述FPGA的片上验证逻辑还包括:时钟/复位管理模块;
所述时钟/复位管理模块与所述微处理器和待验证SoC的时钟/复位输入端口连接,并烧录在所述FPGA上;
所述时钟/复位管理模块用于按照从微控制器接收的控制信号向待验证SoC提供时钟与复位信号,并且可实现对待验证SoC的单步、特定步数、连续时钟控制和复位操作。
优选地,所述FPGA的片上验证逻辑还包括:存储模块;
所述存储模块与所述微处理器和待验证SoC连接,并烧录在所述FPGA上;
所述存储模块用于替代待验证SoC的片上存储器,按照从微控制器接收的控制信号进行存取。
优选地,所述FPGA的片上验证逻辑还包括常用总线和外设接口;
所述常用总线和外设接口与FPGA中的微处理器以和各个模块连接,并与待验证SoC的UART、GPIO或SPI外设接口连接;
所述常用总线和外设接口烧录在FPGA上。
优选地,所述FPGA的片上验证逻辑还包括:
所述通用激励产生模块与需要激励的待测SoC子模块的内部接口和内部信号的输入端口连接,将所述通用信号监测模块与所述子模块的所述内部接口和内部信号的输出端口连接,用于对待验证SoC的子模块进行验证。
一种使用面向SoC的FPGA验证平台的验证方法,所述验证方法包括:
上位机根据待验证SoC的验证需求通过串口向FPGA的片上验证逻辑发送指令序列;
FPGA的片上验证逻辑根据所述指令序列,生成对待验证SoC的测试激励,并采集待验证SoC的响应信号;
上位机通过串口提取所述响应信号,与预先建立的参考模型中的预期响应对比,生成验证结果。
优选地,所述FPGA上的片上验证逻辑根据所述指令序列,生成对待验证SoC的测试激励,并采集待验证SoC的响应信号包括:
FPGA上的片上验证逻辑中的微控制器按照所述指令序列控制通用激励产生模块向待验证SoC发送激励信号,控制常用总线和外设接口产生所需的通信事务,控制通用信号检测模块采集待验证SoC的响应信号,并将所述响应信号发送给上位机;
FPGA上的片上验证逻辑中的微控制器按照所述指令序列控制时钟/复位管理模块向待验证SoC发送时钟与复位信号,控制存储模块存取内存数据。
优选地,所述上位机通过串口提取所述响应信号,与预先建立的参考模型中的预期响应对比,生成验证结果包括:
上位机通过串口提取所述响应信号,将所述响应信号与预先建立的参考模型中的预期响应对比,通过记分板对照检查两者的异同,生成对照检查记录;
若所述响应信号与预先建立的参考模型中的预期响应不一致,则对待验证SoC进行修改,直至所述响应信号与预先建立的参考模型中的预期响应一致。
优选地,所述参考模型的建立包括:
根据待验证SoC的待验证功能点,提取需要产生响应的验证激励;
依据所述验证激励,编写待验证SoC的响应软件模型,使待验证SoC按照时序要求对验证激励产生预期响应;
依据所述响应软件模型,对寄存器和状态机编写状态软件模型,生成预期响应值和状态编码。
优选地,所述上位机将所述响应信号与预先建立的参考模型中的预期响应对比,生成验证结果,之后还包括:
上位机根据待验证SoC的验证需求通过串口继续向FPGA发送指令序列,控制FPGA上的片上验证逻辑生成对待验证SoC的测试激励,并采集待验证SoC的响应信号,上位机将所述响应信号和预先建立的参考模型中的预期响应进行对比,直至所有预先建立的参考模型中的预期响应验证完毕。
与现有技术相比,本发明的有益效果为:
本发明提供的技术方案中通过在FPGA上设置片上验证逻辑,将片上验证逻辑和待验证SoC连接并烧录在FPGA上,实现对SoC的验证,对FPGA的外设接口要求低,能够对具有丰富外设接口的SoC进行测试验证,不需要在待验证SoC上挂接真实的外设,适应各种SoC测试验证场景,可复用性高;
本发明提供的技术方案通过微控制器接收上位机发来的指令序列,控制与待验证SoC连接的各个模块执行操作,可适用于绝大多数的FPGA芯片且占用逻辑资源少,能够生成多种测试激励,满足各种SoC测试需求,适应性强;
本发明提供的技术方案可模块化开发,开发耦合度低,适合于多人协同开发。
附图说明
图1为本发明面向SoC的FPGA验证平台的结构示意图;
图2为本发明面向SoC的FPGA验证方法的示意图;
图3为本发明传统FPGA验证和采用面向SoC的FPGA验证方法进行验证的对比图;
图4为本发明实施例3中时钟/复位管理模块结构示意图;
图5为本发明实施例3中通用激励产生模块结构示意图;
图6为本发明实施例3中通用信号监测模块结构示意图;
图7为本发明实施例3中存储模块结构示意图;
其中,1-自由时钟输入;2-受控时钟输入;3-模式选择;4-复位信号输入;5-时钟输出;6-低电平复位输出;7-高电平复位输出;8-时钟输入;9-激励信号输入;10-激励端口选择信号;11-使能信号;12-激励信号输出1;13-激励信号输出2;14-激励信号输出N;15-中断输出;16-中断向量输出;17-信号输出;18-监测端口选择;19-信号监测端口1;20-信号监测端口2;21-信号监测端口N;22-端口A;23-端口B。
具体实施方式
为了更好地理解本发明,下面结合说明书附图和实例对本发明的内容做进一步的说明。
实施例1
一种面向SoC的FPGA验证平台,如图1所示,所述验证平台包括:上位机和FPGA;所述上位机通过串口与FPGA连接;
所述FPGA包括片上验证逻辑,将待验证SoC与所述FPGA的片上验证逻辑连接,并烧录在所述FPGA上;
所述上位机用于通过串口向FPGA的片上验证逻辑发送指令序列,并读取FPGA的片上验证逻辑返回的响应信号,根据所述响应信号对待验证SoC进行验证;
所述FPGA的片上验证逻辑用于根据所述上位机发送的指令序列,生成对待验证SoC的测试激励,并采集待验证SoC的响应信号,发送给上位机。
具体地,所述FPGA的片上验证逻辑至少包括微控制器、通用激励产生模块、通用信号监测模块;
所述微控制器与所述通用激励产生模块和通用信号监测模块连接;所述通用激励产生模块与待验证SoC的GPIO以及需要激励的接口连接;所述通用信号监测模块与待验证SoC中需要观测的内部信号和内部寄存器连接;
所述微控制器用于将上位机发送的指令序列解析成控制信号,控制所述通用激励产生模块和通用信号监测模块执行操作;所述通用激励产生模块用于按照从微控制器接收的控制信号向待验证SoC提供激励;所述通用信号监测模块用于按照从微控制器接收的控制信号采集待验证SoC内部寄存器和内部信号的值。
具体地,所述FPGA的片上验证逻辑还包括:时钟/复位管理模块;
所述时钟/复位管理模块与所述微处理器和待验证SoC的时钟/复位输入端口连接,并烧录在所述FPGA上;
所述时钟/复位管理模块用于按照从微控制器接收的控制信号向待验证SoC提供时钟与复位信号,并且可实现对待验证SoC的单步、特定步数、连续时钟控制和复位操作。
具体地,所述FPGA的片上验证逻辑还包括:存储模块;
所述存储模块与所述微处理器和待验证SoC连接,并烧录在所述FPGA上;
所述存储模块用于替代待验证SoC的片上存储器,按照从微控制器接收的控制信号进行存取。
具体地,所述FPGA的片上验证逻辑还包括常用总线和外设接口;
所述常用总线和外设接口与FPGA中的微处理器以和各个模块连接,并与待验证SoC的UART、GPIO或SPI外设接口连接;
所述常用总线和外设接口烧录在FPGA上。
具体地,所述FPGA的片上验证逻辑还包括:
所述通用激励产生模块与需要激励的待测SoC子模块的内部接口和内部信号的输入端口连接,将所述通用信号监测模块与所述子模块的所述内部接口和内部信号的输出端口连接,用于对待验证SoC的子模块进行验证。
实施例2
一种使用面向片上系统的验证平台的验证方法,如图2所示,所述验证方法包括:
一种使用面向SoC的FPGA验证平台的验证方法,所述验证方法包括:
步骤1:上位机根据待验证SoC的验证需求通过串口向FPGA的片上验证逻辑发送指令序列;
步骤2:FPGA的片上验证逻辑根据所述指令序列,生成对待验证SoC的测试激励,并采集待验证SoC的响应信号;
步骤3:上位机通过串口提取所述响应信号,与预先建立的参考模型中的预期响应对比,生成验证结果。
步骤1,上位机根据待验证SoC的验证需求通过串口向FPGA的片上验证逻辑发送指令序列。
步骤2,所述FPGA上的片上验证逻辑根据所述指令序列,生成待验证SoC的响应信号包括:
FPGA上的片上验证逻辑中的微控制器按照所述指令序列控制通用激励产生模块向待验证SoC发送激励信号,控制常用总线和外设接口产生所需的通信事务,控制通用信号检测模块采集待验证SoC的响应信号,并将所述响应信号发送给上位机;
FPGA上的片上验证逻辑中的微控制器按照所述指令序列控制时钟/复位管理模块向待验证SoC发送时钟与复位信号,控制存储模块存取内存数据。
步骤3,所述上位机通过串口提取所述响应信号,与预先建立的参考模型中的预期响应对比,生成验证结果包括:
上位机通过串口提取所述响应信号,将所述响应信号与预先建立的参考模型中的预期响应对比,通过记分板对照检查两者的异同,生成对照检查记录;
若所述响应信号与预先建立的参考模型中的预期响应不一致,则对待验证SoC进行修改,直至所述响应信号与预先建立的参考模型中的预期响应一致。
具体地,所述参考模型的建立包括:
根据待验证SoC的待验证功能点,提取需要产生响应的验证激励;
依据所述验证激励,编写待验证SoC的响应软件模型,使待验证SoC按照时序要求对验证激励产生预期响应;
依据所述响应软件模型,对寄存器和状态机编写状态软件模型,生成预期响应值和状态编码。
具体地,所述上位机将所述响应信号与预先建立的参考模型中的预期响应对比,生成验证结果,之后还包括:
上位机根据待验证SoC的验证需求通过串口继续向FPGA发送指令序列,控制FPGA上的片上验证逻辑生成对待验证SoC的测试激励,并采集待验证SoC的响应信号,上位机将所述响应信号和预先建立的参考模型中的预期响应进行对比,直至所有预先建立的参考模型中的预期响应验证完毕。
实施例3
下面结合具体的验证场景对面向片上系统的验证平台和验证方法进行详细说明。
用户需要对待验证SoC进行FPGA验证,该SoC具有若干个UART、GPIO、SPI、JTAG等外设接口,并有两个片上存储器。若采用传统的FPGA调试方法,如图3所示,采用传统FPGA验证时,用户一般会将SoC独立综合,并将其外设接口配置到FPGA开发板的GPIO引脚上,验证时需要在FPGA的引脚上挂接真实的外设,比如SPI设备、显示频、GPS等,用于测试SoC的工作状态。该验证方法在实现中存在如下几个问题:
(1)如果待验证SoC的外设接口较多,则对FPGA开发板的GPIO接口数量提出了高要求,一些接口的开发板无法满足需求。
(2)在验证的时候,需要挂接真实的外设,一是成本较高,二是受限于具体外设的功能,验证灵活性不高。
(3)该方法只适用于系统级验证,且在验证中一旦出现问题,缺乏对内部逻辑信号进行观察和调试的方法,难以对SoC进行模块级的验证。
面向SoC的FPGA验证平台至少包括微处理器、时钟/复位管理模块、通用激励模块、通用信号监测模块、常用总线与外设接口模块和存储模块。
采用本发明提供的技术方案进行验证时,如图3所示,采用面向SoC的FPGA验证平台进行验证时,微控制器采用PicoBlaze微控制器,待验证SoC和面向片上系统的验证平台的连接方式如下:
时钟/复位管理模块与待验证SoC的时钟/复位输入端口连接;
通用激励模块与待验证SoC的GPIO以及需要特定激励的接口连接;
通用信号监测模块与待验证SoC中需要观测的内部信号和内部寄存器连接;
常用总线与外设接口模块与待验证SoC的UART、GPIO、SPI外设接口连接;
用存储模块替代SoC中的片上存储器。
面向SoC的FPGA验证平台中各模块的结构和功能描述如下:
时钟/复位管理模块,如图4所示,该模块包含4个输入端口:自由时钟输入1、受控时钟输入2、模式选择3、复位信号输入4,除自由时钟输入1端口与系统时钟相连外,其余3个输入端口分别与PicoBlaze微控制器连接;该模块包含3个输出端口:时钟输出5、低电平复位输出6、高电平复位输出7,这三个输出端口分别与待验证的SoC连接。该模块为待验证SoC提供时钟与复位信号,受上位机程序控制,可以实现对SoC的单步、特定步数、连续时钟控制,以及复位操作。具体功能为:(1)时钟信号提供自由时钟和受控时钟两种模式,通过模式选择3端口的值控制。在自由时钟模式下,时钟输出5与自由时钟输入1连接,为SoC提供连续时钟;在受控时钟模式下,时钟输出5与受控时钟输入2连接,此时SoC的时钟信号受上位机程序控制,以实现对SoC的单步和特定步数的调试。(2)复位包含低电平复位输出6和高电平复位输出7两个接口,可分别产生对应电平的复位信号,充分考虑测试平台的通用性,可根据SoC的复位特性进行连接。
通用激励产生模块,如图5所示,该模块包含4个输入端口:时钟输入8、激励信号输入9、激励端口选择信号10、使能信号11,除时钟输入8与系统时钟相连外,其余3个端口分别与PicoBlaze微控制器相连接;可包含多达256个“激励信号输出”端口,每个端口8位,这些端口分别与SoC相连接。该模块为SoC提供需要的激励,受上位机程序控制,具体功能如下:在每一个时钟上升沿,将激励信号输入9端口的值锁存到由激励端口选择信号10指定的激励信号输出端口,激励信号输出端口在图5中用12、13和14表示,激励端口选择信号10端口为8位。通过此方式可以产生多达28×8=2048位的激励信号,并可根据实际需求进行扩展。该模块的激励信号输入9和激励端口选择信号10两个端口由上位机程序赋值,可以向待验证SoC的任意接口,包括外部接口与内部接口,施加任意激励。
通用信号监测模块,如图6所示,该模块的输入端口包含1个监测端口选择18信号和一组信号监测端口,图6中用19、20和21表示,其中信号监测端口数量可多达256个,且每个端口8位,分别与待验证SoC相连;包含3个输出端口:中断输出15、中断向量输出16、信号输出17,这3个输出端口分别与PicoBlaze微控制器连接,信号输出17的端口为8位。该模块可对待验证SoC中的寄存器值、内部信号值、外部接口信号值等进行采集。具体功能如下:多路选择器将监测端口选择18信号指定的那一路信号监测端口连接到信号输出17端口上,上位机程序可通过PicoBlaze微控制器将该信号采集到上位机进行处理;中断产生逻辑判断各路信号监测端口的信号是否满足验证需求,若满足,则产生中断输出15信号和中断向量输出16信号,中断向量输出16用于标示中断产生原因。这两个信号可由PicoBlaze微控制器直接响应,也可由PicoBlaze微控制器通过串口传递到上位机进行响应。中断产生逻辑的具体实现、中断向量的位数等,根据验证需求定制。该模块的监测端口选择18信号由上位机程序赋值,可采集待验证SoC中任意外部接口和内部信号的值。
常用总线和外设接口,包含了常用的总线接口,外设接口包括UART,I2C,SPI,能够方便地实现对待验证SoC进行系统级的调试。总线接口与外设接口的行为都受上位机程序控制,通过程序虚拟出各种应用场景对待验证SoC进行测试。
存储模块,如图7所示,由一个双端口存储模块构成。其中端口A22连接PicoBlaze微控制器,端口B23连接待验证SoC。待验证SoC通过端口B23正常使用存储模块,上位机程序可以通过端口A22观察或修改存储模块里的数据,实现对待验证SoC的调测试。
使用面向片上系统的验证平台的验证方法的验证方法如下:
步骤1:上位机根据待验证SoC的验证需求通过串口向FPG的片上验证逻辑A发送指令序列。
PicoBlaze微控制器负责从串口接收上位机发来的指令序列,并解析成具体的控制信号,控制上述各个模块做出具体的操作。解析过程由运行在PicoBlaze微控制器上的固件实现,固件由PicoBlaze配套的psm汇报语言编写。PicoBlaze设置两个模式:ACTIVE主动模式和PASSIVE被动模式即和。在ACTIVE主动模式下,验证平台对验证时钟具有完全控制权,可进行单步、多步调试;同时“通用激励产生模块”、“常用总线和外设接口”、“通用信号监测模块”处于运行状态,PicoBlaz微控制器根据上位机的指令序列控制“通用激励产生模块”产生特定激励信号,通过“常用总线和外设接口”产生所需的通信事务,通过“通用信号检测模块”观察待验证SoC的响应。该模式主要用于进行模块级的功能验证。在PASSIVE被动模式下,验证时钟采用自由时钟,整个PicoBlaze微控制器处于被动响应状态,“常用总线和外设接口”、“通用信号监测模块”处于运行状态,PicoBlaze通过“常用总线和外设接口”模拟真实使用场景与SoC的信息交互,并通过“通用信号监测模块”观察待验证SoC的状态。该模式主要用于系统级的验证。
PicoBlaze微控制器的ACTIVE主动模式和PASSIVE被动模式可以根据需要互相切换。在系统启动后,首先进入ACTIVE主动模式,此时,用户可通过在PC端调用chmod(PASSIVE)API进入PASSIVE被动模式。在PASSIVE被动模式下,用户可通过在PC端调用chmod(ACTIVE)API回到ACTIVE主动模式。另外,可以通过输入信号触发通用信号监测模块产生中断,一旦发生中断,验证平台立即回到ACTIVE主动模式,并停止向待验证SoC发送时钟脉冲,对中断事件的判断和处理。
上位机发送的指令序列通过调用通用API接口控制验证平台中的各个模块,通用API接口为Python接口,具体实现方式为将对应的串口指令序列进行封装。验证平台根据实际使用需求为用户提供API接口,表1为该实施例中提供的主要API接口:
表1主要API列表
Figure GDA0002491648540000111
Figure GDA0002491648540000121
对片上系统进行验证时,需将待验证SoC和时钟/复位管理、通用激励产生模块、通用信号监测模块、常用总线和外设接口、存储模块按照上述联接方式进行连接并烧录到FPGA中。
上位机与FPGA通过串口连接,根据待验证SoC的验证参考模型中对激励的预期响应编写好参考模型和记分板,并通过通用API接口,或自己开发的API接口,编写激励程序以产生激励、编写观测程序以采集需要观测的信号数据。
步骤2,FPGA的片上验证逻辑根据所述指令序列,生成对待验证SoC的测试激励,并采集待验证SoC的响应信号。
上位机运行激励程序通过串口对待验证SoC施加激励,向微控制器发送指令序列,所述微控制器按照所述指令序列控制所述通用激励产生模块向待验证SoC发送激励信号,控制常用总线和外设接口产生所需的通信事务,并控制通用信号检测模块采集待验证SoC的响应信号,将所述响应信号发送给上位机。过程中PicoBlaze微控制器可使用ACTIVE主动模式,此时时钟/复位管理模块向待验证SoC输出受控时钟,配合观测程序观察到待验证SoC每一时钟步的状态变化;也可使用PASSIVE被动模式,此时时钟/复位管理模块向待验证SoC输出连续时钟,以观察SoC在连续自由时钟下的运行行为。同时,通过存储模块中的端口A,上位机程序可以实时地观察待验证SoC中内存数据的值,以及根据验证需求修改其内存数据。
步骤3,上位机通过串口提取所述响应信号,与预先建立的参考模型中的预期响应对比,生成验证结果。
上位机通过串口提取所述响应信号,将所述响应信号与预先建立的参考模型中的预期响应对比,并通过记分板生成对照检查记录;
若所述响应信号与预先建立的参考模型中的预期响应不一致,则对待验证SoC进行修改,直至所述响应信号与预先建立的参考模型中的预期响应一致。
参考模型和记分板用于将观察到的待验证SoC的响应与预期响应进行对照检查。验证参考模型用于根据验证激励产生期望的响应,再通过记分板将预期响应与待验证SoC的响应进行对照检查,生成对照结果。
参考模型根据待验证SoC的设计文档和验证大纲建立,具体实现方式如下:(1)根据SoC验证大纲所规定的待验证功能点,提取出验证参考模型需要对哪些验证激励产生响应;(2)编写待验证SoC的软件模型,使得该模型能够按照待验证SoC设计文档的时序要求对验证激励产生期望的响应;(3)对待验证SoC中的关键寄存器和状态机编写软件模型,使其按照待验证SoC设计文档的要求生成期望的值和状态编码。
记分板根据待验证SoC的验证大纲实现,实现方式为根据SoC验证大纲所规定的验证功能点,分别监测待验证SoC和验证参考模型对验证激励产生的响应,对照检查两者的异同,并生成对照检查记录。
验证要覆盖待验证SoC验证大纲中规定的所有功能点,且采集到的信号与参考模型对比一致。若验证过程中出现采集到的信号与参考模型对比不一致的情况,则说明待验证SoC与设计文档中的要求有不一致的地方,需按设计文档对SoC进行修改后,重复上述验证过程,直至预先建立的参考模型中的预期响应全部验证完毕。
验证过程中发现的问题需要进行更细致的验证。若需要对待验证SoC的子模块进行验证,可根据验证需求提取出待验证子模块的关键输入/输出端口、关键内部信号,将关键输入端口连接通用激励产生模块,以通过上位机程序对其施加特定激励,并将关键输出端口和关键内部信号连接通用信号监测模块,以通过上位机程序观察其信号值,完成连接后根据验证需求编写对应的验证参考模型,采用上述面向片上系统的验证方法其进行验证。
上述实施例证明,本发明提供的技术方案中通过在FPGA上设置片上验证逻辑,将片上验证逻辑和待验证SoC连接并烧录在FPGA上,实现对SoC的验证,对FPGA的外设接口要求低,能够对具有丰富外设接口的SoC进行测试验证,不需要在待验证SoC上挂接真实的外设,适应各种SoC测试验证场景,可复用性高;
本发明提供的技术方案通过微控制器接收上位机发来的指令序列,控制与待验证SoC连接的各个模块执行操作,可适用于绝大多数的FPGA芯片且占用逻辑资源少,能够生成多种测试激励,满足各种SoC测试需求,适应性强;
本发明提供的技术方案可模块化开发,开发耦合度低,适合于多人协同开发。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上仅为本发明的实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均包含在申请待批的本发明的权利要求范围之内。

Claims (8)

1.一种面向SoC的FPGA验证平台,其特征在于,所述验证平台包括:上位机和FPGA;所述上位机通过串口与FPGA连接;
所述FPGA包括片上验证逻辑,待验证SoC与所述FPGA的片上验证逻辑连接,并烧录在所述FPGA上;
所述上位机用于通过串口向FPGA的片上验证逻辑发送指令序列,并读取FPGA的片上验证逻辑返回的响应信号,根据所述响应信号对待验证SoC进行验证;
所述FPGA的片上验证逻辑用于根据所述上位机发送的指令序列,生成对待验证SoC的测试激励,并采集待验证SoC的响应信号,发送给上位机;
所述FPGA的片上验证逻辑包括具有通用计算能力的微控制器、通用激励产生模块、通用信号监测模块;
所述微控制器与所述通用激励产生模块和通用信号监测模块连接;所述通用激励产生模块与待验证SoC的GPIO以及需要激励的接口连接;所述通用信号监测模块与待验证SoC中需要观测的内部信号和内部寄存器连接;
所述微控制器用于将上位机发送的指令序列解析成控制信号,控制所述通用激励产生模块和通用信号监测模块执行操作;所述通用激励产生模块用于按照从微控制器接收的控制信号向待验证SoC提供激励;所述通用信号监测模块用于按照从微控制器接收的控制信号采集待验证SoC内部寄存器和内部信号的值。
2.如权利要求1所述的面向SoC的FPGA验证平台,其特征在于,所述FPGA的片上验证逻辑还包括:时钟/复位管理模块;
所述时钟/复位管理模块与所述微控制器和待验证SoC的时钟/复位输入端口连接,并烧录在所述FPGA上;
所述时钟/复位管理模块用于按照从微控制器接收的控制信号向待验证SoC提供时钟与复位信号,并且可实现对待验证SoC的单步、特定步数、连续时钟控制和复位操作;
所述FPGA的片上验证逻辑还包括:存储模块;
所述存储模块与所述微控制器和待验证SoC连接,并烧录在所述FPGA上;
所述存储模块用于替代待验证SoC的片上存储器,按照从微控制器接收的控制信号进行存取;
所述FPGA的片上验证逻辑还包括常用总线和外设接口;
所述常用总线和外设接口与FPGA中的微控制器连接,并与待验证SoC的UART、GPIO或SPI外设接口连接;
所述常用总线和外设接口烧录在FPGA上。
3.如权利要求1所述的面向SoC的FPGA验证平台,其特征在于,所述FPGA的片上验证逻辑还包括:
所述通用激励产生模块与需要激励的待测SoC子模块的内部接口和内部信号的输入端口连接,将所述通用信号监测模块与所述子模块的所述内部接口和内部信号的输出端口连接,用于对待验证SoC的子模块进行验证。
4.一种使用面向SoC的FPGA验证平台的验证方法,其特征在于,所述验证方法包括:
上位机根据待验证SoC的验证需求通过串口向FPGA的片上验证逻辑发送指令序列;
FPGA的片上验证逻辑根据所述指令序列,生成对待验证SoC的测试激励,并采集待验证SoC的响应信号;
上位机通过串口提取所述响应信号,与预先建立的参考模型中的预期响应对比,生成验证结果。
5.如权利要求4所述的使用面向SoC的FPGA验证平台的验证方法,其特征在于,所述FPGA上的片上验证逻辑根据所述指令序列,生成对待验证SoC的测试激励并采集其响应信号包括:
FPGA上的片上验证逻辑中的微控制器按照所述指令序列控制通用激励产生模块向待验证SoC发送激励信号,控制常用总线和外设接口产生所需的通信事务,控制通用信号检测模块采集待验证SoC的响应信号,并将所述响应信号发送给上位机;
FPGA上的片上验证逻辑中的微控制器按照所述指令序列控制时钟/复位管理模块向待验证SoC发送时钟与复位信号,控制存储模块存取内存数据。
6.如权利要求4所述的使用面向SoC的FPGA验证平台的验证方法,其特征在于,所述上位机通过串口提取所述响应信号,与预先建立的参考模型中的预期响应对比,生成验证结果包括:
上位机通过串口提取所述响应信号,将所述响应信号与预先建立的参考模型中的预期响应对比,通过记分板对照检查两者的异同,生成对照检查记录;
若所述响应信号与预先建立的参考模型中的预期响应不一致,则对待验证SoC进行修改,直至所述响应信号与预先建立的参考模型中的预期响应一致。
7.如权利要求4所述的使用面向SoC的FPGA验证平台的验证方法,其特征在于,所述参考模型的建立包括:
根据待验证SoC的待验证功能点,提取需要产生响应的验证激励;
依据所述验证激励,编写待验证SoC的响应软件模型,使待验证SoC按照时序要求对验证激励产生预期响应;
依据所述响应软件模型,对寄存器和状态机编写状态软件模型,生成预期响应值和状态编码。
8.如权利要求4所述的使用面向SoC的FPGA验证平台的验证方法,其特征在于,所述上位机将所述响应信号与预先建立的参考模型中的预期响应对比,生成验证结果,之后还包括:
上位机根据待验证SoC的验证需求通过串口继续向FPGA发送指令序列,控制FPGA上的片上验证逻辑生成对待验证SoC的测试激励,并采集待验证SoC的响应信号,上位机将所述响应信号和预先建立的参考模型中的预期响应进行对比,直至所有预先建立的参考模型中的预期响应验证完毕。
CN202010068805.5A 2020-01-21 2020-01-21 一种面向SoC的FPGA验证平台和验证方法 Active CN111339731B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010068805.5A CN111339731B (zh) 2020-01-21 2020-01-21 一种面向SoC的FPGA验证平台和验证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010068805.5A CN111339731B (zh) 2020-01-21 2020-01-21 一种面向SoC的FPGA验证平台和验证方法

Publications (2)

Publication Number Publication Date
CN111339731A CN111339731A (zh) 2020-06-26
CN111339731B true CN111339731B (zh) 2021-01-08

Family

ID=71185224

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010068805.5A Active CN111339731B (zh) 2020-01-21 2020-01-21 一种面向SoC的FPGA验证平台和验证方法

Country Status (1)

Country Link
CN (1) CN111339731B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111858207B (zh) * 2020-06-30 2022-03-22 浪潮(北京)电子信息产业有限公司 一种SoC芯片验证测试系统及方法
CN112100954A (zh) * 2020-08-31 2020-12-18 北京百度网讯科技有限公司 验证芯片的方法、装置和计算机存储介质
CN112162188A (zh) * 2020-09-24 2021-01-01 中电海康无锡科技有限公司 一种实现soc复位模块的测试方法、装置及系统
CN112329366A (zh) * 2020-12-04 2021-02-05 国微集团(深圳)有限公司 一种提高仿真效率的soc系统验证方法、装置及系统
CN115270107B (zh) * 2022-09-26 2022-12-20 北京紫光芯能科技有限公司 一种信息验证方法、装置、可读介质及电子设备
CN115639461A (zh) * 2022-12-23 2023-01-24 长沙驰芯半导体科技有限公司 一种基于双处理器的超宽带芯片原型验证平台

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100476837C (zh) * 2006-04-28 2009-04-08 中国科学院计算技术研究所 一种支持随机指令测试的微处理器fpga验证装置
CN101093521B (zh) * 2007-07-24 2011-09-21 中兴通讯股份有限公司 一种fpga仿真装置及其方法
WO2012122994A1 (en) * 2011-03-11 2012-09-20 Kreft Heinz Off-line transfer of electronic tokens between peer-devices
CN102855338B (zh) * 2011-06-28 2015-04-15 重庆重邮信科通信技术有限公司 现场可编程门阵列原型验证装置及验证方法
CN104504187B (zh) * 2014-12-11 2018-06-19 安徽师范大学 一种基于串行通信接口的fpga在线验证结构和方法
CN110365423B (zh) * 2019-07-18 2020-11-24 电子科技大学 一种无线电soc平台dut的验证方法
CN110618929B (zh) * 2019-08-01 2023-03-21 广东工业大学 一种基于uvm的对称加密算法的验证平台和验证方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DDR2控制器IP的设计与FPGA实现;舒展;《中国优秀硕士学位论文全文数据库信息科技辑》;20091015(第10期);I137-25 *
FPGA硬核处理器系统加速数字电路功能验证的方法;刘小强等;《电子与信息学报》;20190514;第41卷(第5期);1651-1656 *

Also Published As

Publication number Publication date
CN111339731A (zh) 2020-06-26

Similar Documents

Publication Publication Date Title
CN111339731B (zh) 一种面向SoC的FPGA验证平台和验证方法
CN102542110B (zh) 一种应用于移动存储soc芯片的仿真验证方法
US9703579B2 (en) Debug environment for a multi user hardware assisted verification system
CN107907814B (zh) 一种提高芯片量产测试效率的方法
CN115841089A (zh) 一种基于uvm的系统级芯片验证平台及验证方法
CN115828839A (zh) 一种soc芯片系统级验证系统及方法
CN107608846B (zh) 一种针对fpga内嵌tap接口的调试链路及调试方法
US20070061641A1 (en) Apparatus and method for generating test driver
CN109885905B (zh) 一种提高数字电路功能验证效率的验证系统
CN114325333A (zh) 一种高效率规范化的soc系统级验证方法及装置
CN111428431A (zh) 一种支持eda软件的自动化测试并记录的方法及系统
CN115496018A (zh) 一种SoC芯片多版本验证方法、装置及设备
CN116089281A (zh) 一种芯片测试方法、测试平台和设备
US20020163351A1 (en) Method for producing test patterns for testing an integrated circuit
CN103376340A (zh) 一种转接板、多平台串行测试系统及方法
CN115543797A (zh) 基于uvm的总线转换桥验证方法、装置、设备及存储介质
CN116450427A (zh) 芯片中复用引脚的自动化验证方法、装置、存储介质及计算机设备
CN110765716A (zh) 数字产品的仿真信号查看方法及系统
CN111624475B (zh) 大规模集成电路的测试方法及系统
CN110988662B (zh) 一种基于fpga原型验证开发板的信号调试系统及方法
US7747423B1 (en) Systems and methods of co-simulation utilizing multiple PLDs in a boundary scan chain
CN115470106A (zh) 一种可重构芯片的验证方法和系统
CN101751492A (zh) 一种微控制器和该微控制器的仿真系统
Seo et al. Automating embedded software testing on an emulated target board
CN113792522A (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