0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于EPCS配置芯片对FPGA器件进行编程配置的设计方案

电子设计 来源:郭婷 作者:电子设计 2018-12-30 11:09 次阅读

引言

可重构体系结构已经成为FPGA系统开发的研究热点,并已有许多令人瞩目的研究成果及产品应用。FPGA可重构的应用为用户提供了方便的系统升级模式,同时也实现了基于相同硬件系统的不同工作模式功能。在当今快速发展的市场环境条件下,产品是否便于现场升级,是否便于灵活使用无疑是产品能否进入市场的关键因素,FPGA的可重构设计显得尤为重要。

目前,很多可重构的设计方式都采用单片机CPLD等器件直接对FPGA器件进行编程配置,从而实现系统工作模式的可重构。本设计则通过开发CPLD先对FPGA的配置芯片EPCS进行编程配置,然后再由FPGA从EPCS配置芯片下载配置程序来实现可重构,并通过用户界面的简单操作来完成FPGA的工作方式重构,这种可重构方式结构简单,配置灵活,用户操作更加方便。本文首先介绍了FPGA常用的配置方式,然后详细阐述了基于对EPCS配置芯片在线编程的可重构设计方案。

1 FPGA的常用配置方式

FPGA器件有三类常用的配置下载方式。其中主动配置方式(AS)是由FPGA器件引导配置操作过程。它控制着外部存储器和初始化过程,可使用Altera串行配置器件来完成。期间FPGA器件处于主动地位,配置器件处于从属地位。配置数据通过DATA0引脚送入FPGA。配置数据被同步在DCLK输入上,1个时钟周期传送1位数据。

被动配置方式(PS)则是由外部计算机或控制器控制配置过程。在PS配置期间,配置数据从外部储存部件通过DATA0引脚送入FPGA。配置数据在DCLK上升沿锁存,1个时钟周期传送1位数据。

JTAG配置方式中的JTAG接口是一个业界标准,主要用于芯片测试等功能,它使用IEEE Std1149.1联合边界扫描接口引脚,支持JAM STAPL标准,可以使用Altera下载电缆或主控器来完成。FPGA在正常工作时,它的配置数据存储在SRAM中,关电后数据会消失,再次加电时必须重新下载配置程序。实验中通常用计算机或控制器进行调试,因此,可以使用PS。而在实用系统中,多数情况下必须由FPGA主动引导配置操作过程,这时,FPGA将主动从外围专用存储芯片中获得配置数据,而此芯片中的FPGA配置信息则用普通编程器将设计所得的pof格式文件烧录进去。

在做FPGA实验板时,通常采用AS+JTAG方式,这样可以用JTAG方式进行调试,而最后程序已经调试无误后,再用AS模式把程序烧到配置芯片中,这样操作有一个明显的优点,就是在AS模式不能下载的时候,可以利用Quartus自带的工具生成JTAG模式下可以利用的文件来验证配置芯片是否工作正常。

2 对EPCS在线编程的FPGA可重构配置

2.1 FPGA可重构简介

可重构体系结构指能够利用可重用的硬件资源,根据不同的应用要求,灵活改变自身的体系结构,以便为每个特定的应用需求提供与之相匹配的体系结构。可重构电路的设计可利用FPGA的可重配置特性。所谓可重配置,就是基于SRAM的FPGA在掉电后配置数据会自动丢失,再次上电后必须重新配置FPGA,FPGA才能正常工作。这样可以利用有限的硬件资源完成多种逻辑功能,这就是采用基于SRAM工艺的FPGA的可重构系统的可重构电路设计原理。

设计时,可以通过开发单片机或CPLD器件来控制FPGA配置不同的逻辑功能以实现重构系统。FPGA有一个专用的配置引脚nCONFIG,在FPGA正常工作过程中,如果此引脚上加一个低电平脉冲,那么,当FPGA检测到其上升沿后,FPAG将自动清除其内部的配置存储器,并进行重新配置,这样,FPGA才能工作。利用这一特性,设计时便可通过用户界面操作在FPGA的nCONFIG引脚上加一个低电平脉冲,随后发送数据,从而完成对FPGA的重新配置。

