interface GPIO_func#(numeric type ionum);
(*always_ready,always_enabled*)
- interface Put#(Vector#(ionum,Bit#(1)) gpio_in;
+ interface Put#(Vector#(ionum,Bit#(1))) gpio_in;
(*always_ready*)
- interface Get#(Vector#(ionum,Bit#(1)) gpio_out;
+ interface Get#(Vector#(ionum,Bit#(1))) gpio_out;
(*always_ready*)
- interface Get#(Vector#(ionum,Bit#(1)) gpio_out_en;
+ interface Get#(Vector#(ionum,Bit#(1))) gpio_out_en;
endinterface
interface GPIO_config#(numeric type ionum);
(*always_ready*)
interface GPIO#(numeric type ionum);
interface GPIO_config#(ionum) pad_config;
interface GPIO_func#(ionum) func;
- interface AXI4_Lite_Slave_IFC#(`ADDR,`DATA,`USERSPACE) axi_slave;
+ interface AXI4_Lite_Slave_IFC#(`PADDR,`DATA,`USERSPACE) axi_slave;
endinterface
module mkgpio(GPIO#(ionum_));
Vector#(ionum_,ConfigReg#(Bit#(1))) pwrupzhl_reg <-replicateM(mkConfigReg(0));
Vector#(ionum_,ConfigReg#(Bit#(1))) pwrup_pull_en_reg <-replicateM(mkConfigReg(0));
- AXI4_Lite_Slave_Xactor_IFC #(`ADDR, `DATA, `USERSPACE) s_xactor <- mkAXI4_Lite_Slave_Xactor;
+ AXI4_Lite_Slave_Xactor_IFC #(`PADDR, `DATA, `USERSPACE) s_xactor <- mkAXI4_Lite_Slave_Xactor;
rule rl_wr_respond;
// Get the wr request
let aw <- pop_o (s_xactor.o_wr_addr);
endmethod
endinterface;
interface gpio_out = interface Get#(ionum)
- method Vector#(ionum,Bit#(1)) get;
+ method ActionValue#(Vector#(ionum_,Bit#(1))) get;
Vector#(ionum,Bit#(1)) temp;
for(Integer i=0;i<ionum;i=i+1)
temp[i]=dataout_register[i];
endmethod
endinterface;
interface gpio_out_en = interface Get#(ionum)
- method Vector#(ionum,Bit#(1)) get;
+ method ActionValue#(Vector#(ionum_,Bit#(1))) get;
Vector#(ionum,Bit#(1)) temp;
for(Integer i=0;i<ionum;i=i+1)
temp[i]=pack(direction_reg[i]);
return temp;
endmethod
+ endinterface;
endinterface;
interface pad_config=interface GPIO_config
method Vector#(ionum,Bit#(1)) gpio_DRV0;