Posts

Random Stability in Testbench part-2 (Based on UVM)

Image
  Introduction I already posted what is random stability and why it is required in the testbench. If you want to go through please click here  (Random Stability in Testbench part-1).  UVM itself provides a random stability mechanism. Therefore users need to follow guidelines and make sure provided mechanism don't override. In this blog, I try to cover how UVM random stability mechanism works? what are the drawbacks and how to overcome them? Let's deep dive into UVM based random stability. Understanding of UVM Random Stability Mechanism. In typical testbench architecture has two areas where most of the randomization activity is done or the users are generally accepted. 1) uvm_component and 2) uvm_sequence, uvm_sequence_item and uvm_transaction. Both areas have their own mechanism to handle random stability. But both, component and sequence used hash algorithm. So first we understand how the hash algorithm is used fully in terms of achieving stability. Wherever any componen...

Random Stability in Testbench part-1 (Based on SV)

Image
Introduction        Over the past few years, random verification has proven itself to be very effective in rapidly uncovering or unexplored design bugs. So the quality of the random stimulus or testbench is very important in order to achieve a high degree of confidence that a design has been well tested and bug-free. But using random constrain verification there is potential that the test case may become reproducible due to certain changes in testbench during the development cycle.  In this article, I try to cover why random stability is required for any testbench and its consciousness and significance. Also cover what are the solutions to achieve random stability for SystemVerilog and UVM. Required understanding of Random Number Generator (RNG)     Before understanding random stability we need to understand How to declare or initiated variables to get a random value. All EDA developers have their own RNG. Therefore when the same code run in a differen...

Interrupt Generation and headlining Through UVM PART-1

Image
What is interrupt?  The interrupts are signaled through which some unusual or special events acknowledge to users.  Interrupts are either hardware or software or both generated. Sometimes system generates interrupts or the user also can generate interrupts, it totally depends on system design and its use case. Software interrupts usually used register to acknowledge and hardware interrupts used direct signals to acknowledge. In nutshell, interrupts are events that can be triggered parallel threads of processes. Importance of Interrupts For any SoC level or system-level where multiple blocks work together, prepare complex design, in that case, all components work together and are compatible with each other that's why to introduce some exceptions and acknowledge of it, its call interrupts. Sometimes SoC Design used a separate Interrupt controller to handle such requests. So interrupt controller helps to manage system or subsystem level interrupts via enabling and disabling inter...