FPGA常用的配置模式
FPGA下载配置指南

1 FPGA的上电启动原理FPGA是基于RAM结构的,当然了,也有基于FLASH结构的,但RAM结构的是主流,也是我们讨论的重点。
而RAM是易失存储器,在掉电后保存在上面的数据就丢失了,重新上电后需要再下载一次才可以。
因此,我们肯定不希望每次重新上电后都用PC去下载一次,工程实现也不允许我们这么做。
所以,通常FPGA旁边都有一颗配置芯片,它通常是一片FLASH,或者是并行或者是串行接口的。
不管是串行还是并行的FLASH,它们的启动加载原理基本相同,后面我们会专门讨论。
FPGA器件有三类配置下载方式:主动配置方式(AS)、被动配置方式(PS)和最常用的基于JTAG的配置方式。
AS和PS模式主要是将bit流下载到配置芯片中;而JTAG模式则既能将代码下载到FPGA中直接在线运行(速度快,调试时优选),也能够通过FPGA将bit流下载到配置芯片中。
由于JTAG方式灵活多用,所以我们的VIP板就只预留了JTAG接口。
AS配置方式:AS配置方式由FPGA器件引导配置操作过程,它控制着外部存储器及其初始化过程,EPCS系列配置芯片如EPCS1,EPCS4,EPCS16等配置器件专供AS模式。
使用Altera串行配置器件来完成,FPGA器件处于主动地位,配置器件处于从属地位。
配置数据通过DATA0引脚送入 FPGA。
配置数据被同步在DCLK输入上,1个时钟周期传送1位数据。
PS配置方式:PS配置方式则由外部计算机或其它控制器控制配置过程。
通过加强型配置器件(EPC16,EPC8,EPC4)等配置器件来完成,在PS配置期间,配置数据从外部储存部件,通过DATA0引脚送入FPGA。
配置数据在DCLK上升沿锁存,1个时钟周期传送1位数据。
JTAG配置方式:JTAG接口是一个业界标准,主要用于芯片测试等功能,使用IEEE Std 1149.1联合边界扫描接口引脚,支持JAM STAPL标准,可以使用Altera下载电缆或主控器来完成。
一种新颖的多模式FPGA配置方案

技 术 创 新
2.2 CPLD 中接口芯片的设计 CPLD 中包含了与 PC 相互通信的接口电路, PC 可以通过 接口发送 PC 命令,使能 PLD 控制器单元的各种功能; PLD 控 制器也可以在执行过程中通过接口电路返回数据给 PC,完成 PC 与 CPLD 的通信。 在本文设计的验证方案中,采用 RS232 串行接口芯片[6], 通过 rxd (接收数据) 和 txd (发送数据) 与 PC 通信。在串行数据 接收的同步控制中, rxd 发送 4 个时钟周期的低电平代表有效 数据的开始, 最后发送 4 个时钟周期的高电平代表有效数据的 结束,有效数据通过串并转换锁存在寄存器中,并且写入 通过接口芯 FLASH 中。串行数据发送的同步控制与接收相仿, 片将数据并串转换后由 txd 发送回 PC。 2.3 CPLD 对于 FLASH 的读写控制 数据线和 CPLD 中包括了对于 FLASH 存储器各控制信号, 地址线的控制, 以完成 FLASH 读、 擦除和写操作。 本文阐述的验证实验中使用的非易失存储器是 AM29DL640D 64M 位的 FLASH 存储器; CPLD 与 FLASH 所有管 将 脚相连, 控制 FLASH 的读写。在设计 CPLD 控制模块的时候, 根据 PC 命令, 可以将配置数据或者其 FLASH 的地址分为四段, 他有效数据写入到 FLASH 的任一地址段;且该 FLASH 支持在 不同地址段读或写的同时进行, 提高了 FLASH 的灵活性。 该 FLASH 最高工作频率为 10MHz, 工作操作分为读 、 写和 擦除, 写数据前需要对于写入地址段中的数据进行擦除。在本 文的设计中, 对于 FLASH 写数据前, 先对 PC 所选地址段进行 擦除,当该地址段的所有数据均被擦除完毕后进行写数据, 具 体参见软件设计部分。读、 写、 擦除操作都有相关的命令格式和 时序, 参见该 flash 的操作手册。 2.4 CPLD 使能 FPGA 的配置 CPLD 中还包括了与 FPGA 配置时相通信的模块,其与 FPGA 各配置信号管脚相连。 本文阐述的验证实验采用 CycloneII EP2C 系列 FPGA, 该 (PS ) 的配置模式, 因此本文也重点阐 系列 FPGA 采用被动串行 述 PS 配置模式。 2.4.1 配 置 需 要 用 到 的 引 脚 及 其 连 接 见 图 2, DCLK 为 CPLD 提供给 FPGA 的配置时钟; DATA0 为 CPLD 从 FLASH 中 读取配置数据后经由并串转换后提供给 FPGA 的串行配置数 据; 低电平复位器件, nCONFIG 为 CPLD 使能 FPGA 配置操作, 上升沿启动配置; nSTATUS、 CONF_DONE、 INIT_DONE 均是双 向漏极开路, 分别表示配置错误、 完成配置和初始化完成, 具体 时序将在后面详细介绍。nceo 脚在完成配置后变为低电平, 使 能后续的 FPGA 的 nce 管脚, 完成多器件配置。
借助Vivado来学习FPGA的各种配置模式

