[dv/kmac] Add support for kmac to receive non ones strb
This PR supports kmac receive strb from app interface that is not all
ones via these changes:
1). Update kmac_app_agent host agent to support sending partial data
with strb != `1.
To enable this feature, user can set `cfg.inject_zero_in_host_strb` to
1.
2). Update kmac scb to support this feature.
Current kmac scb is cycle accurate with the assumption that kmac app
interface will always receive full data. This change will require scb
update. To avoid the massive change, we disable the cycle accurate
check in scb, but will ensure the digest is correct.
3). Add a separate test to check partial data.
Signed-off-by: Cindy Chen <chencindy@opentitan.org>
diff --git a/hw/ip/kmac/data/kmac_base_testplan.hjson b/hw/ip/kmac/data/kmac_base_testplan.hjson
index 4d5ff22..e3a41bf 100644
--- a/hw/ip/kmac/data/kmac_base_testplan.hjson
+++ b/hw/ip/kmac/data/kmac_base_testplan.hjson
@@ -111,6 +111,18 @@
tests: ["{variant}_app"]
}
{
+ name: app_with_partial_data
+ desc: '''
+ Basd on the kmac_app test, this test will send partial data from application interface
+ by sending `strb` with values other than `8'hFF`.
+ Because the scoreboard is cycle accurate and does not support this feature, this test
+ will not check `status` and `intr_state` registers, but will check other registers and
+ all interface data including digest.
+ '''
+ milestone: V2
+ tests: ["{variant}_app_with_partial_data"]
+ }
+ {
name: error
desc: '''
Try several error sequences: