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.
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
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.
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.
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ı
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.