本发明涉及fpga开发和验证领域的,具体而言,涉及一种针对多fpga组网快速配置的分片加载方法。
背景技术:
1、随着芯片各项功能和结构复杂度的提升,流片失败将给公司带来巨大的经济损失,最严重的情况更是会使得整批芯片报废,芯片功能验证领域从芯片设计中分离出来,而且发展迅猛。针对业界对验证的重视和验证场景的需求,基于模拟的验证包括softwaresimulation(软件模拟)和emulation(硬件仿真)等方式。
2、在功能日益复杂的soc验证中,将设计和验证平台都放在simulator(软件模拟器)上跑会严重拖慢仿真速度,一个完整的测试样例短则跑几天,多则好几周,严重影响项目的速度。
3、硬件仿真运行在fpga等物理环境上,其仿真速度比软件仿真快,但是硬件多fpga的加载仍需设计,基于jtag接口配置多fpga需要频繁切换接口,使用步骤繁琐调试性较差,而基于软硬件协同仿真平台完成zynq+fpga快速配置,可以满足硬件仿真需要的fpga功能的快速更换和验证,但是传统的配置方案效率还有待提高,配置出错或者数据丢失需等待整个配置过程结束,无法快速返回状态,在大型程序需要使用多片fpga实现功能时,加载的模式还需要寻找更加高效的配置方案,让整个配置进度可视化且能在问题产生时迅速中断并重新设计加载,同时串口传输速度快,fpga配置时序需要生成并传输会比较慢,串口会出现大量闲置时间,拖慢多片fpga可以达到的最大速度配置。
技术实现思路
1、本发明的目的在于:一种基于fpga组网快速配置的分片加载方案,将一个或多个比特流文件分为多个分片,分片大小可以根据比特流文件的大小进行自定义配置,并生成片序号,从而达到在某一个分片加载出现问题时能快速返回序号和错误,方便调试找到问题,同时避免浪费更多的资源和时间加载错误的比特流文件,加载完全之后再进行退出,软件端可以对多个分片进行传输,并等待传输完成。
2、本发明的技术方案是:提供了一种针对多fpga组网快速配置的分片加载方法,该方法包括:
3、将pc端的高速接口与zynq应用端的sce-mi总线的输入接口连接,pc端加载保存在本地的位流文件;pc端计算位流文件的大小后根据预设的切片大小将位流文件切分为多个切片,切分完成后剩余的余数也作为一个切片,切片的数量为位流文件大小除以一个切片大小后再向上取整的数量;对每一个切片而言,在本切片中写入本切片的大小和对应fpga的idpc端通过高速接口将切片依次输入zynq应用端,zynq应用端包括sce-mi总线和fpga控制单元;
4、zynq应用端中sce-mi总线通过inport接口和inpipe接口与fpga控制单元连接,向fpga控制单元传输信号和数据;fpga控制单元通过sce-mi总线的outport接口与sce-mi总线连接;fpga控制单元通过fpga配置接口与fpga组网连接;
5、sce-mi总线将切片依次传输给fpga控制单元,fpga控制单元根据每一个切片所包含的信息生成多个控制信号,fpga控制单元读取每个控制信号中的fpga的id,fpga控制单元通过fpga配置接口将控制信号发送至fpga组网中对应的fpga,fpga执行控制信号对应的命令完成工作。
6、上述任一项技术方案中,sce-mi总线向fpga控制单元传输切片的步骤具体包括:
7、sce-mi总线通过inport接口向fpga控制单元发送初始化命令,fpga控制单元接收到初始化命令后开始执行初始化,fpga控制单元初始化完成后通过outport接口向sce-mi总线返回success信号,sce-mi总线开始向fpga控制单元依次传输切片;
8、对每一个切片而言,sce-mi总线首先通过inport接口向fpga控制单元发送该切片大小信息和对应fpga的id,然后sce-mi总线通过inpipe接口向fpga控制单元发送该切片,fpga控制单元接收到切片后根据inport接口发送的切片大小信息对该切片的数据准确性和完整性进行验证,验证无误情况下fpga控制单元通过outport接口返回success信号,sce-mi总线接收到success信号后重复上述步骤进行下一个切片的传输,直至传输完毕。
9、上述任一项技术方案中,进一步地,当fpga控制单元初始化出现错误时,fpga控制单元会通过outport接口向sce-mi总线返回failed信号,sce-mi总线重新通过inport接口向fpga控制单元发送初始化命令。
10、上述任一项技术方案中,进一步地,当fpga控制单元判定切片数据的准确性和完整性有误时,fpga控制单元会通过outport接口向sce-mi总线返回failed信号,sce-mi总线重新通过inport接口向fpga控制单元发送初始化命令。
11、上述任一项技术方案中,进一步地,pc端与zynq在工作开始前共同为fpga组网中的所有fpga分配id。
12、上述任一项技术方案中,进一步地,fpga控制单元的初始化结束的标志为fpga配置接口输出信号init_b由低变高。
13、本发明的有益效果是:
14、本发明中的技术方案使用高速串行接口,相较于传统的并行接口能极大提升加载比特流的速度;采用多fpga的配置,相较于单fpga的配置有更多计算资源及更大的发展潜力。
15、本发明通过逻辑控制,将sce-mi总线的两种独立工作模式结合使用,既保证了传输准确性和纠错的及时性,又可以实现数据向多个fpga的快速传输。本发明将待传输的大量数据切片,使用inpipe接口传输切片,切片传输的同时使用inport、outport接口传输握手信号,在单片切片传输完成后验证传输的完整性和准确性,然后才进行下一片切片的传输;相对于现有技术只依赖inpipe接口传输数据流的方法,本发明提供的方案在正常完成传输的基础上还具备传输验证的能力。
16、切片传输相对于单个数据传输速度更快,资源占用也小,本发明采用具有握手协议的sce-mi总线进行数据传输,遇到加载失败时,在每个切片传输后均能中断后续数据包的传输,相较于等待整个比特流数据包传输完成再结束的现有技术节约了大量时间;在线调试不需要现场操作,增加了工程师设计和验证的便利性。
1.一种针对多fpga组网快速配置的分片加载方法,其特征在于,所述方法包括:
2.如权利要求1所述的针对多fpga组网快速配置的分片加载方法,其特征在于,sce-mi总线向fpga控制单元传输切片的步骤具体包括:
3.如权利要求2所述的针对多fpga组网快速配置的分片加载方法,其特征在于,当fpga控制单元初始化出现错误时,fpga控制单元会通过outport接口向sce-mi总线返回failed信号,sce-mi总线重新通过inport接口向fpga控制单元发送初始化命令。
4.如权利要求2所述的针对多fpga组网快速配置的分片加载方法,其特征在于,当fpga控制单元判定切片数据的准确性和完整性有误时,fpga控制单元会通过outport接口向sce-mi总线返回failed信号,sce-mi总线重新通过inport接口向fpga控制单元发送初始化命令。
5.如权利要求1所述的针对多fpga组网快速配置的分片加载方法,其特征在于,所述pc端与zynq在工作开始前共同为fpga组网中的所有fpga分配id。
6.如权利要求2所述的针对多fpga组网快速配置的分片加载方法,其特征在于,fpga控制单元的初始化结束的标志为fpga配置接口输出信号init_b由低变高。