首页> 中国专利> 一种基于PCI或PCIe总线的FPGA程序下载系统及方法

一种基于PCI或PCIe总线的FPGA程序下载系统及方法

摘要

一种基于PCI或PCIe总线的FPGA程序下载系统及方法,本发明涉及基于PCI或PCIe总线的FPGA程序下载系统及方法。本发明为了解决传统JTAG方式下载FPGA程序效率低下和现有系统中更新FPGA程序时拆卸电路板或外接电缆导致系统可靠性下降的问题。一种基于PCI/PCIe总线的FPGA程序下载系统包括上位机、FPGA和EPCS配置芯片;上位机与FPGA之间通过PCI/PCIe总线进行连接;FPGA包括PCI/PCIe总线控制器、Avalon总线、EPCS控制器和用户自定义的功能组件,FPGA内部组件由Avalon总线连接;EPCS配置芯片与FPGA连接。本发明应用于FPGA程序下载领域。

著录项

  • 公开/公告号CN105279127A

    专利类型发明专利

  • 公开/公告日2016-01-27

    原文格式PDF

  • 申请/专利权人 哈尔滨工业大学;

    申请/专利号CN201510829561.7

  • 申请日2015-11-25

  • 分类号G06F13/40(20060101);

  • 代理机构23109 哈尔滨市松花江专利商标事务所;

  • 代理人杨立超

  • 地址 150001 黑龙江省哈尔滨市南岗区西大直街92号

  • 入库时间 2023-12-18 13:52:34

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-12-08

    授权

    授权

  • 2016-02-24

    实质审查的生效 IPC(主分类):G06F13/40 申请日:20151125

    实质审查的生效

  • 2016-01-27

    公开

    公开

说明书

技术领域

本发明涉及基于PCI或PCIe总线的FPGA程序下载系统及方法。

背景技术

传统的现场可编程门阵列(FieldProgrammableGateArray,FPGA)器件由于其具有体 系结构和逻辑单元灵活、集成度高以及适用范围宽等、开发灵活、高速等特点,在电子、 通信、工业控制等许多领域都具有广泛应用。主流FPGA的架构主要有SRAMBase及 Anti-fuse两种设计模式,其中SRAMBase的特点是可重复编程、低功耗、可进行系统重 构;Anti-fuse由于具有一次烧录的特性,无法进行重复修改。目前市场上使用的大多数 FPGA是基于SRAMBase工艺,由于SRAM具有掉电丢失数据的特点,FPGA掉电其内 部的逻辑也将消失。因此,FPGA产品设计中一般需要采用片外的非易失性存储器如 EPROM、FLASH来存储程序,上电后FPGA从中读取配置数据。为了将程序下载到配置 芯片中,常需要外部接口和电缆,例如JTAG及相应接口下载程序。在实际应用中,FPGA 产品可能不方便拆卸或者外接电缆,在升级或者维护时,如果用传统方法更新程序,将会 显得十分复杂与困难,甚至对系统带来一些不必要的问题。

PCI(PeripheralComponentInterconnect)总线是1992年由外围部件互连专业组织 (PeripheralComponentInterconnectSpecialInterestGroup,PCI-SIG)提出的一种局部总线 标准,它取代了早先的ISA总线成为了第二代IO总线。从数据宽度上看,PCI总线有32bit、 64bit之分;从总线速度上分,有33MHz、66MHz两种,目前广泛采用的是32-bit、33MHz 的PCI总线。PCI总线具有传输速度高、稳定性高、兼容性好等优点,广泛应用于数字图 形、图像和语音处理,以及高速实时数据采集与处理等领域。PCIe(PeripheralComponent InterconnectExpress)总线是在继承第二代总线体系结构的优点上,采用串行传输以及分层 传输等技术,而发展出来的一种第三代IO总线,是目前主流的总线接口。它能实现设备 之间串行、点到点的通信,第三代的PCIe总线的单通道理论峰值带宽已经达到了 984MB/s。由于PCIe总线提供了高速带宽、可扩展、高效率、高稳定性、与PCI兼容等 诸多优势,其应用范围正在从传统的PC和图形工作站领域向外扩展,在服务器、存储、 路由、多显示器计算以及工业嵌入式系统中都得到了非常广泛的应用。

