zhshqh 发表于 2011-12-12 16:12:59

寄存器寻址问题,各位进来看看

本帖最后由 zhshqh 于 2011-12-13 09:10 编辑

刚开始学verilog,在实践中发现一个现象如下代码所示:

module SWITCH_module(
                                       output reg TDM_out,
                                     input CLK8M,
                                       input TS_BIT_position,
                                     input TDM_in
                                    );

    integer i;

always @(negedge CLK8M)
begin                                                             
        case(TS_BIT_position)
3'b000:for ( i = 0; i <= 7; i = i + 1) TDM_out <= TDM_in;
3'b001:for ( i = 0; i <= 7; i = i + 1) TDM_out <= TDM_in;
3'b010:for ( i = 0; i <= 7; i = i + 1) TDM_out <= TDM_in;
3'b011:for ( i = 0; i <= 7; i = i + 1) TDM_out <= TDM_in;
3'b100:for ( i = 0; i <= 7; i = i + 1) TDM_out <= TDM_in;
3'b101:for ( i = 0; i <= 7; i = i + 1) TDM_out <= TDM_in;
3'b110:for ( i = 0; i <= 7; i = i + 1) TDM_out <= TDM_in;       
default:for ( i = 0; i <= 7; i = i + 1) TDM_out <= TDM_in;               
                endcase          
end       
endmodule

上面的代码是我想实现的意图,也达到了我想实现的意图,但当我想把其中的CASE语句简写为如下形式时

         for(i = 0; i <= 7; i = i + 1)               
                TDM_out <= TDM_in;

综合出来的结果只有TDM_out是和上面相同的,后面的TDM_out就不是我想要达到的目的了,请问各位高手,上面这个语句有什么不符合的语法,或者综合器理解不了的问题吗?

zhshqh 发表于 2011-12-12 16:14:17

晕,排了半天版,看起来很整齐的啊,怎么出来这效果

zhshqh 发表于 2011-12-13 09:12:00

各位给个意见呗

I2C 发表于 2011-12-13 10:27:02

把问题发到这里 http://www.fpgaw.com/thread-14188-1-1.html
页: [1]
查看完整版本: 寄存器寻址问题,各位进来看看