Zephyrnet Logosu

Kadans Kapsamı komutları, kapsam kapatma alıştırmasında manuel çabaları nasıl çözer?

Tarih:

Bu makale, ilgili örnekler ve ek temel özelliklerle birlikte bunları kullanmak için ayrıntılı adımlar içeren bazı güçlü kadans kapsamı anahtarlarını açıklar.

Güçlü Kadans Kapsama Komutları

1. Kapsamı Aç/Kapat'ta Akıllı İstisnalar

In Tasarım Doğrulaması Akış, kapsama kapanma aşaması sırasında, geçiş kapsamı hariç tutma faaliyeti daha fazla zaman tüketme eğilimindedir ve sinyalleri hariç tutmak için manuel çaba gerektirir. Örneğin, aynı sinyalin çok sayıda örnekten/modülden hariç tutulması gerekiyorsa, sinyali kullanıldığı her bir örnek/modülden manuel olarak hariç tutmalıyız. Aşağıda açıklanan komutlardan herhangi birini kullanarak sinyali her örnekten/modülden manuel olarak hariç tutmak gibi bu gereksiz aktiviteden kaçınmak mümkündür:

  • set_toggle_excludefile
  • set_toggle_smart_rafinement

set_toggle_excludefile

Giriş – Bu komut, bahsedilen sinyallerin geçiş kapsamını tasarımdan verimli bir şekilde çıkarmak için kullanılır. Dışlanacak sinyaller bir dosyada listelenmeli ve komuta iletilmelidir.

Sözdizimi - set_toggle_excludefile [-nolog] [-bitexclude]

Komut (set_toggle_excludefile) CCF'de geçirilmelidir, burada hariç tutulacak sinyallerin listelendiği dosya adıdır. Başarılı simülasyonun sonunda, araç (IMC), hariç tutulan dosyaların listelendiği bir çıktı günlük dosyası (toggle_exclude.log) oluşturur. '-nolog' seçeneği geçilirse, çıktı günlük dosyası oluşturulmaz. '-bitexclude' seçeneği, vektör sinyallerinden bit(ler)in dışlanmasını istediğimizde kullanılır.

Örnek – Şekil 2, tasarım hiyerarşisini göstermektedir. Bazı sinyallerin tasarımdan çıkarılması gerektiğini varsayın. Sonuç olarak, Şekil 1'de gösterilen komut CCF'de yürütülür.

Şekil 1. CCF'deki giriş komutları
Şekil 2. Tasarım Hiyerarşisi
Şekil 2. Tasarım Hiyerarşisi
Şekil 2. Tasarım Hiyerarşisi
Şekil 3. Çıktı günlük dosyası
Şekil 3. Çıktı günlük dosyası

Dışlama analizi – signal_exclusion_list.txt dosyasında, dışlama için üç sinyal ilettik.

  1. modül design_top.addr – Bu, design_top modülünden adres sinyalini hariç tutar. Şekil 3'te gösterildiği gibi, adres sinyalinin iletildiği her alt modülde, adres sinyali port sinyali olduğu için dışlanır ve dışlama, bağlantıya göre (yukarıdan aşağıya/aşağıdan yukarıya) yapılır.
  2. örnek top.design_top.data_handler_inst.memory_2.ctrl_cmd – Bu, ctrl_cmd sinyalini dahili sinyal olduğundan, bellek_2/1'ten değil, yalnızca örnek bellek_3'den hariç tutar.
  3. örnek top.design_top.ctrl_handler_inst1.ctrl – Bu, Şekil 1'te gösterildiği gibi ctrl_handler_inst3 örneğinden ctrl sinyalini hariç tutar.

not – Dışlanan sinyal bir bağlantı noktası sinyaliyse, dışlanan sinyalin bağlantısı hiyerarşi (yukarıdan aşağıya/aşağıdan yukarıya) içinde izlendiğinden, hariç tutulan sinyale (örnekleme yoluyla) bağlı diğer tüm sinyaller hariç tutulur. . Bu, yalnızca giriş bağlantı noktası sinyali için geçerlidir, çıkış bağlantı noktası sinyali ve dahili sinyal, bağlantı izleme akışına sahip değildir.

set_toggle_smart_rafinement

