Jump to content


  • Posts

  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

qwerty's Achievements


Member (1/2)



  1. Hi, I want to add an assertion in which i have to check Op=IP after certain delay. but the delay values comes from an array. Delay value can also be 0. The below assertion is not failing when end_sig is asserted before the delay. property var_delay; int v_cnt; ($rose(start_sig), v_cnt = var_del + 1'b1) |-> (((v_cnt > 0 && $stable(end_sig)), v_cnt = v_cnt - 1)[*0:$] ##1 ((end_sig==1) )) ; endproperty : var_delay as_var_delay : assert property (var_delay); Any help is appreciated.
  2. yes, i am using uvm_reg. There are 3 separate interfaces pcie, spi and i2c which can access same set of registers/memory. Thanks
  3. Hi, We have single register space and 3 masters can accessing that space. I want all the masters to access those registers parallely. What can be the best possible way to do it. Currently, I have to select one at compilation time. Thanks
  4. I want to model a memory of depth 2048 and width 64 bits. Currently I doing as below and when i am running the walk_mem sequence, its going from 0 to 2048 rather than 2047. super.new(name, 'h101, 64, "RW", UVM_NO_COVERAGE) Thanks in advance
  5. Hi, I want to use the "uvm_debug" verbosity but i couldn't find it in uvm1.1/1.2 class reference user guide. Thanks
  6. Hi, I there a limitation to the number of registers that can be handled by uvm register model? if yes, whats the count. QW
  7. Hi, While doing force using "uvm_hdl_force", i am getting the below error and the specified memory location is not written with that value. But it works using "force". Any solution to this. ERROR: VPI NOFORCO vpi_put_value() cannot force object of type: vpiReg. Thanks QW
  8. Hi Uwe, Any specific reason why not to use the uvm_hdl_force directly? -QW
  9. used $sformatf to pass it to a string a pass that string to uvm_hdl_force(). thanks for the solution.
  10. Hi, I my using uvm_hdl_force("path",data) to configure the registers of the design. But the problem is they are large in number so i want to loop them in. for(int i=0; i<8; i++) begin for(int j=0; j<8; j++) begin uvm_hdl_force("DUt.abc.pkt.reg_0.w[1]" , data); end end I want to replace 0 with i and 1 with j . Is their a simple way to do it.
  11. Thanks tudor, that is a nice way to get the access policy of registers if all the fields have same access policy.
  12. Hi, How can i get the access policy of a register? For fields its possible to get using get_access(). Is their a way to extract the "Registers" from the model with RW access policy ? Thanks.
  13. I have modeled the unused bits as "rsvd" in the model. but the issue is, the dut still writes on those unused bits. So while i do a mirror, it fails as the dut has all 1's (if i write all 1's ) but the model writes according to the mask in it. So how can i disable the check or what access policy to use to disable it. Thanks
  14. Hi, I have a 32 bit register in which some of the bits are reserved. I have added the mask in the register model. But the reserved bits are also read/writable. I only wont to write to the bits which are not reserved. foreach (rg) begin foreach (fields[j]) begin if (fields[j].get_name() == "UNUSED" ) begin $display("UNUSED field= %s",fields[j].get_name()); end else begin fields[j].write(status, wdata,.parent(this)); end end I tried the obove solution, but it writes for every field which is slowing me down. Is their a way i can get the mask from the register model? Or any other solution? Thanks
  • Create New...