2023年11月26日发(作者:)

1FPGA从串加载模式概述

基带板上采用的FPGAXilinx公司Virtex-II系列XC2V3000,其配置文件的下载模式有5种:主串

模式master serial从串模式slave serial主并模式master selectMAP从并模式slave selectMAP

JTAG模式。其中,JTAG模式在开发调试阶段使用。其余四种下载模式,可分为串行下载方式和并行下载

方式。串行下载方式和并行下载方式都有主、从2种模式。主、从模式的最大区别在于:主模式的下载同

步时钟(CCLK)由FPGA提供;从模式的下载同步时钟(CCLK)由外部时钟源或者外部控制信号提供。

主模式对下载时序的要求比从模式严格得多。因此从处理机易于控制下载过程的角度,一般选择使用从串

模式或从并模式本设计采用从串模式进行FPGA配置可以使实现相对简单并且能够减少占用MPC8260

的资源。

在从串模式下,进行FPGA程序加载仅需要使用五个信号引脚,此外还需要设置M[2:0]信号以选择配

置模式。所使用引脚的详细描述见下表

引脚信号方向(FPGA)描述

CCLK

PROG_B

INIT_B

DONE

DIN

M[2:0]

输入配置时钟

输入/输出

输入/输出

输入/输出

输入串行配置数据输入

输入配置模式选择。

配置逻辑异步复位。 表示设备已清除配置存储

器。

用作输入时可以延迟配置过程。用作输出时表示

设备已准备好接受配置数据;也表示配置出错。

用作输入时可以延迟设备启动。用作输出时表示

设备处于启动序列。

2.从串模式下载时序和过程

从串模式的配置过程将配置比特流载入到FPGA,有四个主要阶段:

清除配置内存

初始化

载入配置数据

设备启动

1.上电:

The Vpower pins must be supplied with a 1.5 V source. (Refer to the

CCINT

Virtex-II Data

Sheet

for DC characteristics.) The IOB voltage input for Bank 4 (V) and the auxiliary

CCO_4

voltage input (V) are also used as a logic input to the Power-On-Reset (POR)

CCAUX

circuitry. Even if this bank is not being used, Vmust be connected to a 1.5 V or greater

CCO_4

source.

2.清除配置内存

在内存清除阶段,非配置I/O管脚为带有可选上拉电阻的三态。INIT_BDONE管脚被FPGA驱动为

低电平,同时内存被清除。当PROG_B变为高电平后,内存再次被清除并且初始化将开始。

当配置内存清除完毕后,INIT_B管脚变为高电平。PROG_B上输入逻辑低电平复位配置逻辑同时保持

FPGA处于配置内存清除状态。当PROG_B释放(变高)后,FPGA仍然保持INIT_B为低电平直到完全清

除了所有的配置内存。PROG_B的低脉冲的最小时间由定时参数定义,没有最大时间。

T

PROGRAM

3.初始化:

在初始化阶段,INIT_B被释放(变高),配置模式管脚(M2M0)被采样,相应的管脚被激活,并

且配置过程开始。可以通过外部保持INIT_B为低电平来推迟配置过程的开始。

4.延迟配置:

INIT_B管脚可以被外部置低来延迟FPGA的配置。FPGAINIT_B的上升沿采样其配置模式管脚。

INIT_B变为高电平后,配置过程开始。不需要额外的超时或者等待周期,但是配置并不需要在INIT_B

跳变后立即开始。直到来自比特流的同步字载入后配置逻辑才开始处理数据。

5.载入配置数据:

一旦配置开始,目标FPGA开始接受数据帧。在最后一个数据帧的前后执行循环冗余校验(CRC)。

在每一个block写入到内部数据寄存器(FDRI)后也会执行CRC。如果CRC校验结果正确,设备启动阶

段将开始。

如果CRC值不匹配,INIT_B将被置低以指示CRC错误发生,启动将中止,并且FPGA不会激活。

为了重配置FPGAPROG_B应该被置低来复位配置逻辑。Recycling power也会复位FPGA从而进行

再次配置。

所有的配置时间都在CCLK的上升沿发生。

6.设备启动:(此部分内容来自Xilinx若干Datasheet,需要辨证的看待)

设备启动是FPGA从配置模式向正常已编程设备操作的转变阶段。

默认当DONE变高后配置还没有结束,就是说还需要4个额外的CCLK周期以完成启动顺序。最好的

实践是载入配置文件中所有的数据,然后检查DONE状况。

典型地,DONE在最后的CRC值被载入后的头七个CCLK周期内被释放(变高)。但是比特流最后

面其余的dummy data应该继续被载入。FPGA需要额外的时钟周期来完成内部处理,但是当自由运行的振

荡器用作CCLK时,这点就无关紧要。在串行模式,这只需要16bit2字节),但是在SelectMAP模式,

比特流最后需要有16字节的dummy words。由于BitGen不知道将采用的配置模式,所以比特流的最后总

是放置了四个32bitdummy words16字节)。(是不是说DONE变高后还应该提供的CCLK信号已由

BitGen在生成比特流文件时已经考虑了,最后的那些dummy words就是还需提供的CCLK周期?)(实际

运行结果,当配置文件全部被载入后,FPGA就启动了,同时DONE变高。似乎不再需要额外的时钟。)

综上所述,从串编程模式可简单描述如下:

在串行配置模式中,FPGA通过在每个CCLK周期载入一个比特来进行配置,在从串模式中,FPGA

CCLK管脚由外部时钟源驱动。每个数据字节的MSB应该首先写入到DIN管脚。

从串配置模式允许FPGA由其它逻辑设备配置,如微处理器,或是在菊花链方式中。

从串模式下载过程中,所用的五根信号线的时序关系如下图所示。

在系统上电的情况下,通过将#PROG_B引脚置低电平便可以对FPGA进行重新配置。#PROG_B引脚

被置低后,开始清除配置存储器。在存储器清除阶段,#INIT_BDONE管脚被FPGA驱动为低电平,同

时存储器被清除。当#PROG_B变为高电平后,存储器再次被清除并且初始化将开始。

在初始化阶段,#INIT_B被释放(变高),配置模式引脚(M2M0)被采样,相应的管脚被激活,

并且下载过程开始。此时可以通过CPU#INIT_B信号置低来推迟下载过程的开始。

下载过程开始后,在DIN上逐位地产生要下载的数据,同时在CCLK上产生时钟,数据必须在时钟的

上升沿之间有效。这一过程一直持续到全部数据下载完成。时钟周期不能小于160ns。在下载过程中可以出

现相对较少时间的等待状态,而不会中断下载进程。如果下载过程中发生错误,#INIT_B将被拉低,FPGA

退出下载操作,此时下载必须从头开始。

在数据都下载完成以后DONE信号将变为高电平此时需要继续给FPGA提供至少若干额外的时钟,

以使FPGA完成启动过程。

配置过程流如下图所示。

FPGA从串模式的五根信号线的操作通过MPC8260的通用I/O端口完成。通过操作MPC8260

PDIRAPODRAPPARA等寄存器的相应控制位可在其通用I/O端口分别上产生需要的电平信号,从而

实现FPGA从串模式需要的信号时序。