I am setting values to sequence_item before I call start_item(seq_item) any different from setting values after calling start_item(seq_item)?
UVM: Does setting values to sequence_item before I call start_item(seq_item) cause any issue?
466 views Asked by shicky At
2
There are 2 answers
0
Allan Carter
On
The main reason for randomizing a seq_item after start_item returns is to enable the transaction to be randomized based on the current state of the machine. If you don't have a dependency on the testbench state, then there is no functional difference.
I think the bigger issue is to use the established pattern of deferred randomization so that all of your code looks the same and so that anyone copying your code as a template (including you) follows the pattern just in case the order does matter.
Consistency in your code will help prevent bugs.
Related Questions in VERILOG
- Error message coming up when compiling iVerilog Code
- Communicate/transfer data between two different programs. JAVA & VERILOG
- Spiking neural network on FPGA
- Matrix Multiplication Testbench Yields Inconsistent Results
- Formal verification of state machine with SymbiYosys not giving expected results
- How to compile only the changed files in Verilator?
- 4-bit ALU SLT operation
- How to connect combo code to a module's interface modport?
- 4-bit ALU using 1-bit ALU in verilog
- Is there a difference when using the ternary operator in always and assign statements?
- Verilog Implementation: Detecting Overflow and Rolling Up Result
- IO placement is infeasible error in Vivado
- How do I deploy this polynomial multiplication algorithm to verilog
- always block not always triggering at event
- Multiple modules in FSM and how it's working?
Related Questions in VERIFICATION
- Error 553 5.7.2 [TSS09] When Sending Emails to Yahoo and Outlook
- Firebase/Google Cloud projects verification has no answer
- LinkedIn Posting API verification
- keep has_each for a list in Specman
- UVM agents - single/multiple?
- Meta for developers - Verification code too short
- UVM RAL: NULL pointer is dereference
- Check if a path exist in React Native
- Verification failed for Tuya IOS sdk in Flutter after Integration
- Add account verification and password recovery using tokens with react and postgres
- there is this problem in my next-oauthcongiguration it give me this error
- how to use python to split a logical statement and verify it one by one?
- How to generate a .dat file for verilator_coverage?
- delay-google-cloud-console-app-verification for 2 weeks without feedback
- Dafny linked queue implementation
Related Questions in SYSTEM-VERILOG
- Matrix Multiplication Testbench Yields Inconsistent Results
- How to connect combo code to a module's interface modport?
- Send transactions using test cases to random channels
- systemverilog assertion become vacuous match when it has if...else statement
- How can I write this SystemVerilog property without the use of a local variable?
- always block not always triggering at event
- How to write into 12 addresses at the same cycle in vivado and still be recognized as BRAM
- Continuous Assignment of Class Property
- No .vcd file found error, but I have used the $dump code
- Verifying all address locations of memory
- Logical Error in Verilog code for converting SR FF to JK FF
- system-verilog - cross cover between generate-loop instances
- Gate-Level Sim: Hold time violation between testbench and first registers?
- Multiple instances of covergroup based on parameter
- Illegal hierarchical reference through a let construct
Related Questions in UVM
- UVM agents - single/multiple?
- UVM RAL: NULL pointer is dereference
- Conditional creation of covergroup
- Structure containing dynamic data in non-procedural context for parameterized test class
- Can you use uvm_reg.get() on a volatile reg?
- regexp in hdl path for UVM hdl access functions
- Mirrored value doesn't match the desired value while running default sequence uvm_reg_hw_reset_seq in ral test
- An abstract class cannot be instantiated in module
- Unexpected Queue Randomization with UVM environment
- Is it possible to create a uvm-test dynamically from a string pased via UVM_TESTNAME but then override the base-test with the newly crearted test?
- Is there any way to convert hierarchy as string to actual hierarchy
- Constraint for square sub matrices in a matrix
- I am trying to understand the way I can write a UVM scoreboard for a DUT (arbiter) with multiple masters and one slave
- Multi-master AXI interface connections
- Why uvm_hdl_force has effect only in interactive mode in Verdi?
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Yes, you can do this, but realize that start_item() is a blocking task, so the state of your design and testbench may be different before versus after.