Add bb_spi_controller

Bit banged spi controller, very simple but very slow.
This commit is contained in:
Byron Lathi
2022-03-08 15:26:01 -06:00
parent e1f50e825d
commit ad55f986f5
5 changed files with 153 additions and 2 deletions

View File

@@ -0,0 +1,43 @@
module bb_spi_controller(
input clk,
input rst,
input spi_cs,
input logic [7:0] data_in,
output logic [7:0] data_out,
input rw,
output logic SPI_SSn,
output logic SPI_MOSI,
output logic SPI_SCLK,
input SPI_MISO,
input SPI_slave_IRQ
);
logic [7:0] val;
assign data_out = val;
assign SPI_SCLK = val[0];
assign SPI_SSn = val[1];
assign SPI_MOSI = val[2];
always @(posedge clk) begin
if (rst) begin
val <= 8'h2; //start with SS high
end
if (spi_cs & ~rw)
val <= data_in;
val[3] <= SPI_MISO;
val[4] <= SPI_slave_IRQ;
end
endmodule