assign internal_bus = read_a ? data_a :
                      read_b ? data_b :
                      read_c ? data_c : 
                               data_d ;
assign data_io = (!cs & !rd) ? internal_bus : 8'bz; 