data/full_repos/permissive/509468557/generators/ibex/src/main/resources/vsrc/ibex/dv/uvm/icache/dv/ibex_icache_mem_agent/ibex_icache_mem_model.sv
1: b'%Error: data/full_repos/permissive/509468557/generators/ibex/src/main/resources/vsrc/ibex/dv/uvm/icache/dv/ibex_icache_mem_agent/ibex_icache_mem_model.sv:24: Unsupported: classes\nclass ibex_icache_mem_model #(parameter int unsigned BusWidth = 32) extends uvm_object;\n^~~~~\n%Error: data/full_repos/permissive/509468557/generators/ibex/src/main/resources/vsrc/ibex/dv/uvm/icache/dv/ibex_icache_mem_agent/ibex_icache_mem_model.sv:24: syntax error, unexpected IDENTIFIER, expecting TYPE-IDENTIFIER\nclass ibex_icache_mem_model #(parameter int unsigned BusWidth = 32) extends uvm_object;\n                                                                            ^~~~~~~~~~\n%Error: data/full_repos/permissive/509468557/generators/ibex/src/main/resources/vsrc/ibex/dv/uvm/icache/dv/ibex_icache_mem_agent/ibex_icache_mem_model.sv:30: syntax error, unexpected protected\n  protected bit no_mem_errs;\n  ^~~~~~~~~\n%Error: data/full_repos/permissive/509468557/generators/ibex/src/main/resources/vsrc/ibex/dv/uvm/icache/dv/ibex_icache_mem_agent/ibex_icache_mem_model.sv:32: Unsupported: new constructor\n  function new(string       name="",\n           ^~~\n%Error: data/full_repos/permissive/509468557/generators/ibex/src/main/resources/vsrc/ibex/dv/uvm/icache/dv/ibex_icache_mem_agent/ibex_icache_mem_model.sv:39: Define or directive not defined: \'`uvm_object_utils_begin\'\n  `uvm_object_utils_begin(ibex_icache_mem_model)\n  ^~~~~~~~~~~~~~~~~~~~~~~\n%Error: data/full_repos/permissive/509468557/generators/ibex/src/main/resources/vsrc/ibex/dv/uvm/icache/dv/ibex_icache_mem_agent/ibex_icache_mem_model.sv:39: syntax error, unexpected \'(\'\n  `uvm_object_utils_begin(ibex_icache_mem_model)\n                          ^~~~~~~~~~~~~~~~~~~~~\n%Error: data/full_repos/permissive/509468557/generators/ibex/src/main/resources/vsrc/ibex/dv/uvm/icache/dv/ibex_icache_mem_agent/ibex_icache_mem_model.sv:40: Define or directive not defined: \'`uvm_field_int\'\n    `uvm_field_int (no_pmp_errs, UVM_DEFAULT)\n    ^~~~~~~~~~~~~~\n%Error: data/full_repos/permissive/509468557/generators/ibex/src/main/resources/vsrc/ibex/dv/uvm/icache/dv/ibex_icache_mem_agent/ibex_icache_mem_model.sv:41: Define or directive not defined: \'`uvm_field_int\'\n    `uvm_field_int (no_mem_errs, UVM_DEFAULT)\n    ^~~~~~~~~~~~~~\n%Error: data/full_repos/permissive/509468557/generators/ibex/src/main/resources/vsrc/ibex/dv/uvm/icache/dv/ibex_icache_mem_agent/ibex_icache_mem_model.sv:42: Define or directive not defined: \'`uvm_object_utils_end\'\n  `uvm_object_utils_end\n  ^~~~~~~~~~~~~~~~~~~~~\n%Error: data/full_repos/permissive/509468557/generators/ibex/src/main/resources/vsrc/ibex/dv/uvm/icache/dv/ibex_icache_mem_agent/ibex_icache_mem_model.sv:130: syntax error, unexpected endclass\nendclass\n^~~~~~~~\n%Error: Exiting due to 10 error(s)\n        ... See the manual and https://verilator.org for more assistance.\n'
function automatic logic
  is_error(bit [31:0] seed, logic [31:0] address, int unsigned error_shift);

    logic [31:0] rng_lo, rng_hi, rng_w0, rng_w1;
    rng_lo = seed ^ 32'hdeadbeef;
    rng_w0 = 32'd1 << (32 - error_shift);
    rng_w1 = (~32'd0) - rng_lo;
    rng_hi = rng_lo + ((rng_w0 < rng_w1) ? rng_w0 : rng_w1);



    return (address < rng_hi) && (rng_lo < address + BusWidth / 8);

  endfunction
function automatic logic
  is_error(bit [31:0] seed, logic [31:0] address, int unsigned error_shift);


    logic [31:0] rng_lo, rng_hi, rng_w0, rng_w1;
    rng_lo = seed ^ 32'hdeadbeef;
    rng_w0 = 32'd1 << (32 - error_shift);
    rng_w1 = (~32'd0) - rng_lo;
    rng_hi = rng_lo + ((rng_w0 < rng_w1) ? rng_w0 : rng_w1);



    return (address < rng_hi) && (rng_lo < address + BusWidth / 8);

  endfunction