新闻中心

EEPW首页 > EDA/PCB > 设计应用 > 基于Xilinx-Spartan6 FPGA的MultiBoot设计的实现

基于Xilinx-Spartan6 FPGA的MultiBoot设计的实现

作者:时间:2012-04-25来源:网络收藏

摘要 介绍了Multibool的两种实现方法。通过Xilinx Spartan-6 的Multiboot特性,允许用户一次将多个配置文件下载入Flash中,根据不同时刻的需求,在不掉电重启的情况下,从中选择一个来重配置,实现不同功能,提高器件利用率,增加系统安全性,降低系统成本。
关键词 ;Fallback;重配置

Xilinx公司出品的Spartan6系列所具有的特性,允许用户在不掉电重启的情况下,根据不同时刻的需求,有选择地从存储于Flash中的多个配置文件中加载其中的一个,对FPCA在系统重配置,实现不同的功能。特性使得用户可以在某些场合选择较少逻辑资源的Xilinx FPGA,实现需要较大逻辑资源且较昂贵的FPGA或ASIC才能实现的功能,从而提高器件利用率及系统安全性、降低系统成本。

1 基本概念
Spartan-6 FPGA在上电时从片外Flash加载mcs文件进行配置。根据所包含的bit流文件的个数,mcs文件分为两类:一类是南单bit流文件生成的mcs文件,即该mcs文件中只包含一个bit流文件,用此类mcs文件配置FPGA时,只能实现一种功能;另一类是由多个bit流文件生成的mcs文件,即该mcs文件包含多个bit流文件。用此类mcs文件配置FPGA时,可根据需求有选择地加载其中的某个bit流文件对FPGA进行系统重配置,即MultiBoot特性。
Spartan-6 FPGA拥有专用的MultiBoot逻辑配置模块,来实现MultiBoot和Fallback操作。MultiBoot操作是在各配置bit流文件能正常加载的前提下,通过ICAP设置配置模块中的相关寄存器并触发IPROG命令,实现在不同配置bit流文件中的切换,达到FPGA实现不同功能的目的。Fallback操作是在从配置A切换到配置B的过程中出错时,用另一个比较“安全”的bit流文件代替配置文件B配置FPGA的操作。这个比较“安全”的bit流文件称为Golden。
FPGA的重配置操作,是通过专用的ICAP_SPARTAN6原语向配置模块发送IPROG命令来实现的。重配置操作可由FPGA外部的处理器、微控制器、计算机和按键等“智能”终端触发。在应用设计中,只需在每个应用程序中例化一个ICAP_SPARTAN6原语来实现相关命令序列即可实现MultiBoot特性。
Spartan6的多bit流配置可通过SPIx1,x2,x4及BPI模式实现,文中只介绍基于SPI模式的MultiBoot特性的实现,用配置文件代替应用程序。

2 MultiBoot操作相关寄存器简介
(1)所有Spartan-6 FPGA的bit流控制命令都是通过读写相关配置寄存器实现的。配置数据都是16位宽的字,也有一些数据是多字的,配置数据包含的3个主要命令如表1所示。

本文引用地址:http://www.amcfsurvey.com/article/190467.htm

b.JPG


(2)所有的操作数据可分为两种:
TYPE1包含两部分:Header,Data。
TYPE2包含3部分:Header,Word Count,Data。
用TPYE1就能实现MultiBoot和Fallback操作,故只介绍TYPE1。TYPE1的Header是个16位字,用其中6位表示相关寄存器的地址,如表2所示。

c.JPG


其中Operation位[12:11]是表1中所列的操作码,寄存器地址[10:5]如表4所示,字节数[4:0]表示操作所需的字节数。
TYPE1的数据部分形式如表3所示。

d.JPG


(3)Spartan-6 FPGA的MultiBoot常用配置寄存器及功能列表如表4所示。

e.JPG

fpga相关文章:fpga是什么



上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