Lumina Blocks
Veri sıkıştırma
Önizleme · v0.1.0

LM-LZS-D

LZ4/Snappy veri açıcı

  • Saat başına 8 bayta kadar
  • Otomatik format tespiti
  • Hangi denetimin başarısız olduğunu söyleyen hatalar
  • Her FPGA'ya taşınabilir

LM-LZS-D, FPGA ve SoC tasarımları için kayıpsız bir açma (decompression) bloğudur.

Motor, LZ4 ve Snappy stream'lerini donanımda açar; 64 kB geçmiş penceresi ve saat başına sekiz bayta kadar açılmış veri üreten bir veri yolu vardır. LZ4 frame formatının tamamını, Snappy ham stream formatını ve chunk başına maskelenmiş CRC-32C'siyle Snappy framing formatını kabul eder. Format tespiti otomatiktir.

Blok, üreticiden bağımsız SystemVerilog olarak teslim edilir ve AMD, Altera ve Efinix cihazlarında aynı kaynaktan derlenir. AMBA AXI arayüzleri ve bir register haritası içerir; hedef platforma hızlı entegrasyon için ANSI C sürücüleri sağlanır.

Ölçülmüş FPGA sonuçları

Ürün top'ı, bağlam dışı (out of context) ve hedef saatte kısıtlanmış olarak. AMD ve Efinix LUT, Altera ALM raporlar; ikisi hiçbir zaman birleştirilmez.

CihazKonfigürasyonMantıkFFBellekDSPFmax
Altera Agilex 3A3CW135BM16AE6S · quartus-pro 26.1.1DP_W=64, LZ4_EN=1, SNAPPY_EN=14.527 ALM2.905512 Kb M20K0165,1 MHzhedef 165
AMD Kintex UltraScale+xcku3p-ffva676-1-e · vivado 2026.1DP_W=64, LZ4_EN=1, SNAPPY_EN=16.309 LUT2.02416 BRAM0254,2 MHzhedef 250
AMD Kintex UltraScale+xcku3p-ffva676-1-e · vivado 2026.1DP_W=64, LZ4_EN=1, SNAPPY_EN=1, SNAPPY_FRAMING_EN=17.208 LUT2.13916 BRAM0250,7 MHzhedef 250
Efinix Titanium Ti375Ti375N1156 · efinity 2026.1DP_W=64, LZ4_EN=1, SNAPPY_EN=112.646 LUT5.54064 RAM1232,1 MHzhedef 220

Özellikler

Formatlar

  • LZ4 frame formatı: magic, descriptor, blok boyutları, isteğe bağlı içerik boyutu, başlık ve içerik checksum'ları, EndMark, atlanabilir ve legacy frame'ler
  • Snappy ham stream: giriş varint'i, literal ve copy elemanları
  • Snappy framing: stream tanımlayıcısı, dört ayrılmış aralığın tamamı dahil chunk tablosunun tamamı ve chunk başına maskelenmiş CRC-32C
  • Otomatik format tespiti ya da register ile tek bir formata sabitleme

Checksum'lar

  • LZ4 başlık, blok ve içerik checksum'ları için xxHash-32
  • Snappy framing chunk'ları için maskelenmiş CRC-32C

Motor

  • Saat başına 8 bayta kadar açılmış veri üreten yapılandırılabilir veri yolu
  • Hizasız kopyaları tam hızda yapmak için bayt bazında bank'lanmış, 64 kB'a kadar geçmiş penceresi
  • Geçmiş penceresinde isteğe bağlı SECDED hata düzeltme

Hata raporlama

  • Hatalar bir sınıf ve bir kod taşır: yalnızca bir denetimin başarısız olduğunu değil, hangisinin olduğunu söyler
  • Hata bayrağı register'ın yanı sıra çıkış stream'inde de taşınır
  • Sözlüklü bir frame, olmayan bir sözlükle çözülmek yerine adıyla reddedilir

Entegrasyon

  • AMBA AXI4-Lite kontrol, AXI4-Stream giriş ve çıkış
  • Birbirinden bağımsız giriş ve çıkış genişlikleri
  • İki teslim top'ı: eksiksiz AXI ürünü ya da kendi yapınız için yalın açıcı
  • ANSI C sürücüsü, UVM RAL, IP-XACT, SystemRDL register tanımı

Uygulamalar

  • Depolama ve dosya sistemi açma işlemini donanıma aktarma
  • Ağ ve RPC payload açma
  • Log ve telemetri verisi alımı
  • Firmware ve konfigürasyon imajı açma
  • Veritabanı sayfa ve sütun açma

