[aes/dv] Adding aes_clear to regression
Signed-off-by: Rasmus Madsen <rasmus.madsen@wdc.com>
diff --git a/hw/ip/aes/data/aes_testplan.hjson b/hw/ip/aes/data/aes_testplan.hjson
index 94fd5cf..0ef379a 100644
--- a/hw/ip/aes/data/aes_testplan.hjson
+++ b/hw/ip/aes/data/aes_testplan.hjson
@@ -41,7 +41,7 @@
desc: '''
Randomly select key length to verify all supported key lengths are working.'''
milestone: V2
- tests: ["aes_stress", "aes_smoke", "aes_config_error"]
+ tests: ["aes_stress", "aes_smoke", "aes_config_error", "aes_clear"]
}
{
name: back2back
@@ -49,7 +49,7 @@
Randomly select the spacing between consecutive messages and blocks from 0 - n clock cycles.
The distribution will be weighted toward no and small gaps (0-10 cycles) but will also cover larger gaps.'''
milestone: V2
- tests: ["aes_b2b", "aes_stress"]
+ tests: ["aes_b2b", "aes_stress", "aes_clear"]
}
{
name: backpressure
@@ -64,7 +64,7 @@
Run multiple messages in a random mix of encryption / decryption.
Each message should select its mode randomly.'''
milestone: V2
- tests: ["aes_stress", "aes_smoke", "aes_config_error"]
+ tests: ["aes_stress", "aes_smoke", "aes_config_error", "aes_clear"]
}
{
name: failure_test
@@ -85,7 +85,7 @@
Exercise trigger and clear registers at random times to make sure we handle the different cornercases correctly.
Example of a cornercases clearing data input or data output before the data is consumed or the DUT finishes an operation.'''
milestone: V2
- tests: []
+ tests: ["aes_clear"]
}
{
name: nist_test_vectors
diff --git a/hw/ip/aes/dv/env/aes_scoreboard.sv b/hw/ip/aes/dv/env/aes_scoreboard.sv
index d8b8a63..d8310d1 100644
--- a/hw/ip/aes/dv/env/aes_scoreboard.sv
+++ b/hw/ip/aes/dv/env/aes_scoreboard.sv
@@ -358,7 +358,7 @@
end
endcase // case (csr.get_name())
- if (output_item.data_out_valid()) begin
+ if (output_item.data_out_valid()) begin
// if data_out is read multipletimes in a row we should not pop input more than once
if (rcv_item_q.size() == 0) begin
output_item = new();
@@ -374,8 +374,8 @@
output_item = new();
complete_item = new();
`uvm_info(`gfn,
- $sformatf("\n\t ----|added data to item_fifo (output received) fifo entries %d",
- item_fifo.num()), UVM_MEDIUM)
+ $sformatf("\n\t ----|added data to item_fifo (output received) fifo entries %d",
+ item_fifo.num()), UVM_MEDIUM)
end
end
end
@@ -398,7 +398,6 @@
forever begin
case (msg_state)
MSG_START: begin
- full_item = new();
item_fifo.get(full_item);
`uvm_info(`gfn, $sformatf("\n\t ----| got item from item fifo \n cleared? %b", full_item.data_was_cleared), UVM_MEDIUM)
if (!full_item.message_start()) begin
@@ -416,7 +415,6 @@
end
MSG_RUN: begin
- full_item = new();
item_fifo.get(full_item);
`uvm_info(`gfn, $sformatf("\n\t ----| got item from item fifo \n cleared? %b", full_item.data_was_cleared), UVM_MEDIUM)
if (full_item.message_start() || (full_item.start_item && full_item.manual_op)) begin