怪只看到了 FPGA+DSP 而没有看到任何 FLASH 外设的时候,很可能就是采
用 DSP 来配置 FPGA 的,FPGA 的配置数据就存储在 DSP 的 FLASH 中:
这次就不具体展开 FPGA 的具体配置相关内容,我们可以通过 Vivado 让
我们很直观的看到 FPGA 的配置模式和对应的电路设计,对我们设计开发
Series
Configuration User Guide),单击这个链接打开后就可以对应的帮助文档。至
此,我们就可以通过这些电路和链接对应的帮助文档来学习 FPGA 的配置模
式。
我们再打开 Slave Serial 模式,在这里,可以看到电路的设计设计是可以
通过外部 CPLD 或者 MCU 单片机来配置 FPGA,所以有些板子你可能很奇
Step2,打开设置菜单,并选择 BitSream 子选项。此时,可以看到提示:
Open Implemented Design 后有更多的设置项可用:
Step3,当我们 Open Implemented Design 后,再打开这个 BitSream 设置菜
单选项,会发现提示为 Confgure additional bitstream s 有很大帮助。另外,FPGA 多重配置可参考: Xilinx FGPA 的多重配置功能(1) Xilinx FPGA 的多重配置功能(2)
借助 Vivado 来学习 FPGA 的各种配置模式
EDA(Vivado)软件可以很好的帮助我们更好的去学习 FPGA 相关知识, 例如: 记得使用 EDA 软件自带的语言模板; 新建 IO Planning 工程初步引脚分配; EDA 中自带的 IP 核你会快速用吗? 单片机是基于 FLASH 结构的,所以单片机上电直接从本地 FLASH 中运 行。但 SRAM 架构的 FPGA 是基于 SRAM 结构的,掉电数据就没了,所以 需要借助外部电路来配置运行的数据,其实我们可以借助 Vivado 来学习 FPGA 的各种配置模式。 Step1,找到 Vivado 的设计流程框:
使用iMPACT下载程序到FPAG中的两种方式

Xllinx FPGA的常用配置模式有5 种:JTAG模式、主串模式、从串模式、SPI flash模式、Select MAP模式、Desktop模式。
主串模式需要外加PROM芯片,SPI flash模式需要外加SPI flash 芯片。
由于黑金开发板上Spantan 6 使用的是SPI flash模式,因此介绍程序掉电丢失和上电自动加载两种方式下载程序。
一、JTAG配置操作将ISE生成的.bit文件通过PC传输到FPGA芯片中,从而使得FPGA开始工作。
该模式下,下载的程序掉电丢失,但是下载速度快。
iMPACT软件打开方式(ISE13.1)有两种方法可以启动iMPACT软件,一是在ISE过程管理区,双击“Configure Target Device”,在ISE环境下运行;另一种方法(ISE13.1版本):点击电脑开始-程序-所有程序-Xilinx ISE Design suite 13.1-ISE Design Tools-Tools -iMPACT,在windows环境下运行。
双击“Boundary Scan”,然后再右边白色区域点击鼠标右键,在弹出框内选择“Initialize Chain”,或者双击工具栏的快捷方式,可启动PC和FPGA之间的JTAG电路,从而识别出JTAG电路上的所有芯片。
只要JTAG电路正常,则iMPACT界面会读出XC6SLX16芯片,并给出“Identify Succeeded”提示信息。
而且会自动弹出bit文件加载界面接着会弹出窗口询问你是否添加SPI或者BPI PROM,选择NO,然后在JTAG界面单击右键,选择“program”,开始对FPGA芯片进行编程。
二、SPI flash配置模式鼠标左键双击“Create PROM File”,弹出配置芯片选择界面,然后对弹出的界面进行设置,设置完成后点击“OK”然后点击“Generate File”生成.MCS文件接下来仍然通过iMPACT中的边界扫描命令将JTAG上的FPGA芯片识别出来,然后双击FPGA芯片图标上方的“SPI/BPI?”蓝色虚线框,会弹出加载.mcs文件界面,选择生成的.mcs 文件,点击打开,在弹出的Select Attached SPI/BPI 界面中选择正确的SPI FLASH 型号M25P80,然后点击OK.加载成功后,蓝色线框内容变为“flash”,点击鼠标右键,然后选择“program”命令,将.mcs 文件下载到FPGA中。
FPGA 的含义、配置模式与类型