Giriş – Bu komut, IMC Aracında geçiş kapsamı için sinyalleri akıllıca hariç tutmak için kullanılır. Komutu CCF'de ilettiğinizde, 'Akıllı Hariç Tut' seçeneği IMC aracında hariç tutulabilir. IMC'deki bu seçenek, bağlantıyı otomatik olarak izler ve hariç tutulan sinyale bağlı sinyalleri hariç tutar. CCF'de bu komuttan bahsedilmiyorsa, geçiş kapsamı için 'Akıllı Hariç Tut' seçeneğinden yararlanamazsınız.

sözdizimi – set_toggle_smart_rafinement

Örnek – Şekil 4'te, design_top modülünde wdata için akıllı dışlama oluşturulur. Böylece wdata, design_top modülünden ve wdata'nın bağlı olduğu tüm alt modüllerden hariç tutulur. 'Etkilenenleri Göster' alt seçeneği açılır 'Etkilenen Varlıklar' wdata'nın hariç tutulduğu alt modüllerin listesini gösteren pencere.

Şekil 4. IMC aracında Akıllı seçeneği hariç tut
Şekil 4. IMC aracında Akıllı seçeneği hariç tut

not – Geçiş kapsamı için, IMC'de 'Akıllıyı Hariç Tut' seçeneği yalnızca giriş bağlantı noktası sinyallerine uygulanabilirken, çıkış bağlantı noktası sinyalleri ve dahili sinyaller akıllıca hariç tutulamaz. İşlevsel kapsama alanında akıllı hariç tutma için CCF'de herhangi bir komuta ihtiyacınız yoktur, çünkü bunun için varsayılan olarak 'Akıllı Hariç Tut' seçeneği mevcuttur.

Bu nedenle, büyük ölçekte manuel geçiş hariç tutmaları yapmanız gerekiyorsa, o zaman, set_toggle_excludefile/set_toggle_smart_rafinement komutlar kurtarmaya gelebilir. Bu komutların her ikisi de geçiş hariç tutmalarını akıllıca yönetebilir.

2. Dışlama dosyasının (.vRefine) Otomatik Ayarlamaları

IMC'de, kapsamı (kod ve işlevsel) hariç tutmak için hariç tutma/iyileştirme dosyaları (.vRefine) oluşturulur. Kod kapsamı için, hariç tutma dosyası, istisnaları uygulamak üzere bu tasarımı okuması için tasarımla senkronize edilir. İyileştirme dosyası oluşturulduktan sonra, tasarım değiştirilirse veya herhangi bir nedenle kod taşınırsa, eski dışlama dosyasını (.vRefine) değiştirilen tasarım dosyasıyla senkronize etmek için manuel dışlamalar gerekir. Tasarım her güncellendiğinde, yinelemeli manuel dışlama alıştırması sıkıcı ve zaman alıcı hale gelir. Bu manuel dışlama alıştırması aşağıdaki komutla önlenebilir:

  • set_refinement_resilience

set_refinement_resilience

Giriş – Bu komut, eski dışlama dosyasını yeni tasarım dosyasıyla karşılaştırarak blok/ifade dışlamalarını otomatik olarak ayarlar. Daha sonra, önceki tasarımın parçası olan istisnaları barındırır.

Sözdizimi - set_refinement_resilience

Örnek – Şekil 5'te eski ve güncel tasarım gösterilmektedir. Dışlamanın 23. satırda yapıldığını düşünelim. Eski tasarım için ifade hariç tutma Şekil 6'da gösterilmektedir.

Şekil 5. Tasarıma Genel Bakış
Şekil 5. Tasarıma Genel Bakış
Şekil 6. İfade Kapsamı Hariç Tutma
Şekil 6. İfade Kapsamı Hariç Tutma

Yeni tasarımda bazı değişiklikler yapıldı. Örneğin, 'işlenen' sinyalini ekliyoruz ve 15. satırdaki ifade koşulunu değiştiriyoruz. Tasarım güncellendi ancak dışlama dosyası eski tasarımla senkronize edildi. Bu dışlama dosyası IMC'deyken, 23. satırda (eski tasarımdan) yapılan ifade kapsamı dışlaması dikkate alınmaz ve Şekil 7'de gösterildiği gibi Yetim kuralı oluşturulur.

Şekil 7. Set_refinement_resilience komutunu sağlamadan
Şekil 7. Set_refinement_resilience komutunu sağlamadan

