aboutsummaryrefslogtreecommitdiffstats
path: root/tests/write_read.cpp
diff options
context:
space:
mode:
authorGravatar Peter McGoron 2022-07-21 02:37:22 -0400
committerGravatar Peter McGoron 2022-07-21 02:37:22 -0400
commit4a683b8f654f3ecb6f2408dad3a9cfa60f3b39e6 (patch)
treea6c324803c18ad9a6dbcd65d54b80984d39f58d0 /tests/write_read.cpp
parentcleanup, add ready pin to slave (diff)
move tests
Diffstat (limited to 'tests/write_read.cpp')
-rw-r--r--tests/write_read.cpp59
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;
+}