FPGA 的含义、配置模式与类型【】FPGA 的含义、配置模式与类型FPGA(Field Programmable Gate Array)是现场可编程门阵列,它是在PAL、GAL、EPLD 等可编程逻辑器件的基础上进一步发展的产物,是专用集成电路(ASIC)中集成度最高的一种。
FPGA 采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。
用户可对FPGA 内部的逻辑模块和I/O 模块重新配置,以实现用户的逻辑。
它还具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,不仅解决了定制电路的不足,还克服了原有可编程逻辑器件门电路数有限的缺点。
可以毫不夸张地讲,FPGA 能完成任何数字器件的功能,上至高性能CPU,下至简单的74 电路,都可以用FPGA 来实现。
FPGA 如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自由的设计一个数字系统,通过软件仿真,可以事先验证设计的正确性。
在PCB 完成以后,还可以利用FPGA 的在线修改能力,随时修改设计而不必改动硬件电路。
使用FPGA 来开发数字电路,可以大大缩短设计时间,减少PCB 面积,提高系统的可靠性。
目前,FPGA 的品种很多,有XILINX 的XC 系列、TI 公司的TPC 系列、ALTERA 公司的FIEX 系列等。
FPGA 是由存放在片内RAM 中的程序来设置其工作状态的,因而工作时需要对片内的RAM 进行编程。
用户可以根据不同的配。
MAX10FPGA配置用户指南.pdf

MAX 10 FPGA配置用户指南订阅UG-M10CONFIG | 2017.07.20内容内容1 MAX® 10 FPGA配置概述 (4)2 MAX 10 FPGA配置方案和功能 (5)2.1 配置方案 (5)2.1.1 JTAG配置 (5)2.1.2 内部配置 (6)2.2 配置功能 (12)2.2.1 远程系统更新 (12)2.2.2 配置设计安全 (18)2.2.3 SEU缓解与配置错误检测 (21)2.2.4 配置数据压缩 (25)2.3 配置详细信息 (26)2.3.1 配置序列 (26)2.3.2 MAX 10配置管脚 (29)3 MAX 10 FPGA配置设计指南 (30)3.1 双用配置管脚 (30)3.1.1 指南:复用配置管脚 (30)3.1.2 使能双用管脚 (31)3.2 使用JTAG对MAX 10器件进行配置 (31)3.2.1 JTAG配置设置 (32)3.2.2 JTAG配置中的ICB设置 (33)3.3 使用内部配置对MAX 10器件进行配置 (34)3.3.1 选择内部配置模式 (34)3.3.2 .pof和ICB设置 (34)3.3.3 将.pof文件编程到内部闪存 (36)3.4 在 Intel Quartus Prime软件中实现ISP钳位 (37)3.4.1 创建IPS文件 (37)3.4.2 执行IPS文件 (37)3.5 通过用户逻辑访问远程系统更新 (37)3.6 错误检测 (38)3.6.1 验证错误检测功能 (38)3.6.2 使能错误检测 (39)3.6.3 通过用户逻辑访问错误检测模块 (40)3.7 使能数据压缩 (41)3.7.1 使能设计编译前的压缩 (41)3.7.2 使能设计编译后的压缩 (42)3.8 AES加密 (42)3.8.1 生成.ekp文件和加密配置文件 (42)3.8.2 从.ekp文件生成.jam/.jbc/.svf文件 (44)3.8.3 编程.ekp文件和加密的POF文件 (44)3.8.4 内部配置中的加密 (45)3.9 MAX 10 JTAG安全设计实例 (47)3.9.1 内部JTAG接口 (48)3.9.2 内部JTAG模块访问的WYSIWYG Atom (48)内容3.9.3 执行LOCK和UNLOCK JTAG指令 (50)3.9.4 验证JTAG安全模式 (51)4 MAX 10 FPGA配置IP内核实现指南 (52)4.1 Altera Unique Chip ID IP内核 (52)4.1.1 例化Altera Unique Chip ID IP内核 (52)4.1.2 复位Altera Unique Chip ID IP内核 (52)4.2 Altera双配置IP内核 (53)4.2.1 例化Altera双配置IP内核 (53)5 Altera双配置IP内核参考 (54)5.1 Altera双配置IP内核Avalon-MM地址映射 (54)5.2 Altera双配置IP内核参数 (55)6 Altera Unique Chip ID IP内核参考 (56)6.1 Altera Unique Chip ID IP内核端口 (56)A MAX 10 FPGA配置用户指南的附加信息 (57)A.1 MAX 10 FPGA配置用户指南的文档修订历史 (57)1 MAX® 10 FPGA配置概述您可以使用下面的配置方案对MAX® 10配置RAM (CRAM)进行配置:•JTAG 配置—使用JTAG接口。
Altera FPGA 配置模式

