【转载】配置fpga

原创 2007年09月27日 17:35:00
用CPLD和Flash实现FPGA配置
作者:李鹏 兰巨龙    来源:电子技术应用    点击数: 175   更新时间:2007年05月10日   

摘要:FPGA可以通过串行接口进行配置。本文对传统的配置方法进行了研究,并从更新配置文件的方法入手,提出了利用处理机通过网络更新的方法,给出了一个用CPLD和Flash对FPGA进行配置的应用实例。
关键词:现场可编程门阵列复杂可编程逻辑器件电子设计自动化VHDL语言

    电子设计自动化EDA(Electronic Design Automation)是指以计算机为工作平台,以EDA软件为开发环境,以硬件描述语言为设计语言,以可编程逻辑器件PLD为实验载体(包括CPLD、FPGA、EPLD等),以集成电路芯片为目标器件的电子产品自动化设计过程。该过程目前已广泛应用于电子电路与系统的设计和产品的开发中.逐渐取代了传统的手工硬件电路设计方式。设计的系统具有体积小、重量轻、功耗小、速度快、价格低、可靠性高、设计周期短等优点。一个功能完备的EDA设计软件加上一片普通功能的可编程逻辑芯片就可以构成以前需几百个集成电路才能构成的电子系统。

    目前常用的可编程逻辑器件有CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)和FPGA(Field Programmable Gate Array,现场可编程门阵列)。常用的EDA软件包括VHDL、Verilog HDL、ABEL等硬件描述语言。其中,VHDL作为IEEE的工业标准硬件描述语言,受到众多EDA工具厂家的支持,在电子工程领域,已成为事实上的通用硬件描述语言。

    Xilinx公司和Ahera公司的FPGA可编程部分的物理实现方式为RAM。它最大的优点是可以多次重复编翟,缺点是易失性。因此每次上电后,处理机都需要将用户设计的FPGA配置文件从外部存储器中下载到FPGA中。从外部存储器将FPGA配置文件下载更新的方式有以下三种:

    (1)JTAG口下载方式
    将配置文件放到一台主机中,主机通过专用线与单板上的JTAG口硬件相连接。在这种方式下每次下载都需要硬件操作,因此只适用于开发、调试阶段,设备在现场工作时就不能再使用这种方式。

    (2)片外串行PROM下载方式
    在每片FPGA周围放置一片或几片(由FPGA容量决定)串行PROM,在系统上电时,自动将FPGA配置文件从PROM下载到FPGA中。此方式也是Xilinx、A1tera等公司重点介绍的方式,适用于比较稳定的系统。但随着FPGA芯片密度的增加,串行PROM已不能适应大容量、高密度的FPGA的配置。而大容量的并行PROM所要求的寻址方式又不能直接与FPGA接口。当系统中的FPGA配置文件需要升级更新时,必须将机箱打开,通过JTAG口首先将.PROM中的配置文件更新,然后再重新启动系统,将更新后的配置文件从PROM下载到FPGA中,这样才能完成一次FPGA配置文件的更新。

    以上两种方案都存在必须进行硬件操作(将机箱打开,使用主机通过JTAG口)的缺点,在主机上必须安装专业软件才能完成FPGA配置文件的更新。

    (3)处理机控制Flash下载方式
    本文根据Xilinx、Altra公司手册及以前的工作经验,提出和完成了一种新的FPGA配置文件下载更新的方式。这种方式适用于支持网络通信的系统中。在每次系统启动时。由处理机从Flash中读出FPGA配置文件,再下载到FPGA中。即当需要升级更新FPGA配置文件时,通过网络将配置文件发送给处理机,由处理机更新系统中的Flash。当Flash内容更新后,再由处理机控制将配置文件自动下载到FPGA中。这样在不需要任何硬件动作和专业软件的情况下,只需要进行常规软件操作就可以更新FPGA的配置文件。但由于Flash是并行数据线,需要通过一片CPLD将从Flash中读来的数据转换成串行数据输出到FPGA。

1 FPGA下载配置模式
    FPGA配置文件的下载模式有五种:主串模式(masterserial)、从串模式(slave serial)、主并模式(master selectMAP)、从并模式(slave selectMAP)及JTAG模式。其中,JTAG模式在开发调试阶段使用。为了便于开发设计阶段的调试,本核心路由器设计将JTAG口直接做在信号处理板上。

    主、从模式的最大区别在于:主模式的下载同步时钟(CCLK)由FPGA提供;从模式的下载同步时钟(CCLK)由外部时钟源或者外部控制信号提供。主模式对下载时序的要求比从模式严格得多。因此从处理机易于控制下载过程的角度考虑,选择使用从串模式或从并模式较为合适。本设计采用从串模式进行FPGA配置。从串模式引脚说明如表l所示。

