|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- // axi write sequence
-
- class axi_write_sequence extends uvm_sequence#(axi_seq_item);
-
- `uvm_object_utils(axi_write_sequence);
-
- function new(string name="axi_write_sequence");
- super.new(name);
- endfunction
-
- task body();
- req=axi_seq_item::type_id::create(req);
-
- start_item(req);
-
- assert(req.randomize()with{req.wr_rd==1;req.awaddr==0x08;req.awburst==2'b 10;req.awlen==3;req.awsize==2;req.wdata==0x22fb;});
-
- finish_item(req);
- endtask
-
- endclass
-
-
- // axi_read_sequence
-
-
- class axi_read_sequence extends uvm_sequence#(axi_seq_item);
-
- `uvm_object_utils(axi_read_sequence);
-
- function new(string name="axi_read_sequence");
- super.new(name);
- endfunction
-
- task body();
- req=axi_seq_item::type_id::create(req);
-
- start_item(req);
- assert(req.randomize()with{req.wr_rd==0;req.araddr==0x08;arlen==3;arburst==2'b 10;});
- finish_item(req);
- endtask
-
- endclass
-
- // axi aligned sequence
-
- class axi_aligned_sequence extends uvm_sequence#(axi_seq_item);
-
- `uvm_object_utils(axi_aligned_sequence);
-
- function new(string name="axi_aligned_sequence");
- super.new(name);
- endfunction
-
- task body();
-
- req=axi_seq_item::type_id::create(req);
-
- start_item(req);
- assert(req.randomize()with{req.wr_rd==1;req.awaddr==0x08;req.awsize==3;req.awburst==2'b 10;req.wdata==0xfa30;});
- finish_item(req);
- endtask
- endclass
-
- // write followed by read
-
-
- class write_read_sequence extends uvm_sequence#(axi_seq_item);
- `uvm_object_utils(write_read_sequence);
-
- axi_write_sequence axi_wr_seq;
- axi_read_sequence axi_rd_seq;
-
- function new(string name="write_read_sequence");
- super.new(name);
- endfunction
-
- task body();
- `uvm_do(axi_wr_seq);
- `uvm_do(axi_rd_seq);
- end
- endclass
-
-
-
|