diff options
| author | 2022-07-21 02:37:22 -0400 | |
|---|---|---|
| committer | 2022-07-21 02:37:22 -0400 | |
| commit | 4a683b8f654f3ecb6f2408dad3a9cfa60f3b39e6 (patch) | |
| tree | a6c324803c18ad9a6dbcd65d54b80984d39f58d0 /tests/write_read.cpp | |
| parent | cleanup, add ready pin to slave (diff) | |
move tests
Diffstat (limited to 'tests/write_read.cpp')
| -rw-r--r-- | tests/write_read.cpp | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/tests/write_read.cpp b/tests/write_read.cpp new file mode 100644 index 0000000..457180a --- /dev/null +++ b/tests/write_read.cpp @@ -0,0 +1,59 @@ +#include <stdio.h> +#include <verilated.h> + +VerilatedContext *ctx; +TopModule *sim; + +static void progress() { + sim->eval(); + ctx->timeInc(1); + sim->clk = !sim->clk; +} + +static void progress_n(int f) { + for (int i = 0; i < f; i++) + progress(); +} + +int main(int argc, char **argv) { + ctx = new VerilatedContext; + ctx->traceEverOn(true); + ctx->commandArgs(argc, argv); + sim = new TopModule(ctx); + sim->ss = 0; + sim->clk = 0; + sim->activate = 0; + sim->rdy = 0; + + progress_n(8); + sim->ss = 1; + sim->rdy = 1; + progress(); + + sim->data_ctrl = 0b110011011111001100011111; + sim->activate = 1; + + while (!sim->master_finished) + progress(); + progress_n(5); + sim->activate = 0; + sim->ss = 0; + sim->rdy = 0; + progress_n(5); + + sim->data_ctrl = 0xFE3456; + sim->activate = 1; + sim->ss = 1; + sim->rdy = 1; + while (!sim->master_finished) + progress(); + progress_n(5); + sim->activate = 0; + sim->ss = 0; + sim->rdy = 0; + progress_n(5); + + sim->final(); + delete sim; + return 0; +} |