FPGA配置模式时间:2011-09-12 23:15:16 来源:作者:FPGA有多种配置模式:并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。
如何实现快速的时序收敛、降低功耗和成本、优化时钟管理并降低FPGA与PCB并行设计的复杂性等问题,一直是采用FPGA的系统设计工程师需要考虑的关键问题。
如今,随着FPGA向更高密度、更大容量、更低功耗和集成更多IP的方向发展,系统设计工程师在从这些优异性能获益的同时,不得不面对由于FPGA前所未有的性能和能力水平而带来的新的设计挑战。
在很多项目设计中采用Altera 公司基于SRAM架构Cyclone系列器件。
Cyclone器件与其他FPGA器件一样是基于门阵列方式为用户提供可编程资源的,其内部逻辑结构的形成是由配置数据决定的。
这些配置数据可通过多种模式加载到FPGA内部的SRAM中,由于SRAM的易失性,每次上电时,都必须对FPGA进行重新配置。
1 Cyclone FPGA 配置模式Cyclone系列FPGA器件配置方案主要有三种,包括使用低成本配置芯片的主动串行(AS)配置、被动串行(PS)配置以及基于JTAG配置,实际应用时可以使用其中的一种方案配置Cyclone系列FPGA器件,来实现用户编程所要实现的功能。
Cyclone系列FPGA器件是用SRAM单元配置数据的。
由于SRAM掉电后容易丢失数据,配置数据必须即时地下载到上电的Cyclone器件中。
不同的配置模式可采用不同的专用配置芯片或数据源这三种配置模式是由Cyclone器件的模式选择引脚MSEL1和MSEL0的高低电平来决定的,如果你的实际应用只要求单一的配置模式,可以把模式选择引脚连接到VCC端或接地端在切换引脚的过程中,器件的运行状态不会被影响。
FPGA芯片结构、工作原理与软核、硬核、固核详解