本设计是通过DSP处理器来接收PC主机的FPGA配置数据流,并开发CPLD器件以实现控制逻辑,最终把所需的FPGA配置数据流存储到支持AS配置模式的EPCS配置芯片中,并实现FPGA配置数据流的更新,从而达到FPGA的重新配置,实现整个系统的可重构。其可重构电路由DSP与CPLD串行通讯电路、CPLD读写EPCS配置芯片电路和EPCS配置FPGA电路组成。

2.2 EPCS配置器件

FPGA的串行配置芯片主要包括EPCS1,EPCS4,EPCS16,EPCS64,EPCS128等。它们的主要区别是容量不同,分别为1 M,4 M,16 M,64 M,128 M Bits的容量,可配置的FPGA器件也有所不同,用户可根据不同需求来选择。EPCS配置芯片的擦除或编程次数可以达到十万次左右,一般情况下足以满足用户需求。EPCS器件电平的选择包括3.3 V、2.5 V、1.8 V、1.5 V,主要可参考对应的FPGA所用I/O bank的VCCIO引脚电平的选择。

基于EPCS配置芯片对FPGA器件进行编程配置的设计方案

EPCS芯片的内部结构框图如图1所示,EPCS配置器件与所配置的FPGA器件的连接引脚有时钟输入管脚DCLK。可为串行数据的传送提供时钟,一般由FPGA发送;其次是串行数据输出管脚DATA,用于向FPGA传送配置数据;第三是主动串行数据输入管脚ASDI,负责接收来自FPGA的不同字符串以实现对EPCS的读写控制;另外,还有片选信号nCS。

上位机通过下载线用Quartus软件工具对EPCS配置芯片进行配置程序的烧写操作,其配置文件必须为pof文件格式。在所设计的系统文件编译完成后,Quartus软件就可以生成烧写所需的pof格式文件。

2.3 可重构系统设计

本设计主要是通过DSP的串口向CPLD器件发送控制命令以及要进行配置的数据包,CPLD解析命令后再执行相应的操作,以完成EPCS配置芯片所需的下载时序及配置数据。当EPCS配置芯片的数据下载完成后,再进行FPGA从配置芯片下载新的系统配置程序过程。一般情况下,在系统上电后,FPGA都要马上从EPCS配置芯片中下载配置文件。在对EPCS配置芯片进行控制时,首先要让FPGA释放对EPCS配置芯片的控制,而且,在对EPCS配置芯片写数据的操作完成后,又要将控制权交与FPGA,以便FPGA能够下载最后一次完成的配置程序。本系统的可重构原理图如图2所示。

基于EPCS配置芯片对FPGA器件进行编程配置的设计方案

FPGA可重构系统中,DSP通过一个串口与CPLD进行通信,串口由数据信号线BDX、帧信号线BFSX以及时钟信号线BCLKX组成,所有的控制命令和程序数据都是通过这三条信号来传送的。FPGA器件的CONF_DONE信号线、nSTATUS信号线和nCONFIG信号线均需要用大小为10kΩ的电阻上拉,而nCE信号线则需用10kΩ的下拉电阻。CPLD器件通过nCONFIG信号线和nCE信号线对EPCS配置芯片的控制权进行控制或释放。当系统上电后,CPLD器件首先对EPCS配置芯片表现为释放状态,而FPGA则执行EPCS配置芯片的数据读取操作,即FPGA的配置过程是:FPGA通过nCSO管脚置EPCS配置芯片的nCS信号线为低电平,并通过ASDO管脚向EPCS发送控制命令和地址,然后在DCLK的上升沿,由配置芯片通过DATA0信号线将配置程序和数据发送到FPGA,在程序发送完毕以后,CONF_DONE由低电平变为高电平,随后进行FPGA初始化并进入工作状态。

当需要进行系统重构时,可由上位机向DSP器件发送控制命令以进行系统的重构操作。系统重构的流程图如图3所示,整个过程包括以下几个步骤:

基于EPCS配置芯片对FPGA器件进行编程配置的设计方案

(1)上位机发送重构命令后,由DSP通过串口向CPLD器件发送控制选通命令字符串,命令经CPLD器件解析后将nCONFIG信号线置为低电平,并将nCE信号线置为高电平,从而取得对EPCS配置器件的nCS、DCLK、ASDI、DATA管脚的掌控权。此时,FPGA可释放对EPCS的掌控权,但不读取EPCS的配置程序数据。