点此在新窗口浏览图片

点此在新窗口浏览图片

    从串配置时序图如图l所示。TPROGRAM是配置逻辑的复位时间,对xilinx VIRTEXE和VIRTEX2系列,最小应大于300ns。TPL为复位延迟时问,表明配置逻辑复位的延续。对VIRTEXE系列来说,当复位信号PROG变为高电平时,INIT立即变为高电平,配置逻辑就可以接收配置数据流;而对于VIRTEX2系列,TPL最小有500ns的延迟。TICCK为配置时钟CCLK的输出延迟。

    当PROG有效(对配置逻辑进行复位)时,FPGA将置低INIT和DONE;PROG变为高电平时,INIT将延迟一段时间用于表明复位状态的延续,继续置低INIT可以延迟配置的进行。当FPGA正在接收配置数据时,INIT变低,表明CRC校验错。当配置完所有的数据时,若配置正确,DONE将会变高。此后FPGA开始启动序列,继续置低DONE可以延迟启动的进行。

2 具体设计
   
国家数字交换系统工程技术研究中心承担的国家863项目高性能IPv6核心路由器采用一片Intel E28F128J3A150 16位Flash作为BootFlash对PowerPC2860(MPC860)处理机进行加电配置下载更新的方案,其多余的存储空间完全可以存放下FPGA所需的配置文件。加电复位、系统启动后,由处理机与一片XilinxXC95288XL CPLD配合,控制FPGA配置文件从Flash下载到FPGA中,完成对FPGA的配置。860处理机支持网络功能,当配置文件需要更新时,可通过网络将新的配置文件发送到处理机,然后再由处理机更新系统中的Flash。采用XC95288CPLD配置FPGA的具体电路设计结构如图2所示。