Eğer set_refinement_resilience CCF'ye komutu eklenirse, 23. satırda (eski tasarımın) yapılan ifade kapsamı hariç tutma, Şekil 24'de gösterildiği gibi (yeni tasarımın) 8. satırına otomatik olarak yerleştirilecektir. Yetim iyileştirme kuralları oluşturulmaz. bu ifade kapsamı hariç tutma için.

Şekil 8. set_refinement_resilience komutu ile
Şekil 8. set_refinement_resilience komutu ile

not – Hariç tutulan bölüm(ler)de bir tasarım değişikliği varsa, IMC'deki bu bölüm(ler) Yetimler olarak vurgulanır. IMC, yeni tasarıma göre otomatik olarak yer almayan diğer istisnaları da vurgulayacaktır.

Bu nedenle, tasarım kapsamı hariç tutmaları oluşturulur ve daha sonra tasarım değişiklikleri olursa,  set_refinement_resilience komutu, manuel dışlamalardan kaçındığı için yardımcı olur.

3. Tasarım sinyalleri için Puanlamayı Aç/Kapat

Kapsama dayalı doğrulama yaklaşımında, herhangi bir projenin gereksinimlerine göre farklı türlerde kapsam analizi yapma eğilimindeyiz. Analizlerden biri, tasarım modülü sinyallerinin geçiş puanlamasıdır. Geçiş kapsamı analizi, doğrulama sırasında tüm bağlantı noktalarının/ağların kullanılmasını sağlar. Proje gereksinimlerine göre, geçiş kapsamı yalnızca modül G/Ç bağlantı noktaları, dahili sinyaller veya hatta her ikisi için yakalanabilir. Cadence IMC, modül bağlantı noktaları ve dahili sinyaller için geçiş kapsamını yakalamak için bazı komutlar sağlar. Komutlar aşağıda açıklanmıştır:

  • set_toggle_portsally
  • set_toggle_noports

set_toggle_portsally

Giriş – Bu komut, yalnızca modül bağlantı noktaları için geçiş puanlamasını etkinleştirir. Bu komutu kullanarak, tasarım modüllerinin dahili sinyalleri veya ağları, tasarım hiyerarşisi boyunca geçiş kapsamı için puanlanmaz.

sözdizimi – set_toggle_portsally

CCF'de bu komut sağlandığında, tüm modüller için tüm geçiş kapsamı etkinleştirilse bile tüm dahili sinyaller için geçiş kapsamı puanlanmaz. Kapsam sadece modül portları için yakalandığından, bu komut yapı bloklarının bağlantısını kontrol ederken kullanılabilir. Bir çipteki tüm bloklar için IP doğrulaması, her iki geçiş kapsamı etkinleştirilerek baştan sona yapılırsa, çipin tepesinde yalnızca bağlantı noktalarının geçiş kapsamı yeterlidir.

Örnek – Tasarımda modüller, Şekil 9'da gösterildiği gibi bağlantı noktalarının yanı sıra dahili sinyallerden oluşur. Burada, CCF'de hiçbir komut sağlanmaz ve hem modül bağlantı noktaları hem de dahili sinyaller için geçiş kapsamı Şekil 9'da gösterildiği gibi puanlanır. .

Şekil 9. Herhangi bir komut vermeden
Şekil 9. Herhangi bir komut vermeden

Şekil 10'da set_toggle_portsonly komutu CCF'de sağlanır ve geçiş kapsamı yalnızca modül portları için puanlanırken, geçiş kapsamı inv_clk gibi dahili sinyaller için puanlanmaz.

Şekil 10. set_toggle_portsally komutu ile
Şekil 10. set_toggle_portsally komutu ile

set_toggle_noports

Giriş – Bu komut, tüm modül bağlantı noktalarının geçiş puanlamasını önler ve geçiş kapsamını yalnızca dahili sinyaller için puanlar. Dahili sinyal puanlaması, beyan edildikleri yerde yalnızca bir kez yapılır. Aynı sinyaller tasarım hiyerarşisindeki diğer alt modüle iletilirse, bu sinyal için geçiş kapsamı alt modüllerde yakalanmaz. Bu nedenle, dahili sinyaller için geçiş kapsamı, tasarım hiyerarşisinde yalnızca en yüksek düzeyde puanlanır.

