Ana içeriğe geç

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
Yazar
Kerim Turak
Digital IC Design & Verification Engineer
Table of Contents
UVM Serisi - This article is part of a series.
Part 32: This Article

📚 UVM RAL Bölümleri: Memory, Address Map ve Daha Fazlası
#

UVM Register Abstraction Layer (RAL), tasarımdaki register yapılarının yüksek seviyede modellenmesini ve doğrulanmasını sağlar. Bu yapılar, RAL’in hiyerarşik modelini oluşturan temel yapı taşlarıdır. Şimdi bunları teker teker açıklayalım:


🗂️ 1. Memory
#

Memory, tasarımdaki RAM, ROM veya diğer bellek bloklarını temsil eder. Bu bloklar, tek veya çok boyutlu olabilir. RAL’de uvm_mem sınıfı ile modellenir.

  • Özellikler:

    • Adres aralığı, word genişliği ve erişim tipleri tanımlanabilir.
    • Frontdoor (bus üzerinden) veya backdoor (doğrudan HDL erişimi) ile test edilebilir.
  • Kullanım:

    • uvm_mem::write(), uvm_mem::read() gibi fonksiyonlarla belleğe erişim sağlanır.
    • Memory alanları genellikle DMA, buffer veya FIFO gibi yapıları doğrulamada kullanılır.

🗺️ 2. Address Map
#

Address Map, register ve memory bloklarının tasarımdaki fiziksel adreslerini temsil eder. uvm_reg_map sınıfı ile modellenir.

  • Özellikler:

    • Her bir register veya memory için base address ve offset bilgisi tutulur.
    • Bus protokollerine göre adresleme (byte-addressable veya word-addressable) desteklenir.
  • Kullanım:

    • uvm_reg_block içindeki register veya memory nesneleri, map aracılığıyla testbench’e tanıtılır.
    • Frontdoor erişimde driver/sequencer ile haberleşmek için map kullanılır.

🧩 3. Register Blocks
#

Register Block, bir veya birden fazla register ve/veya memory nesnesinin mantıksal bir grup olarak tutulduğu yapıdır. uvm_reg_block sınıfı ile modellenir.

  • Özellikler:

    • Genellikle bir IP veya subsystem’in tüm register haritasını temsil eder.
    • Hierarchical yapı kurulabilir (block içinde block).
  • Kullanım:

    • Tasarımın farklı modülleri için ayrı register block’lar tanımlanabilir (ör. PCIe_Block, UART_Block).
    • Tüm block’lar tek bir top-level block altında birleştirilebilir.

📂 4. Register Files
#

Register File, genellikle aynı tipte register’ların tekrarlı kullanıldığı yapılardır. uvm_reg_file sınıfı ile modellenir.

  • Özellikler:

    • Birden fazla register nesnesini organize eder (ör. bir FIFO pointer register dosyası).
    • Indeksli erişim sağlayabilir.
  • Kullanım:

    • reg_file[3].write(status, value); gibi kullanımlarla file içindeki belirli register’a erişim yapılabilir.

📝 5. Registers
#

Register, tasarımdaki tekil veya çok bitlik register’ları temsil eder. uvm_reg sınıfı ile modellenir.

  • Özellikler:

    • Adres, reset değeri, erişim tipi (RO, RW) gibi parametreler tanımlanabilir.
    • Randomization ve coverage desteği içerir.
  • Kullanım:

    • reg_model.my_reg.write(status, 32'hDEADBEEF);
    • reg_model.my_reg.read(status, read_value);

🔑 6. Register Fields
#

Register Field, register içindeki bit alanlarını temsil eder. uvm_reg_field sınıfı ile modellenir.

  • Özellikler:

    • Bit pozisyonu, genişliği ve erişim türü belirlenebilir.
    • Field-level randomization yapılabilir.
  • Kullanım:

    • reg_model.my_reg.my_field.set(3'b101);
    • reg_model.my_reg.my_field.get(value);

✨ Özet
#

BölümAçıklama
MemoryBellek bloklarını temsil eder (RAM, ROM, FIFO).
Address MapAdres haritalaması ve frontdoor/backdoor erişimi sağlar.
Register BlockBir IP veya alt sistemdeki register’ları organize eder.
Register FileAynı tip register’ları indeksli şekilde tutar.
RegisterTekil register nesnesini temsil eder.
Register FieldRegister içindeki bit alanlarını temsil eder.

Bu yapıların hepsi, RAL’in hiyerarşik yapısında bir araya gelerek karmaşık tasarımlar için kolaylıkla kontrol edilebilir, randomize edilebilir ve doğrulanabilir bir model sunar.


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

Related

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 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
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 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 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 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