newStep.v
This commit is contained in:
40
RTL/DEVICES/SDCard.v
Normal file
40
RTL/DEVICES/SDCard.v
Normal file
@@ -0,0 +1,40 @@
|
||||
// femtorv32, a minimalistic RISC-V RV32I core
|
||||
// Bruno Levy, 2020-2021
|
||||
//
|
||||
// This file: driver for SDCard (does nearly nothing,
|
||||
// for now it is just an interface for software bitbanging,
|
||||
// see FIRMWARE/LIBFEMTORV32/spi_sd.c)
|
||||
//
|
||||
|
||||
module SDCard(
|
||||
input wire clk, // system clock
|
||||
input wire rstrb, // read strobe
|
||||
input wire wstrb, // write strobe
|
||||
input wire sel, // select (read/write ignored if low)
|
||||
input wire [31:0] wdata, // data to be written
|
||||
output wire [31:0] rdata, // read data
|
||||
|
||||
output wire MOSI,
|
||||
input wire MISO,
|
||||
output wire CS_N,
|
||||
output wire CLK
|
||||
);
|
||||
reg [2:0] state; // CS_N,CLK,MOSI
|
||||
|
||||
assign CS_N = state[2];
|
||||
assign CLK = state[1];
|
||||
assign MOSI = state[0];
|
||||
|
||||
initial begin
|
||||
state = 3'b100;
|
||||
end
|
||||
|
||||
assign rdata = (sel ? {31'b0, MISO} : 32'b0);
|
||||
|
||||
always @(posedge clk) begin
|
||||
if(sel && wstrb) begin
|
||||
state <= wdata[2:0];
|
||||
end
|
||||
end
|
||||
|
||||
endmodule
|
||||
Reference in New Issue
Block a user