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引脚都连接到弱上拉。