aboutsummaryrefslogtreecommitdiffstats
path: root/tests/spi_write_read.v
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/spi_write_read.v
parentcleanup, add ready pin to slave (diff)
move tests
Diffstat (limited to 'tests/spi_write_read.v')
-rw-r--r--tests/spi_write_read.v65
1 files changed, 65 insertions, 0 deletions
diff --git a/tests/spi_write_read.v b/tests/spi_write_read.v
new file mode 100644
index 0000000..8045a1c
--- /dev/null
+++ b/tests/spi_write_read.v
@@ -0,0 +1,65 @@
+/* (c) Peter McGoron 2022
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v.2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/.
+ */
+
+module spi_write_read
+#(
+ parameter POLARITY = 0,
+ parameter PHASE = 0
+)
+(
+ input clk,
+ input [23:0] data_ctrl,
+ input activate,
+ input ss,
+ input rdy,
+ output master_finished
+);
+
+wire miso;
+wire mosi;
+wire sck;
+wire ss_L = !ss;
+
+reg [23:0] from_slave_data;
+reg slave_finished;
+reg slave_error;
+
+spi_master master
+(
+ .clk(clk),
+ .to_slave(data_ctrl),
+ .from_slave(from_slave_data),
+ .miso(miso),
+ .mosi(mosi),
+ .sck_wire(sck),
+ .finished(master_finished),
+ .arm(activate)
+);
+
+reg [23:0] data_from_master;
+reg [23:0] data_to_master = 24'b111011011100010101010101;
+
+spi_slave slave
+(
+ .clk(clk),
+ .sck(sck),
+ .ss_L(ss_L),
+ .from_master(data_from_master),
+ .to_master(data_to_master),
+ .mosi(mosi),
+ .miso(miso),
+ .finished(slave_finished),
+ .rdy(rdy),
+ .err(slave_error)
+);
+
+always @ (posedge clk) begin
+ if (slave_finished) begin
+ data_to_master <= data_from_master;
+ end
+end
+
+endmodule