always @(negedge CLK8M)
begin
case(TS_BIT_position)
3'b000 : for ( i = 0; i <= 7; i = i + 1) TDM_out[i*8] <= TDM_in;
3'b001 : for ( i = 0; i <= 7; i = i + 1) TDM_out[i*8 + 1] <= TDM_in;
3'b010 : for ( i = 0; i <= 7; i = i + 1) TDM_out[i*8 + 2] <= TDM_in;
3'b011 : for ( i = 0; i <= 7; i = i + 1) TDM_out[i*8 + 3] <= TDM_in;
3'b100 : for ( i = 0; i <= 7; i = i + 1) TDM_out[i*8 + 4] <= TDM_in;
3'b101 : for ( i = 0; i <= 7; i = i + 1) TDM_out[i*8 + 5] <= TDM_in;
3'b110 : for ( i = 0; i <= 7; i = i + 1) TDM_out[i*8 + 6] <= TDM_in;
default : for ( i = 0; i <= 7; i = i + 1) TDM_out[i*8 + 7] <= TDM_in;
endcase
end
endmodule
上面的代码是我想实现的意图,也达到了我想实现的意图,但当我想把其中的CASE语句简写为如下形式时
for(i = 0; i <= 7; i = i + 1)
TDM_out[i*8 + TS_BIT_position] <= TDM_in;