X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fperipherals%2Fflexbus%2FFlexBus_Types.bsv;h=19ba1a49057d3c46b101d9c792a466b0f5e57971;hb=9630336b1b983ed25e7c451cf008d45fae389b6d;hp=9e3533e40df248ba780b3f1c95597a4d7451ba98;hpb=500f32c43a059e2e806d302173fdfce18a469bdd;p=shakti-peripherals.git diff --git a/src/peripherals/flexbus/FlexBus_Types.bsv b/src/peripherals/flexbus/FlexBus_Types.bsv index 9e3533e..19ba1a4 100644 --- a/src/peripherals/flexbus/FlexBus_Types.bsv +++ b/src/peripherals/flexbus/FlexBus_Types.bsv @@ -67,19 +67,31 @@ interface FlexBus_Master_IFC; // FlexBus External Signals // AD inout bus separate for now in BSV - interface Get#(Bit#(32)) AD; // out - interface Put#(Bit#(32)) din; // in - - interface Get#(Bit#(1)) R_Wn; // out - interface Get#(Bit#(2)) TSIZ; // out - - interface Get#(Bit#(6)) FBCSn; // out - interface Get#(Bit#(4)) BWEn; // out - interface Get#(Bit#(1)) TBSTn; // out - interface Get#(Bit#(1)) OEn; // out - - interface Get#(Bit#(1)) ALE; // out - interface Put#(Bit#(1)) tAn; // in + (* always_ready *) + interface Get#(Bit#(32)) m_AD; // out + (* always_ready *) + interface Put#(Bit#(32)) m_din; // in + (* always_ready *) + interface Get#(Bit#(32)) m_OE32n; // out 32-bits, same as OEn + + (* always_ready *) + interface Get#(Bit#(1)) m_R_Wn; // out + (* always_ready *) + interface Get#(Bit#(2)) m_TSIZ; // out + + (* always_ready *) + interface Get#(Bit#(6)) m_FBCSn; // out + (* always_ready *) + interface Get#(Bit#(4)) m_BWEn; // out + (* always_ready *) + interface Get#(Bit#(1)) m_TBSTn; // out + (* always_ready *) + interface Get#(Bit#(1)) m_OEn; // out + + (* always_ready *) + interface Get#(Bit#(1)) m_ALE; // out + (* always_ready *) + interface Put#(Bit#(1)) m_tAn; // in endinterface: FlexBus_Master_IFC @@ -1073,61 +1085,71 @@ module mkAXI4_Slave_to_FlexBus_Master_Xactor interface flexbus_side = interface FlexBus_Master_IFC; //interface io_AD_master = tri_AD_out.io; - interface tAn = interface Put + interface m_tAn = interface Put method Action put(Bit#(1) in) if(c_TAn[0] matches tagged Invalid); c_TAn[0] <= tagged Valid in; endmethod endinterface; - interface din = interface Put + interface m_din = interface Put method Action put(Bit#(32) in) if(c_din[0] matches tagged Invalid); c_din[0] <= tagged Valid in; endmethod endinterface; - interface AD = interface Get + interface m_AD = interface Get method ActionValue#(Bit#(32)) get; return r_AD; endmethod endinterface; - interface R_Wn = interface Get + interface m_R_Wn = interface Get method ActionValue#(Bit#(1)) get; return r_R_Wn; endmethod endinterface; - interface TSIZ = interface Get + interface m_TSIZ = interface Get method ActionValue#(Bit#(2)) get; return r_TSIZ; endmethod endinterface; - interface FBCSn = interface Get + interface m_FBCSn = interface Get method ActionValue#(Bit#(6)) get; return r_FBCSn; endmethod endinterface; - interface BWEn = interface Get + interface m_BWEn = interface Get method ActionValue#(Bit#(4)) get; return r_BE_BWEn; endmethod endinterface; - interface TBSTn = interface Get + interface m_TBSTn = interface Get method ActionValue#(Bit#(1)) get; return r_TBSTn; endmethod endinterface; - interface OEn = interface Get + interface m_OE32n = interface Get + method ActionValue#(Bit#(32)) get; + Bit#(32) ten; + for (int i=0; i<32; i=i+1) begin + ten[i] = r_OEn; + end + return ten; + endmethod + endinterface; + + interface m_OEn = interface Get method ActionValue#(Bit#(1)) get; return r_OEn; endmethod endinterface; - interface ALE = interface Get + interface m_ALE = interface Get method ActionValue#(Bit#(1)) get; return r_ALE; endmethod