一种提高FPGA串行被动加载速率的加载电路及加载方法与流程

文档序号:16133946发布日期:2018-12-01 00:41阅读:812来源:国知局

本发明涉及一种提高fpga串行被动加载速率的加载电路及加载方法,特别适用于串行接口加载,属于嵌入式信号处理领域。

背景技术

fpga的加载方式有很多种,常用的方式有主动加载和被动加载。

对于fpga主动加载来讲,目前的方案都需要专用的配置芯片,同时须使用专用的jtag接口。但是配置芯片和jtag接口占用面积较大,达不到小型化设计的要求;同时该种方法无法实现灵活的在线升级。

fpga被动加载,按照接口方式分为串行被动加载和并行被动加载。通常并行被动加载的速度较快,但是需要耗费较多的外设接口。串行被动加载使用的外设接口资源少,成本低。但是串行被动加载需要模拟被动加载时序,对于普通的低速处理器,每一个操作步骤都需要数条指令,耗费时间。若加载时钟只有几khz,加载一个10m大小的文件,则需要几十秒或者更长。



技术实现要素:

本发明所解决的技术问题是:克服现有技术的不足,提供一种提高fpga串行被动加载速率的加载电路及加载方法,实现fpga快速加载,加载电路占用面积小,功耗低,加载方法的控制流程简单,适用于小型化平台快速加载fpga的实现。

本发明的技术解决方案是:一种提高fpga串行被动加载速率的加载电路,包括处理器、flash芯片和fpga芯片;

处理器的spi接口片选管脚scs与flash芯片的spi接口片选管脚cs连接;处理器的spi接口sclk管脚同时与flash芯片的spi接口时钟管脚clk以及fpga芯片的配置时钟管脚dclk连接;处理器的spi接口sdo管脚与flash芯片的spi接口输入数据管脚di连接;fpga芯片的配置状态管脚conf_done、配置状态管脚nstatus分别与处理器的通用输入管脚连接,fpga芯片的配置命令管脚nconfig与处理器的通用输出管脚连接;flash芯片的spi接口输出数据管脚do与fpga芯片配置数据管脚data0连接;fpga芯片的配置模式选择管脚接地;

处理器、flash芯片和fpga芯片的时钟与外部时钟连接,fpga芯片的io供电管脚、flash芯片的供电管脚以及处理器的供电管脚同时与外部io电源连接,fpga芯片的内核供电管脚和处理器的内核供电管脚均与外部内核供电电源连接;fpga芯片的辅助电源管脚与外部2.5v电源连接。

利用所述加载电路的加载方法,包括如下步骤:

(1)准备要加载的fpga配置文件;

(2)通过串口将fpga配置文件烧录到flash芯片中;

(3)启动加载电路中的处理器,将flash芯片中的fpga配置文件加载到fpga芯片中。

所述步骤(1)中,将fpga直接生成的rbf二进制文件,更改后缀名为bin文件,即得到了fpga配置文件。

所述步骤(1)中,准备好fpga配置文件后,判断flash芯片spi接口数据发送时序与fpga芯片的配置数据管脚data0时序是否一致,若一致,则无需处理;若不一致,则需要将接口配置成一致。

若接口无法进行配置,就需要将配置文件进行转化,转化流程如下:

(5.1)判断输入的配置文件是否可读,若否,则进入(5.5);否则进入(5.2);

(5.2)创建输出文件,创建不成功,则进入(5.5),否则进入(5.3);

(5.3)按字节读取输入的配置文件数据,判断返回值是否为空,若是,则进入(5.5),否则进入(5.4);

(5.4)将字节按比特取出,然后按照fpga芯片配置数据管脚data0的时序对比特位从新排序,形成新的字节写入输出文件;

(5.5)转化结束。

所述步骤(2)的实现过程如下:

(6.1)设置烧写串口的波特率和校验方式;

(6.2)初始化处理器的spi接口;

(6.3)初始化flash芯片;

(6.4)设置flash写入首地址;

(6.5)检测配置文件大小;

(6.5)flash芯片擦除;

(6.6)将配置文件写入flash芯片。

所述步骤(3)的实现过程如下:

(7.1)设置flash芯片的spi接口片选管脚为高;处理器通过gpio接口为fpga芯片配置加载信号:先将fpga芯片的配置命令管脚nconfig拉高,等待一段时间后将其拉低;

(7.2)使能flash芯片的spi接口片选管脚cs;

(7.3)通过spi接口向flash芯片发送flash读指令;

(7.4)将fpga芯片的配置命令管脚nconfig拉高,从而完成向fpga芯片发送加载指令;

(7.5)等待一段时间后,检测fpga芯片的配置状态管脚nstatus是否为低,若为低则返回(7.1);否则循环l/4次,每次写32位数据0到spi接口的sdo信号,所述l为配置文件的字节数;

(7.6)检测配置状态管脚conf_done是否为低,若为低,则返回(7.1),否则加载结束。

本发明与现有技术相比的有益效果是:

(1)、本发明加载电路将串行接口时钟管脚与fpga串行被动加载时钟管脚复用,通过处理器产生fpga芯片的配置时钟信号,从而实现fpga芯片直接从flash芯片中读取配置文件,解决了低速率串行接口fpga被动加载慢的问题,能够快速的实现fpga被动加载功能,将加载时间大大缩短,很好的满足了接收机快速定位的要求。

