//given a spi_item, and read or write reg_mems. class spi_rw; function rw(ref spi_item spi_pkg); int len = spi_pkg.data.size(); int max_len = 0; bit [24:0] start; bit [19:0] addr ; int i = 0; start = spi_pkg.addr; case(start[24:20]) 5'h00 : max_len = 32; 5'h01 : max_len = (start[9:8]==2'b01) ? 52 : (start[9:8]==2'b10) ? 16 : (start[9:8]==2'b11) ? 44 : 0; 5'h02 : max_len = 32768; 5'h03 : max_len = 32768; 5'h04 : max_len = 1024; 5'h05 : max_len = 524288; 5'h06 : max_len = 524288; 5'h07 : max_len = 32768; 5'h08 : max_len = 32768; 5'h09 : max_len = 80; 5'h0A : max_len = 1024; 5'h0B : max_len = 262144; 5'h1F : max_len = 16; endcase for(i=0;i