XJFlash 是一种基于 FPGA 的先进和创新方法,它使用 JTAG 对闪存进行高速系统内编程 (ISP) – 支持所有串行和并行闪存设备。XJFlash 最常见的用途是对用于配置 FPGA 的 SPI/QSPI NOR 闪存进行编程。
使用 XJFlash,您可以使用板上的 FPGA 实现闪存编程速度,比使用传统边界扫描技术的速度快 50 倍,通常达到闪存的最大速度。
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。
一个 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,伪随机数据文件。时间因闪光灯类型而异。
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,就无法使用 XJFlash。但是,如果可以将闪存连接到电路板上的接头或测试点,则可以使用XJAccelerator卡通过这些连接使用 XJFlash 快速编程。
或者,可以使用处理器上的调试接口进行快速闪存编程——请联系我们以了解您是否可以在您的板上使用这种方法。
联系我们
CONTACT INFORMATION
Windway Technology Hong Kong Limited
Phone: +852 695 952 92
Email: kuang@windway.cn
Add:ROOM 06 BLK A 23/F HOVER IND BLDG ,26-38 KWAI CHEONG RD KWAI CHUNG N.T
广州市风标电子技术有限公司
咨询热线:020 - 8600 3016 | 技术支持:15817074644
销售热线:18928802261 | 19868005704
公司邮箱:sales@windway.cn公司地址:广东省广州市黄埔区科珠路203号广东软件园F座401