Skip to content

Commit 48299b5

Browse files
committed
Added completer error support
1 parent 8e4dc82 commit 48299b5

3 files changed

Lines changed: 12 additions & 1 deletion

File tree

src/agent/apb_driver.svh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,7 @@ class apb_driver#(`_APB_AGENT_PARAM_DEFS) extends uvm_driver#(apb_transaction#(`
181181

182182
m_vif.pready = 1'b0;
183183
m_vif.prdata = '0;
184+
m_vif.pslverr = 1'b0;
184185

185186
forever begin
186187
m_vif.pready = 1'b0;
@@ -197,6 +198,7 @@ class apb_driver#(`_APB_AGENT_PARAM_DEFS) extends uvm_driver#(apb_transaction#(`
197198
end
198199

199200
m_vif.pready = 1'b1;
201+
m_vif.pslverr = trans.error;
200202

201203
@(posedge m_vif.pclk);
202204
seq_item_port.item_done();

src/agent/apb_monitor.svh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,14 +137,16 @@ class apb_monitor#(`_APB_AGENT_PARAM_DEFS) extends uvm_monitor;
137137
// Access Phase
138138
// TODO: Check penable
139139

140-
if (m_vif.pready) begin
140+
if (m_vif.pready && m_vif.penable) begin
141141
if (trans.write == APB_READ) begin
142142
trans.data = m_vif.prdata;
143143
end
144144
else begin
145145
trans.data = m_vif.pwdata;
146146
end
147147

148+
trans.error = m_vif.pslverr;
149+
148150
ap.write(trans);
149151
trans = null;
150152

src/agent/apb_transaction.svh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,12 @@ class apb_transaction#(`_APB_AGENT_PARAM_DEFS) extends uvm_sequence_item;
5858
// Set by the agent in APB_REQUESTER_AGENT mode.
5959
rand apb_pprot_t pprot = '0;
6060

61+
// Poperty: error
62+
// The Completer Error signal from the transaction.
63+
// Set by the sequence in APB_REQUESTER_AGENT mode.
64+
// set by the agent in AAPB_COMPELTER_AGENT mode.
65+
rand bit error = 1'b0;
66+
6167
// Property: wait_states
6268
// The number of wait states in the transaction.
6369
// Set by sequence in APB_REQUESTER_AGENT mode.
@@ -73,6 +79,7 @@ class apb_transaction#(`_APB_AGENT_PARAM_DEFS) extends uvm_sequence_item;
7379
super.pre_randomize();
7480

7581
if (rand_type == APB_COMPLETER_AGENT) begin
82+
error.rand_mode(0);
7683
wait_states.rand_mode(0);
7784
return;
7885
end

0 commit comments

Comments
 (0)