(2)主机通过仪器接口向DSP器件发送所需要的重构数据,并存储在DSP器件的数据存储区内。经实验分析,Quartus软件生成的pof格式文件数据并不能直接写入EPCS配置芯片,而是需要进行一定方式的格式转换,然后才能重新组合成需要下载到EPCS配置芯片的数据流。所以,需要在DSP内做一步数据转换的操作。

(3)在对EPCS配置芯片进行数据写入以前,先要将其内部的原有数据擦除掉。所以,这一步的任务是向EPCS配置芯片发送控制命令,并打开写使能,随后发送擦除命令,将EPCS原有数据擦除。要注意的是,擦除时间必须大于3 s,否则不能完成擦除操作。

(4)为了确认擦除操作是否已操作成功,可以执行一次读状态控制命令。读状态命令也需要先打开写使能,再发送读状态命令。如果擦除过程正在进行,则DATA信号线上会返回0000 0001的数据,擦除操作完成后,DATA信号线上将返回0000 0000的数据,此时便可以进行下一步的工作。

(5)当确认擦除操作完成后,就可以进行EPCS配置芯片的数据写入操作了。数据的写入需要按帧依次写入到对应的存储地址,数据存储的首地址为0000 0000。

(6)所需的配置数据流发送完毕后,可发送控制命令以使CPLD器件释放对EPCS配置芯片的控制权,即置nCS、DCLK、ASDI、DATA信号线为高阻状态,并将nCONFIG信号线由低电平置为高电平,nCE信号线置为由高电平置为低电平。一旦FPGA器件接手EPCS配置芯片的控制权,在检测到nCONFIG信号线的上升沿后,FPGA将下载EPCS配置芯片内的数据进行重新配置,此过程与系统上电时的配置过程相同。经过上述一系列的操作,便可实现一次FP-GA的重构过程。

2.4 系统设计特点

本文所述的FPGA可重构设计方案可以在系统不关电的情况下进行重构过程,这样就不会影响系统其它部分电路正在进行的工作,极大地方便了用户的实际应用。当一次用户所需的配置完成后,系统下次上电后就会自动执行最后一次所重构的工作模式,不必每次上电进行重构工作。

3 可重构设计的验证

图4所示是按照本系统设计的步骤要求,在数字化仪平台上对可重构系统进行全面测试的部分重构波形变化图,以此完成对主控逻辑功能的FPGA器件EP1C6Q24017的功能重构实验验证。

基于EPCS配置芯片对FPGA器件进行编程配置的设计方案

图4中所有波形图的上面位置显示的均为时钟信号波形,其中图4 (a)所示是打开EPCS配置芯片写使能时,发送控制字的时序图,图中下面位置的波形为ASDO数据线上的信号,指示写使能控制字为“06”;图4(b)所示是读写使能的状态时序图,图中下面位置的波形为DATA0数据线上读取的信号,指示状态寄存器为“02”;图4(c)所示是对EPCS配置芯片进行擦除操作的时序图,图中下面位置的波形为ASDO数据线上的信号,指示擦除控制字为“C7”;图4(d)所示是读擦除操作的状态时序图,图中下面位置的波形为DATA0数据线上读取的信号,指示状态寄存器为“03”;图4(e)所示是对EPCS配置芯片进行写数据操作的时序图,图中下面位置的波形为ASDO数据线上的信号,指示写数据命令为“02”;图4(f)所示是向EPCS配置芯片传输数据过程的部分波形图,图中下面位置为ASDO数据线上的数据信号。

在满足上述时序要求的条件下,当EPCS配置芯片的数据写入完成后,FPGA即可进入配置文件所设计的工作模式,设计实验结果完全符合预期的重构目标。经过反复测试,该重构方式功能正常,能稳定地完成系统所设计的不同重构工作。

4 结束语

利用文本的方法对基于EPCS在线编程的FP-GA进行可重构设计,其硬件电路比较简单,成本低,同时不需要增加太多的硬件资源(比如大容量的存储器件等),而且配置过程灵活方便,用户只需要一个相应的配置文件数据包,即可完成系统重构功能。故此,这种FPGA的可重构设计具备广泛的应用前景。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21736

    浏览量

    603241
  • 芯片
    +关注

    关注

    455

    文章

    50791

    浏览量

    423486
  • cpld
    +关注

    关注

    32

    文章

    1248

    浏览量

    169353