sözdizimi – set_toggle_noports

Örnek – Şekil 11'de set_toggle_noports komutu CCF'de sağlanır ve geçiş kapsamı yalnızca dahili sinyaller için puanlanırken geçiş kapsamı, clk ve reset gibi modül bağlantı noktaları için puanlanmaz.

Şekil 11. set_toggle_noports komutu ile
Şekil 11. set_toggle_noports komutu ile

not - set_toggle_noports ve set_toggle_portsally birbirini dışlayan komutlardır ve aynı CCF'de birlikte kullanılamazlar, aksi takdirde hata verir.

Bu nedenle, geçiş kapsamı analizi yalnızca modül bağlantı noktaları için yapılacaksa, set_toggle_portsonly komutu yararlıdır. Tasarım hiyerarşisi boyunca tekrarlayan geçiş puanlamasını önlemek için set_toggle_noports komutunu kullanın.

Sonuç

Kapsam kapatma aşamasında, kapsam hariç tutma zaman alıcı, sıkıcı ve yinelemeli bir süreçtir. Akıllıca yönetilirse, bu alıştırma yukarıda belirtilen komutlar kullanılarak gezilebilir. Tanımlanan komutlar, tasarım hiyerarşisinden gerekli istisnaları otomatik olarak belirleyerek manuel çalışmayı ortadan kaldırır. Bunun dışında Cadence, kapsama veri tabanını daha hassas bir şekilde incelemeye yardımcı olabilecek ve kapsama veri analizi için esneklik sağlayan başka güçlü ve becerikli komutlar da sağlar.

Olarak Cadence için Doğrulama İş OrtağıeInfochips, Specman Elite konusunda uzmanlığa sahiptir ve eVC ve uVC doğrulama bileşenlerinin geliştirilmesine ek olarak hem yerinde hem de açık deniz için tasarım doğrulama hizmetleri/danışmanlığı sunar. Bu doğrulama bileşenleri, endüstri standartlarına dayalı olarak önceden paketlenmiş, yeniden kullanılabilir doğrulama kodu parçalarıdır.

Cadence Kapsamı komutlarını uygulama hakkında daha fazla bilgi için lütfen bugün uzmanlarımızla iletişime geçin.

Yazar Detayları

Dhruveş

Dhruvesh Bhingradia, Gujarat Teknoloji Üniversitesi'nden Elektronik ve İletişim alanında BE'yi tamamladı. eInfochips'te ASIC Doğrulama Mühendisi olarak çalışmaktadır. Sensör tabanlı çipler için IP doğrulama deneyimine sahiptir.

jaini

Jaini Patel, Gujarat Teknoloji Üniversitesi'nden Elektronik ve İletişim alanında BE'yi tamamladı. eInfochips'te ASIC Doğrulama Mühendisi olarak çalışmaktadır. Sensör tabanlı çipler için IP doğrulama deneyimine sahiptir.

Shailesh

Shailesh Kavar, eInfochips'te Kıdemli ASIC Doğrulama Mühendisi olarak çalışmaktadır. Sensör ve fiber optik çiplerinde SoC ASIC doğrulama çiplerinde uzmanlığa sahiptir ve Analog Mix Sinyalleme (AMS) doğrulaması konusunda deneyime sahiptir.

Bijal

Bijal Simaria, eInfochips'te Teknik Müdür olarak çalışmaktadır. Bijal, son 2.0 yılda USB3.0, USB16, MIPI, AHB ve daha pek çok protokol için çeşitli Hareket algılama çipleri, IP ve VIP doğrulaması için SoC doğrulaması üzerinde çalıştı.

Referans -

[1] Cadence Entegre kapsama Kullanıcı Kılavuzu – Sürüm 19.09
[2] Kapsama Zaman Kazandıran İpucu – İşlevsel Doğrulama – Cadence Blogları – Cadence Topluluğu
[3] https://community.cadence.com/cadence_technology_forums/f/function-verification/22453/how-to-create-coverage-configuration-file
[4] https://community.cadence.com/cadence_technology_forums/f/function-verification/41093/how-to-use-the-set_refinement_resilience-settings-after-design-files-are-updated

Kaynak: https://www.einfochips.com/blog/how-cadence-coverage-commands-solve-manual-efforts-in-coverage-closure-exercise/

spot_img

En Son İstihbarat

spot_img