| // Copyright lowRISC contributors. | |
| // Licensed under the Apache License, Version 2.0, see LICENSE for details. | |
| // SPDX-License-Identifier: Apache-2.0 | |
| { | |
| name: "otbn" | |
| import_testplans: ["hw/dv/tools/dvsim/testplans/csr_testplan.hjson", | |
| "hw/dv/tools/dvsim/testplans/mem_testplan.hjson", | |
| "hw/dv/tools/dvsim/testplans/intr_test_testplan.hjson", | |
| "hw/dv/tools/dvsim/testplans/tl_device_access_types_testplan.hjson"] | |
| entries: [ | |
| { | |
| name: smoke | |
| desc: ''' | |
| Smoke test, running a single fixed binary | |
| This runs the binary from otbn/dv/smoke/smoke_test.s, which is | |
| designed to check most of the implemented instructions. The | |
| unchanging binary should mean this basic test is particularly | |
| appropriate for CI. | |
| ''' | |
| milestone: V1 | |
| tests: ["otbn_smoke"] | |
| } | |
| { | |
| name: single_binary | |
| desc: ''' | |
| Run a single randomly-chosen binary | |
| This test drives the main bulk of OTBN testing. It picks a random | |
| binary from a pre-generated set and runs it, comparing against the | |
| model. We'll run this with a large number of seeds and use | |
| functional coverage to track when verification of the internals of | |
| the core is done. | |
| Sometimes enable the "done" interrupt to check that it and the | |
| error interrupt work correctly. | |
| ''' | |
| milestone: V1 | |
| tests: ["otbn_single"] | |
| } | |
| { | |
| name: reset_recovery | |
| desc: ''' | |
| Run two binaries, resetting the first at an arbitrary time | |
| Running another binary after a sudden and unexpected reset via the | |
| rst_ni signal will check that all state is properly re-initialized | |
| after a reset. We'd expect X-propagation checks to catch most | |
| problems like this, but an explicit reset sequence also adds the | |
| relevant FSM/toggle coverage. | |
| ''' | |
| milestone: V2 | |
| tests: [] | |
| } | |
| { | |
| name: stress | |
| desc: ''' | |
| Run sequences back-to-back | |
| This runs several sequences back-to-back, sometimes resetting | |
| between them. We don't expect to see much from these tests, because | |
| OTBN doesn't keep internal state across runs, but it's another way | |
| to catch bugs where we don't re-initialize properly. | |
| ''' | |
| milestone: V2 | |
| tests: [] | |
| } | |
| ] | |
| } |