CN102377423A - Fpga在线配置方法 - Google Patents

Fpga在线配置方法 Download PDF

Info

Publication number
CN102377423A
CN102377423A CN2010102604417A CN201010260441A CN102377423A CN 102377423 A CN102377423 A CN 102377423A CN 2010102604417 A CN2010102604417 A CN 2010102604417A CN 201010260441 A CN201010260441 A CN 201010260441A CN 102377423 A CN102377423 A CN 102377423A
Authority
CN
China
Prior art keywords
fpga
configuration
cpu
data
configuration data
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.)
Pending
Application number
CN2010102604417A
Other languages
English (en)
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.)
Nanjing Panda Electronics Co Ltd
Panda Electronics Group Co Ltd
Nanjing Panda Handa Technology Co Ltd
Original Assignee
Nanjing Panda Electronics Co Ltd
Panda Electronics Group Co Ltd
Nanjing Panda Handa Technology Co Ltd
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 Nanjing Panda Electronics Co Ltd, Panda Electronics Group Co Ltd, Nanjing Panda Handa Technology Co Ltd filed Critical Nanjing Panda Electronics Co Ltd
Priority to CN2010102604417A priority Critical patent/CN102377423A/zh
Publication of CN102377423A publication Critical patent/CN102377423A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

一种FPGA在线配置方法,步骤包括:先用CPU分别连接存储有FPGA配置数据的存储器和FPGA,所述CPU的GPIO口连接FPGA的加载数据的PIN脚;再由CPU从存储器器中调取配置数据;最后,在被动串行PS模式下,通过控制GPIO口的时序关系来完成配置数据加载。使用本方法,可以在设计中既降低成本,实现代替价格昂贵的不可擦写和可擦写配置芯片,并使其达到了保密性和可升级的要求,随时通过简单的文件拷贝操作即可完成产品软件的升级更新。

Description