(2)、本发明中加载电路设计简单,占用硬件资源少,电路功耗低,能够很好的适用于小型化接收机。

(3)、本发明处理器上的控制程序简单,减少了fpga加载的复杂控制过程,能够应用于低速率的gpio接口。

(4)、本发明稳定可靠,满足航天系统接收机加载的性能要求,可以应用在卫星导航处理器类似的soc平台上,也可以推广应用到任何采用串行接口进行fpga被动加载的硬件平台上。

附图说明

图1为本发明加载电路示意图;

图2为本发明加载过程流程图;

图3为配置文件转化流程图;

图4为本发明flash写数据流程图;

图5为本发明控制时序图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步的详细描述:

本发明提供了一种适用于卫星导航处理器快速加载fpga的方法,卫星导航处理器通过spi接口向串行存储器flash芯片发送读指令,通过控制spi接口输出时钟信号,实现串行存储器flash芯片直接将加载数据发送给fpga芯片,从而完成加载。

卫星导航处理器是一款多模卫星导航soc专用芯片,内部嵌入sparc-v8处理器,工作频率为62mhz~124mhz,外设接口包括芯片设计1个i2c接口、2个spi接口、1个ic卡接口、1个16位宽的gpio接口以及8个通用串口,其中,spi接口传输速率为21mhz~31mhz。

如图1所示,本发明首先设计了提高fpga串行被动加载速率的加载电路,包括处理器、flash芯片和fpga芯片。处理器的spi接口片选管脚scs与flash芯片的spi接口片选管脚cs连接;处理器的spi接口sclk管脚同时与flash芯片的spi接口时钟管脚clk以及fpga芯片的配置时钟管脚dclk连接;处理器的spi接口sdo管脚与flash芯片的spi接口输入数据管脚di连接;fpga芯片的配置状态管脚conf_done与处理器的通用输入管脚gpio[0]连接,fpga芯片的配置状态管脚nstatus分别与处理器的通用输入管脚gpio[1]连接,fpga芯片的配置命令管脚nconfig与处理器的通用输出管脚gpio[2]连接;flash芯片的spi接口输出数据管脚do与fpga芯片配置数据管脚data0连接;fpga芯片的配置模式选择信号接地;

处理器、flash芯片和fpga芯片的时钟与外部时钟连接,fpga的io供电管脚、flash芯片的供电管脚以及处理器的供电管脚同时与外部io电源(3.3v)连接,fpga芯片的内核供电管脚和处理器的内核供电管脚均与外部内核供电电源(1.2v)连接;fpga芯片的辅助电源管脚与外部2.5v电源连接。

如图2所示,利用该加载电路进行加载的方法步骤如下:

(1)、准备好fpga配置文件。编译fpga程序,将生成的rbf二进制文件,更改后缀名为bin文件,即得到fpga配置文件。确定flash芯片spi接口数据发送时序与fpga芯片的配置数据管脚data0时序是否一致,若一致,则无需处理;若不一致,则需要将接口配置成一致。若接口无法进行配置,就需要将配置文件进行转化(将bin文件以字节为单位,由低位在前改为高位在前或者由高位在前改为低位在前),转化流程如图3所示:

(2.1)开启转换流程;

(2.2)判断输入的配置文件是否可读,若否,则进入(2.6);否则进入(2.3);

(2.3)创建输出文件是否成功,若不成功,则进入(2.6),否则进入(2.4);

(2.4)按字节读取输入的配置文件数据,判断返回值是否为空,若是,则进入(2.6),否则进入(2.5)。

(2.5)将字节按比特取出,然后按照fpga芯片配置数据管脚data0的时序对比特位从新排序,形成新的字节写入输出文件;

(2.6)转化结束。

(3)、通过在线烧写程序将配置文件通过串口烧录到flash芯片中,如图4所示,烧写flash步骤如下:

(3.1)首先设置烧写串口的波特率,校验方式;

(3.2)初始化处理器的spi接口;

(3.3)初始化flash芯片;

(3.4)设置flash写入首地址;

(3.5)检测配置文件大小;

(3.5)flash芯片擦除;

(3.6)将配置文件写入flash芯片;

(3.7)烧写完成。

(4)、启动加载电路中的处理器,执行加载控制程序,加载控制程序是处理器在上电完成初始化后进行的。flash芯片和fpga芯片相应信号管脚的时序关系如图5所示。

(4.1)设置flash芯片的spi接口片选管脚为高;处理器通过gpio接口为fpga芯片配置加载管脚:先将fpga芯片的配置命令管脚nconfig拉高,等待一段时间后将其拉低;

(4.2)使能flash芯片的spi接口片选管脚cs;

(4.3)通过spi接口向flash芯片发送读指令;

(4.4)将fpga芯片的配置命令管脚nconfig拉高,从而完成向fpga芯片发送加载指令;

(4.5)等待一段时间后,检测fpga芯片的配置状态管脚nstatus是否为低,若为低则返回(4.1);否则循环l/4次,每次写32位数据0到spi接口的sdo管脚,所述l为配置文件的字节数;

(4.6)检测配置状态管脚conf_done是否为低,若为低,则返回(4.1),否则,等待40us,加载结束。

本发明给出了一种适用于满足小型化要求,又能提高fpga加载速率的加载电路和加载方法,实现fpga快速加载,电路占用面积小,功耗低,控制流程简单,适用于小型化平台快速加载fpga的场合。

本发明未详细说明部分属于本领域技术人员公知技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1