400-035-6699
当前位置: 首页 » 技术支持 » 博文资讯 »

FPGA配置方法详解:不同模式的选择与应用

FPGA(现场可编程门阵列)作为一种高度集成的可编程硬件设备,其配置模式虽然多种多样,但在配置过程中,FPGA的工作流程却是统一的。这一流程主要分为三个阶段:设置、加载和启动。
首先,配置流程开始于复位结束。在上电过程中,FPGA会在电压达到要求之前,通过上电复位模块保持在复位状态。此外,外部控制PROG_B引脚的低脉冲也可以将FPGA置于复位状态。这样做的目的是确保FPGA在配置前处于一个已知的初始状态。
接下来是初始化阶段,此时FPGA会自动清除配置存储器中的内容。在这一过程中,除了配置专用的接口外,所有的FPGA I/O引脚都会被置于高阻态。INIT_B引脚在这一阶段保持低电平,并在初始化完成后恢复高电平。如果INIT_B信号在外部被拉低,FPGA将保持在初始化状态,直到信号恢复高电平。需要注意的是,PROG_B信号的脉冲宽度不能过窄,以免影响配置过程。
初始化完成后,FPGA开始采样控制信号,如模式选择引脚M[1:0]和变量选择引脚VS。在主动模式下,FPGA会迅速提供有效的CCLK时钟信号。VS信号只在主动BPI和SPI模式中有效。此时,FPGA开始在配置时钟的上升沿对配置数据进行采样。
配置数据流中包含一个同步头,这是一段特殊的同步字,用于帮助FPGA确定正确的数据位置。同步字通常由等量的0和1组成,如Spartan3的同步字为AA995566。在同步字之前的数据将被FPGA忽略。
同步化完成后,FPGA会自动检查配置流中的器件ID是否与目标器件ID一致,以防止错误的配置流对FPGA进行配置。32位的ID中包含了28位的特征值和4位的掩码,特征值包括制造商信息、器件家族和器件规模等。如果器件ID检查失败,FPGA会设置内部寄存器的ID_Err位,并在软件中显示错误信息。
通过ID检查后,FPGA开始加载配置数据。在加载过程中,FPGA会对每一帧数据进行CRC校验,以确保数据的完整性。如果校验失败,FPGA会停止配置过程,并将INIT_B信号拉低。
配置数据加载完成后,FPGA进入启动序列。这一过程包括多个阶段,例如等待DCM(数字时钟管理器)锁定、等待DCI(数字时钟接口)匹配、启动全局写使能等。这些阶段的具体顺序可以通过BitGen参数进行配置,以满足不同的需求。
启动序列完成后,FPGA将释放DONE引脚,激活I/O引脚,并启动写使能,从而完成整个配置过程。这一过程中,每个阶段的详细配置和调整,都为FPGA提供了灵活性和适应性,使其能够在各种应用场景中发挥出色性能。
最后,审核编辑汤梓红对整个配置流程进行了细致的审核和编辑,确保了配置过程的正确性和可靠性。

尽管FPGA的配置模式各不相同,但整个配置过程中FPGA的工作流程是一致的,分为三个部分:设置、加载、启动。

FPGA配置方法详解:不同模式的选择与应用

1182706a-4855-11ed-a3b6-dac502259ad0.png

复位结束配置开始

有多种方式使FPGA的配置进入这一过程。在上电时,电压达到FPGA要求之前,FPGA的上电复位模块将使FPGA保持在复位状态;外部控制PROG_B引脚出现一个低脉冲也可以使FPGA保持在复位状态。

清除配置存储内容

这一步称为初始化,当FPGA复位结束,配置存储器的内容会被自动清除。在这个步骤中,除配置专用接口外,FPGA I/O均被置于高阻态。在整个初始化过程中,INIT_B引脚被置低并在初始化结束后恢复高电平。如果INIT_B信号在外部被拉低,FPGA将一直停留在初始化状态。注意PROG_B信号的脉宽不能太窄。

采样控制信号

初始化结束后,INIT_B信号回到高电平。FPGA开始采集模式选择引脚M[1:0]和变量选择引脚VS。如果为主动模式,FPGA很快就会给出有效的CCLK。VS信号只在主动BPI及其SPI模式中生效。此时,FPGA开始在配置时钟的上升沿对配置数据进行采样。

同步化

每一个FPGA配置数据流都有一个同步头,它是一段特殊的同步字。同步字主要用于帮助FPGA确定正确的数据位置。同步字之前的配置数据都会被FPGA忽略,也就是FPGA仅仅在同步化之后才正式开始接收配置数据。一般而言,同步字都是由0/1数目相同的二进制数组成的,如Spartan3为AA995566。

ID检查

FPGA同步化后,会自动检测配置流中的器件ID和目标器件ID是否一致。这一步确保了FPGA不会被错误的配置流误配置。

32位的ID中包含了28位的特征值和4位掩码。特征值包括厂商信息,器件族,器件规模等。当器件ID检查遇到问题时,FPGA会将内部寄存器的第一位ID_Err置高,软件也会显示错误信息。

载入配置内容

在ID检查顺利通过后,FPGA开始加载配置数据。

CRC校验

在加载数据过程中,FPGA会对每一帧数据进行CRC校验。如果失败,FPGA会将INIT_B信号拉低并终止配置过程。

启动序列

FPGA配置数据加载完后,FPGA进入启动序列。启动序列事件的默认顺序为先释放DONE引脚,然后激活I/O,最后启动写使能。实际使用中,可以通过BitGen参数启动顺序进行设置来满足不同的需求。

启动序列内容 阶段 BitGen选项
等待DCM锁定 1~6 LCK_cycle
等待DCI匹配 1~6 Match_cycle
启动全局写使能,允许内部时序元件翻转 1~6 GWE_cycle
释放IO三态,激活IO 1~6 GTS_cycle
释放DONE引脚 1~6 DONE_cycle

审核编辑:汤梓红

【限时免费】一键获取网络规划系统模板+传输架构设计+连通性评估方案

FPGA相关文章

服务电话:
400-035-6699
企服商城