Posts

Fork_Join Problem

Image
  SV/UVM:  Does this fork...join_none trigger all sequences in the array to run in parallel as intended? It looks perfectly fine but does it really do what you expect? πŸ’¬ Have you run into this? How did you catch or debug it?

Concurrency in DV

Image
  Concurrency in DV : How would you pause , inject and resume traffic on a same sequencer? Thread 1 : Long running sequence on sqr Thread 2 : Monitor a signal and when it hits, pause the sequence running in Thread 1, inject another sequence on the same sequencer (sqr) and then resume the original sequence. How would you do this ? πŸ’¬ Let’s hear your thoughts in the comments πŸ‘‡

SV/UVM Scoreboard - Looks Clean… But Does It?

Image
  SV/UVM Scoreboard - Looks Clean… But Does It? Common issue we all make and only realize after a 5-hour sim run πŸ˜… ❓Looks simple, right? But is it simulation-safe? Would you use this as-is in your testbench? πŸ’¬ Let’s hear your thoughts in the comments πŸ‘‡

Understanding $cast in System Verilog

Image
  $cast – What Will Happen Here? πŸ’‘ $cast in SystemVerilog : Looks simple, often misunderstood and forms the base for polymorphism, UVM base libraries and abstract Tb design Below are 4 common ways engineers use base and derived class handles in UVM Tb. ❓ Can you predict what will happen in each case? ❓ Which threads will compile? Which will fail? Which ones could cause bugs if misunderstood? These are subtle, real-world details that power polymorphism in UVM. πŸ’¬ Drop your answers in the comments !