SPI Flash Controller

Çoğu SPI flash denetleyicisi, tek satır sürücü kodu yazmadan önce sizi tek bir FPGA üreticisine ve tek bir flash bileşenine bağlar. RunX SPI Flash Controller ise tam tersi bir yaklaşımla tasarlanmıştır: dört bağımsız FPGA araç zincirinde doğrulanmış, sentezlenebilir tek bir SystemVerilog çekirdeği; AXI4-Lite register arayüzü üzerinden standart, çift (dual) veya dörtlü (quad) SPI bağlantısıyla seri NOR, NAND, EEPROM ve FRAM aygıtlarını sürer. Komut motoru opcode’dan bağımsızdır: sürücü, bir flash komutunu aşama türüne göre ayrılmış kısa bir segment listesi (opcode, adres, dummy, veri) olarak tanımlar ve motor bu listeyi sırayla işler. Dolayısıyla başka bir üreticinin aygıtına geçmek bir RTL değişikliği değil, yalnızca register yapılandırması işidir. Bu özet çekirdeği tanıtır; tam teknik tanım için Veri Sayfası (Datasheet) ve Kullanım Kılavuzu’na bakınız.

Özellikler

  • Tek RTL, dört bağımsız FPGA araç zinciri: üreticiye bağımlılık yok, sıfır vendor primitifi
  • Gerçek donanım üzerinde doğrulanmış; gerçek bir flash aygıtına karşı sıfır hata
  • Opcode’dan bağımsız komut motoru; herhangi bir SPI NOR, NAND, EEPROM veya FRAM aygıtını, parça başına yeniden tasarım gerektirmeden sürer
  • Yazma izni (write-enable) ve durum sorgulama (status polling) işlemleri donanım tarafından otomatik yapılır; yazılım meşgul-bekleme döngüsünde takılmaz
  • Tek bir parametrik çekirdekten standart, dual ve quad SPI hat modları
  • İsteğe bağlı bellek eşlemeli XIP penceresi: okuma ve isteğe bağlı tamponlu yazma (PROGRAM); donanımsal yazma tabanı (write floor) içerir
  • Tam AXI4-Lite entegrasyonu: kontrol düzlemi ve isteğe bağlı XIP penceresi
  • Yerleşik SFDP (JESD216) ile kendi kendine aygıt keşfi; aygıt başına sürücü yeniden yazımı gerekmez
  • 264 baytlık gönderme/alma FIFO’ları ve maskelenebilir altı kesme kaynağı
  • Tek saat alanı: CDC riski yok

1.1 Genel Bakış

RunX SPI Flash Controller, bir AXI4-Lite register arayüzünü standart, dual veya quad SPI üzerinden seri NOR flash, NAND flash, EEPROM veya FRAM aygıtına bağlar. Segment tabanlı komut çerçeveleme, segment sınırlarında chip-select’in tutulması, donanımsal otomatik write-enable ve otomatik durum sorgulama işlevlerini gerçekler; veri yolunu yazılıma küçük, sabit bir register kümesi ve bir çift FIFO olarak sunar.

Çekirdek, tek bir üst seviye modülün arkasında birlikte çalışan beş modül olarak teslim edilir: bir AXI4-Lite register kümesi (axil_regs), aşama çözümlemesini ve chip-select’i yöneten bir segment gezgini (seg_engine), otomatik write-enable/sorgulama için bir orkestrasyon katmanı (seq_orchestrator), bir üretici pin adaptörü (phy_wrap) ve okuma isteklerini, XIP_WRITE_ENABLE ile derlendiğinde ise tamponlu sayfa programlama yazmalarını karşılayan isteğe bağlı bir bellek eşlemeli pencere (xip_window). Şeffaf bir Verilog teslim sarmalayıcısı olan IP_spi_flash_controller.v, arayüzü aygıt pinlerine kadar taşır.

1.2 Temel Özellikler

  • Üreticiden bağımsız RTL: dört bağımsız FPGA araç zincirinde doğrulanmış, hiçbir yerde vendor primitifi yok
  • Segment tabanlı komut motoru: OPCODE / ADDRESS / DUMMY / DATA aşamaları; veri yolunda hiçbir opcode sabiti (literal) yok
  • AXI4-Lite slave: tam yazma ve okuma kanalları, bayt bazında yazma strobe’ları, eşlenmemiş/hizasız ofsetlerde SLVERR
  • Tek bir LANE_MODE parametresinden türetilen standart, dual ve quad SPI hatları
  • SPI saati, sistem saatinin programlanabilir bir bölümüdür (CLKDIV, en az 4’e bölme); 120 MHz sistem saatinde 30 MHz SPI saati silikon üzerinde doğrulanmıştır
  • Yapılandırılabilir opcode, bit konumu ve polarite ile donanımsal otomatik write-enable ve otomatik durum sorgulama
  • İkinci bir AXI4-Lite slave üzerinde isteğe bağlı XIP okuma penceresi
  • İsteğe bağlı XIP yazma (XIP_WRITE_ENABLE): aynı pencereye yapılan yazmalar 256 baytlık bir sayfada tamponlanır ve yapılandırılabilir sayıda yazmadan sonra ya da açık bir flush ile bir PROGRAM işi olarak gönderilir; write-enable, sayfa programlama ve meşgul sorgulama donanımda yürütülür. Yalnızca PROGRAM desteklenir (silme asla yapılmaz) ve donanımsal bir yazma tabanı (XIPWFLOOR), programlanabilir bir adresin altındaki yazmaları hiçbir SPI etkinliği oluşturmadan reddeder
  • 264 baytlık gönderme/alma FIFO’ları (parametrik) ve maskelenebilir altı kesme kaynağı
  • SFDP (JESD216) keşif dizisi ve ayrıştırma ofsetleri sürücü başlık dosyasında sağlanır

1.3 Hedef Uygulamalar

  • Gömülü ve endüstriyel tasarımlar için yüksek hacimli kalıcı depolama ve veri kaydı
  • Aygıtın kendi açıldığı flash üzerinde FPGA/SoC konfigürasyonu ve golden-image (güvenilir yedek imaj) saklama
  • Basit, önbelleksiz bellek eşlemeli okuma penceresi (XIP) arkasında yazılım veya varlık (asset) depolama; yazma penceresi üzerinden, önceden silinmiş flash’ta isteğe bağlı yerinde güncelleme
  • Aygıt başına sürücü yeniden yazımı yerine SFDP keşfiyle çok üreticili flash’a geçiş
  • Tek bir parametrik çekirdekten doğrulanmış tek, dual ve quad hat işlemi gerektiren tasarımlar

1.4 Taşınabilirlik

RunX SPI Flash Controller, üreticiden bağımsız bir soft IP çekirdeği olarak teslim edilir: vendor’a özgü hiçbir primitif içermeyen, sentezlenebilir SystemVerilog RTL’dir ve Xilinx, Altera, Lattice, Microchip araç zincirlerinde test edilmiştir.

1.5 Maksimum Frekans Tablosu

Maksimum frekans tablosu Ürün Özeti’nde (Product Brief) yer almaktadır.

Daha detaylı bilgi almak, sipariş vermek ve sorularınız için bizimle iletişime geçin:

info@run-x.com