🚀 Transaction-Level Modeling (TLM) Nedir?#
Transaction-Level Modeling (TLM), yüksek soyutlama seviyesinde veri iletişimini modellemek için kullanılan bir yaklaşımdır. Geleneksel sinyal tabanlı bağlantılar yerine, veriyi işlemler (transactions) şeklinde temsil ederek doğrulama ortamlarının daha basit, okunabilir ve ölçeklenebilir olmasını sağlar.
UVM (Universal Verification Methodology) testbench’lerinde TLM, bileşenler arasında port-export-imp yapıları ile haberleşmeyi sağlar. Bu, testbench modülleri arasında daha esnek ve yeniden kullanılabilir bir mimari kurulmasına yardımcı olur.
🔎 TLM Kullanımının Avantajları#
✅ Soyutlama Sağlar
Sinyal seviyesindeki karmaşayı azaltır ve işlemleri basit transaction objeleriyle yönetir.
✅ Kolay Entegrasyon
Bağımsız olarak geliştirilen modülleri kolayca bir araya getirerek testbench ortamında kullanabilmenizi sağlar.
✅ Yüksek Okunabilirlik ve Hızlı Geliştirme
Veri transferlerini port ve export kullanarak merkezi şekilde yönetmek, test ortamının daha hızlı geliştirilmesini sağlar.
🛠️ TLM Temel Yapıları#
🔹 Port
Veriyi göndermek isteyen bileşenler tarafından kullanılır. Port, bir üst seviyedeki export veya imp’e bağlanarak veri akışını başlatır.
🔹 Export
Port’tan gelen veriyi alır ve uygun imp’e veya başka bir export’a iletir. Genelde hiyerarşi geçişlerinde kullanılır.
🔹 Imp
Veriyi son olarak işleyen bileşenin arayüzü olup, gelen port çağrılarını kendi metoduna yönlendirir.
🔗 Blocking ve Non-blocking Kavramları#
🔸 Blocking:
Veri transferi sırasında gönderici veya alıcı işlemi tamamlanana kadar bekler (ör. put()
, get()
).
🔸 Non-blocking:
Gönderici veya alıcı, işlemin hemen başarılı veya başarısız olduğunu bildirir ve başka işlere devam edebilir (ör. try_put()
, can_put()
).