🧭 Hiyerarşik Referans (Hierarchical Reference) #
Hiyerarşik referanslar, alt modüllerde tanımlı sinyal veya instance’lara erişmeyi sağlar. Özellikle testbench, force/release işlemleri ve debug amaçlı kullanılır.
✅ Örnek: #
top.dut.internal_reg = 8'hA5; // Testbench'ten iç sinyale erişim
top
: en üstteki (top-level) modüldut
: test edilen tasarımın instance adıinternal_reg
:dut
içinde tanımlı bir sinyal
⚡ force
ve release
— Simülasyonda Değer Zorlamak
#
Simülasyon sırasında bir sinyalin değerini geçici olarak zorlamak (override) için force
, bu kontrolü geri bırakmak için release
kullanılır.
force top.dut.internal_reg = 8'hFF; // Sinyal değerini zorla
#100 release top.dut.internal_reg; // Sinyali tekrar simülasyona bırak
Bu kullanım şu durumlar için faydalıdır:
- Testbench’te iç durumları doğrudan ayarlamak
- Hata senaryoları veya arıza enjeksiyonu simülasyonu
- İç mantığı debug etmek
🔧 Kullanım Alanları #
- Simülasyonda sinyal değerlerini zorlamak
- Portlarla dışarıya çıkmayan sinyalleri gözlemlemek
- Alt modüllerle derinlemesine etkileşim kuran testbench yazmak
⚠️
force
,release
veya hiyerarşik referanslar sentezlenebilir kodlarda kullanılmamalıdır — bu kullanım modül soyutlamasını bozar ve sentezlenemez.