Lumina sistemi
Hata ayıklama · Lumina Sim

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.

lumsim --debugCONNECTED
$ lumsim tb.sv --top tb --debug
# koşu 0 zamanından önce durur ve komut bekler
break rtl/fifo.sv:42 if full
continue
print tb.dut.u_fifo.count
watch tb.dut.u_fifo.wr_ptr
force tb.dut.stall 1
run 100ns

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
Yetenekler

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.

Planlanıyor

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.

Planlanıyor

Sürücüler ve yükler

Yanlış bir değerden, o değeri yazan sürece ve satıra geri gidin.

Teknik ayrıntılar

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

Sorular

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.

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ı