| // 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: [] |
| } |
| ] |
| } |