FPGA芯片结构、工作原理与软核、硬核、固核详解一、FPGA芯片原理FPGA是在PAL、GAL、EPLD、CPLD等可编程器件的基础上进一步发展的产物。
它是作为ASIC领域中的一种半定制电路而出现的,即解决了定制电路的不足,又克服了原有可编程器件门电路有限的缺点。
由于FPGA需要被反复烧写,它实现组合逻辑的基本结构不可能像ASIC那样通过固定的与非门来完成,而只能采用一种易于反复配置的结构。
查找表可以很好地满足这一要求,目前主流FPGA都采用了基于SRAM工艺的查找表结构,也有一些军品和宇航级FPGA采用Flash或者熔丝与反熔丝工艺的查找表结构。
通过烧写文件改变查找表内容的方法来实现对FPGA的重复配置。
根据数字电路的基本知识可以知道,对于一个n输入的逻辑运算,不管是与或非运算还是异或运算等等,最多只可能存在2n 种结果。
所以如果事先将相应的结果存放于一个存贮单元,就相当于实现了与非门电路的功能。
FPGA的原理也是如此,它通过烧写文件去配置查找表的内容,从而在相同的电路情况下实现了不同的逻辑功能。
查找表(Look-Up-Table)简称为LUT,LUT本质上就是一个RAM。
目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的的RAM。
当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能结果,并把真值表(即结果)事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。
下面给出一个4与门电路的例子来说明LUT实现逻辑功能的原理。
例1-1:给出一个使用LUT实现4输入与门电路的真值表。
表1-1:4输入与门的真值表从中可以看到,LUT具有和逻辑电路相同的功能。
实际上,LUT具有更快的执行速度和更大的规模。
由于基于LUT的FPGA具有很高的集成度,其器件密度从数万门到数千万门不等,可以完成极其复杂的时序与逻辑组合逻辑电路功能,所以适用于高速、高密度的高端数字逻辑电路设计领域。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FPGA配置电路模式有主模式、从模式和JTAG模式。
【1】主模式
在主模式下,FPGA上电后,自动将配置数据从相应的外存储器读入到SRAM中,实现内部结构映射。
主模式根据比特流的位宽又可以分为:串行模式( 单比特流) 和并行模式( 字节宽度比特流) 两大类。
如:主串行模式、主SPI Flash 串行模式、内部主SPI Flash串行模式、主BPI 并行模式以及主并行模式,如下图:
【2】从模式
在从模式下,FPGA 作为从属器件,由相应的控制电路或微处理器提供配置所需的时序,实现配置数据的下载。
从模式也根据比特流的位宽不同分为串、并模式两类,具体包括:从串行模式、JTAG模式和从并行模式三大类。
(此处的JTAG模式与下面要说的JTAG模式有所不同)如下图:
【3】JTAG模式
在JTAG模式中,PC和FPGA通信的时钟为JTAG接口的TCLK,数据直接从TDI进入FPGA,完成相应功能的配置。
主串模式是最常用的配置模式
在FPGA主串配置模式下,会发现两种不同的连接方式:
一种是FPGA在前,PROM在后。
即JTAG接口的DTI连接至FPGA的DTI,FPGA的DTO连接至PROM的DTI,PROM的DTO连接至JTAG接口的DTO。
另一种是PROM在前,FPGA在后。
即JTAG接口的DTI连接至PROM的DTI,PROM的DTO 连接至FPGA的DTI,FPGA的DTO连接至JTAG接口的DTO。
这两种连接方式都是正确的,都可以。
但是,由于PC机配置JTAG链的时候需要和第一级JTAG 设备同步,如果FPGA放在第一级,那么其配置速度较高,导致对PROM配置可能会不稳定,所以推荐的配置是将PROM作为JTAG链的第一级JTAG设备,即上述第二种方式。
在Xilinx 的PROM芯片XCF01/2/4S手册中给出的主串模式下(Configuring in Master Serial Mode)的连接图也是第二种方式,如下图:
那FPGA在前的情况如下图:
主串配置电路的关键点
主串配置最关键的3点就是JTAG链的完整性、电源电压的设置以及CCLK信号的考虑。
只要这3步任何一个环节出现问题,都不能正确配置PROM芯片。
(1)JTAG链的完整性
FPGA和PROM芯片都有自身的JTAG接口电路,所谓的JTAG链完整性指的是将JTAG连接器、
FPGA、PROM的TMS、TCK连在一起,并且保证从JTAG连接器TDI到其TDO之间,形成JTAG 连接器的“TDI →(TDI~TDO) → (TDI~TDO) → JTAG连接器TDO”的闭合回路,其中(TDI~TDO) 为FPGA或者PROM芯片自身的一对输入、输出管脚。
可以根据需要调换FPGA和PROM的位置,使任一个成为链首芯片。
(2) 电源适配性(参见The 3.3V Configuration of Spartan‐3 FPGAs)
如下图所示,由于FPGA和PROM要完成数据通信,二者的接口电平必须一致,即FPGA相应分组的管脚电压Vcco_2(Bank2电压,针对Spartan‐3E系列)必须和PROM Vcco的输入电压大小一致,且理想值为2.5V,这是由于FPGA的PROG_B和DONE管脚由2.5V的Vccaux供电。
此外,由于JTAG连接器的电压也由2.5V的Vccaux提供,因此PROM的VCCJ也必须为2.5V。
因此,如果接口电压和参考电压不同,在配置阶段需要将相应分组的管脚电压和参考电压设置为一致;在配置完成后,再将其切换到用户所需的工作电压。
当然,FPGA和PROM 也可以自适应3.3V的I/O电平以及JTAG电平,但需要进行一定的改动,即添加几个外部限流电阻,如图所示。
在主串模式下,XCFxxS系列PROM的核电压必须为3.3V,XCFxxP系列PROM的核电压必须为1.8V。
(即PROM的VCCJ和VCCO没有接2.5V,而是和PROM内核电压管脚VCCINT同时接3.3V 电压。
这时需要在连接至FPGA的TMS、TCK和TDI上串联一个限流电阻)
PROM芯片XCF01/2/4S的三种电压定义如下:
VCCINT:内核电压
VCCJ:JTAG管脚电压
VCCO:输出管脚电压
(3)CCLK的信号完整性
CCLK信号是JTAG配置数据传输的时钟信号,其信号完整性非常关键。
FPGA 配置电路刚开始以最低时钟工作,如果没有特别指定,将逐渐提高频率。
CCLK信号是由FPGA内部产生的,对于不同的芯片和电平,其最大值如下图所示:。