目前,传统的现场可编程门阵列器件的程序下载都是采用JTAG接口把程序下载到 FPGA的配置芯片中。这种下载方式适合于实验室调试以及产品的生产阶段。但是,当产 品交付后并安装后,如果需要进行FPGA程序更新,则需要把电路板拆卸下来,然后在 JTAG接口接上下载电缆进行程序下载。当系统比较复杂,电路板的拆卸会导致系统可靠 性的下降,甚至会引发新的问题。另外,设备的安装环境可能不允许人员的进入,如高温、 强辐射环境。当产品数量比较大时,派人对设备的FPGA程序进行处理所产生的人力成 本将会非常巨大。

发明内容

本发明的目的是为了解决现有技术进行FPGA程序更新时,需要把电路板拆卸下来, 然后在JTAG接口接上下载电缆进行程序下载;当系统比较复杂,电路板的拆卸会导致系 统可靠性的下降,设备的安装环境可能不允许人员的进入,而且当产品数量比较大时,派 人对设备的FPGA程序进行处理所产生的人力成本将会非常巨大的问题,而提出的一种基 于PCI或PCIe总线的FPGA程序下载系统及方法。

上述的发明目的是通过以下技术方案实现的:

一种基于PCI/PCIe总线的FPGA程序下载系统,包括上位机、FPGA和EPCS配置 芯片;

上位机与FPGA之间通过PCI/PCIe总线进行数据传输;FPGA包括PCI/PCIe总线控制 器、Avalon总线、EPCS控制器以及用户自定义的功能组件;

上位机通过PCI/PCIe总线与PCI/PCIe总线控制器连接,PCI/PCIe总线控制器与 Avalon总线连接,Avalon总线分别与用户自定义的功能组件和EPCS控制器连接,EPCS 控制器与EPCS配置芯片连接;

FPGA为现场可编程门阵列;

PCI总线为外围部件互连总线;

PCIe总线为外围部件互连高速总线;

EPCS为可擦除的可编程串行存储器。

一种基于PCI/PCIe总线的FPGA程序下载方法具体是按照以下步骤制备的:

步骤一、开始;

步骤二、利用C语言的fopen函数打开待下载的flash格式的FPGA配置文件和待下 载的flash格式的NiosII工程文件;

步骤三、将待下载的flash格式的FPGA配置文件和待下载的flash格式的NiosII工程 文件数据转换成二进制数据后将两者合并成一个二进制格式文件,得出合并后的二进制格 式文件;

步骤四、利用C语言的fread函数将合并后的二进制格式文件读取到计算机内存;

步骤五、上位机调用Altera函数库中的alt_epcs_flash_write函数控制FPGA中的EPCS 控制器将计算机内存中的二进制格式文件写入EPCS配置芯片;

步骤六、上位机调用Altera函数库中的alt_epcs_flash_memcmp函数,通过控制FPGA 中的EPCS控制器读取EPCS配置芯片中二进制格式文件与步骤三中合并后的二进制格式 文件并进行对比校验;校验出错,执行步骤七;校验正确,执行步骤八;

步骤七、出错次数为1时执行步骤五,大于等于2时,执行步骤九;

步骤八、程序下载成功;执行步骤十;

步骤九、程序下载失败;执行步骤十;

步骤十、结束;

FPGA为现场可编程门阵列;

PCI总线为外围部件互连总线;

PCIe总线为外围部件互连高速总线;

EPCS为可擦除的可编程串行存储器。

发明效果

针对以上问题,本方案提出了一种基于PCI或PCIe总线的FPGA程序下载系统及方 法,主要适用于采用PCI/PXI/CPCI/PC104或PCIe/PXIE等接口的FPGA板卡,本方案根 据PCI和PCIe板卡的特点,实现了直接通过PCI总线或者PCIe总线直接从上位机将FPGA 程序下载到FPGA的配置芯片中,而无需进行板卡拆卸和外接JATG下载电缆,因此能很 好地解决传统JTAG下载方式的不便,避免了电路板的拆卸或者外接下载电缆导致的系统 可靠性的下降,解决了设备的安装环境可能不允许人员的进入或者当产品数量比较大时, 派人对设备的FPGA程序进行更新处理所产生的人力成本将会非常巨大的问题,对实际 应用的FPGA产品的维护和升级提供了便利。根据实际测试,利用本下载方式对FPGA 板卡进行程序更新花费的时间,比利用传统JTAG下载方式更新FPGA程序缩短了80%, 极大程度的提高了系统更新和维护的效率,同时避免了因为更新程序而造成的系统稳定性 下降。系统的硬件结构框图如图1所示,图中以Altera公司的FPGA和EPCS(Erasable ProgrammableConfigurableSerial)Flash配置芯片为例进行详细阐述。

