SPI_Test/rtl/memory/sram_if.sv

59 lines
1.4 KiB
Systemverilog

interface sram_if #(parameter ADDR_WIDTH = 8, parameter DATA_WIDTH = 32)(input bit clk);
// Signals for interfacing with the SRAM
logic [ADDR_WIDTH-1:0] addr;
logic [DATA_WIDTH-1:0] din;
logic [DATA_WIDTH-1:0] dout;
logic rden;
logic wren;
logic [DATA_WIDTH/8-1:0] wben;
modport master(
output addr,
output din,
input dout,
output wren,
output rden,
output wben
);
modport slave (
input addr,
input din,
output dout,
input wren,
input rden,
input wben
);
/*
// synopsys translate_off
// write operation
task write;
input logic [ADDR_WIDTH-1:0] addr_in;
input logic [DATA_WIDTH-1:0] data_in;
input logic [DATA_WIDTH/8-1:0] byte_enable;
begin
addr = addr_in;
din = data_in;
wben = byte_enable;
wren = 1;
rden = 0;
@(posedge clk);
wren = 0;
end
endtask
// read oepration
task read;
input logic [ADDR_WIDTH-1:0] addr_in;
begin
addr = addr_in;
wren = 0;
rden = 1;
@(posedge clk);
rden = 0;
end
endtask
// synopsys translate_on
*/
endinterface