package spi;
+ import AXI4_Lite_Types :: *;
+ import AXI4_Lite_Fabric :: *;
+ import GetPut::*;
import qspi::*;
`include "instance_defines.bsv"
(*always_ready, always_enabled*)
interface SPI_out;
interface Get#(Bit#(1)) clk_o;
- interface Get#(Bit#(1)) io_out;
method Bit#(9) io0_sdio_ctrl;
method Bit#(9) io1_sdio_ctrl;
// index 0 is MOSI, index 1 is MISO.
+ interface Get#(Bit#(2)) io_out;
interface Get#(Bit#(2)) io_out_en;
interface Put#(Bit#(2)) io_in;
interface Get#(Bit#(1)) ncs_o;
Ifc_qspi qspi <- mkqspi();
- interface SPI_out out;
+ interface out = interface SPI_out
method Bit#(9) io0_sdio_ctrl;
return qspi.out.io0_sdio_ctrl;
endmethod
endmethod
interface io_out = interface Get
method ActionValue#(Bit#(2)) get;
- return qspi.out.io_out[1:0];
+ ActionValue#(Bit#(4)) temp2 = qspi.out.io_out.get;
+ Bit#(2) temp;
+ temp[0] = temp2[0];
+ temp[1] = temp2[1];
+ return temp;
endmethod
endinterface;
interface io_out_en = interface Get
method ActionValue#(Bit#(2)) get;
- return qspi.out.io_out_en[1:0];
+ ActionValue#(Bit#(4)) temp2 = qspi.out.io_out_en.get;
+ Bit#(2) temp;
+ temp[0] = temp2[0];
+ temp[1] = temp2[1];
+ return temp;
endmethod
endinterface;
interface io_in = interface Put
method Action put(Bit#(2) in);
- Bit(#4) temp;
+ Bit#(4) temp;
temp[3] = 0;
temp[2] = 0;
temp[1] = in[1];
temp[0] = in[0];
- qspi.out.io_in(temp);
+ qspi.out.io_in.put(temp);
endmethod
endinterface;
interface clk_o = qspi.out.clk_o;
- interface io_out = qspi.out.io_out;
- interface io_out_en = qspi.out.io_out_en;
- interface io_in = qspi.out.io_in;
- interface ncs_o = qspi.ncs_o;
- endinterface
+ interface ncs_o = qspi.out.ncs_o;
+ endinterface;
interface slave = qspi.slave;
return qspi.interripts;
endmethod
+ endmodule
endpackage