一种用于FPGA原型验证系统的文件导出方法及系统技术方案

技术编号:34187463 阅读:16 留言:0更新日期:2022-07-17 14:35
本发明专利技术公开了一种用于FPGA原型验证系统的文件导出方法及系统,本发明专利技术方法包括将待测设计下载到FPGA原型验证系统中;使用设备树文件引导上位机的操作系统启动,设备树中的内存节点中包含定义为保留内存的子节点,用于保留一段操作系统不使用且连续的内存空间以用于存储要输出的数据文件;在上位机的操作系统中将需要导出的数据文件搬移到保留的内存空间中;向FPGA原型验证系统发送文件导出命令,获得需要导出的数据文件。本发明专利技术能够在FPGA原型验证系统在没有外设IO设备或IO接口的条件下,便捷、高速地将存储于内存中的文件导出至上位机或服务器中,缩短文件导出时间,提高对待验证设计代码进行功能验证和性能验证的效率。证设计代码进行功能验证和性能验证的效率。证设计代码进行功能验证和性能验证的效率。

A file export method and system for FPGA prototype verification system

【技术实现步骤摘要】
一种用于FPGA原型验证系统的文件导出方法及系统


[0001]本专利技术涉及集成电路设计领域中的原型验证系统,具体涉及一种用于FPGA原型验证系统的文件导出方法及系统。

技术介绍

[0002]随着半导体工艺的不断发展和对高性能计算需求的不断提高,CPU(Central Processing unit)设计的复杂度不断提高,进而对验证平台的需求也越来越高。基于FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)搭建的CPU芯片原型验证系统能够反应芯片真实性能、能够发现真实BUG、相比于软件仿真以及硬件仿真加速器具有更快的运行速度等优点,是进行CPU芯片验证的重要手段之一。
[0003]FPGA原型验证系统一般由一块或多块FPGA原型验证板及其子卡组成,同时还可连接上位机、服务器和其他外设IO设备。当FPGA原型验证系统的验证目标是CPU核和访存系统时,一般可以不连接外设IO设备,如硬盘等,只需要在FPGA平台上插入作为内存使用的内存子卡即可完成验证目标。当使用此类验证系统进行验证时,所使用的方法是:将引导加载程序uboot、操作系统内核、设备树文件和文件系统存储于SD卡、SRAM子卡或者是FLASH芯片中。当FPGA原型验证系统复位后,首先将引导加载程序uboot加载到内存中执行,然后在引导加载程序uboot引导下,将操作系统内核、设备树文件和文件系统加载到内存中,并且由于没有硬盘,操作系统内核和文件系统运行在内存构建的RAMDISK中。当操作系统成功引导启动后,在操作系统环境下,通过执行文件系统中的测试程序对CPU核和访存系统的功能正确性以及性能进行验证。
[0004]在使用无外设IO设备或IO接口的FPGA原型验证系统进行CPU核和访存系统的验证时,有导出文件的需求,主要包括两种情况:(1)当程序执行中出现错误时,需要将程序运行出错时生成的存储于内存中的文件导出,以分析CPU核、访存系统的设计缺陷;(2)当需要分析CPU核、访存系统的性能时,亦需要将程序执行完成时生成的存储于内存中的文件导出。由于无外设IO设备的FPGA原型验证系统没有硬盘等IO设备、也没有USB或PCIE等IO接口,故无法通过IO设备或IO接口直接导出所述文件。目前,针对无外设IO设备或IO接口的FPGA原型验证系统,文件导出的主要方法是:在操作系统环境下,对所述文件执行打印操作,将所述文件通过串口输出到上位机的串口调试软件中,再通过所述串口调试软件保存所述文件。但此方法存在缺陷是串口传输速率太慢,当文件过大时,打印时间较长。随着CPU设计越来越大,在FPGA原型验证系统级测试时产生的文件可能会有10MB以上的大小。以常见的串口波特率为9600bps举例,打印一个字节最少需要发送十位,假设需要打印10MB的文件,所需时间大约为3

