1 / 14
文档名称:

基于EMIF总线的FPGA动态配置方案设计与实现.docx

格式:docx   大小:308KB   页数:14页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

基于EMIF总线的FPGA动态配置方案设计与实现.docx

上传人:科技星球 2022/12/2 文件大小:308 KB

下载得到文件列表

基于EMIF总线的FPGA动态配置方案设计与实现.docx

文档介绍

文档介绍:该【基于EMIF总线的FPGA动态配置方案设计与实现 】是由【科技星球】上传分享,文档一共【14】页,该文档可以免费在线阅读,需要了解更多关于【基于EMIF总线的FPGA动态配置方案设计与实现 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。基于EMIF总线的FPGA动态配置方案设计与实现
 
 
于长海
Summary:提出一种FPGA的动态配置方案,方案提供了一种FPGA芯片的SlaveSelectMAP配置方式,用DSP芯片作为FPGA的外部配置控制器,利用EMIF总线完成配置数据和时钟信号的输出,利用DSP的部分IO管脚完成FPGA相关配置信号的控制,实现了对于FPGA配置文件的灵活加载和动态重构功能。对于FPGA与DSP芯片的组合,设计中FPGA的配置方式给出一种实用化的高性能解决方法,对于实际工程应用具有重要的参考价值。
Key:FPGA动态配置;EMIF总线;DSP;SlaveSelectMAP
:TP393文献标志码:A:1008-1739(2020)21-64-5
0引言
FPGA芯片的配置分为主串、主并、从串、从并及JTAG等方式。一般工程前期设计时,FPGA芯片都采用JTAG烧写的方式为主,这样可以和主机进行互动,方便调试和仿真工作[1]。设计实现后可外接Flash等非易失性存储芯片,上电启动时FPGA主动读取芯片中的配置文件,完成自身的配置和初始化工作。这样的配置方式需要硬件上额外增加Flash等存储芯片支持,另外,需要用主机配合JTAG进行配置文件的烧写,每次启动只能加载固定的配置文件。在通信系统信号处理设计方案中,又常常将FPGA与DSP芯片一起组合设计,采用EMIF(ExternalMemoryInterface)总线进行数据交互,实际应用中存在芯片载荷功能动态重构的需求[2]。传统外接Flash等存储芯片的配置方式很难完成FPGA的在线动态重配置和灵活加载的功能需求,且硬件上需要额外的储存资源支持。为了节约存储芯片等硬件资源,同时提高FPGA芯片配置的灵活性,满足动态重构的功能需求,设计了一种SlaveSelectMAP的FPGA芯片配置方案[3]。
1方案总体设计
方案设计时考虑了硬件资源的复用性,利用FPGA与DSP之间EMIF总线的数据和写信号完成FPGA的配置数据和时钟信号的控制[4]。利用DSP芯片的IO管脚实现FPGA相关配置信号的控制,利用DSP芯片的本地Flash完成FPGA配置文件的存储,利用DSP芯片内的执行软件实现FPGA配置文件的Flash读取和动态配置功能,实现了硬件资源的节约,FPGA芯片的灵活配置及动态可重构等功能需求总体方案分为硬件设计和软件设计2个部分。

方案设计时FPGA硬件采用Xilinx公司的7系列芯片XC7K410T,外部配置主控制器DSP采用TI的TMS320C6672实现。
Xilinx对于7系列FPGA的SlaveSelectMAP配置方式的硬件设计要求如图1所示,配置需要数据总线、片选信号、读写信号和时钟信号,故方案设计时,外部处理器或微控制器需要按照FPGA的配置要求提供对应的控制和数据信号接入,在特定的时序要求下完成配置[5]。
TMS320C6672芯片的EMIF总线是一个DSP的外部存储接口,其信号组成结构如图2所示,主要由数据、地址、片选、字节使能、写信号、读信号、等待信号
和读写控制信号组成[6]。综合考虑FPGA端的配置时序需求,利用EMIF总线的16bit数据线作为FPGA配置数据信号,因为TMS320C6672的EMIF总线没有时钟信号,设计时利用EMIF总线的写信号作为FPGA的配置时钟,其他EMIF接口信号只作为正常通信使用,不参与FPGA配置功能的实现。
综合以上XC7K410T芯片的配置硬件需求与TMS320C6672芯片EMIF总线组成情况,硬件总体设计结构如图3所示。DSP端的EMIF总线数据和写信号分别连接FPGA配置数据和时钟管脚,其余FPGA配置需要的控制信号和状态信号与DSP的IO管脚连接。根据FPGA端配置的时序要求,完成相应信号的控制和状态读取,FPAG的配置文件存储在DSP端本地Flash之中,配置工作启动后由DSP完成文件的读取和FPGA端的写入。

FPGA配置主控软件在DSP芯片中运行,采用C语言实现,CCS开发环境中进行设计。针对方案所要实现的功能,软件的设计分为Flash配置文件读取、EMIF总线接口时序配置、FPGA配置信号管理和FPGA配置文件写4个模块,总体结构如图4所示。
主控軟件主要完成对于FPGA配置文件的读取、EMIF总线时序的配置、FPGA配置信号的时序管理及FPGA端配置文件的写入等工作的流程化控制,软件系统各个模块的功能如下:
①Flash配置文件读取模块主要完成对于FPGA配置文件的读取相关工作,包括动态配置文件的识别和获取,Flash数据的读取和缓存等;②EMIF总线时序配置模块主要完成EMIF总线的时序配置,包括数据和写信号的产生周期控制,完成FPGA加载时间的控制功能;③FPGA配置文件写模块主要完成配置文件的EMIF写入,按照配置的时序要求,在指定时刻完成配置文件的数据时钟输出;④FPGA配置信号管理模块主要完成FPGA相关的配置信号控制和管理功能,包括IO管脚方向、电平状态和配置时序的控制等。
2方案实现流程
方案主要实现的功能是通过外部DSP芯片完成FPGA的动态配置,给出SlaveSelectMAP配置模式的一种实现方式。由于配置所需的数据、时钟和控制信号由DSP的EMIF总线数据、写信号和IO管脚实现,具体实现时主要流程包含FPGA的配置时序分析、EMIF总线时序的控制、控制信号的接入和配置、配置数据格式实现和DSP端主控软件的实现。