Blok diyagramı


Arayüzler

ArayüzTürGenişlikTaşıdığı
s_axilAXI4-Lite slave32 bit veri, 7 bit adresyetenekler, kontrol, komut, durum, hata çifti, sayaçlar
s_axisAXI4-Stream sinkIN_W, tkeep, tlastsıkıştırılmış stream
m_axisAXI4-Stream sourceOUT_W, tkeep, tlastaçılmış stream
m_axis_tuser[0]source1 bitveriyle birlikte taşınan hata bayrağı
irqseviye1 bittamamlanma ve hata olayları

Hata bayrağı çıkış stream'inde taşınır. Bozuk bir stream tespit eden bir açıcı genellikle onun bir kısmını çoktan çıkışa vermiştir; yalnızca bir register okuyan bir tüketici, az önce aldığı baytların doğru olup olmadığını bilmek için vuruşlar arasında polling yapmak zorunda kalırdı. tuser[0], alıcının başarısız bir stream'i bus erişimine gerek kalmadan ve yarış koşulu olmadan atmasını sağlar.


Hata raporlama

Hatalar bir sınıf ve bir kod taşır; böylece bir log satırı başarısız olan denetimi adıyla söyler:

SınıfKodlar arasında
codingtanınan bir stream değil, hatalı sürüm, ayrılmış alan dolu, hatalı Snappy girişi, fazladan baytlar
sizebildirilen boyut imkânsız, blok boyutu uyuşmazlığı, içerik boyutu uyuşmazlığı
crcLZ4 başlık / blok / içerik checksum'ı, Snappy framing chunk CRC-32C'si
truncationstream bir elemanın ortasında bitti
unsupportedsözlük istendi

Bant genişliği

throughput  =  DP_W bytes  x  f_clk    for copy-dominated streams

DP_W saat başına 8 bayta kadar yapılandırılabilir. Ulaşılan hız, stream'deki literal ve eşleşme karışımına bağlıdır; cnt_in, cnt_out ve cnt_cycles sayesinde host, datasheet'teki bir değere güvenmek yerine hızı kendi trafiği üzerinde ölçebilir.


Konfigürasyon

ParametreTürEtkisi
DP_Welaborationsaat başına açılmış bayt, 8'e kadar
IN_W, OUT_Welaborationbirbirinden bağımsız stream genişlikleri
HIST_KBelaboration64 kB'a kadar geçmiş penceresi boyutu
LZ4_EN, SNAPPY_ENelaborationderlenen formatlar
SNAPPY_FRAMING_ENelaborationSnappy framing katmanı
CHECKSUM_EN, ECC_ENelaborationchecksum doğrulama, pencere SECDED
format seçimiçalışma zamanıotomatik ya da sabitlenmiş

Kaynaklar ve performans

Her hedef cihaz için kaynak kullanımı ve maksimum saat frekansı bağlam dışında (out of context) ölçülür ve bu sayfadaki ölçülmüş sonuçlarda hedef bazında yayımlanır. AMD ve Efinix satırları LUT, Altera satırları ALM raporlar; ikisi hiçbir zaman birleştirilmez.


Teslimat içeriği

Öğeİçerik
RTLparametrik, üreticiden bağımsız SystemVerilog
Modelbit doğruluğunda C++ modeli
Register'larSystemRDL kaynağı ve üretilmiş altı dışa aktarım
DoğrulamaUVM RAL, formal property wrapper'ları, derlem ve vektör sürücüleri
Yazılımüretilmiş başlık dosyası ve JSON ile ANSI C referans sürücüsü
PaketlemeIP-XACT, IEEE 1685-2022
Gerçeklemeher FPGA üreticisi için çalıştırılabilir akış script'i, dosya listesi, SDC
Dokümantasyonentegrasyon kılavuzu

Gizlilik ayarları

Bu sitenin neleri kullanabileceğini seçin. Kararınızı her sayfanın altındaki Gizlilik ayarları bağlantısından dilediğiniz zaman değiştirebilirsiniz.

Sitenin çalışması için gerekenler ve burada yaptığınız seçimin kaydı. Kayıt tarayıcınızda tutulur; çerez kullanılmaz.

Her zaman açık

Ziyaretleri saymamıza ve hangi sayfaların işe yaradığını görmemize olanak tanır; reklam ya da siteler arası takip içermez. Şu anda hiçbir analitik aracı kullanmıyoruz, yani seçiminiz ne olursa olsun hiçbir şey yüklenmez.

Çerez politikası · Gizlilik politikası