PRODUCTS / 产品详情
XJFlash — 基于FPGA的超快编程器
    发布时间: 2022-01-24 11:10    

XJFlash 是一种基于 FPGA 的先进和创新方法,它使用 JTAG 对闪存进行高速系统内编程 (ISP) – 支持所有串行和并行闪存设备。XJFlash 最常见的用途是对用于配置 FPGA 的 SPI/QSPI NOR 闪存进行编程。

使用 XJFlash,您可以使用板上的 FPGA 实现闪存编程速度,比使用传统边界扫描技术的速度快 50 倍,通常达到闪存的最大速度。

XJFlash — 基于FPGA的超快编程器

定制解决方案——自动生成

XJFlash 允许您为连接到板上的 FPGA 和 FPGA SoC(例如 Xilinx Zynq ®和 Intel Cyclone ® V)的闪存设备自动生成定制的编程解决方案。

FPGA 的功能被用来提供尽可能快的编程速度。XJFlash 自动为每个 FPGA/闪存组合生成定制设计,让您实现最佳编程时间,同时不需要您进行任何 FPGA 开发。

如果您的闪存连接到来自 Intel (Altera)、Xilinx、Microsemi 或 Lattice 的 FPGA,XJFlash 使用 FPGA 的标准 JTAG 端口为 SPI 编程器或并行闪存编程器提供在线编程替代方案。XJFlash 支持所有 SPI 模式(单比特、双比特、四比特、QSPI 和八进制)以及并行 NOR 闪存设备。

配置 XJFlash 时需要相关 FPGA 制造商工具的授权版本。免费版本对于许多设备来说已经足够了。

测试集成

XJFlash 与 XJTAG 开发系统的其余部分完全兼容。所有 XJFlash 编程都可以作为XJRunner边界扫描测试项目的一部分运行。

可配置闪存编程

无论您是需要对单个闪存设备进行编程,还是将多个设备串联起来,以扩大地址空间,或者并行,以制作更宽的数据总线,都可以使用 XJFlash 来加速您的编程操作。

定制开发

XJFlash 还可用于满足独立编程要求,包括直接访问 I²C 和 SPI 总线或自定义协议,如 Microchips ICSP。

所需的连接不需要来自目标板上的 FPGA。如果该板上的接头上提供协议信号,则应该可以使用 XJFlash 来实现快速编程,作为 XJTAG 解决方案的一部分。

 

XJFlash 示例时序

常规边界扫描的最短理论时间:35 分钟
XJFlash 总运行时间:10.5 秒至 32.6 秒

 

每次对闪存器件进行编程时,XJFlash 将自动执行四个阶段:

  初始化——连接到闪存的 FPGA 配置了目标板所需的 XJFlash 映像。示例时间:2.1 秒。

  擦除——可以使用两种算法之一擦除闪存。基本擦除将简单地擦除定义范围内的所有块(这可能是整个闪存或只是要编程的图像所需的空间)。更智能的擦除将利用读取闪存比擦除闪存更快的事实;因此,它从每个地址读取,并且仅在找到某些数据时才开始擦除。如果已知闪存在编程之前总是空白,则可以跳过此步骤。
示例时间 - 启用智能擦除:0.9 秒(设备已擦除)到 23 秒(完全编程设备)(受设备擦除时间限制)。

  程序——来自目标图像的数据通过其 JTAG 端口流入 FPGA。然后 FPGA 将此数据编程到连接的闪存中。可以在定义的偏移处指定和编程多个文件。如果只需要验证,则可以绕过此步骤。
示例时间:6.2 s(受设备编程速度限制)。

  验证——验证会根据指定文件检查闪存中的每个字节,确保没有数据位错误。如果只需要编程或擦除,则可以绕过此步骤。
示例时间:TCK 在 10 MHz 时为 1.8 s,TCK 在 20 MHz 时减少到 1.3 s。

这些示例时间用于将 2 MB 伪随机数据文件编程到 FPGA 的 SPI 配置 PROM 中的 Spartan-6 XC6SLX9。

使用 Xilinx Zynq ® -7000 系列 SoC的示例时序

一个 256 Mbit 的文件可以编程到 SPI NOR 闪存中,并在大约 46 秒内完成验证,具体取决于 TCK 速度和所使用的内存类型* ; 32 Mbit 的代码只需要 7 秒多一点。

32兆比特 7 秒

64兆比特 13 秒

128兆比特 24 秒

256兆比特 46 秒

添加一个初始擦除周期对于一个空的 256 Mbit 闪存仅增加 3.1 秒,或者对于一个完整的闪存增加 54 秒。对于 32 Mbit 设备,该时间分别下降到 0.4 秒和 6.5 到 9.2 秒之间。

* TCK = 66 MHz,伪随机数据文件。时间因闪光灯类型而异。

使用 Xilinx Zynq ® UltraScale+ ™系列 SoC的示例时序

256 Mbit 文件可以编程到 SPI NOR 闪存中,并在大约 42 秒内完成验证,具体取决于 TCK 速度和所使用的内存类型**;32 Mbit 的代码需要 7 秒。

32兆比特 7 秒

64兆比特 12 秒

128兆比特 22 秒

256兆比特 42 秒

添加一个初始擦除周期对于一个空的 256 Mbit 闪存仅增加 2 秒,或者对于一个完整的闪存增加 57 秒。对于 32 Mbit 设备,这分别下降到 0.3 s 和 6.9 s。

** TCK = 30 MHz,伪随机数据文件。时间因闪光灯类型而异。

 

我可以使用 XJFlash 吗?

为了使用 XJFlash,闪存设备上的所有数据、地址和控制信号都必须连接到目标板上的 FPGA。这可以是配置 PROM,或连接到任何通用 I/O 引脚的闪存设备。这些连接可以是直接的、间接的、专用的或共享的:

直接连接 - 可以

 

 

闪存直接连接到 FPGA。

间接连接 - 可以

 

闪存通过缓冲区连接到 FPGA一些地址信号与数据信号共享并通过锁存器连接。

在闪存和 FPGA 之间还有另一个可配置设备,例如 CPLD。

共享连接 - 可以

 

闪存以上述模式之一连接到 FPGA,但这些连接与另一个设备(例如处理器)共享。

无连接 - 可以设计更改)

 

如果您的设计包含一个 FPGA,但在所描述的任何配置中都没有连接闪存,则可以使用 FPGA 上的备用引脚来建立与闪存的连接。这些连接不会用于电路板的任务模式,但允许您使用 XJFlash 执行快速闪存编程。如果您的 FPGA 已经连接到与闪存相同的地址/数据总线,那么这可能不需要很多额外的信号。

没有 FPGA – 不可直连

 

遗憾的是,如果没有 FPGA,就无法使用 XJFlash。但是,如果可以将闪存连接到电路板上的接头或测试点,则可以使用XJAccelerator卡通过这些连接使用 XJFlash 快速编程。

或者,可以使用处理器上的调试接口进行快速闪存编程——请联系我们以了解您是否可以在您的板上使用这种方法。