Xilinx公司给出的7系列FPGA芯片SlaveSelectMAP配置方式下各个配置信号的时序关系图,如图5所示。从图中可以看出配置功能实现过程中各个信号的逻辑以及依赖关系,配置开始时首先拉低PROGRAM_B信号至少一个时钟周期,然后判断INT_B的信号电平状态,若INT_B为低电平则表示FPGA芯片内部还没准备完成,需要继续等待,直到INT_B信号为高,表示FPGA芯片可以进行配置工作。配置写数据的过程中,首先应拉低RDWR_B信号,然后等待一个时钟周期拉低CSI_B信号,此时可以进行数据的写入工作,等待配置数据全部写入
完成后,需要判断DONE信号的电平状态,若DONE信号拉高说明FPGA内部配置完成,否则表示FPGA没有配置完成。
DONE信号拉高后仍需要提供几个时钟周期的时钟信号,因为FPGA内部需要继续进行初始化的操作,然后可以拉高CSI_B信号,接着拉高RDWR_B信号,此时整个FPGA芯片的配置工作完成。从配置时序图可知,部分信号的先后顺序和持续时间需要进行严格的控制,只有满足特定的时序关系才能完成FPGA芯片的配置工作。因此DSP芯片的IO管脚和EMIF总线的部分信号需要根据时序要求严格进行设计。

根据Xilinx官方SlaveSelectMAP模式的配置时钟与数据关系的要求,配置时钟低电平持續时间至少是所提供的时钟最小低电平时间与数据产生到时钟上升沿建立时间的最大值。配置时钟的高电平持续时间至少是所提供时钟高电平最小时间与时钟上升沿到数据保持的最小时间的最大值。
TMS320C6672芯片的EMIF总线写时序如图6所示,一个16bit的数据写操作主要包含setup,strobe,hold三个阶段,3个阶段的时间参数可以由DSP进行配置,是EMIF内部时钟周期的整数倍。
本方案设计时选用的TMS320C6672芯片EMIF总线的内部时钟为主频的固定分频值208MHz,,Writesetup参数设置为3,Writestrobe参数设置为4,Writehold参数设置为3。本方案设计时由于此款DSP芯片EMIF总线无时钟信号,利用EMIFWE信号作为FPGA的配置时钟,故时钟周期为Writesetup,Writestrobe,Writehold的总和,也就是(3+4+3)×=48ns,。

根据Xilinx对于7系列FPGA的SlaveSelectMAP方式配置硬件需求及TMS320C6672芯片实际硬件接口组成情况,综合考虑设计如图7所示的硬件详细配置信号连接关系。配置数据采用DSP芯片EMIF接口的16bit数据信号连
接,配置时钟信号由EMIF接口的写信号接入,片选信号由DSP的IO0管脚连接,读写控制信号由DSP的IO1管脚连接,PROGRAM_B信号由DSP的IO2管脚连接,INT_B信号由DSP的IO3管脚连接,DONE信号由DSP的IO4管脚连接。其中,数据管脚是双向连接,时钟、片选、读写控制和PROGRAM_B信号由DSP输出到FPGA端,INT_B与DONE信号由FPGA输入到DSP端。配置功能启动时,DSP端主动产生数据和时钟信号,并通过片选、读写控制和PROGRAM_B信号完成关键信号的配置,通过INT_B查询FPGA的准备配置状态,通过DONE信号的状态查询FPGA配置工作完成情况,通过以上所有管脚的有效配合完成FPGA芯片的配置功能。

Xlinx公司7系列FPGA芯片SlaveSelectMAP模式下配置的数据格式要求,如图8所示。本方案设计时TMS320C6672的EMIF总线数据为16位,故遵循图中x16的数据bit序,方案设计时DSP芯片采用小端模式,故在进行bit序转换时,首先进行大小端字节序变换,然后再进行每个字节内bit序反转,配置文
件中每隔16bit数据都要进行转换,分别发送到EMIF总线之中。是简化DSP端软件执行过程,可以选择存储前进行FPGA配置文件bit转换,此时DSP配置可以省去bit转换过程。

主控软件运行在DSP芯片中,完成各个控制信号和配置数据的产生、数据格式转换以及配置时序的控制等工作,其实现流程如图9所示。根据Xilinx公司提供的7系列FPGA配置时序要求,DSP的软件首先进行相关信号及接口的初始化工作,如配置DSP芯片运行主频、EMIF总线的时序参数和配置信号IO管脚的方向和电平状态等;其次,在所有信号初始化完成的基础上,按时序要求,拉低PROGRAM_B信号若干时钟周期后再拉高,清除FPGA内已经存在的配置信息;接着轮询INT_B管脚的电平状态,直到判定为高电平,表示FPGA芯片可以继续进行配置操作;接着拉低RDWR_B和CSI_B管脚,进行Flash内指定地址的配置文件读取和bit序转换操作;继而将转换后的数据通过EMIF总线输出给FPGA;在将所有的配置文件读取、转换和写出后,轮询DONE管脚的电平状态,直到其输出为高电平表示FPGA芯片配置成功;继续输出几个时钟,等待FPGA内部初始化完成后,将CSI_B和RDWR_B管脚拉高,整个配置工作完成。