Testlerinizin neye ulaştığını ve neye hiç dokunmadığını bilin.
Kapsam, koşu sırasında Lumina Sim tarafından toplanır ve koşular arasında birleştirilen bir veritabanına yazılır; bin farklı seed'le koşan bir regresyon tek bir yanıt verir. Fonksiyonel, assertion ve kod kapsamı aynı simülasyondan çıkar; kapsanmayan her şeyin raporuyla birlikte.
Kapsam kılavuzundaki komutlar
- Fonksiyonel
- covergroup'lar ve cross'lar
- Satır · dal · toggle
- kod kapsamı
- Birleştirilir
- koşular arasında
- IEEE 1800 madde 40
- testbench'ten kapsam kontrolü
Neler ölçülür
Fonksiyonel kapsam
Değer, geçiş, wildcard, ignore ve illegal bin'leri, seçenekleri ve örnek bazında birleştirmesiyle covergroup'lar, coverpoint'ler ve cross'lar. $get_coverage aynı sayıları koşu sırasında verir.
Assertion kapsamı
Her eşzamanlı assertion, assume ve cover için: denemeler, başarılar, boş geçişler (vacuous pass), başarısızlıklar ve cover isabetleri.
Satır ve dal
Deyimler ile her if ve case'in her kolu; else ya da default olmayan yerlerde "hiçbiri seçilmedi" için ayrı bir kol.
Toggle
Her değişkenin ve net'in her biti; hem yükselip hem düştüğünde kapsanmış sayılır. Tek bir zaman adımı içindeki glitch'ler toggle sayılmaz.
Koşular arasında birleştirilir
Aynı tasarımın koşuları tek bir veritabanında toplanır. Rapor kapsananları ve ayrıntı seçeneğiyle kapsanmayan her şeyi listeler.
Testbench'ten kontrol
$coverage_control, $coverage_get ve $coverage_get_max ile kapsamı kapsam bazında başlatın, durdurun, sıfırlayın ve okuyun.
İfade ve koşul kapsamı
Bir karardaki her terimin, sonucu tek başına her iki yönde değiştirdiğinin gösterilmesi: emniyet kritik akışların istediği ölçüt.
FSM kapsamı ve test sıralaması
Tasarımda bulunan her durum makinesi için ulaşılan durumlar ve gerçekleşen geçişler; testler de ekledikleri kapsama göre sıralanır.
Kapsam türleri
- FonksiyonelMevcut
Covergroup'lar, coverpoint'ler, cross'lar ve her tür bin
- AssertionMevcut
Denemeler, başarılar, boş geçişler, başarısızlıklar, cover isabetleri
- SatırMevcut
Deyimler, satırları ve her dal kolu
- ToggleMevcut
Her değişkenin ve net'in her biti, yükselen ve düşen
- İfade · koşulPlanlanıyor
Bir karardaki her terim, tek başına ve kararı veren terim olarak
- FSMPlanlanıyor
Ulaşılan durumlar ve gerçekleşen geçişler
- SıralamaPlanlanıyor
En çok kapsam ekleyen testler
Sık sorulan sorular
Fonksiyonel kapsam ile kod kapsamı arasındaki fark nedir?
Kod kapsamı RTL'in hangi bölümlerinin çalıştırıldığını ölçer: satırlar, dallar, toggle'lar. Fonksiyonel kapsam ise doğrulama planınızdaki senaryoların, covergroup'larda yazıldığı biçimiyle gerçekleşip gerçekleşmediğini ölçer. Bir tasarım ikisine de ihtiyaç duyar: kod kapsamı hiçbir testin ulaşmadığı RTL'i, fonksiyonel kapsam da kimsenin test etmediği özellikleri bulur.
Çok sayıda simülasyon koşusunun kapsamını birleştirebilir miyim?
Evet. Her koşu bir veritabanı yazar; merge aynı tasarımın koşularındaki sayıları toplar, report da özeti ve hâlâ kapsanmayan her şeyi yazdırır.
MC/DC benzeri kapsam destekleniyor mu?
Bir karardaki her terimin sonucu hem 0 hem 1 olarak belirlediğinin gösterilmesini isteyen ifade kapsamı planlanıyor. Bu, DO-254 ve ISO 26262 projeleri gibi emniyet kritik akışların istediği kapsam ölçütüdür.
Şifreli IP'nin kapsamı ölçülür mü?
Hayır. IEEE 1735 ile korunan IP'nin deyimleri ve sinyalleri ölçülmez; böylece içindeki hiçbir şey açığa çıkmaz.
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.