/********************************************** _ _ Cook Darwin __

_ descript:

simple slaver to multi master with lazy data

author : Cook.Darwin Version: VERA.0.0 creaded: 2018/11/17 madified: ***********************************************/ `timescale 1ns/1ps module data_inf_c_intc_S2M_with_lazy #(

parameter   NUM   = 8,
parameter   NSIZE =  $clog2(NUM),
parameter   LAZISE= 1

)(

input [NSIZE-1:0]       addr,       // sync to s00.valid
output[LAZISE-1:0]      m00_lazy_data [NUM-1:0],
input [LAZISE-1:0]      s00_lazy_data ,
data_inf_c.master       m00 [NUM-1:0],
data_inf_c.slaver       s00

);

data_inf_c #(s00.DSIZE+LAZISE) bind_m00 [NUM-1:0] (s00.clock,s00.rst_n); data_inf_c #(s00.DSIZE+LAZISE) bind_s00 (s00.clock,s00.rst_n);

data_inf_c_intc_S2M #(

.NUM        (NUM    )

)data_inf_c_intc_S2M_inst( /* input [NSIZE-1:0] */ .addr (addr ), // sync to s00.valid /* data_inf_c.master */ .m00 (bind_m00 ),//[NUM-1:0], /* data_inf_c.slaver */ .s00 (bind_s00 ) );

genvar KK; generate for(KK=0;KK<NUM;KK++)begin assign {m00_lazy_data,m00.data} = bind_m00.data ; assign m00.valid = bind_m00.valid ; assign bind_m00.ready = m00.ready ; end endgenerate

assign bind_s00.data = {s00_lazy_data,s00.data} ;

assign bind_s00.valid = s00.valid ;

assign s00.ready = bind_s00.ready ;

endmodule