附图说明

图1为基于PCI/PCIe总线的FPGA程序下载系统硬件结构图;

图2为基于PCI/PCIe总线的FPGA程序下载系统的上位机软件界面图;

图3为本发明流程图;

图4为转换sof文件为flash文件的过程显示图;

图5为转换elf文件为flash文件的过程显示图;

图6为打开上位机软件成功后的显示图;

图7为待下载的flash格式的FPGA配置文件选择界面显示图;

图8为待下载的flash格式的FPGA配置文件打开成功后上位机界面显示图;

图9为选中“NiosII程序”选项时上位机界面显示图;

图10为打开待下载的flash格式的NiosII程序文件显示图;

图11为待下载的flash格式的NiosII程序文件打开成功后上位机界面显示图;

图12为信息显示栏显示程序下载状态图;

图13为程序下载完成后退出上位机软件显示图。

具体实施方式

具体实施方式一:本实施方式的一种基于PCI/PCIe总线的FPGA程序下载系统,包 括上位机、FPGA和EPCS配置芯片;系统的硬件结构框图如图1所示,图中以Altera公 司的FPGA和EPCSFlash配置芯片为例进行详细阐述;

上位机与FPGA之间通过PCI/PCIe总线进行数据传输;本系统中的上位机为计算机; FPGA包括PCI/PCIe总线控制器、Avalon总线、EPCS控制器以及用户自定义的功能组件 (用户根据实际开发需要自己添加,例如模拟量采集功能、开关量采集功能、1553B总线 监控功能等);

上位机通过PCI/PCIe总线与PCI/PCIe总线控制器连接,PCI/PCIe总线控制器与 Avalon总线连接,Avalon总线分别与用户自定义的功能组件和EPCS控制器连接,EPCS 控制器与EPCS配置芯片连接;

FPGA为现场可编程门阵列;

PCI总线为外围部件互连总线;

PCIe总线为外围部件互连高速总线;

EPCS为可擦除的可编程串行存储器;

Avalon总线为Altera公司定义的一种片内总线,实现FPGA内部各组件的互联;

EPCS配置芯片存储FPGA配置文件和NiosII工程文件,EPCS配置芯片连接EPCS 控制器;FPGA配置文件和NiosII工程文件用于配置FPGA,FPGA通过EPCS控制器实 现对EPCS配置芯片的访问和控制。

上位机软件界面如图2,该上位机主要实现的功能有:选择待下载到EPCS的FPGA程 序文件、EPCS芯片的读写控制、板卡状态显示以及系统的一些重要信息显示等。

具体实施方式二:结合图3说明本实施方式,本实施方式的一种基于PCI/PCIe总线 的FPGA程序下载方法,具体是按照以下步骤制备的:

步骤一、开始;

步骤二、利用C语言的fopen函数打开待下载的flash格式的FPGA配置文件和待下 载的flash格式的NiosII工程文件;

步骤三、将待下载的flash格式的FPGA配置文件和待下载的flash格式的NiosII工程 文件数据转换成二进制数据后将两者合并成一个二进制格式文件,得出合并后的二进制格 式文件;

步骤四、利用C语言的fread函数将合并后的二进制格式文件读取到计算机内存;

步骤五、上位机调用Altera函数库中的alt_epcs_flash_write函数控制FPGA中的EPCS 控制器将计算机内存中的二进制格式文件写入EPCS配置芯片;

步骤六、上位机调用Altera函数库中的alt_epcs_flash_memcmp函数,通过控制FPGA 中的EPCS控制器读取EPCS配置芯片中二进制格式文件与步骤三中合并后的二进制格式 文件并进行对比校验;校验出错,执行步骤七;校验正确,执行步骤八;

步骤七、出错次数为1时执行步骤五,大于等于2时,执行步骤九;

步骤八、程序下载成功;执行步骤十;

步骤九、程序下载失败;执行步骤十;

步骤十、结束;

FPGA为现场可编程门阵列;

PCI(PeripheralComponentInterconnect)总线为外围部件互连总线;

PCIe(PeripheralComponentInterconnectExpress)总线为外围部件互连高速总线;

EPCS(ErasableProgrammableConfigurableSerial)为可擦除的可编程串行存储器。

