本来讲一讲FPGA的重构,在说FPGA重构之前,需要先了解FPGA的配置方式。
FPGA 配置
所有现代FPGA的配置分为两类:基于SRAM的和基于非易失性的。其中,前者使用外部存储器来配置FPGA内的SRAM后者只配置一次。Lattice和Actel的FPGA使用称为反熔丝的非易失性配置技术,其主要优点是系统设计更加简单、不需要外部存储器和配置控制器、功耗低、成本低和FPGA配置时间更快。最大的缺点在于配置是固定的。大多数现代FPGA都是基于SRAM包括Xilinx Spartan和Virtex系列。每个FPGA上电后或在后续的FPGA配置期间,从外部非易失性存储器中读取比特流,由配置控制器处理,并加载到内部配置SRAM中。SRAM保持了配置逻辑、IO、嵌入式存储器、布线、时钟、收发器和其他FPGA原语等所有的设计信息。下图是Xilinx 的配置结构。
配置是由FPGA内部的配置控制器执行。比特流存储在外部非易失性存储器(如Flash)中。外部存储器通过使用SelectMAP接口连接到配置控制器,这是Xilinx特有的。额外的胶合逻辑可能需要架起SelectMAP和外部存储器接口之间的桥梁。此外,比特流可以通过JTAG或ICAP加载到配置控制器中。比特流可以选择加密,以提高安全性。内部电池备份RAM(BBR)和eFuse保存用于比特流解密的加密密钥。FPGA配置存储器也称为配置存储器单元,它的每一位与比特流中的对应位一起初始化。每个存储器单元的输出连接到可配置的功能块上,如LUT寄存器、BRAM10、布线等。图2是配置存储器单元连接到多路复用器,以设置FPGA架构中元件之间的特定布线路径。在FPGA配置阶段,逻辑状态被置位为1或0。
图 2 FPGA 的布线配置
Xilinx 的 FPGA 配置模式
多种FPGA配置模式可满足不同的使用模式。图3是XilinxFPGA配置模式的分类。
图3FPGA配置模式的分类配置模式分为两类:主动(master)模式和被动(slave)模式。在主动配置模式下,FPGA控制配置过程。在被动模式下,由外部设备(如单片机、CPLD或其他FPGA)控制FPGA的配置过程。此外,还有两个特殊的配置模式,即使用JTAG和内部配置访问端口(ICAP)有4种数据宽度支持不同的外部存储器:32位、16位、8位、1位(串行)。下面是配置模式的简要介绍。JTAGJTAG接口主要在调试期间使用。为了与Xilinx Chip Scope和IMPACT软件应用程序接口,特殊的适配器连接到专用FPGA引脚上。ICAP专用的ICAP原语用于与用户逻辑的接口,在FPGA架构内进行配置。主动串行模式在主动串行模式中,FPGA控制Xilinx Platform Flash,以提供配置数据Xilinx Platform Flash是一种特殊的非易失性存储器,旨在通过使用Select MAP接口直接与Xilinx FPGA接口。主动SPI Flash模式在主动SPI Flash模式中,FPGA控制串行SPI闪存,以提供配置数据。主动Selec tMAP模式在主动Select MAP模式中,FPGA控制Xilinx Platform Flash,以提供8位或16位的配置数据。主动BPI模式在主动BPI模式中,FPGA控制并行NOR Flash,以提供8位或16位的配置数据。被动串行和Select MAP模式在被动串行模式下,外部设备(如单片机、CPLD或其他FPGA)控制FPGA的配置过程。设计FPGA配置方案对于特定设计来说,有一些设计考虑用于选择最合适的FPGA配置方案。主要的选择标准是•选择是否通过外部设备(被动模式)或由FPGA本身(主动模式)控制配置过程。从系统复杂性角度来看,主动模式最简单,但未必适合所有设计。被动模式接口作为简单的串行接口,直接连接到处理器的10引脚,读取比特流数据进人配置控制器。•选择外部非易失性存储器的类型和大小,用于存储一个或多个FPGA比特流。尽管与FPGA的成本相比,外部存储器的成本相对较低,但仍然是不可忽略的。设计者可以在SHFlash并行NOR Flash或Xilinx Platform Flash之间进行选择。在某些设计中,FPGA可以使用连接到被动模式下的FPGA配置控制器直接配置。•数据宽度的选择—串行、8位、16位或32位—影响配置速度和FPGA中用于设计的10数目。•现场升级配置比特流可以是一个重要的需求。配置方案必须解决当比特流正在编程进入非易失性存储器时发生损坏的情况。•Xilinx FPGA提供了一个选项,用来加密在更高设计安全要求情况下的比特流。解密密钥可以存储在内部的BBR或者eFuse中。BBR存储器是易失性的,需要外部电池。使用BBR与使用非易失性eFuse相比,重新编程相对容易。计算配置时间在许多应用中,FPGA配置时间很关键,要准确估计配置方案选择过程中的时间是很重要的。配置时间取决于比特流大小、时钟频率和配置接口的数据宽度,按下列公式定义:配置时间=比特流大小x时钟频率x数据宽度表1提供了配置接口在不同数据宽度下,对于使用50MHz时钟的最小和最大Xilinx Virtex-6 FPGA的预期配置时间。表 1 FPGA 配置时间
Xilinx 配置相关的原语
表 2 提供了 Xilinx FPGA 支持的与配置相关的原语列表。表 2 Xilinx Virtex-6 配置相关的原语
- END -

