How about this two coding style:
Style 1:
assign int_sfr_data_in = (dmem_sfr_cs == 1) ? dmem_sfr_dout :
(cmem_sfr_cs == 1) ? cmem_sfr_dout :
(dma_sfr_cs == 1) ? dma_sfr_dout :
(sec_sfr_cs == 1) ? sec_sfr_dout :
(expi_sfr_cs == 1) ? expi_sfr_dout :
evti_sfr_dout ;
/////////////////////////////////////////////////////////////////
Style 2:
case ({expi_sfr_cs, sec_sfr_cs, dma_sfr_cs,cmem_sfr_cs, dmem_sfr_cs})
5'b00001 : int_sfr_data_in = dmem_sfr_dout;
5'b00010 : int_sfr_data_in = cmem_sfr_dout;
5'b00100 : int_sfr_data_in = dma_sfr_dout;
5'b01000 : int_sfr_data_in = sec_sfr_dout;
5'b10000 : int_sfr_data_in = expi_sfr_dout;
default : int_sfr_data_in = else_out;
endcase
//////////////////////////////////////////////////////////
The condition is not allowed that More than one control signal of expi_sfr_cs, sec_sfr_cs, dma_sfr_cs,cmem_sfr_cs, dmem_sfr_cs is '1' at the same time.
////////////////////////////////////////////
Please give me some remark on this two coding style on timing and area.
thanks.