AXI muckbucket
axi_scoreboard.svh
Go to the documentation of this file.
1 //
3 // Copyright (C) 2017, Matt Dew @ Dew Technologies, LLC
4 //
5 // This program is free software (logic verification): you can redistribute it
6 // and/or modify it under the terms of the GNU Lesser General Public License (LGPL)
7 // as published by the Free Software Foundation, either version 3 of the License,
8 // or (at your option) any later version.
9 //
10 // This program is distributed in the hope that it will be useful, but WITHOUT
11 // ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY or
12 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
13 // for more details.
14 //
15 // License: LGPL, v3, as defined and found on www.gnu.org,
16 // http://www.gnu.org/licenses/lgpl.html
17 //
18 //
19 // Author's intent: If you use this AXI verification code and find or fix bugs
20 // or make improvements, then share those fixes or improvements.
21 // If you use this in a bigger project, I don't care about,
22 // or want, any changes or code outside this block.
23 // Example: If you use this in an SoC simulation/testbench
24 // I don't want, or care about, your SoC or other blocks.
25 // I just care about the enhancements to these AXI files.
26 // That's why I have choosen the LGPL instead of the GPL.
28 
34 class axi_scoreboard : public uvm_subscriber <axi_seq_item> { public:
36 
37 
38 
39  new (string name="axi_scoreboard", uvm_component parent=null);
40 
41  void build_phase (uvm_phase phase);
42  void connect_phase (uvm_phase phase);
43  task run_phase (uvm_phase phase);
44 
45 
46  virtual void write (axi_seq_item t);
47 
50 
51 };
52 
56  axi_scoreboard::new (string name="axi_scoreboard", uvm_component parent=null) {
57  super.new(name, parent);
58 }
59 
63  void axi_scoreboard::build_phase (uvm_phase phase) {
64  super.build_phase(phase);
65 }
66 
70  void axi_scoreboard::connect_phase (uvm_phase phase) {
71  super.connect_phase(phase);
72 }
73 
77 task axi_scoreboard::run_phase(uvm_phase phase) {
78 }
79 
84  uvm_info("SCOREBOARD", $sformatf("%s", t.convert2string()), UVM_HIGH)
85 
86  case (t.cmd) {
87  e_WRITE : {
89  uvm_info("SCOREBOARD",
90  $sformatf("write_address_cntr=%0d", write_address_cntr),
91  UVM_HIGH)
92  }
95  uvm_info("SCOREBOARD",
96  $sformatf("write_response_cntr=%0d", write_response_cntr),
97  UVM_HIGH)
98 
99  }
100 
101  }
102 
103 }
rand cmd_t cmd
string convert2string()
Convert item&#39;s variable into one printable string.
virtual void write(axi_seq_item t)
Updates counters.
uvm_component_utils(axi_scoreboard) new(string name
void connect_phase(uvm_phase phase)
currently does nothing
task run_phase(uvm_phase phase)
currently does nothing
contains all data and functions related to axi and usage
uvm_component parent
void build_phase(uvm_phase phase)
currently does nothing