FPGA常用的配置模式
- 格式:pdf
- 大小:329.98 KB
- 文档页数:5
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下载电缆或主控器来完成。
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(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 进行编程。
用户可以根据不同的配。
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接口。
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是在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具有很高的集成度,其器件密度从数万门到数千万门不等,可以完成极其复杂的时序与逻辑组合逻辑电路功能,所以适用于高速、高密度的高端数字逻辑电路设计领域。
很多兄弟对于CPLD下JTAG的下载很熟悉了,可转到FPGA来的时候,多多少少有些迷惑,怎么出现配置芯片了,为什么要用不同的下载电缆,不同的下载模式?我就自己知道的一点东西谈一些个人的见解,并发一些资料.希望路过的朋友喝个采,版主给点威望.有问题大家也一起讨论,欢迎拍砖.1.FPGA器件有三类配置下载方式:主动配置方式(AS)和被动配置方式(PS)和最常用的(JTAG)配置方式。
AS由FPGA器件引导配置操作过程,它控制着外部存储器和初始化过程,EPCS系列.如EPCS1,EPCS4配置器件专供AS模式,目前只支持Cyclone系列。
使用Altera串行配置器件来完成。
Cyclone期间处于主动地位,配置期间处于从属地位。
配置数据通过DA TA0引脚送入FPGA。
配置数据被同步在DCLK输入上,1个时钟周期传送1位数据。
(见附图)PS则由外部计算机或控制器控制配置过程。
通过加强型配置器件(EPC16,EPC8,EPC4)等配置器件来完成,在PS配置期间,配置数据从外部储存部件,通过DATA0引脚送入FPGA。
配置数据在DCLK上升沿锁存,1个时钟周期传送1位数据。
(见附图)JTAG接口是一个业界标准,主要用于芯片测试等功能,使用IEEE Std 1149.1联合边界扫描接口引脚,支持JAM STAPL标准,可以使用Altera下载电缆或主控器来完成。
FPGA在正常工作时,它的配置数据存储在SRAM中,加电时须重新下载。
在实验系统中,通常用计算机或控制器进行调试,因此可以使用PS。
在实用系统中,多数情况下必须由FPGA 主动引导配置操作过程,这时FPGA将主动从外围专用存储芯片中获得配置数据,而此芯片中fpga配置信息是用普通编程器将设计所得的pof格式的文件烧录进去。
专用配置器件:epc型号的存储器常用配置器件:epc2,epc1,epc4,epc8,epc1441(现在好象已经被逐步淘汰了)等对于cyclone cycloneII系列器件,ALTERA还提供了针对AS方式的配置器件,EPCS系列.如EPCS1,EPCS4配置器件也是串行配置的.注意,他们只适用于cyclone系列.除了AS和PS等单BIT配置外,现在的一些器件已经支持PPS,FPS等一些并行配置方式,提升配置了配置速度。
FPGA是基于SRAM编程的,编程信息在系统掉电时会丢失,每次上电时,都需要从器件外部的FLASH或EEPROM中存储的编程数据重现写入内部的SRAM中。
FPGA在线加载需要有CPU的帮助,并且在加载前CPU已经启动并工作。
FPGA的加载模式主要有以下几种:1).PS模式(Passive Serial Configuration Mode),即被动串行加载模式。
PS模式适合于逻辑规模小,对加载速度要求不高的FPGA加载场合。
在此模式下,加载所需的配置时钟信号CCLK由FPGA外部时钟源或外部控制信号提供。
另外,PS加载模式需要外部微控制器的支持。
2).AS模式(Active Serial Configuration Mode),即主动串行加载模式。
在AS模式下,FPGA主动从外部存储设备中读取逻辑信息来为自己进行配置,此模式的配置时钟信号CCLK由FPGA内部提供。
3).PP模式(Passive Parallel Configuration Mode),即被动并行加载模式。
此模式适合于逻辑规模较大,对加载速度要求较高的FPGA加载场合。
PP模式下,外部设备通过8bit并行数据线对FPGA进行逻辑加载,CCLK信号由外部提供。
4).BS模式(Boundary Scan Configuration Mode),即边界扫描加载模式。
也就是我们通常所说的JTAG加载模式。
所有的FPGA芯片都有三个或四个加载模式配置管脚,通过配置MESL[0..3]来选取不同的加载模式。
首先来介绍下PS加载模式,各个厂商FPGA产品的PS加载端口定义存在一些差异,下面就对目前主流的三个FPGA厂商Altera, Xilinx,Lattice的PS加载方式进行一一介绍。
Altera公司的FPGA产品PS加载接口如下图所示。
1).CONFIG_DONE:加载完成指示输出信号,I/O接口,高有效,实际使用中通过电阻上拉到VCC,使其默认状态为高电平,表示芯片已加载完毕,当FPGA正在加载时,会将其驱动为低电平。
FPGA的下载方式〔配置方式)与掉电不丧失下载下载FPGA里面 有三种方式JTAG下载sof文件,掉电丧失ﻫ 可以将sof转换为jic文件,用EPCSx配置,掉电不丧失AS 下载pof文件,配置EPCSx,掉电不丧失ﻫPS 比拟老的下载方式,很少使用更新:解释下JTAG下的掉电不丧失下载方法JTAG接口的EPCS间接编程:用JTAG模式下载,其本身模式只是用于调试,因此该模式为掉电丧失模式。
但是,在JTAG模式下可以通过配置映像的方式,对EPCS配置芯片进展编程配置。
它是利用FPGA的JTAG接口以及Altera提供的用于编程时配置FPGA 的Serial FlashLoader〔SFL〕来对EPCS进展配置.其配置的接口连接方式与JTAG一样。
通过SFL,利用FPGA作为JTAG接口和串行配置器件EPCS的桥梁,用户通过JTAG接口来对EPCS进展在系统编程。
这是因为串行器件EPCS并不支持JTAG接口,传统的方式通过AS编程接口直接对EPCS进展编程.CPLD是英文Complex Programmable Logic Device的缩写,即复杂可编程逻辑器件,CPLD基于EEPROM工艺〔掉电不丧失〕,集成度相对fpga较低,以MicroCell〔包括组合局部与存放器)为根本单元.具有非挥发特性,可以重复写入。
cpld掉电数据不丧失,芯片比拟廉价,硬件设计本钱比拟低.fpga掉电数据丧失,硬件设计时要而外加配置flash芯片,或者单片机负责上电时把程序写到fpga里面,〔如果程序较大,灵活的方案为fpga+单片机+大容量的flash〕;集成度高,以LE〔包括查找表、触发器及其他〕为根本单元,有内嵌Memory、DSP等,支持IO标准丰富.具有易挥发性,需要有上电加载过程。
可以简单的理解为:cpld比拟简单,主要是逻辑运算能力,fpga=cpld+算法处理模块.2 FPGA中,中选用AS 下载pof文件,无法成功时将sof转换为jic文件,用EPCSx配置,下载时选用JTAG 下载转换后的jic文件。
习题集及参考答案一、填空题1.一般把EDA技术的发展分为()个阶段。
2.FPGA/CPLD有如下设计步骤:①原理图/HDL文本输入、②适配、③功能仿真、④综合、⑤编程下载、⑥硬件测试,正确的设计顺序是①()⑤⑥。
3.在EDA工具中,能完成在目标系统器件上布局布线的软件称为()。
4.设计输入完成之后,应立即对文件进行()。
5.基于硬件描述语言的数字系统设计目前最常用的设计方法称为()设计法。
6.将硬件描述语言转化为硬件电路的过程称为()。
7.IP核在EDA技术和开发中具有十分重要的地位,以HDL方式提供的IP被称为()IP。
8.SOC系统又称为()系统。
SOPC系统又称为()系统。
9.将硬核和固核作为()IP核,而软核作为()IP核。
10.IP核在EDA技术和开发中具有十分重要的地位,以HDL方式提供的IP被称为()。
11.HDL综合器就是逻辑综合的过程,把可综合的VHDL/Verilog HDL转化成硬件电路时,包含了三个过程,分别是()、()、()。
12.EDA软件工具大致可以由五个模块构成,分别是设计输入编辑器、()、()、()和()。
13.按仿真电路描述级别的不同,HDL仿真器分为()仿真、()仿真、()仿真和门级仿真。
14.系统仿真分为()、()和()。
15.()仿真是对设计输入的规范检测,这种仿真通过只能表示编译通过,说明设计满足一定的语法规范,但不能保证设计功能满足期望。
16.()仿真是对综合后的网表进行的仿真,它验证设计模块的基本逻辑功能,但不带有布局布线后产生的时序信息,是理想情况下的验证。
17.()仿真是布局布线后进行的后仿真,仿真时考虑了布线延时,和芯片实际的工作情况更加接近。
18.目前Xilinx公司生产的FPGA主要采用了()配置存储器结构。
19.描述测试信号的变化和测试工程的模块叫做()。
20.现代电子系统设计领域中的EDA采用()的设计方法。
21.有限状态机可分为()状态机和()状态机两类。
AS模式(active serial configuration mode):FPGA器件每次上电时,作为控制器从配置器件EPCS主动发出读取数据信号,从而把EPCS的数据读入FPGA中,实现对FPGA的编程。
PS模式(passive serial configutation mode):EPCS作为控制器件,把FPGA当做存储器,把数据写人到FPGA中,实现对FPGA 的编程。
该模式可以实现对FPGA在线可编程。
在下载配置的时候对于cycloneII的器件,如ep2c8,在JTAG下载方式对应.sof,AS下载方式对应 .pof.JTAG是直接烧到FPGA里面的由于是SRAM 断电后要重烧,AS是烧到FPGA的配置芯片里保存的每次上电就写到FPGA里关于JTAG的原理,大家可以参考OPEN-JTAG 开发小组写的《ARM JTAG 调试原理》。
JTAG、BDM 都比较类似,实际上是将仿真功能嵌入到芯片内部,接上比较简单的调试工具就可以进行开发了,省掉了高价的仿真器。
JTAG 调试用到了TCK、TMS、TDI、TDO 和TRST这几个脚。
其中TRST 是用来对TAP controller进行复位的,它不是必须的。
通过在TMS脚也可以使TAP controller复位。
Test Clock Input (TCK)TCK为TAP的操作提供了一个独立的、基本的时钟信号,TAP 的所有操作都是通过这个时钟信号来驱动的。
TCK在IEEE 1149.1 标准里是强制要求的。
Test Mode Selection Input (TMS)TMS信号用来控制TAP状态机的转换。
通过TMS信号,可以控制TAP在不同的状态间相互转换。
TMS信号在TCK的上升沿有效。
TMS在IEEE 1149.1 标准里是强制要求的。
Test Data Input (TDI)TDI 是数据输入的接口。
所有要输入到特定寄存器的数据都是通过TDI 接口一位一位串行输入的(由TCK驱动)。
FPGA 器件的配置方式和配置文件Altera 公司生产的具有ICR 功能的FPGA 器件有FLEX6000、FLEX10K、APEX 和ACEX 等系列。
它们的配置方式可分为PS(被动串行)、PPS(被动并行同步)、PPA(被动并行异步)、PSA(被动串行异步)和JTAG(Joint Test Action Group)等五种方式。
这五种方式都能适用于单片机配置。
PS 方式因电路简单,对配置时钟的要求相对较低,而被广泛应用。
CPU 仅需要利用5 个I/O 脚与FPGA 相连,就实现了PS 方式的硬件连接,具体信号被动串行工作过程:当nconfig 产生下降沿脉冲时启动配置过程,在dclk 上升沿,将数据移入目标芯片。
在配置过程中,系统需要实时监测,一旦出现错误,nSTATUS 将被拉低,系统识别到这个信号后,立即重新启动配置过程。
配置数据全部正确地移入目标芯片内部后,CONF_DONE 信号跳变为高,此后,DCLK 必须提供几个周期的时钟(具体周期数与DCLK 的频率有关),确保目标芯片被正确初始化,进入用户工作模式。
Altera 的MAX+PLUS II 或Quartus II 开发工具可以生成多种配置或编译文件,用于不同配置方法的配置系统,而对于不同系列的目标器件配置数据的大小也不同,配置文件的大小一般有.rbf 文件决定。
.rbf 文件即二进制文件。
该文件包括所有的配置数据,一个字节的 .rbf文件有8 位配置数据,每一字节在配置时最低位最先被装载。
微处理器可以读取这个二进制文件,并把它装载到目标器件中。
Altera 提供的软件工具不自动生成 .rbf 文件,须按照下面的步骤生成:①在MAX+PLUS II 编译状态,选择文件菜单的变换SRAM 目标文件命令;②在变换SRAM 目标文件对话框,指定要转换的文件并且选择输出文件格式为.rbf(Sequential),然后确定。
配置操作过程:CPU 按下列步骤操作I/O 口线,即可完成对FPGA 的配置:1、nCONFIG="0"、DCLK="0",保持2μS 以上。
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内部产生的,对于不同的芯片和电平,其最大值如下图所示:。