RTL'de yazılımdaki gibi adım adım ilerleyin. Yalnızca hatayı değil, nedenini bulun.
Lumina Sim bir satırda durur, süreçler arasında adım adım ilerler, sinyalleri yazdırır, zorlar ve değişimlerini izler; terminalde ya da Debug Adapter Protocol üzerinden editörünüzde. Dalga formları FST ya da VCD olarak yazılır; uzun bir koşu istediğiniz anda kaydedilip oradan yeniden başlatılabilir.
Lumina Sim kılavuzundaki hata ayıklayıcı komutları
- DAP
- VS Code ve diğer editörler
- FST · VCD
- dalga formları
- Koşullu
- kesme noktaları ve izlemeler
- Checkpoint'ler
- koşunun ortasından yeniden başlatın
Neler yapabilirsiniz
Terminalde bir hata ayıklayıcı
Koşullu kesme noktaları; step, next ve finish; değer yazdırma ve atama, force ve release, izlemeler ve süreçlerin listesiyle her birinin nerede olduğu.
Aynı hata ayıklayıcı editörünüzde
lumsim --dap bir Debug Adapter Protocol sunucusudur: koşullu ve isabet sayılı kesme noktaları, adım adım ilerleme, çağrı yığını, değişkenler ve izleme ifadeleri; VS Code'da ya da DAP destekleyen her editörde.
Dalga formları
$dumpvars kapsam ve derinlikleriyle FST ve VCD, $dumpports ile genişletilmiş VCD ve VCD'den birkaç kat küçük FST dosyaları. Her FST ya da VCD görüntüleyici açar.
Script'le okunabilen dalga formları
lumwave, bir dump dosyasının hiyerarşisini ve herhangi bir sinyalin bir zaman aralığındaki değerlerini script'ler ve yapay zekâ ajanları için JSON olarak yazdırır.
Assertion izleri
Her hata; assertion'ın action bloğu onu ele alsa bile konumu, zamanı ve mesajıyla yazdırılır.
Checkpoint'ler
Uzun bir açılış ya da reset dizisini bir kez çalıştırın, durumu saklayın ve her denemeyi kendi seed'i, plusarg'ları ve dalga formu dosyasıyla oradan başlatın.
Dalga formu ve kaynak tek görünümde
Dalga formları, imleç zamanındaki değerleriyle kaynak kod ve hiyerarşi tek bir editör penceresinde; lint bulguları da ilgili sinyallerin yanında.
Sürücüler ve yükler
Yanlış bir değerden, o değeri yazan sürece ve satıra geri gidin.
Hata ayıklayıcı komutları
- break <file>:<line> [if <cond>]
Bir sinyal üzerinde isteğe bağlı koşulla kesme noktası
- continue, run <time>
Çalışmaya devam eder ya da belirli bir süre çalışır
- step, next, finish
Tek deyim; çağrıların üzerinden tek deyim; geçerli alt programdan çıkış
- print <path>
Bir sinyal ya da değişken
- set <path> <value>
Değer atar, X dahil
- force, release
Bir sinyali zorlar ve serbest bırakır
- watch <path>...
Sinyaller değiştiğinde durur
- info threads, info where, info locals
Süreçler, geçerli sürecin konumu ve değişkenleri
Sık sorulan sorular
SystemVerilog kodunda kesme noktası koyabilir miyim?
Evet; herhangi bir satıra, bir sinyalin 1 olması ya da bir değere eşit olması gibi isteğe bağlı bir koşulla. Çalışma orada durur; deyim deyim ilerleyebilir, değerleri yazdırıp değiştirebilir ve devam edebilirsiniz.
VS Code'da çalışır mı?
Evet. lumsim --dap bir Debug Adapter Protocol sunucusudur; Lumina eklentisiyle bir launch konfigürasyonu simülasyonu hata ayıklayıcı altında başlatır. DAP destekleyen diğer editörler de aynı sunucuyu kullanır.
Hangi dalga formu formatları yazılıyor?
FST ve VCD, ayrıca $dumpports ile genişletilmiş VCD. FST, VCD'den birkaç kat küçüktür ve daha hızlı yazılır.
Simülasyon checkpoint'i nedir?
Bir koşunun seçilen bir anda kaydedilmiş tam durumudur. Sonraki koşular bu durumu geri yükler ve kendi plusarg'ları, seed'i ve dalga formu dosyasıyla devam eder; böylece uzun bir açılış ya da reset dizisi yalnızca bir kez koşar.
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.