点此在新窗口浏览图片

    图2中,CPLD主要功能是把从Flash中读出的数据转换成串行输出,然后再将地址递增。CCLK(信号由CPU时钟产生。PROG信号则由CPU输出的地址数据经译码模块产生。XC95288C PLD逻辑结构如图3所示。

点此在新窗口浏览图片

    下面分别介绍各功能模块的具体实现:
    (1)数据转换成串行输出功能模块:使用了一个右移寄存器。从16位Flash来的并行数据DIN[0:15]加载到移位寄存器后,依次从DOUT串行输出到FPGA中。
    (2)地址递增功能模块:此功能由两个计数器完成。由于Flash是16位并行数据端口,因此第一个计数器功能是逢16进1,第二个计数器功能是Flash地址递增。当移位寄存器的16位数据都输出到FPGA中后,第一个计数器输出端口CNT[0:3]都为“1”,经过“与门”逻辑使得第二个计数器加l。Intel E28F128J3A150 Flash为16MB,共需要25根地址线。由于Flash是16位的,因此ADD[3l]不连接。所以第二个计数器和地址线ADD[7:30]相连.以完成Flash地址的递增。
    (3)CCLK信号产生模块:CPU来的时钟信号将数据信号DOUT输出,经一个“非门”逻辑延迟半个周期后产生CCLK,CCLK再将DOUT上的数据送到FPGA中。这样将读写。DOUT数据的时刻叉开,避免了冲突。
    (4)PROG信号产生模块:当需要下载FPGA程序时,由CPU产生一个地址信号ADD[O:30],经译码器译码产牛PROG控制信号。此地址由用户自行设定。
    以上模块均采用VHDL语言描述。数据转换成串行输出功能模块是核心部分,它可实现并行数据串行输出。

    本文介绍了通过处理机用CPLD和Flash实现FPGA配置文件下载更新的方法。与传统的JTAG或PROM串行下载配置方法相比,此方法具有更新配置文件灵活方便、易于操作、适用于大容量FPGA下载的特点。采用此方法可以不用打开机箱即可随时更新FPGA配置程序,特别适用于需要不断更新的系统设计中,具有较为广阔的应用前景。

 

 

 

http://www.armsky.net/CPLD_FPGA/CPLD_FPGA_jishuwenzhai/57977716029.html

 

 

 

 

再来一篇

 

FPGA的配置及接口电路
房磊 张焕春 胡银彪
南京航空航天大学 江苏 南京 210016

0引言

与CPLD不同,FPGA是基于门阵列方式为用户提供可编程资源的,其内部逻辑结构的形成是由配置数据决定的。这些配置数据通过外部控制电路或微处理器加载到FPGA内部的SRAM中,由于SRAM的易失性,每次上电时,都必须对FPGA进行重新配置,在不掉电的情况下,这些逻辑结构将会始终被保持,从而完成用户编程所要实现的功能。

FPGA的配置方式分为主动式和被动式,数据宽度有8位并行方式和串行方式两种。在主动模式下,FPGA在上电后,自动将配置数据从相应的外存储器读入到SRAM中,实现内部结构映射;而在被动模式下,FPGA则作为从属器件,由相应的控制电路或微处理器提供配置所需的时序,实现配置数据的下载。

1配置引脚

FPGA的配置引脚可分为两类:专用配置引脚和非专用配置引脚。专用配置引脚只有在配置时起作用,而非专用配置引脚在配置完成后则可以作为普通的I/O口使用。

专用的配置引脚有:配置模式脚M2、M1、M0;配置时钟CCLK;配置逻辑异步复位PROG,启动控制DONE及边界扫描TDI,TDO,TMS,TCK。非专用配置引脚有Din,D0:D7,CS,WRITE,BUSY,INIT。

在不同的配置模式下,配置时钟CCLK可由FPGA内部产生,也可以由外部控制电路提供。

2 FPGA的配置模式

FPGA共有四种配置模式:从串模式(Slave Serial),主串模式(MasterSerial),从并模式(Slave Farallel/S e 1 e c tMap)以及边界扫描模式(Boundary-Scan)。具体的配置模式由模式选择引脚M2、M1、M0决定。表1为不同的配置模式所对应的M2、M1、M0,配置时钟的方向以及相应的数据位宽。

3配置过程

(1)初始化

系统上电后,如果FPGA满足以下条件:Bank2 的I/O输出驱动电压Vcc0_2大于lv;器件内部的供电电压Vccint为2.5v,器件便会自动进行初始化。在系统上电的情况下,通过对PROG引脚置低电子,便可以对FPGA进行重新配置。初始化过程完成后,DONE信
号将会变低。

(2)清空配置存储器

在完成初始化过程后,器件会将INIT信号置低电平,同时开始清空配置存储器。在清空完配置存储器后,INIT信号将会重新被置为高电平。用户可以通过将PROG或INIT信号(1NIT为双向信号)置为低电平,从而达到延长清空配置存储器的时间,以确保存储器被清空的目的。

(3)加载配置数据

配置存储器的清空完成后,器件对配置模式脚M2、N1、M0进行采样,以确定用何种方式来加载配置数据。图1为并行配置方式的时序图。

(4)CRC错误检查

器件在加载配置数据的同时,会根据一定的算法产生一个CRC值,这个值将会和配置文件中内置的CRC值进行比较,如果两者不一致,则说明加载发生错误,INIT引脚将会被置低电平,加载过程被中断。此时若要进行重新配置,只需将PROG置为低电平即可。

(5)START-UP

START-UP阶段是FPGA由配置状态过渡到用户状态的过程。在START-UP完成后,FPGA便可实现用户编程的功能。在START-UP阶段中,FPGA会进行一下操作:

①将DONE信号置高电平,若DONE信号没有置高,则说明数据加载过程失败;

②在配置过程中,器件的所有I/O引脚均为三态,此时,全局三态信号GTS置低电平,这些I/O脚将会从三态切换到用户设置的状态;

③全局复位信号GSR置低电平,所有触发器进入工作状态;

④全局写允许信号GWE置低电平,所有内部RAM有效;

整个过程共有8个时钟周期C0-C7。在默认的情况下,这些操作都和配置时钟CCLK同步,在DONE信号置高电子之前,GTS,GSR,GWE都保持高电平。

图2为FPGA配置的流程图。

4 SelectMap并行配置模式

Virtex系列FPGA是Xilinx公司的一款高密度,大容量的现场可编程门阵列,其最大容量可达100万门,最高工作频率可达200M,支持多达16种I/O标准,内置了4个BLOCKRAM。这些特性使它在数字图像处理,通信等领域得到了广泛的应用。

SelectMap模式是一种8位并行配置模式,它是Virtex系列FPGA最快的一种配置模式,其配置时钟最高可达66MHZ,每个配置时钟周期内有8位配置数据下载到FPGA内。在对配置速度要求较高的一些应用场合,一般使用SelectMap模式。

SelectMap端口是一个8位双向数据端口,通过它实现对Virtex的配置。利用SelectMap对Virtex进行配置时,共有8个数据信号D0-D7和7个控制/状态信号,分别为:CCLK,PROG,DONE,INIT,CS,WRITE,BUSY。

对Virtex进行并行配置,应用最为广泛的接口电路便是CPLD+并行EPROM。图3为此接口电路的框图。

由于FPGA管脚内部有上拉电阻,因此,当管脚悬空时,便是高电平。

CPLD所要实现的功能模块包括:地 址发生器,写控制寄存器,三态缓冲。其中,PROG为全局复位,DONE为全局 三态控制,INIT和BUSY用来控制地址发生器;地址发生器的总线位宽由存储器的容量决定,若EPROM的容量为1MByte,则地址总线需要20位;在配置阶段,CS和WRITE引脚必须置低电平。

对VIRTEX系列的FPGA而言,其配置时钟最高可达66MHZ,但是,在一般情况下,配置时钟是达不到66MHZ的,它由PROM的存储时间(tACC)和FPGA配置数据的建立时间(tSMDCC)决定的:晶振频率:1/(tACC+TSMDCC)。VIRTEX的TSMDCC为2.0ns,EPROM的存取时间通常为l00ns,在这种情况下,配置时钟为9.6MHZ,要远远低于66MHZ,因此,提高配置速度关键是要选用存取速度快的EPROM。

5串行菊花链配置方式

串行菊花链配置方式是指将配置数据从串行PROM顺序下载到主FPGA器件和从FPGA器件中。配置时钟CCLK由主FPGA器件提供。图4为串行菊花链配置框图。

图中XC1700为XILINX的用于配置FPGA的串行PROM。

主器件将会被首先配置,在主器件配置完成前,其Dout引脚是没有数据输出的,从器件处于空闲状态。在主器件配置完成后,其Din,Dout便形成直通状态,配置数据通过主器件的Dout进入从器件的Din,对从器件进行配置。

由于菊花链配置方式要求只能有一个用于下载的位流文件,因此,需要在软件开发环境中利用PROM文件生成工具将将主器件和从器件的配置位流文件合成为一个文件。

主器件在配置完成后,并不立即启动,进入工作状态。只有菊花链中所有FPGA的DONE引脚都被置为高电平时,即所有的配置数据都下载到相应的FPGA中,各个器件才会启动,其各自的全局三态结束GTS、全局复位GSR、全局写允许GWE才会置低电平。因此,虽然主从器件的配置是有先后顺序的,但基本上它们是同时进入工作状态的。 6结束语

使用并行EPROM对FPGA进行配置时,速度相对较快,存储容量较大;而在一些对空间较为敏感,速度要求不太高的应用中,利用串行方法进行配置,可以减小电路板的面积,同时可以简化系统结构。

 

自:http://blog.sina.com.cn/s/blog_471efd42010007bc.html

 
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

SSPI方式配置Lattice ECP3系列FPGA

本文主要包括通过SSPI方式配置Lattice ECP3系列FPGA的一些说明

ubuntu12.04 || ubuntu14.04 FPGA altera 开发环境搭建 及 usb blaster配置

ubuntu12.04 || ubuntu14.04 FPGA altera 开发环境搭建 及 usb blaster配置

FPGA学习笔记1-基础与配置

FPGA优点和基础 解决工程师的问题: 更短的设计周期 标准不断发展 突出的产品优势 更好的性能 有限的资源 风险管理 收回投资 客户服务 FPGA-电路板级集成 典型FPG...

FPGA开发之配置模式

FPGA是软硬件都会用到的东西,FPGA开发的时候会有不同的模式,不同需求下就是不同的模式。所以对于模式更了解的话,开发的时候也是很有帮助的。

配置vertex-5 XC5VLX220T FPGA, 实现CPU到ax88180和S1R72V17 USB芯片逻辑电路的连通

FPGA的配置工作主要有两部分,连接CPU与AX88180,和连接CPU与S1R72V17。 连接CPU与AX88180CPU与AX88180的连接可以参考AX88180 datasheet上的附录A...

XILINX基础知识2(XILINX Spartan 6 FPGA 配置 SPI Flash 芯片)

需求说明:XILINX操作基本知识 内容       :SPI Flash芯片烧写 来自       :时间的诗 打开 iMPACT   1、双击...

xilinx Spartan 6 FPGA  配置 SPI Flash 芯片

打开 iMPACT   1、双击 Boundary Scan 2、在 右边的 空间区域 右键单击   已经找到了FPGA 芯片,但并未找到 Flash 芯片。 选  NO 不配...
  • ywhfdl
  • ywhfdl
  • 2012-06-05 09:14
  • 12274

千兆网动态配置FPGA小结(3)

今天终于把这个小任务结了,还是蛮高兴的。还把代码整理了一下,用C语言改写了下程序效果还是蛮不错。我发现memset这种类似的函数会事那个延时蛮长,现在时间终于稳定到了10s左右,还是蛮有成就感。这篇主...

PS方式配置FPGA和在線升級

准确说来应该是用MCU配置FPGA,之前一直为生产时如何给FPGA烧程序烦恼,而且烧好后升级也麻烦。后来发现了这个文档,可以直接将FPGA的程序拷到MCU中,利用MCU来直接将配置文件加载到FPGA。...

Altera的FPGA的AS、PS和Jtag配置模式的区别

转自:http://blog.chinaunix.net/uid-25148547-id-166339.html 有些人对于FPGA下JTAG的下载方式有些迷惑,为什么出现配置芯片了,为什么要用...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)