FPGA在线配置方法
技术领域
本发明属于卫星通信系统中的一种技术方案,具体是一种FPGA在线配置方法。
背景技术
在当今的通信产品上,产品是否便于现场升级,是否便于灵活使用成为一项关键因素。现在使用的通信设备上广泛的采用了Altera公司的的FPGA器件,其内部采用SRAM工艺,它的配置数据存储在SRAM中,而由于SRAM的易失性,每次系统上电时,必须重新配置数据,即ICR(In-Circuit Reconfigurability),只有在数据配置正确的情况下系统才能正常工作。在线配置方式一般有两类:一是通过下载电缆由计算机直接对其进行配置,二是通过配置芯片对其进行配置。通过PC机对FPGA进行在系统重配置,虽然在调试时非常方便,但在应用现场是很不现实的,自动加载配置对FPGA应用来说是必需的。采用配置芯片价格昂贵,且容量有限,对容量较大的可编程逻辑器件,需要多片配置芯片组成菊花链形进行配置,增加系统设计的难度。
发明内容
为了解决现有技术中存在的上述问题,本发明提出一种实现FPGA在线配置的方法,具体技术方案如下:
一种FPGA在线配置方法,步骤包括:
先用CPU分别连接存储有FPGA配置数据的存储器和FPGA,所述CPU的GPIO口连接FPGA的加载数据的PIN脚;
再由CPU从存储器器中调取配置数据;
最后,在被动串行PS模式下,通过控制GPIO口的时序关系来完成配置数据加载;
对于不同型号的FPGA芯片,相应的配置数据存储于不同的存储器区,由CPU调取相应的配置数据,再通过修改FPGA和CPU的连接(因为CPU的GPIO PIN脚有多个,针对于具体的FPGA,可以对各个GPIO PIN脚进行定义,或者在GPIO PIN脚和FPGA的加载数据的PIN脚之间的物理连接关系),以及时序关系来完成配置数据加载。不同型号的FPGA可能有不同的时钟沿和不同的配置管脚,只要相对应修改CPU的设置即可完成加载。
所述FPGA的加载数据的PIN脚包括:状态输出CONF_DONE、配置的状态nSTATUS、配置控制nCONFIG、时钟输入DCLK和数据输入DATA;
配置过程包括:
当nCONFIG产生下降沿脉冲时,启动配置过程;
在DCLK上升沿,开始将配置数据移入目标FPGA;
配置数据全部正确地移入目标芯片内部后,CONF_DONE信号跳变为高;
DCLK提供时钟,确保目标芯片被正确初始化后,再进入用户工作模式。
当在配置过程中,如果出现错误,nSTATUS是低电平,则重新启动配置过程。
该方案可以有由CPU、FLASH、FPGA和一些外围电路组成实现,将CPU的数个GPIO口和FPGA加载数据的相关PIN脚相连,通过控制GPIO口的时序关系,来完成加载。如果要实现配置不同容量的各种芯片,只要通过修改FPGA和CPU的连接和时序关系即可。而FPGA的数据则由CPU存储于FLASH中,既方便管理也容易更新,最后由CPU选择读取不同存储器区的数据下载到FPGA器件中,实现在线配置。
本发明采用的这套配置方案充分结合了卫星通信产品在实际中对FPGA的使用,满足对设计的保密性和设计的可升级的要求,实现代替价格昂贵的不可擦写和可擦写配置芯片,并且随时方便快捷的升级程序。
本发明的有益效果:
在设计中既降低成本,实现代替价格昂贵的不可擦写和可擦写配置芯片,并使其达到了保密性和可升级的要求,随时通过简单的文件拷贝操作即可完成产品软件的升级更新。
附图说明
图1是PS配置方式时序示意图。
图2是连接电路示意图。
具体实施方式
下面结合附图与具体实施方式对本发明作进一步说明:
一种FPGA在线配置方法,步骤包括:
先用CPU分别连接存储有FPGA配置数据的存储器和FPGA,所述CPU的GPIO口连接FPGA的加载数据的PIN脚;
再由CPU从存储器器中调取配置数据;
最后,在被动串行PS模式下,通过控制GPIO口的时序关系来完成配置数据加载;
对于不同型号的FPGA芯片,相应的配置数据存储于不同的存储器区,由CPU调取相应的配置数据,再通过修改FPGA和CPU的连接,以及时序关系来完成配置数据加载,不同型号的FPGA可能有不同的时钟沿和不同的配置管脚,只要相对应修改CPU的设置即可完成加载。
所述FPGA的加载数据的PIN脚包括:状态输出CONF_DONE、配置的状态nSTATUS、配置控制nCONFIG、时钟输入DCLK和数据输入DATA;
配置过程包括:
当nCONFIG产生下降沿脉冲时,启动配置过程;
在DCLK上升沿,开始将配置数据移入目标FPGA;
配置数据全部正确地移入目标FPGA内部后,CONF_DONE信号跳变为高电平;
DCLK提供时钟,确保目标芯片被正确初始化后,再进入用户工作模式。
当在配置过程中,如果出现错误,nSTATUS是低电平,则重新启动配置过程。
本例中,
a)FPGA器件的配置方式和配置文件
配置方案采用PS配置方式来实现ICR功能,图1是PS配置方式的时序图。PS方式因电路简单,对配置时钟的要求相对较低,而被广泛应用。
工作过程:当nCONFIG产生下降沿脉冲时启动配置过程,在DCLK上升沿,将数据移入目标芯片。在配置过程中,系统需要实时监测,一旦出现错误,nSTATUS将被拉低,系统识别到这个信号后,立即重新启动配置过程。配置数据全部正确地移入目标芯片内部后,CONF_DONE信号跳变为高,此后,DCLK必须提供几个周期的时钟(具体周期数与DCLK的频率有关),确保目标芯片被正确初始化,进入用户工作模式。
配置文件:Altera的开发工具可以生成多种配置或编译文件,用于不同配置方法的配置系统,而对于不同系列的目标器件配置数据的大小也不同,配置文件的大小一般有.rbf文件决定。.rbf文件即二进制文件。该文件包括所有的配置数据,一个字节的.rbf文件有8位配置数据,每一字节在配置时最低位最先被装载。CPU可以读取这个二进制文件,并把它装载到目标器件中。
b)软件设计
在该配置方案中,软件是CPU控制软件。CPU的软件采用C语言编程。部分软件程序如下:
DATA0------------------------GPIO6
输出/配置数据
DCLK------------------------GPIO5
输出/配置时钟
nCONFIG------------------------GPIO4
输出/器件复位脚(该信号线的上升沿使配置开始)
CONF_DONE--------------------------GPIO2
输入/状态位(在配置完成后,该信号线为高)
nSTATUS------------------------GPIO3
输入/状态位(如果该信号线为低,表明在配置过程中出现错误,需重新配置)*/
inline void out_DCLK(unsigned int d){//输出时钟
     if(d)
          GPSR0=(1)<<(2&0x1f);
     else
          GPCR0=(1)<<(2&0x1f);}
inline void out_DATA(unsigned int d){//输出数据
     if(d)
          GPSR0=(1)<<(3&0x1f);
     else
         GPCR0=(1)<<(3&0x1f);}
inline void out_nCONFIG(unsigned int d){//输出nCONFIG
    if(d)
         GPSR0=(1)<<(4&0x1f);
    else
         GPCR0=(1)<<(4&0x1f);}
inline int get_nSTATUS(void){//读nSTATUS状态
         return(GPLR0 &(1<<(5&0x1f)))?1:0;}
inline int get_CONF_DONE(void){//读CONF_DONE状态
     return(GPLR0 &(1<<(6&0x1f)))?1:0;}
