
mastrick
Members-
Content Count
48 -
Joined
-
Last visited
-
Days Won
1
mastrick last won the day on April 5 2016
mastrick had the most liked content!
About mastrick
-
Rank
Junior Member
Recent Profile Visitors
The recent visitors block is disabled and is not being shown to other users.
-
I believe the UVM intent of is to associate the (whole) signal "IP.REG.regout" with the 16 bits starting at offset 16 of the data in the reg model. The start and offset do not affect the signal, and so you do need to provide the bit range as you show to associate a slice of the signal with a slice of the internal data. I agree the documentation does not make that clear, and I have filed a Mantis to improve that documentation.
-
Thank you for posting Chintan. I see the 1800.2-2017 standard says in "8.3.1.4.1 set_inst_override_by_type and set_inst_override_by_name": That says to me that when you gave your original commands to override master_base_seq twice with different override types, the first one should be applied, just as you saw. The set_type_override variations include a "replace" argument that controls whether the new or the older override has priority, so it can work either way.
-
starting phase in default sequence
mastrick replied to Shankar`'s topic in UVM SystemVerilog Discussions
When you set the default_sequence in uvm_config_db, you specify the phase in which the driver will start the sequence. Just with that specification, you can run the sequence in any phase. get_starting_phase() and set_starting_phase() refer to a phase that will be objected to by the automatic phase objection feature of uvm_sequence. The default value for that starting_phase is the phase in which the sequence gets started (what you specified to the uvm_config_db). -
Strangely enough, we have just encountered this issue for the first time today. Thanks Robert for posting! In our case, the nested class does not use the field macros but rather calls uvm_report_info directly. We use nested class in this case because this class is used as a replacement class in the test, and to allow us to compile all tests in one executable without conflict, we require such classes to be nested within the test class that uses it. Guess I'll file a mantis to see if the implementation can tolerate such usage.
-
virtual sequencer exit main phase prematurely
mastrick replied to Ed Jone's topic in UVM SystemVerilog Discussions
I believe you want your test sequence to object to main_phase so that you will not have the physical sequence ended before the test sequence ends. -
ljepson74 reacted to a post in a topic: randomize() with inside syntax
-
tudor.timi reacted to a post in a topic: randomize() with inside syntax
-
randomize() with inside syntax
mastrick replied to ljepson74's topic in UVM SystemVerilog Discussions
Also, you might want to keep your randomize() call outside the assert(). Otherwise, simulators may not call the randomize at all if you disable assertions (e.g. to temporarily work around a problem). You can assign the return from randomize() to a variable and then assert that variable.- 4 replies
-
- randomize() with
- randomize()
-
(and 1 more)
Tagged with:
-
Hi Dave, If you just had "c.a = 10; p.c = c;", you would certainly expect c.a (and p.c.a) to be 10 afterwards. I think the question is why p.randomize(c. does not mean that c.a is a state variable, so it is still 10 after the randomize. Mark
-
wszhong631 reacted to a post in a topic: the parent-child relationship of add method of uvm_phase
-
twk1156 reacted to a post in a topic: initialization sequence question
-
initialization sequence question
mastrick replied to twk1156's topic in UVM (Pre-IEEE) Methodology and BCL Forum
If you are using run-time phasing, you simply need to have your environment start the init sequence in some phase before main (perhaps the configure phase), holding the objection until that sequence completes, and then tell test developers that they must run their sequences in main phase (which is the intent of main phase). -
how to drive a clocking block output asynchronously
mastrick replied to mastrick's topic in UVM SystemVerilog Discussions
Thanks for the suggestion, David. The situation that caused us to consider this question was that we had a verification component modeling an external interface to our ASIC, so it had its own clock, not shared with the rest of the design. There is a possibility that clock is not running, which we wanted to model, but when the clock did not run, our drive through the clocking block never happened. In real circuitry, even though the clock is not running, the asynchronous reset (applied to the external component also) would ensure that the external data was driven to a known value. This made