
XJFlash 是一種基于 FPGA 的先進和創新方法,它使用 JTAG 對閃存進行高速系統內編程 (ISP) – 支持所有串行和并行閃存設備。XJFlash 最常見的用途是對用于配置 FPGA 的 SPI/QSPI NOR 閃存進行編程。
使用 XJFlash,您可以使用板上的 FPGA 實現閃存編程速度,比使用傳統邊界掃描技術的速度快 50 倍,通常達到閃存的最大速度。
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 還可用于滿足獨立編程要求,包括直接訪問 I2C 和 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 快速編程。
或者,可以使用處理器上的調試接口進行快速閃存編程——請聯系我們以了解您是否可以在您的板上使用這種方法。