4小时。若此时原型系统验证的是数亿门级别的CPU,仿真运行速度可能不足10MHz,此时串口波特率会远低于9600bps。即此时打印该文件的时间所花费的时间将会远高于3

4小时,严重地降低了验证工作的效率,对芯片的验证进度带来不良影响。为此,针对无外设IO设备或IO接口的FPGA原型验证系统的文件导出过慢的问题,有必要研究一种方便、快速的从内存中导出文件的方法。

技术实现思路

[0005]本专利技术要解决的技术问题:针对现有技术的上述问题,提供一种用于FPGA原型验证系统的文件导出方法及系统,本专利技术能够在FPGA原型验证系统在没有外设IO设备或IO接口的条件下,便捷、高速地将存储于内存中的文件导出至上位机或服务器中,缩短文件导出时间,提高对待验证设计代码进行功能验证和性能验证的效率。
[0006]为了解决上述技术问题,本专利技术采用的技术方案为:
[0007]一种用于FPGA原型验证系统的文件导出方法,包括:
[0008]步骤S1:将待测设计下载到FPGA原型验证系统中;
[0009]步骤S2:使用设备树文件引导上位机的操作系统启动,所述设备树文件对应的设备树中的内存节点中包含定义为保留内存的子节点,所述子节点用于保留一段操作系统不使用且连续的内存空间以用于存储要输出的数据文件;
[0010]步骤S3:在上位机的操作系统中将需要导出的数据文件搬移到保留的内存空间中;
[0011]步骤S4:向FPGA原型验证系统发送文件导出命令,获得需要导出的数据文件。
[0012]可选地,步骤S4中向FPGA原型验证系统发送文件导出命令是通过上位机中运行的文件导出控制软件实现的,所述文件导出控制软件的执行步骤包括:
[0013]步骤S4.1:程序初始化,完成网络通信参数与协议的初始化配置,使所述文件导出控制软件和所述FPGA原型验证系统之间可通过以太网进行通信;
[0014]步骤S4.2:接收用户输入的需导出数据文件的信息,包括:数据文件的名称file_name,数据文件在FPGA原型验证系统内存中的起始地址file_addr,以及数据文件以字节计数的文件大小file_size;
[0015]步骤S4.3:根据数据文件的名称file_name创建文件file_name_PC及其对应的文件计数指针pointer_file_name_PC,创建初始化为0的整型变量receive_count以记录从所述FPGA原型验证系统接收到的文件数据字节数;
[0016]步骤S4.4:根据需要导出的数据文件的文件命令格式,创建导出文件命令并通过以太网子卡发送到FPGA原型验证系统;
[0017]步骤S4.5:等待FPGA原型验证系统返回的文件导出数据包,并根据文件导出数据包的起始符和结束符提取出指定大小n字节的文件数据;
[0018]步骤S4.6:判断文件大小file_size减去整型变量receive_count的差是否大于或等于n字节,若成立则跳转到步骤S4.7,否则跳转到步骤S4.8;
[0019]步骤S4.7:通过文件计数指针pointer_file_name_PC将接收到的全部n字节文件数据写入文件file_name_PC,将整型变量receive_count自加n后跳转到所述步骤S4.5;
[0020]步骤S4.8:通过文件计数指针pointer_file_name_PC将接收到的文件数据中的前file_size

receive_count字节写入文件file_name_PC,并跳转到所述步骤S4.9;其中file_size