void inline download_fpga_byte(char data)
{
    char i;
    for(i=0;i<8;i++){
         out_DCLK(0);
         out_DATA(data&1);
         data=data>>1;
         out_DCLK(1);
         out_DCLK(0);
    }
}
#define FPGA_SIZE 2000000
int download_fpga(char*filename)
{
     char buf[FPGA_SIZE];
     int i,j;
     int loop;
      FILE*fp;
      int ret,sizeread;
ret=1;
sizeread=0;
while(1){//-----------------------------------读入FPGA数据
  ret=fread(buf+sizeread,1,1,fp);
   if(ret!=1)break;
   sizeread++;
}
fclose(fp);
out_nCONFIG(1);
udelay(1);
out_nCONFIG(0);
loop=0;
while((get_nSTATUS())){//读取状态
    udelay(1);
    if(loop++>200){printf(″nStatus not going to Low\n″);return-20;}
}
out_nCONFIG(1);
loop=0;
while(!(get_nSTATUS())){//检测nSTATUS状态
         udelay(1);
     if(loop++>200){printf(″Error:nSTATUS not going to high\n″);
     return-30;}
}
for(j=0;j<sizeread;j++){
     download_fpga_byte(buf[j]);
}
loop=0;
while(!get_CONF_DONE())
{
    if(loop++>10){
         printf(″warning:CONFIG_DONE is not high\n″);
         return-40;
    }
}
for(i=0;i<50;i++){
    out_DCLK(1);
    out_DCLK(0);
   }
printf(″FPGA download OK\n″);//下载成功
return 0;

Claims (3)

1.一种FPGA在线配置方法,其特征是步骤包括:
先用CPU分别连接存储有FPGA配置数据的存储器和FPGA,所述CPU的GPIO口连接FPGA的加载数据的PIN脚;
再由CPU从存储器器中调取配置数据;
最后,在被动串行PS模式下,通过控制GPIO口的时序关系来完成配置数据加载;
对于不同型号的FPGA芯片,相应的配置数据存储于不同的存储器区,由CPU调取相应的配置数据,再通过修改FPGA和CPU的连接,以及时序关系来完成配置数据加载,不同型号的FPGA可能有不同的时钟沿和不同的配置管脚,只要相对应修改CPU的设置即可完成加载。
2.根据权利要求1所述的FPGA在线配置方法,其特征是所述FPGA的加载数据的PIN脚包括:状态输出CONF_DONE、配置的状态nSTATUS、配置控制nCONFIG、时钟输入DCLK和数据输入DATA;
配置过程包括:
当nCONFIG产生下降沿脉冲时,启动配置过程;
在DCLK上升沿,开始将配置数据移入目标FPGA;
配置数据全部正确地移入目标FPGA内部后,CONF_DONE信号跳变为高电平;
DCLK提供时钟,确保目标芯片被正确初始化后,再进入用户工作模式。
3.根据权利要求1所述的FPGA在线配置方法,其特征是当在配置过程中,如果出现错误,nSTATUS是低电平,则重新启动配置过程。
CN2010102604417A 2010-08-23 2010-08-23 Fpga在线配置方法 Pending CN102377423A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010102604417A CN102377423A (zh) 2010-08-23 2010-08-23 Fpga在线配置方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010102604417A CN102377423A (zh) 2010-08-23 2010-08-23 Fpga在线配置方法

Publications (1)

Publication Number Publication Date
CN102377423A true CN102377423A (zh) 2012-03-14

Family

ID=45795510

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010102604417A Pending CN102377423A (zh) 2010-08-23 2010-08-23 Fpga在线配置方法

Country Status (1)

Country Link
CN (1) CN102377423A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103257875A (zh) * 2013-04-27 2013-08-21 杭州和利时自动化有限公司 一种硬件配置信息的读取方法及系统
CN103617056A (zh) * 2013-11-25 2014-03-05 广东威创视讯科技股份有限公司 Fpga逻辑代码的在线升级方法和装置
CN104407882A (zh) * 2014-10-28 2015-03-11 大唐移动通信设备有限公司 一种板卡装置
CN104461620A (zh) * 2014-11-27 2015-03-25 北京时代民芯科技有限公司 一种SoPC芯片自主重构软配置方法
CN108362995A (zh) * 2013-10-12 2018-08-03 深圳市爱德特科技有限公司 一种创新的fpga的使用方法
CN111198527A (zh) * 2020-01-15 2020-05-26 北京实干兴邦科技有限公司 基于fpga的gpio输出状态的控制装置、控制方法及应用
CN112506552A (zh) * 2020-12-30 2021-03-16 天津瑞能电气有限公司 一种基于usb接口的fpga程序加载系统及加载方法
CN113157627A (zh) * 2021-05-13 2021-07-23 南京典格通信科技有限公司 一种基于fpga和射频芯片交互的自适应spi通信系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7340585B1 (en) * 2002-08-27 2008-03-04 Xilinx, Inc. Method and system for fast linked processor in a system on a chip (SoC)
US7554357B2 (en) * 2006-02-03 2009-06-30 Lattice Semiconductor Corporation Efficient configuration of daisy-chained programmable logic devices
CN201499258U (zh) * 2009-09-14 2010-06-02 首都师范大学 双路视场数字图像采集系统
CN201527452U (zh) * 2009-04-28 2010-07-14 国网电力科学研究院 用于雷电探测的远程智能升级装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7340585B1 (en) * 2002-08-27 2008-03-04 Xilinx, Inc. Method and system for fast linked processor in a system on a chip (SoC)
US7554357B2 (en) * 2006-02-03 2009-06-30 Lattice Semiconductor Corporation Efficient configuration of daisy-chained programmable logic devices
CN201527452U (zh) * 2009-04-28 2010-07-14 国网电力科学研究院 用于雷电探测的远程智能升级装置
CN201499258U (zh) * 2009-09-14 2010-06-02 首都师范大学 双路视场数字图像采集系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
朱伟等: "基于ARM的嵌入式系统中从串配置FPGA的实现", 《仪表技术》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103257875A (zh) * 2013-04-27 2013-08-21 杭州和利时自动化有限公司 一种硬件配置信息的读取方法及系统
CN108362995A (zh) * 2013-10-12 2018-08-03 深圳市爱德特科技有限公司 一种创新的fpga的使用方法
CN103617056A (zh) * 2013-11-25 2014-03-05 广东威创视讯科技股份有限公司 Fpga逻辑代码的在线升级方法和装置
CN103617056B (zh) * 2013-11-25 2017-02-01 广东威创视讯科技股份有限公司 Fpga逻辑代码的在线升级方法和装置
CN104407882A (zh) * 2014-10-28 2015-03-11 大唐移动通信设备有限公司 一种板卡装置
CN104461620A (zh) * 2014-11-27 2015-03-25 北京时代民芯科技有限公司 一种SoPC芯片自主重构软配置方法
CN111198527A (zh) * 2020-01-15 2020-05-26 北京实干兴邦科技有限公司 基于fpga的gpio输出状态的控制装置、控制方法及应用
CN112506552A (zh) * 2020-12-30 2021-03-16 天津瑞能电气有限公司 一种基于usb接口的fpga程序加载系统及加载方法
CN113157627A (zh) * 2021-05-13 2021-07-23 南京典格通信科技有限公司 一种基于fpga和射频芯片交互的自适应spi通信系统及方法
CN113157627B (zh) * 2021-05-13 2024-03-15 南京典格通信科技有限公司 一种基于fpga和射频芯片交互的自适应spi通信系统及方法

Similar Documents

Publication Publication Date Title
CN102377423A (zh) Fpga在线配置方法
CN102609286B (zh) 一种基于处理器控制的fpga配置程序远程更新系统及其方法
US9652410B1 (en) Automated modification of configuration settings of an integrated circuit
CN102609287B (zh) 一种通过cpu远程更新fpga的装置及其方法
CN107704285B (zh) 现场可编程门阵列多版本配置芯片、系统和方法
CN103559053A (zh) 一种板卡系统及通信接口卡fpga在线升级方法
CN105930186B (zh) 多cpu的软件加载方法及基于多cpu的软件加载装置
CN107479913A (zh) 一种fpga配置多启动低资源占用更新方法及实施系统
WO2014143245A1 (en) Multi-boot of fallback boot of a system-on-chip using a file-based boot device
CN103777983A (zh) 一种星载软件在轨维护及升级方法
CN104035803A (zh) 一种更新cpld/fpga固件的方法、装置及烧录器
CN105808290B (zh) 用于多fpga整机系统的远程动态更新系统和方法
CN102520961B (zh) 片外在线可编程的soc系统及其控制方法
CN101216773A (zh) 一种嵌入式Linux系统固件下载方法和装置
CN103605542A (zh) Fpga配置文件的在线升级装置
CN105320531A (zh) 一种基于MicroBlaze软核的FPGA软件在线升级方法
CN106201636B (zh) 一种dsp片外代码动态加载方法及装置
CN106406936A (zh) 一种fpga程序多版本管理装置及方法
CN109669704B (zh) 远程传输加载多节点fpga程序加载管理电路
CN104679559A (zh) 单片机在线编程的方法
CN104881286A (zh) 可编程器件配置系统及方法
CN108139916A (zh) 可编程逻辑设备的多阶段引导映像加载和配置
CN108037943A (zh) 一种基于nios ii的fpga在线升级方法
CN101493770A (zh) 一种远程下载可擦除编程逻辑器件epld的方法
CN109408924B (zh) 基于dsp芯片的fpga配置方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20120314

RJ01 Rejection of invention patent application after publication