收藏 人收藏

    评论

    相关推荐

    FPGA芯片配置方式及常见配置方法

    广义的来说,FPGA配置包括直接使用下载电缆对FPGA器件进行编程、对外部EEPROM和FLA
    发表于 10-26 10:58 9929次阅读

    FPGA配置启动详解——配置文件详解

    RPD。 5.HEX文件HEX文件不能直接对FPGA进行配置,只能通过第三方编程器对HEX进行解析后把数据区烧写到
    发表于 04-25 15:48

    谈谈Altera FPGA配置

    不管Xilinx还是Altera,FPGA配置模式或者方法多样,尤其是Altera器件,什么AS模式、PS模式、FPP模式、AP模式等等。一般逻辑设计者可能不会关心到硬件的设计,但是FPGA
    发表于 01-28 10:27

    NIOS II 软核中EPCS配置芯片的存储操作

    NIOS II 软核中EPCS配置芯片的存储操作 最近用CYCLONE FPGA做的视频图像叠加板需要存储一些用户配置信息,而
    发表于 07-05 05:58

    有什么FPGA可重构方法可以对EPCS在线编程

    FPGA器件进行编程配置,从而实现系统工作模式的可重构。本设计则通过开发CPLD先对FPGA
    发表于 07-31 07:15

    如何擦除Altera FPGA配置器件EPCS中的内容

    中原本存储的程序内容,上电会直接运行,然后我们在调试程序的时候,一般都是使用jtag在线下载程序,这里就存在一个问题:对于一些器件配置工作可能发生冲突,例如使用IIC配置摄像头,芯片
    发表于 02-10 15:44

    今日说“法”:FPGA的三种配置方式

    Altera的As串行配置芯片(EPCS系列)进行编程,可对FPGA
    发表于 04-24 15:34

    采用VC++程序的FPGA配置设计方案

    采用VC++程序的FPGA配置设计方案利用现场可编程逻辑器件FPGA的多次可编程
    发表于 04-14 15:14 637次阅读
    采用VC++程序的<b class='flag-5'>FPGA</b>重<b class='flag-5'>配置</b><b class='flag-5'>设计方案</b>

    FPGA配置和Flash编程教材

    本章将首先介绍FPGA配置方式和配置过程,然后简单介绍了配置芯片配置文件的种类以及
    发表于 03-22 10:53 804次下载
    <b class='flag-5'>FPGA</b><b class='flag-5'>配置</b>和Flash<b class='flag-5'>编程</b>教材

    FPGA配置文件的区别

    File; JTAG 模式下,下载到EPCS配置芯片中,   Pof: Pogrammer Oject File;AS模式下,下载到EPCS配置
    发表于 09-19 16:49 12次下载

    关于fpga编程flash芯片配置数据技巧

    外电路编程FPGA或是编程Flash器件(包括EPCS和Flash),然后控制FPGA
    的头像 发表于 12-13 13:58 2.5w次阅读
    关于<b class='flag-5'>fpga</b><b class='flag-5'>编程</b>flash<b class='flag-5'>芯片</b>和<b class='flag-5'>配置</b>数据技巧

    EPCS flash系列芯片手册之串行配置设备

    本文中使用的术语“串行配置设备”指的是Altera EPCS1、EPCS4、EPCS16、EPCS64和
    发表于 09-10 16:30 15次下载
    <b class='flag-5'>EPCS</b> flash系列<b class='flag-5'>芯片</b>手册之串行<b class='flag-5'>配置</b>设备

    FPGA的三种配置方式详解

    FPGA器件有三类配置下载方式:主动配置方式(AS)和被动配置方式(PS)和最常用的(JTAG)配置
    发表于 07-09 10:53 8258次阅读

    FPGA的下载方式有哪些?分别有什么区别

    AS模式: 烧到FPGA配置芯片里保存的, FPGA器件每次上电时, 作为控制器从配置
    发表于 08-11 15:29 7次下载
    <b class='flag-5'>FPGA</b>的下载方式有哪些?分别有什么区别

    FPGA芯片配置分类及配置方式

    广义的来说,FPGA配置包括直接使用下载电缆对FPGA器件进行编程、对外部EEPROM和FLA
    的头像 发表于 09-06 09:41 6682次阅读