Lumina sistemi
Lumina Lint · Statik denetimler

Tasarımın tamamını okuyan SystemVerilog lint.

Lumina Lint tasarımınızı bir simülatör gibi okur: dosya listeleri, include dizinleri, define'lar ve kütüphanelerle. Tasarımı elaborate eder ve yanlış olanı raporlar: hatalar, sentez sorunları, güvensiz geçişler ve ekibinizin kurallarına aykırılıklar. Her bulgunun sabit bir kural kimliği, bir önem derecesi, bir konumu ve dayandığı olgular vardır.

lumlintCONNECTED
$ lumlint -f rtl.f --top chip_top
rtl/fifo.sv:42:12: warning [SEM-001] implicit truncation: 8-bit value assigned to 4-bit 'count'
in: chip_top.u_dma.u_fifo
note: rtl/fifo.sv:30:3: declared here
# CI ve kod incelemesi için aynı bulgular
$ lumlint -f rtl.f --top chip_top --format sarif -o lint.sarif

Lumina Lint kılavuzundaki çıktı biçimi

Yüzlerce
kural
Kural paketleri
FPGA, ASIC ve size özel
Siz yazarken
editörünüzde
SARIF · JSON
CI için
Yetenekler

Lumina Lint ne yapar

Dosya dosya değil, elaborate edilmiş tasarım

Pek çok bulgu hiyerarşiye, saatlere ve bağlantılara bağlıdır. Portlardaki genişlik uyumsuzlukları, çoklu sürücüler, latch'ler ve kombinasyonel döngüler modüller arasında bulunur.

Kural paketleri

builtin:rtl-signoff sentez, yapı, reset ve durum makinesi kurallarını hataya yükseltir; builtin:fpga, FPGA dokuları için kontrol seti ve saat yapısı denetimleri ekler. Şirketinizin paketi bunları genişletir.

Kod yazmadan özel kurallar

İsimlendirme kalıpları, yasaklı yapılar, başlık metni, boyut sınırları ve "flop where reset == ''" gibi tasarım sorguları; hepsi bir TOML dosyasında.

Testbench kuralları da var

Sonucu denetlenmeyen randomize() çağrıları, UVM factory ve konfigürasyon hataları ve testbench kodunun tasarım kodundan ayrı tutulması.

Siz yazarken editörünüzde

Bir Language Server Protocol sunucusu: dosya açılırken, yazmaya ara verdiğinizde ve kayıtta bulgular, üzerine gelince kuralın açıklaması ve yerinde muafiyet ekleyen hızlı düzeltme.

CI için tasarlandı

Metin, JSON, SARIF ve HTML raporları; aynı girdi için bayt bayt aynı. Bir baseline sayesinde mevcut bir tasarım yalnızca yeni bulgularda başarısız olur.

Saat ve reset alanları

Aynı netlist üzerinde CDC ve RDC kuralları; SDC ya da XDC dosyaları RTL'e göre denetlenir. Ayrıntılar Lumina CDC sayfasında.

Planlanıyor

VHDL dil kuralları

VHDL tasarımları bugün saatler, resetler, geçişler ve yapı açısından RTL formları üzerinden denetleniyor; VHDL'e özgü dil kuralları planlanıyor.

Teknik ayrıntılar

Kuralların kapsadığı alanlar

Her kuralın sabit bir kimliği, varsayılan bir önem derecesi ve kendi parametreleri vardır; proje bazında açılabilir, kapatılabilir ya da hataya yükseltilebilir.

  • Doğruluk

    Genişlik uyumsuzlukları, signed ve unsigned karışımları, eksik case, blocking ve nonblocking atamaların yanlış kullanımı

  • Yapı

    Latch'ler, kombinasyonel döngüler, çoklu sürücüler, sürülmeyen bitler

  • Sentez

    Simüle edilen ama sentezlenmeyen yapılar; örneğin tasarım kodundaki gecikmeler ve initial blokları

  • Saatler ve resetler

    Kapılanmış ve üretilmiş saatler, reset yapısı ve polaritesi, güvensiz geçişler

  • Durum makineleri

    Ulaşılamayan durumlar ve çıkışı olmayan durumlar

  • Testbench

    Sonucu denetlenmeyen randomize() ve UVM factory ve konfigürasyon hataları

  • Stil ve isimlendirme

    Ekibinizin isimlendirme kalıpları ve kodlama kuralları

  • FPGA

    FPGA dokuları için kontrol setleri ile saat ve reset yapısı

Sorular

Sık sorulan sorular

HDL lint nedir?

Verilog, SystemVerilog ya da VHDL kaynak kodunun statik analizidir. Hataları, sentez sorunlarını ve stil sorunlarını simülasyon çalıştırmadan bulur; böylece regresyonda ya da laboratuvar masasında ortaya çıkmak yerine dakikalar içinde düzeltilirler.

Kendi lint kurallarımı ekleyebilir miyim?

Evet, kod yazmadan. İsimlendirme, yapı, metin, boyut ve tasarım sorgusu kuralları bir TOML dosyasında tanımlanır, bir kural paketiyle paylaşılır, yerleşik kurallarla birlikte listelenir ve aynı şekilde muaf tutulur.

Mevcut bir tasarımda lint'e nasıl başlarım?

Bir kez çalıştırın ve sonucu baseline olarak saklayın. Bundan sonra yalnızca yeni bulgular denetimi başarısız kılar; eski bulguları zamanla temizleyebilirsiniz.

Hangi editörlerde çalışıyor?

Language Server Protocol destekleyen her editörde. VS Code için Lumina eklentisi var; eklenti Lumina Sim hata ayıklayıcısını da içerir.

Lumina Lint FPGA tasarımlarını denetler mi?

Evet. builtin:fpga paketi, dokudaki kontrol setleri ile reset ve saat yapısına ilişkin kuralları açar; XDC dosyalarındaki saat ilişkileri de okunur.

Kendi tasarımınızı Lumina'da ilk siz çalıştırın.

Lansmandan önce küçük bir grup tasarım ekibiyle çalışıyoruz. Siz gerçek tasarımlarınızı çalıştırırsınız, bulduğunuz sorunları biz düzeltiriz; test senaryolarınız da her derlemenin geçmesi gereken testlerin parçası olur.

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ı