NOW现在行动!

推荐阅读
【Vivado那些事】如何查找官网例程及如何使用官网例程
【Vivado使用误区与进阶】总结篇
【Vivado那些事】Vivado中常用的快捷键(二)其他常用快捷键
SystemVerilog数字系统设计_夏宇闻 PDF
Verilog 里面,always,assign和always@(*)区别
图书推荐|ARM Cortex-M0 全可编程SoC原理及实现
简谈:如何学习FPGA
Vitis尝鲜(一)
拆解1968年的美国军用电脑,真的怀疑是“穿越”啊!
一文最全科普FPGA技术知识
你见过1-bit CPU吗?
高级FPGA设计技巧!多时钟域和异步信号处理解决方案
【Vivado那些事】Vivado中电路结构的网表描述
现代计算机的雏形-微型计算机MCS-4
世界上第一个微处理器真的是Intel 4004吗?其实这是个很复杂的故事…
【每周一问】如何控制加载FPGA程序时,Xilinx FPGA的IO管脚输出高低电平
【Vivado那些事】vivado生成.bit文件时报错-ERROR: [Drc 23-20]
AD9361 和Zynq及其参考设计说明
1202年了,还在使用虚拟机吗?Win10安装Ubuntu子系统及图形化界面详细教程
谈谈Xilinx FPGA设计的实现过程
Github 上有哪些优秀的 VHDL/Verilog/FPGA 项目
AD936x+ZYNQ搭建收音机(一)
AD936x+ZYNQ搭建收音机(二)含视频演示
AD936x+ZYNQ搭建收音机(三)-终篇
AD936x+ZYNQ搭建OpenWIFI
Verilog 版本:Verilog-95、Verilog-2001与System Verilog区别简谈
FPGA时钟设计方案
无招胜有招-Vivado非工程模式下的详细设计
追寻ARM的起源-Acorn电脑简史及FPGA实现
面试中经常会遇到的FPGA基本概念,你会几个?
Xilinx FPGA MIPI 接口简单说明
介绍一些新手入门FPGA的优秀网站
Vivado ML(机器学习) 2021尝鲜
推荐一些可以获取免费的国外的原版书籍(电子版)网站
点击上方字体即可跳转阅读
注明:本内容来源网络,不用于商业使用,禁止转载,如有侵权,请来信到邮箱:429562386ⓐqq.com 或联系本站客服处理,感谢配合!