From b7339a1680222aa3bbb1d783ba87d1549c8283be Mon Sep 17 00:00:00 2001 From: Neel Date: Tue, 17 Jul 2018 14:40:45 +0530 Subject: [PATCH] template for slow-peripherals done. need automation. gpio config is decouple from func as well. --- src/bsv/bsv_lib/gpio.bsv | 9 ++++-- src/bsv/bsv_lib/slow-peripherals.bsv | 46 ++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 2 deletions(-) diff --git a/src/bsv/bsv_lib/gpio.bsv b/src/bsv/bsv_lib/gpio.bsv index ad0650f..48fe7dd 100644 --- a/src/bsv/bsv_lib/gpio.bsv +++ b/src/bsv/bsv_lib/gpio.bsv @@ -24,13 +24,15 @@ package gpio; /*============================ */ `include "instance_defines.bsv" - interface GPIO_config#(numeric type ionum); + interface GPIO_func#(numeric type ionum); (*always_ready,always_enabled*) method Action gpio_in (Vector#(ionum,Bit#(1)) inp); (*always_ready*) method Vector#(ionum,Bit#(1)) gpio_out; (*always_ready*) method Vector#(ionum,Bit#(1)) gpio_out_en; + endinterface + interface GPIO_config#(numeric type ionum); (*always_ready*) method Vector#(ionum,Bit#(1)) gpio_DRV0; (*always_ready*) @@ -52,6 +54,7 @@ package gpio; endinterface 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; endinterface @@ -181,7 +184,7 @@ package gpio; endrule interface axi_slave= s_xactor.axi_side; - interface pad_config=interface GPIO_config + interface func=interface GPIO_func method Action gpio_in (Vector#(ionum,Bit#(1)) inp); for(Integer i=0;i