CRC generator

In reply to dpanda:

Looks like you are doing something wrong.
Please see my example here:

//=============================================================================
// Sequence    : example_top_default_seq
// Author      : <author>    Tel: <phone>   Email: <email>
// Using       : <list of sub-sequences used by this sequences>
// Description : Sequence generating 1 item;
//=============================================================================
class example_top_default_seq extends example_top_base_seq;


  `uvm_object_utils(example_top_default_seq)

  // UVC sequences
  apb_default_seq	apb_seq;
  spi_default_seq	spi_seq;

  int loop_no = 10;

  extern function new(string name = "example_top_default_seq");
  extern task body();
  extern task run_seq(input int noofloops = loop_no);

endclass : example_top_default_seq

//-----------------------------------------------------------------------------
// example_top_default_seq implementation
//-----------------------------------------------------------------------------

function example_top_default_seq::new(string name = "example_top_default_seq");
   super.new(name);
endfunction : new

task example_top_default_seq::run_seq(input int noofloops = loop_no);

  repeat(noofloops) begin
  `uvm_info(get_type_name(),"apb sequence starting", UVM_MEDIUM)
  `uvm_info(get_type_name(),$sformatf("loop_no = %0d", loop_no), UVM_MEDIUM)

  void'(apb_seq.randomize());
    apb_seq.start(apb_sequencer_i);
  `uvm_info(get_type_name(),"spi sequence starting", UVM_MEDIUM)

  void'(spi_seq.randomize());
    spi_seq.start(spi_sequencer_i);
  end

  `uvm_info(get_type_name(),"setting new loop_no", UVM_MEDIUM)

endtask

task example_top_default_seq::body();
  super.body();

  apb_seq = apb_default_seq::type_id::create("apb_seq");
  spi_seq = spi_default_seq::type_id::create("spi_seq");

  `uvm_info(get_type_name(),"default sequence starting", UVM_MEDIUM)

  run_seq(loop_no);

  loop_no = 5;

  run_seq(loop_no);

  `uvm_info(get_type_name(),"default sequence completed",UVM_MEDIUM)
endtask : body