zhiweiqiang33 发表于 2013-5-15 15:15:24

问题求解

4'd1:        begin        
                                state <= 4'd2;
                               
                                if(addr_cnt < SYSADDR_CNT1) sys_data <= {5'd7, 6'd0 ,5'd0};
                                else if (addr_cnt < SYSADDR_CNT2) sys_data <= {5'd0, 6'd7 ,5'd0};
                                else if (addr_cnt < SYSADDR_CNT3) sys_data <= {5'd0, 6'd0 ,5'd3};
                                else sys_data <= {5'd7, 6'd7 ,5'd0};
                               
                                addr_cnt <= addr_cnt + 1'b1;
                                end
这段代码为什么只执行{5'd7, 6'd7 ,5'd0}?

gusumurong 发表于 2013-5-15 15:41:45

因为几个if条件都不满足呗。如果addr_cnt >SYSADDR_CNT1的时候,就执行 sys_data <= {5'd7, 6'd7 ,5'd0};了
页: [1]
查看完整版本: 问题求解