receive_count为文件大小file_size减去整型变量receive_count的差;
[0021]步骤S4.9:关闭文件计数指针pointer_file_name_PC,通过上位机显示终端提示用户的数据文件导出完毕并结束程序执行。
[0022]可选地,步骤4.5中指定大小n字节的文件数据是指54字节的文件数据。
[0023]可选地,步骤S3中在操作系统中将需要导本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于FPGA原型验证系统的文件导出方法,其特征在于,包括:步骤S1:将待测设计下载到FPGA原型验证系统中;步骤S2:使用设备树文件引导上位机的操作系统启动,所述设备树文件对应的设备树中的内存节点中包含定义为保留内存的子节点,所述子节点用于保留一段操作系统不使用且连续的内存空间以用于存储要输出的数据文件;步骤S3:在上位机的操作系统中将需要导出的数据文件搬移到保留的内存空间中;步骤S4:向FPGA原型验证系统发送文件导出命令,获得需要导出的数据文件。2.根据权利要求1所述的用于FPGA原型验证系统的文件导出方法,其特征在于,步骤S4中向FPGA原型验证系统发送文件导出命令是通过上位机中运行的文件导出控制软件实现的,所述文件导出控制软件的执行步骤包括:步骤S4.1:程序初始化,完成网络通信参数与协议的初始化配置,使所述文件导出控制软件和所述FPGA原型验证系统之间可通过以太网进行通信;步骤S4.2:接收用户输入的需导出数据文件的信息,包括:数据文件的名称file_name,数据文件在FPGA原型验证系统内存中的起始地址file_addr,以及数据文件以字节计数的文件大小file_size;步骤S4.3:根据数据文件的名称file_name创建文件file_name_PC及其对应的文件计数指针pointer_file_name_PC,创建初始化为0的整型变量receive_count以记录从所述FPGA原型验证系统接收到的文件数据字节数;步骤S4.4:根据需要导出的数据文件的文件命令格式,创建导出文件命令并通过以太网子卡发送到FPGA原型验证系统;步骤S4.5:等待FPGA原型验证系统返回的文件导出数据包,并根据文件导出数据包的起始符和结束符提取出指定大小n字节的文件数据;步骤S4.6:判断文件大小file_size减去整型变量receive_count的差是否大于或等于n字节,若成立则跳转到步骤S4.7,否则跳转到步骤S4.8;步骤S4.7:通过文件计数指针pointer_file_name_PC将接收到的全部n字节文件数据写入文件file_name_PC,将整型变量receive_count自加n后跳转到所述步骤S4.5;步骤S4.8:通过文件计数指针pointer_file_name_PC将接收到的文件数据中的前file_size

receive_count字节写入文件file_name_PC,并跳转到所述步骤S4.9;其中file_size

receive_count为文件大小file_size减去整型变量receive_count的差;步骤S4.9:关闭文件计数指针pointer_file_name_PC,通过上位机显示终端提示用户的数据文件导出完毕并结束程序执行。3.根据权利要求2所述的用于FPGA原型验证系统的文件导出方法,其特征在于,步骤4.5中指定大小n字节的文件数据是指54字节的文件数据。4.根据权利要求1所述的用于FPGA原型验证系统的文件导出方法,其特征在于,步骤S3中在操作系统中将需要导出的数据文件搬移到保留的内存空间中是通过上位机的操作系统中运行的数据搬移程序实现的,所述数据搬移程序的执行步骤包括:步骤S3.1:创建指向需要导出的数据文件file_name的文件指针pointer_file_name;创建整型变量write_count并初始化为0;步骤S3.2:通过文件指针pointer_file_name读取数据文件file_name的1字节数据并
存入字符型变量write_data中;步骤S3.3:将字符型变量write_data的数据写入保留的内存空间;步骤S3.4:将整型变量write_count自加1;步骤S3.5:通过文件指针pointer_file_name判断数据文件file_name是否读取完毕,若读取完毕则跳转到步骤S3.6,否则跳转到步骤S3.2;步骤S3.6:关闭文件指针pointer_file_name,在操作系统显示终端打印整型变量write_count并结束程序执行,所述整型变量write_count为数据文件file_name的文件大小file_size。5.根据权利要求4所述的用于FPGA原型验证系统的文件导出方法,其特征在于,步骤S3.3包括:调用操作系统提供的devmem函数将字符型变量write_data的数据写入保留的内存空间,devmem函数包含两个...

【专利技术属性】
技术研发人员:荀长庆廖焕乾赵王潘国腾王蕾罗莉周海亮周理铁俊波龚锐石伟冯权友张剑锋刘威王永文
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1