Ana içeriğe geç

UVM RAL Modeli ile Sequencer ve Monitor Bağlantısı

· loading · loading · ·
Kerim Turak
Eğitim UVM Doğrulama UVM RAL Sequencer Monitor Predictor Register Verification SystemVerilog Testbench Doğrulama
Eğitim UVM Doğrulama
Yazar
Kerim Turak
Digital IC Design & Verification Engineer
Table of Contents
UVM Serisi - This article is part of a series.
Part 36: This Article

📚 UVM RAL Modelinin Sequencer ve Monitor ile Bağlantısı
#

UVM Register Abstraction Layer (RAL) kullanarak register modelini doğrularken, modelin hem yazma/okuma isteklerini doğru şekilde bus üzerinden yönlendirebilmesi hem de tasarımdan gelen register değişimlerini yakalayabilmesi çok önemlidir. Bunun için RAL modelini sequencer ve monitor ile entegre ederek hem frontdoor hem de backdoor erişimi kontrol altına alabiliriz.

Bu sayfada, RAL modelini sequencer ve monitor ile nasıl bağlayacağımızı ve bu bağlantının nasıl çalıştığını açıklıyoruz.


🔗 1️⃣ Sequencer ile Bağlantı
#

🛠️ Neden Gerekli?
#

Frontdoor erişimi (bus üzerinden register okuma/yazma) için RAL modelinin bir sequencer’a bağlanması gerekir. Böylece:

  • regmodel.reg.write() veya regmodel.reg.read() gibi çağrılar yapıldığında, RAL modeli adapter aracılığıyla bir sequence item oluşturur.
  • Bu item, sequencer üzerinden driver’a gönderilir ve bus protokolü ile fiziksel tasarıma ulaşır.

📌 Nasıl Yapılır?
#

Örnek:

// Adapter ve sequencer daha önce instantiate edilmiş olmalı
regmodel.default_map.set_sequencer(my_sequencer, my_adapter);
  • default_map: Register blok içindeki default adres haritasını temsil eder.
  • my_sequencer: Testbench’te bus işlemlerini yöneten sequencer.
  • my_adapter: RAL çağrılarını bus protokolüne dönüştüren adapter sınıfı.

Bu bağlantı sayesinde RAL, frontdoor işlemlerini bus driver’a yönlendirebilir.


🔎 2️⃣ Monitor ile Bağlantı
#

🛠️ Neden Gerekli?
#

Tasarım tarafından (ya da başka bir master tarafından) yapılan register işlemleri testbench tarafından da yakalanmalıdır. Böylece RAL modeli ile tasarımın senkronizasyonu sağlanır. Bu işlemler genellikle monitor tarafından yakalanır ve predictor bileşeni ile RAL modeline aktarılır.

📌 Nasıl Yapılır?
#

Monitor genelde bir analysis port üzerinden predictor’a bağlanır:

// Monitor'un analysis port'unu predictor'un bus_in port'una bağla
my_monitor.ap.connect(my_predictor.bus_in);
  • my_monitor: Bus üzerindeki işlemleri dinler ve analysis port’a gönderir.
  • my_predictor: Bus işlemlerini alır ve RAL modelinde predict yapar.

Bu yapı sayesinde: 1️⃣ Driver’dan gelen frontdoor işlemleri RAL modeli üzerinden sequencer’a gönderilir. 2️⃣ Monitor bus’ı dinler, analysis port üzerinden predictor’a bilgi verir. 3️⃣ Predictor, RAL modelini günceller.


🔌 3️⃣ Adapter’in Rolü
#

Adapter, register model ile bus protokolü arasındaki köprüyü kurar:

  • reg2bus(): RAL modeli tarafından oluşturulan işlemi (read/write) bus protokolüne dönüştürür.
  • bus2reg(): Bus’tan gelen cevabı RAL modeline geri dönüştürür.

Bu, sequencer bağlantısında hayati bir rol oynar çünkü RAL modelinin register işlemleri ile bus protokolü arasındaki çeviriyi gerçekleştirir.


📝 4️⃣ Bağlantı Akışı
#

AdımAçıklama
1️⃣RAL modeli register işlemi başlatır (read(), write()).
2️⃣Adapter, RAL işlemini bus item’ına dönüştürür (reg2bus()).
3️⃣Sequencer üzerinden driver’a gönderilir.
4️⃣Driver, tasarıma erişir ve işlemi uygular.
5️⃣Monitor, bus’ı dinler ve analysis port’a veri gönderir.
6️⃣Predictor, analysis port’tan bus item’ını alır.
7️⃣Predictor, RAL modelinde predict işlemi yapar.
8️⃣RAL modeli ile tasarım verisi senkronize edilir.

📦 5️⃣ Kod Örnekleri
#

🔹 Sequencer bağlantısı:

regmodel.default_map.set_sequencer(my_sequencer, my_adapter);

🔹 Monitor ve predictor bağlantısı:

my_monitor.ap.connect(my_predictor.bus_in);
my_predictor.map = regmodel.default_map;

✨ Özet
#

Sequencer Bağlantısı: Frontdoor erişimi için RAL modeli ile bus sequencer ve adapter’i bağlar. ✅ Monitor ve Predictor Bağlantısı: Tasarımdan gelen register değişikliklerini dinler ve RAL modelini günceller. ✅ Adapter: RAL ile bus protokolü arasında köprü görevi görür. ✅ Predictor: Monitor’dan gelen işlemleri register modeline yansıtarak model ile tasarımı senkronize tutar.


UVM Serisi - This article is part of a series.
Part 36: This Article

Related

UVM RAL Predictor Kullanımı: Register Modelini Senkronize Tutma
· loading · loading
Kerim Turak
Eğitim UVM Doğrulama UVM RAL Predictor Register Verification Bus Monitor SystemVerilog Testbench Doğrulama
Eğitim UVM Doğrulama
UVM RAL Register API Kullanımı: Frontdoor ve Backdoor Erişim
· loading · loading
Kerim Turak
Eğitim UVM Doğrulama UVM RAL Register Access Frontdoor Backdoor SystemVerilog Testbench Doğrulama
Eğitim UVM Doğrulama
UVM RAL (Register Abstraction Layer) Kullanımı ve Özellikleri
· loading · loading
Kerim Turak
Eğitim UVM Doğrulama UVM RAL Register Abstraction Layer Doğrulama SystemVerilog Register Modeling
Eğitim UVM Doğrulama
UVM RAL Register Modeli Oluşturma ve UVM Ortamına Entegrasyonu
· loading · loading
Kerim Turak
Eğitim UVM Doğrulama UVM RAL Register Modeling SystemVerilog Adapter Bus Interface Verification Doğrulama
Eğitim UVM Doğrulama
UVM RAL: Bellek, Adres Haritası ve Daha Fazlası
· loading · loading
Kerim Turak
Eğitim UVM Doğrulama UVM RAL Register Abstraction Layer SystemVerilog Memory Adres Haritası Register Doğrulama
Eğitim UVM Doğrulama
UVM Temel Sınıfları
· loading · loading
Kerim Turak
Eğitim UVM Doğrulama UVM Doğrulama SystemVerilog Sınıf Hiyerarşisi
Eğitim UVM Doğrulama