易灵思Titanium 系列配置
关于配置 Titanium 系列 FPGA
- 本文档介绍如何配置 Titanium 系列 FPGA。这些 FPGA 包含易失性的配置 RAM(CRAM)—— 用户必须在上电后、核心进入正常工作前,通过比特流将所需的逻辑功能配置到 CRAM 中。
- 比特流大小
比特流的大小取决于你选择的 FPGA 型号,以及在 Efinity 软件中设置的配置参数,单镜像支持的最大配置比特数
Efinity 软件会自动压缩比特流,因此典型设计的比特流大小约为表中最大大小的 50%。
注意:如果使用了 Titanium 系列的任何安全功能,软件将无法压缩比特流。
多镜像的比特流大小(Uncomp.= 未压缩;Comp.= 已压缩)
配置时间:
- FPGA 的配置时间取决于配置时钟频率和数据总线宽度。要估算特定 FPGA 的配置时间,请使用以下公式:
- 配置时间 = 比特流大小 / (配置时钟频率 X 数据总线宽度)
规划器件引脚分配
- 主动和被动配置模式在配置过程中会使用多功能引脚。配置完成后,这些多功能引脚可用于通用用途。
- JTAG 配置会占用专用引脚,这些引脚无法用于其他功能。
- 配置模式还会影响包含配置引脚的 I/O 组的电压限制。
注意:在某些情况下,设计者可能希望在用户模式下将某个多功能配置引脚用作输出引脚,而该引脚在配置期间由外部器件驱动。这种情况下,在器件进入用户模式、用户逻辑开始驱动该引脚之前,配置期间驱动该引脚的外部器件必须将其置为三态。否则,驱动器会发生冲突,可能损坏引脚。
配置引脚
- 部分配置引脚是专用的,部分是双用途的:
- 专用引脚无法用作通用 I/O;
- 配置期间,需按照所用配置模式的要求使用双用途引脚;配置完成后(进入用户模式),这些引脚可作为通用 I/O 使用;
- 专用配置引脚,这些引脚在配置完成后也无法用作通用 I/O;
除 TCK 和 TDO 外,所有引脚在配置模式下内部均为弱上拉
| 引脚 | 方向 | 描述 | 外部弱上拉 / 下拉要求 |
|---|---|---|---|
| CDONE | I/O | 配置完成状态引脚。CDONE 是开漏输出;需连接外部上拉电阻至 VCCIO。当 CDONE=1 时,表示配置完成,FPGA 进入用户模式。可将 CDONE 拉低后释放,以同步 FPGA 重新进入用户模式 | 上拉 |
| CRESET_N | 输入 | 低有效触发引脚,用于 FPGA 复位和重配置。需将 CRESET_N 拉低至少 tCRESET_N 时长后再释放(从低变高),以触发 FPGA 重配置。此引脚并非系统复位引脚 | 上拉 |
| TCK | 输入 | JTAG 测试时钟输入。上升沿加载施加在 TAP 输入引脚(TMS 和 TDI)的信号;下降沿将信号通过 TAP 的 TDO 引脚输出 | 上拉 |
| TMS | 输入 | JTAG 测试模式选择输入。此 I/O 引脚的信号序列控制测试逻辑操作。信号值通常在 TCK 的下降沿变化。TMS 默认是弱上拉:当无外部源驱动时,测试逻辑会识别为逻辑 1 | 上拉 |
| TDI | 输入 | JTAG 测试数据输入。此串行输入的数据流会根据 TMS 此前选择的序列,被送入指令寄存器或测试数据寄存器。通常,TDI 的信号状态在 TCK 下降沿变化;而寄存器移位(接收上升沿的信号值)时,TDI 默认是弱上拉:当无外部源驱动时,测试逻辑会识别为逻辑 1 | 上拉 |
| TDO | 输出 | JTAG 测试数据输出。此串行输出是测试逻辑(来自指令寄存器或测试数据寄存器)的数据,具体取决于 TMS 此前选择的序列。移位输出的内容由所发出的指令决定。TDO 的信号状态在 TCK 下降沿变化。当无数据通过器件移位时,TDO 会被置为无效驱动状态(如高阻) | 上拉 |
| JTAG_VCCIO_SEL | 输入 | JTAG 电压选择引脚。此引脚会影响其所在 I/O 组的电压。需为该组供电 VCCIO33_<组名>,或接 1 kΩ 外部电阻到地并供电 1.8V,以在 1.8V 下使用 JTAG。将此引脚浮空,默认使用 3.3V 或 2.5V 的 JTAG。对于 Ti85、Ti135 FPGA,JTAG_VCCIO_SEL 所在组为 BR1;对于 Ti165、Ti240、Ti375 FPGA,所在组为 BR4 | 上拉 |
- 双用途配置引脚,在用户模式下(配置完成后),这些双用途引脚可作为通用 I/O 使用;
| 配置功能 | 方向 | 描述 | 外部弱上拉 / 下拉要求 |
|---|---|---|---|
| CBSEL[1:0] | 输入 | 多镜像配置选择引脚。单镜像比特流配置或内部重配置(远程更新)时,此功能不可用。将 CBSEL [1:0] 连接到对应镜像的外部电阻:00 对应镜像 1;01 对应镜像 2;10 对应镜像 3;11 对应镜像 4;0:连接外部弱下拉电阻;1:连接外部弱上拉电阻 | 上拉或下拉 |
| CCK | I/O | 被动 SPI 配置时钟,或主动 SPI 输出配置时钟 | 若外部负载需要,可选上拉 |
| CDIn | I/O | SPI 配置的数据输入。n的取值为 0~31,取决于 SPI 配置的数据宽度。CDI0 在 x1 主动配置模式下是输出,在其他所有主动配置模式下是双向引脚。CDI4 在 x4 主动配置模式下是双向引脚,在 x8 主动配置模式下是菊花链引脚。在多比特菊花链连接中,CDI [31:0] 连接到并行数据总线 | 若外部负载需要,可选上拉 |
| CSI | 输入 | 片选。0:FPGA 未被选中 / 使能,不会被配置;1:所有配置模式下选中 FPGA;Ti35、Ti60 FPGA 在 JTAG 配置模式下需要此设置。此引脚在部分小封装(如 F100S3F2、F100)中未引出。配置期间 CSI 必须保持高电平 | 上拉 |
| CSO | 输出 | 片选输出。配置完成后断言。将此引脚连接到下一个 FPGA 的 CSI 引脚,用于菊花链配置。此引脚在部分小封装(如 F100S3F2、F100)中未引出 | - |
| NSTATUS | 输出 | 指示配置错误。当 FPGA 驱动此引脚时,说明存在器件不匹配或比特流 CRC 校验失败 | - |
| SSL_N | I/O | SPI 配置模式选择。FPGA 在复位解除时(即 CRESET_N 从低变高)检测此引脚的值。0:被动模式;连接外部弱下拉电阻;1:主动模式;连接外部弱上拉电阻;在主动配置模式下,SSL_N 是闪存器件(CDI0~CDI3)的低有效片选 | 上拉或下拉 |
| SSU_N | 输出 | x8 主动配置模式(双四路模式)下,对上层闪存器件(CDI4~CDI17)的低有效片选。在 W64、V64、F100S3F2 或 F100 封装中不可用 | 若外部负载需要,可选上拉 |
| EXT_CONFIG_CLK | 输入 | 低有效测试模式使能信号。置 1 以禁用测试模式。在所有配置模式下,需依赖外部弱上拉或将此引脚驱动为高电平 | 上拉 |
FPGA 配置模式
选择配置模式,每个配置接口对应一种或多种配置模式及总线宽度
- 通过在SSL_N和TEST_N输入引脚上设置相应电平条件来选择配置模式。(SSU_N引脚可为任意值。)
- 在 FPGA 进入用户模式前,不要切换模式引脚的电平。
SPI 硬件设置
若未进行任何连接,默认模式是串行 x1 SPI 主动模式关于 SPI 时钟与采样
SPI 接口时钟与采样
注意:请参考数据手册中的建立时间和保持时间,根据你的时序预算确保系统时序收敛。
微处理器或微控制器可以在接口空闲时设置 SPI 时钟极性(CPOL 位)和时钟相位(CPHA 位),根据这两个位的设置,会产生四种模式。在对 FPGA 编程时,请在微处理器 / 微控制器中使用模式 3。
SPI 时钟极性与相位模式
Efinix 在 SPI 被动模式下使用模式 3,即所有 Titanium 系列 FPGA 器件的 CPOL 位 = 1、CPHA 位 = 1。
SPI 时钟极性与相位模式图
(CPOL 位,CPHA 位) 对应模式编号:(0,0)= 模式 0;(0,1)= 模式 1;(1,0)= 模式 2;(1,1)= 模式 3。
SPI 主动模式
主动 SPI 配置模式既可以读取标准的 1 位串行 SPI 闪存器件,也可以读取支持 x2 和 x4 快速输出读取操作的闪存器件 —— 这些模式的速度比标准 1 位 SPI 接口成比例地更快。
注意:Titanium Ti35 和 Ti60 FPGA 仅支持采用 3 字节寻址模式的 SPI 闪存进行配置。
为了实现更快的加载速度,Titanium FPGA 还支持 x8 模式,该模式需使用两个相同的 SPI 闪存器件。
主动模式指令
注意:需要设计电路来控制 CRESET_N 引脚,以满足 tCRESET_N 的时序要求。
X1主动模式
- 外部上拉是可选的,除非外部负载有要求。
- 仅当在 Efinity 项目编辑器的比特流生成中选择 “外部时钟” 作为时钟源时,才将 EXT_CONFIG_CLK 连接到外部时钟源。
X2主动模式
- 外部上拉是可选的,除非外部负载有要求。
- 在 x2 模式下,CDI0 引脚是双向数据 I/O 引脚。
- 仅当在 Efinity 项目编辑器的比特流生成中选择 “外部时钟” 作为时钟源时,才将 EXT_CONFIG_CLK 连接到外部时钟源。
X4主动模式
- 外部上拉是可选的,除非外部负载有要求。
- 在 x4 模式下,CDI0 引脚是双向数据 I/O 引脚。
- 仅当在 Efinity 项目编辑器的比特流生成中选择 “外部时钟” 作为时钟源时,才将 EXT_CONFIG_CLK 连接到外部时钟源。
X8主动模式
- 外部上拉是可选的,除非外部负载有要求。
- 在 x8 模式下,CDI0 引脚是双向数据 I/O 引脚。
- 仅当在 Efinity 项目编辑器的比特流生成中选择 “外部时钟” 作为时钟源时,才将 EXT_CONFIG_CLK 连接到外部时钟源。
时序
FPGA 提供配置时钟,并通过主动 SPI 引脚发送指令,与外部闪存进行交互。FPGA 上电后,SSL_N被外部上拉为高电平,FPGA 通过 SPI 引脚进入主动 SPI 配置模式。流程如下:
将SSL_N拉低以唤醒外部 SPI 闪存,启动配置;
通过驱动CDI0发送 “断电唤醒指令”,唤醒外部 SPI 闪存;
等待至少 30 μs;
发送 “快速读取命令”,从地址 24’h000000 或 32’h00000000 读取 SPI 闪存的内容;
可选操作:配置完成后,FPGA 发送 “深度断电指令”,强制 SPI 闪存进入深度断电状态;
SPI主动(X1)配置
- 波形展示了以下阶段的信号状态:上电→初始编程→用户模式→二次编程→再次进入用户模式;
- JTAG 通道信号(TCK、TMS等):配置期间保持无效状态;
SPI 主动(x1)配置(详细视图、SPI 通道的详细时序)
- 有关上电细节,请参考 Titanium 数据手册中的 “上电序列”。
- 重要提示:配置期间,JTAG 引脚必须保持无效状态。
- 重要提示:若 FPGA 使用内部振荡器作为配置时钟源(默认),则配置期间外部配置时钟引脚必须保持无效状态。