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.
Dışlama analizi – signal_exclusion_list.txt dosyasında, dışlama için üç sinyal ilettik.
- 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.
- ö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.
- ö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.
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.
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.
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.
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 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.
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.
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