具体实施方式三:本实施方式与具体实施方式二不同的是:所述步骤二中利用C语 言的fopen函数打开待下载的flash格式的FPGA配置文件和待下载的flash格式的NiosII 工程文件;具体过程为:

本设计中由于要将程序下载到EPCSFlash中,所以选择的待下载程序文件必须是适用 于Flash器件的固定文件格式,本上位机设计采用了常用的.flash格式文件,通常可以利用 NiosII集成开发软件中的工具如Flash下载器(FlashProgrammer)或命令行窗口(Shell Command)将待下载的.sof格式的FPGA配置文件和.elf格式的NiosII工程文件转换成对应 flash格式的FPGA配置文件和NiosII工程文件,然后在上位机中利用C语言的fopen函数 打开待下载的flash格式的FPGA配置文件和待下载的flash格式的NiosII工程文件,所述 上位机为计算机。

其它步骤及参数与具体实施方式二相同。

具体实施方式四:本实施方式与具体实施方式二或三不同的是:所述步骤三中将待下 载的flash格式的FPGA配置文件和待下载的flash格式的NiosII工程文件转换成二进制数 据后将两者合并成一个二进制格式文件,得出合并后的二进制格式文件;具体过程为:

待下载的flash格式的FPGA配置文件和待下载的flash格式的NiosII工程文件中的数 据为字符格式,在上位机中利用C语言的fopen函数分别打开这两个文件并利用fread函 数读取FPGA配置文件数据和NiosII工程文件数据,然后根据ASCII码表中字符数据与 二进制数据的对应关系将读取到的FPGA配置文件数据和NiosII工程文件数据分别转换 成为二进制格式数据,最后将两者合并,再利用fwrite函数将数据写入一个新的二进制格 式文件,得出合并后的二进制格式文件。

其它步骤及参数与具体实施方式二或三相同。

具体实施方式五:本实施方式与具体实施方式二、三或四不同的是:所述步骤五中上 位机调用Altera函数库中的alt_epcs_flash_write函数控制FPGA中的EPCS控制器将计算 机内存中的二进制格式文件写入EPCS配置芯片;具体过程为:

上位机调用Altera公司提供的函数库(安装NiosII集成开发软件时自带)中的 alt_epcs_flash_write函数,上位机将通过PCI/PCIe总线控制FPGA中的EPCS控制器将计 算机内存中的二进制格式文件写入EPCS配置芯片中。

程序下载成功后,得到更新程序后的板卡,重新启动更新程序后的板卡FPGA就将 从EPCS配置芯片中读取更新后的配置程序完成对FPGA的配置,此时用户就可以看到更 新后程序的运行情况。

其它步骤及参数与具体实施方式二、三或四相同。

其它步骤及参数与具体实施方式二、三、四或五相同。

采用以下实施例验证本发明的有益效果:

实施例一:

采用本发明的一种基于PCI或PCIe总线的FPGA程序下载方法,具体是按照以下步 骤制备的:

步骤一:利用NiosIIShellCommand将所需的QuartusII生成的.sof文件(本例中的 Test.sof)和NiosIIIDE生成的elf文件(本例中的Test.elf)转换为.flash格式文件,图4 为转换sof文件为flash文件的过程;图5为转换elf文件为flash文件的过程;

步骤二:打开上位机软件,打开成功后如图6;

步骤三:点击“FPGA配置程序(.flash)”一行中的“打开文件”按钮,出现文件选 择界面,找到需要下载的flash格式FPGA文件并打开,如图7所示;文件打开成功后上 位机界面如图8;

步骤四:勾选界面中“NiosII程序(.flash)”前面的方框,选上后该行的“打开文件 按钮”可用,点击该按钮以打开NiosII程序文件,如图9所示;出现文件选择界面后, 选择需要下载的flash格式的NiosII程序文件并打开,如图10;文件打开成功后上位机界 面显示如图11;

步骤五:点击“开始下载”按钮,软件开始执行下载程序,上位机界面中所有按钮将 不可用,信息显示栏显示程序下载状态,如图12:

步骤六:等待程序下载完成,当上位机界面的信息显示栏提示“程序下载完成”且按 钮恢复为程序开始下载之前状态时,表示程序下载完成,此时可以退出上位机软件,如图 13所示。此时重启FPGA板卡将FPGA就将从EPCS中导入最新下载的配置程序。

本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,本领域技术 人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发 明所附的权利要求的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号