71 lines
2.2 KiB
Verilog
71 lines
2.2 KiB
Verilog
module spi_slave (
|
|
//system port
|
|
input clk // System Main Clock
|
|
,input rstn // Spi Reset active low
|
|
//spi port
|
|
,input sclk // Spi Clock
|
|
,input csn // Spi Chip Select active low
|
|
,input mosi // Spi Mosi
|
|
,output miso // Spi Miso
|
|
,output miso_oen // Spi Miso output enable
|
|
//awg read and write signals
|
|
,output error_check
|
|
);
|
|
|
|
|
|
wire [31 :0] wrdata ;
|
|
wire wren ;
|
|
wire [24 :0] rwaddr ;
|
|
wire rden ;
|
|
wire [31 :0] rddata ;
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
//spi_interface inst
|
|
//////////////////////////////////////////////////////////////////////////
|
|
spi_to_sram spi_to_sram_inst (
|
|
//system port
|
|
.clk ( clk )
|
|
,.spi_rstn ( rstn )
|
|
//spi port
|
|
,.sclk ( sclk )
|
|
,.csn ( csn )
|
|
,.mosi ( mosi )
|
|
,.miso ( miso )
|
|
,.miso_oen ( miso_oen )
|
|
,.error_check ( error_check )
|
|
//data & cmd port
|
|
//output
|
|
,.addr ( rwaddr )
|
|
,.wren ( wren )
|
|
,.wrdata ( wrdata )
|
|
,.rden ( rden )
|
|
,.rddata ( rddata )
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
//sram
|
|
//////////////////////////////////////////////////////////////////////////
|
|
spram_model #(
|
|
.width(32),
|
|
.depth(33554432)//2^25
|
|
)spram_model_inst(
|
|
.clka(clk)
|
|
,.ena(wren)
|
|
,.dina(wrdata)
|
|
,.addra(rwaddr)
|
|
|
|
,.clkb(clk)
|
|
,.enb(rden)
|
|
,.doutb(rddata)
|
|
,.addrb(rwaddr)
|
|
);
|
|
|
|
endmodule
|