- Intel FPGA权威设计指南:基于Quartus Prime Pro 19集成开发环境
- 何宾编著
- 4818字
- 2021-10-29 21:33:54
1.7 配置技术
本节将介绍Cyclone 10 GX器件的配置策略、设计安全和远程系统更新。Cyclone 10 GX器件的配置策略和功能如表1.32所示。
表1.32 Cyclone 10 GX器件的配置策略和功能
为了选择不同的配置策略,MSEL引脚硬连线到VCCPGM或GND,无须上拉或下拉电阻。用于不同配置策略的MSEL引脚的设置如表1.33所示。
表1.33 用于不同配置策略的MSEL引脚的设置
Cyclone 10 GX器件的配置引脚如表1.34所示。
表1.34 Cyclone 10 GX器件的配置引脚
1.7.1 AS配置
用于AS配置策略的EPCQ-L编程高级视图如图1.74所示。在AS配置策略中,配置数据保存在EPCQ-L配置器件中。设计者可以使用带有串行Flash加载器IP核的JTAG接口对系统内的 EPCQ-L 器件进行编程。SFL 充当 JTAG 接口与 EPCQ-L 器件之间的桥接器。Cyclone 10 GX器件内的AS存储器接口控制配置过程。
图1.74 用于AS配置策略的EPCQ-L编程高级视图
AS配置策略支持1位数据宽度和4位数据宽度模式。AS×4模式的配置时间比AS×1模式的配置时间快4倍。在AS配置方案中,Cyclone 10 GX器件控制配置接口。
注
对于使用SFL的AS编程,MSEL引脚必须设置为AS设置,以允许编程器读取EPCQ-L ID。
设计者可以使用 Intel FPGA 下载电缆在系统内编程 EPCQ-L 器件,或者可以使用带有SRunner软件驱动程序的微处理器对EPCQ-L进行编程。
在系统编程(In-System Programming,ISP)为设计者提供了使用 AS 编程接口或JTAG接口对EPCQ-L进行编程的选项。使用AS编程接口时,通过Quartus软件或支持第三方软件编程到EPCQ-L中。使用JTAG接口,必须将称为SFL的IP核下载到Cyclone 10 GX器件中,以构成JTAG接口和EPCQ-L之间的桥接。这允许EPCQ-L使用JTAG接口直接编程。
注
EPCQ_L 即将停产,改由使用 MT25QU256 芯片,该芯片为 1.8V 供电,与 EPCQ_L 兼容。在使用该芯片配置 Cyclone 10 GX 器件时,在quartus.ini文件中,添加pgm_allow_mt25q=on。
1.使用JTAG接口用于编程EPCQ-L
使用JTAG接口编程EPCQ-L的连接设置(×4模式),如图1.75所示。
图1.75 使用JTAG接口编程EPCQ-L的连接设置(×4模式)
注
(1)每个Cyclone 10 GX器件有3个nCSO引脚,即nCSO[2..0],这样该器件就可以连接最多 3 个 EPCQ-L 器件。使用 3 个 EPCQ-L 器件的优势如下。
① 能保存多个设计文件,用于远程系统更新。
② 当超过最大单个EPCQ-L器件容量时,可以增加存储容量。
(2)在×1 模式下,只连接 Cyclone 10 GX 的 AS_DATA1 引脚和EPCQ-L的DATA引脚。
在配置期间,Cyclone 10 GX器件通过将其nCSO输出引脚驱动为低来使能EPCQ-L器件,该引脚连接到 EPCQ-L 器件的片选(nCS)引脚。Cyclone 10 GX器件通过使用DCLK和ASD0引脚给EPCQ-L器件发送操作命令和读地址信号。EPCQ-L器件在其串行数据输出(DATA[])引脚上提供数据,它连接到Cyclone 10 GX器件的AS_DATA[]引脚输入。
注
如果希望控制EPCQ-L引脚,请将nCONFIG引脚保持为低电平,并将nCE引脚拉高。这将导致器件复位并使AS配置引脚处于三态。
AS配置的时序如图1.76所示。
图1.76 AS配置的时序
注
(1)如果使用AS×4模式,这个信号表示AS_DATA[3..0],并且在每个DCLK周期EPCQ-L发送4位数据;
(2)初始化时钟可以来自于内部振荡器或CLKUSR引脚;
(3)当选项比特位使能 INIT_DONE 引脚配置到器件后,INIT_DONE变低;
(4)nCSO下降沿到DCLK第一个切换的时间大于15ns。
2.使用AS接口编程EPCQ-L
使用AS接口编程EPCQ-L器件的电路连接如图1.77所示。当编程EPCQ-L器件时,下载电缆通过将 nCE 引脚驱动为高电平来禁止访问 AS 接口。同时,nCONFIG 线也被拉低,使得Cyclone 10 GX器件处于复位阶段。编程完成后下载电缆释放nCE和nCONFIG,允许下拉和上拉电阻分别将引脚驱动到GND和VCCPGM。
图1.77 使用AS接口编程EPCQ-L器件的电路连接
在使用下载电缆对 EPCQ-L 器件编程的期间,通过 DATA0 将编程数据、操作命令和地址信息从下载电缆传送到EPCQ-L器件。在使用下载电缆验证EPCQ-L器件的期间,DATA1将编程数据传输给下载电缆。
3.多器件AS配置
多器件AS配置如图1.78所示。
图1.78 多器件AS配置
1.7.2 PS配置
用于 PS 配置策略的 EPCQ-L 编程高级视图如图 1.79 所示。PS 配置使用外部主机。设计者可以使用微处理器、MAX II器件、MAX V器件或者主机PC作为外部设备。
图1.79 用于PS配置策略的EPCQ-L编程高级视图
设计者可以使用外部主机控制配置数据从外部存储器(如 Flash)到 FPGA 的传输。控制配置过程的设计驻留在外部主机中。
设计者可以将配置数据保存在编程器目标文件(progtammer object file,.pof)、.rbf、.hex或.ttf中,首先发送每个数据字节的LSB。例如,如果.rbf包含字节序列02 1B EE 01 FA,则发送到设备的串行数据必须是0100-0000 1101-1000 0111-0111 1000-0000 0101-1111。
设计者可以将PFL IP核与MAX II或MAX V器件一起使用,以从闪存器件中读取配置数据,并配置Cyclone 10 GX器件。
对于PC主机,使用Intel FPGA下载电缆将PC连接到设备。配置数据串行移入器件的DATA0引脚。
如果使用Quartus编程器并且使能CLKUSR引脚,则不需要为该引脚提供时钟源来初始化器件。
1.使用外部主机的PS单器件配置
在该模式下,配置Cyclone 10 GX器件,将器件连接到一个外部主机,如图1.80所示。通过将CONF_DONE和nSTATUS引脚连接在一起,器件可以同时初始化并进入用户模式。如果链路中的任何器件发生错误,则将停止配置整个链,并且必须重新配置所有器件。例如,如果链路中的第一个器件在 nSTATUS 引脚上标记错误,则会通过拉低 nSTATUS 引脚来复位整个链路。
如果使用相同的配置数据在链路中配置器件,则器件必须具有相同的封装和密度。
2.使用Intel FPGA下载电缆的PS单器件配置
在该模式下,配置Cyclone 10 GX器件,将器件连接到下载电缆,如图1.81所示。
图1.80 使用外部主机的PS单器件配置
图1.81 使用Intel下载电缆的PS单器件配置
3.使用多个配置数据
要使用多个配置数据在链中配置多个Cyclone 10 GX器件时,将器件连接到外部主机,如图1.82所示。
在器件配置完后,它的 nCEO 引脚释放为低电平,以激活链中下一个器件的 nCE 引脚。在一个时钟周期内,自动开始配置第二个器件。
图1.82 使用多个配置数据
注
默认,Quartus 软件禁止 nCEO 引脚。对于多器件配置链,必须在Quartus软件中使能nCEO引脚。否则,配置器件可能会失败。
4.使用一个配置数据
要使用一个配置数据在链中配置多个Cyclone 10 GX器件时,将器件连接到外部主机,如图1.83所示。
图1.83 使用一个配置数据
在该链路中,器件的nCE引脚连接到GND,允许这些器件的配置同时开始和结束。
5.使用PC主机和下载电缆
要配置多个Cyclone 10 GX器件,将器件连接到下载电缆,如图1.84所示。
默认,Quartus 软件禁止 nCEO 引脚。对于多器件配置链,必须在Quartus软件中使能nCEO引脚。否则,配置器件可能会失败。
注
在器件配置完后,它的 nCEO 引脚释放为低电平,以激活链中下一个器件的 nCE 引脚。为第二个器件自动开始配置。
6.PS配置时序
PS配置的时序如图1.85所示。
注
(1)上电后,器件在POR延迟时保持nSTATUS为低电平。
(2)上电后,配置前和配置期间,CONF_DONE为低电平。
(3)配置后,不要让 DCLK 浮动。可以将它驱动为高或低,以更方便的方式。
(4)配置后,DATA0 可作为用户的 I/O 引脚。该引脚的状态取决于在器件和引脚选项中的两用引脚设置。
(5)为确保配置成功,给器件发送整个配置数据。当器件成功接收到所有配置数据后,CONF_DONE 释放为高电平。在 CONF_DONE 变成高电平后,在DCLK发送两个额外的下降沿以开始初始化并进入用户模式。
(6)当使能选项位去使能INIT_DONE引脚配置到器件后,INIT_DONE变低。
(7)在nSTATUS拉高之前,不要将DCLK切换为高电平。
1.7.3 FPP配置
用于 FPP 配置策略的 Flash 高级视图如图 1.86 所示。FPP 配置策略使用一个外部主设备,可选的主设备有微处理器、MAX II器件或MAX V器件。这个策略是配置Cyclone 10 GX器件最快的方法。FPP配置策略支持8位、16位和32位的数据宽度。
可以使用外部主机来控制配置数据从外部存储器(如闪存)到FPGA的传输。控制配置过程的设计驻留在外部主机中。可以将配置数据存储在原始二进制文件(raw binary file,rbf)、十六进制(Intel格式)文件(.hex)或者表格文本文件(tabular text file,ttf)中。
图1.84 使用Intel FPGA 下载电缆的多个器件的PS配置
图1.85 PS配置的时序
图1.86 用于FPP配置策略的Flash编程高级视图
可以将PFL IP核与MAX II或MAX V器件一起使用,以从闪存器件读取配置数据并配置到Cyclone 10 GX器件。
注
在CONF_DONE引脚变高后,要求两个DCLK下降沿,以便在FPP配置中为未压缩核压缩的配置数据开始初始化设备。
1.单个器件配置
要配置Cyclone 10 GX器件,将器件连接到外部主机,如图1.87所示。
图1.87 FPP模式的单个器件配置
注
如果使用 FPP×8 配置模式,使用 DATA[7..0]引脚;如果使用 FPP×16配置模式,使用DATA[15..0]引脚;如果使用FPP×32配置模式,使用DATA[31..0]引脚。
2.使用多个配置数据配置多个器件
使用多个配置数据配置一个链路中的多个 Cyclone 10 GX 器件,将器件连接到外部主机,如图1.88所示。
3.使用一个配置数据配置多个器件
使用多个配置数据配置一个链路中的多个 Cyclone 10 GX 器件,将器件连接到外部主机,如图1.89所示。在该链路中,器件的nCE引脚连接到GND,允许同时开始和结束配置这些器件。
4.FPP配置时序
当DCLK到DATA[]的比值为1时的FPP配置时序如图1.90所示。
注
(1)上电后,器件在POR延迟时保持nSTATUS为低电平。
(2)上电后,在配置前和配置期间,CONF_DONE为低电平。
(3)配置后,不要让 DCLK 悬空。当配置完成后,将忽略 DCLK。如果需要,可将它切换到高或低。
(4)对于 FPP×16,使用 DATA[15..0];对于 FPP×8,使用 DATA [7..0]。配置后,DATA[31:0]可作为用户 I/O 引脚使用,该引脚的状态取决于引脚的双用途设置。
(5)为了确保配置成功,将整个配置数据发送到器件。当器件成功收到所有配置数据时,将CONF_DONE释放为高。在CONF_DONE变为高电平后,在 DCLK 上发送两个额外的下降沿以开始初始化并进入用户模式。
(6)在使能位使能 INIT_DONE 引脚配置到器件后,INIT_DONE 变为低。
(7)在nSTATUS拉高之前,不要将DCLK切换为高电平。
当DCLK到DATA[]的比值大于1时的FPP配置时序如图1.91所示。
图1.88 EPP模式使用多个配置数据配置多个器件
图1.89 EPP模式使用一个配置数据配置多个器件
图1.90 当DCLK当DATA[]的比值为1时的FPP配置时序
图1.90 当DCLK到DATA[]的比值大于1时的FPP配置文件
注
(1)上电后,器件在POR延迟时保持nSTATUS为低电平。
(2)上电后,在配置前和配置期间,CONF_DONE为低电平。
(3)在配置后,不要让DCLK悬空。可将它驱动为高或低。
(4)“r”表示DCLK到DATA[]的比值。对于使用解压缩和设计安全功能设置DCLK到DATA[]的比值。
(5)如果需要,暂停 DCLK 并保持为低电平。重启 DCLK 时,外部主机必须在发送第一个DCLK上升沿之前在DATA[31..0]引脚上提供数据。
(6)为了确保配置成功,将整个配置数据发送到器件。当器件成功收到所有配置数据时,将CONF_DONE释放为高。在CONF_DONE变为高电平后,在 DCLK 上发送两个额外的下降沿以开始初始化并进入用户模式。
(7)在使能位使能 INIT_DONE 引脚配置到器件后,INIT_DONE 变为低。
(8)在nSTATUS拉高之前,不要将DCLK切换为高电平。
1.7.4 JTAG配置
在Cyclone 10 GX器件中,JTAG指令优先于其他配置方案。JTAG是英文全称Joint Test Action Group(联合测试行动小组)的缩写,它是一种国际标准测试协议(IEEE1149.1 兼容),主要用于测试芯片的内部。
Quartus 软件生成一个 SRAM 对象文件(SRAM Object File,SOF),设计者可以使用Quartus 软件编程器中的下载电缆配置 JTAG。或者,使用带有.rbf 或 JAM 标准测试和编程语言(Standard Test and Programming Language,STAPL)格式文件(.jam)的 JRunner 软件,或者使用带有第三方编程器工具的JAM字节代码(JAM byte code,jbc)文件。
注
如果使用基于JTAG的配置来配置Cyclone 10 GX器件,则无法使用Cyclone 10 GX器件的解压缩或设计安全功能。Cyclone 10 GX器件上的芯片级复位(DEV_CLRn)和芯片级输出使能(DEV_OE)引脚不会影响JTAG边界扫描或编程操作。Intel FPGA下载电缆可支持1.5V/1.8V的VCCPGM电压,但是不支持1.2V的目标电源电压。
1.单个器件配置
要在 JTAG 链中配置单个器件,编程软件会将其他器件设置为旁路模式。在旁路模式下的器件,通过单个旁路寄存器将编程数据从TDI 引脚传输到 TDO引脚。配置数据在一个时钟周期后可用。
Quartus 软件使用 CONF_DONE 引脚验证通过 JTAG 接口的配置过程是否完成。当CONF_DONE 引脚为低电平时表示配置失败;当 CONF_DONE 引脚为高电平时表示配置成功。
当使用JTAG TDI接口串行传输配置数据后,TCK接口再驱动额外的1222周期以执行器件初始化操作。
要使用下载电缆配置Cyclone 10 GX器件,按图1.92所示设计电路。
图1.92 使用下载电缆配置器件
使用外部微处理器配置Cyclone 10 GX器件,按图1.93所示设计电路。设计者可以使用JRunner作为软件驱动程序。
2.多个器件配置
JTAG也可以配置链路上的多个器件,如图1.94所示。在JTAG多器件配置模式下,应遵守下面的规则:
(1)隔离CONF_DONE和nSTATUS引脚,允许每个器件独立进入用户模式。
(2)一个JTAG兼容头连接到JTAG链中的多个器件。链路中器件的个数仅受下载电缆驱动能力的限制。
(3)如果 JTAG 链中有 4 个或以上的器件,则使用板载缓冲器缓冲 TCK、TDI 和 TMS引脚。设计者也可以将其他具有JTAG支持的Intel FPGA连接到该链路中。
(4)当系统包含多个器件或使用JTAG边界扫描测试(Boundary Scan Testing,BST)电路测试系统时,JTAG链的器件编程是理想的选择。
图1.93 使用外部微处理器配置器件
图1.94 使用JTAG配置多个器件
1.7.5 配置流程
Cyclone 10 GX器件的配置过程如图1.95所示。
图1.95 Cyclone 10 GX器件的配置过程
注
除用于部分可重配置操作外,设计者可以通过将 nCONFIG 引脚拉低至少最小 tCFG的低脉冲来初始化重配置。当拉低该引脚时,nSTATUS和CONF_DONE引脚也被拉低,所有I/O引脚都连接到弱上拉。