tulipyyf 发表于 2011-11-26 20:47:14

求助,状态机工作不正常

reg state;
reg next_state;
//状态编码(8个状态)
parameter
state0=3'b000,
state1=3'b001,
state2=3'b010,
state3=3'b011,
state4=3'b100,
state5=3'b101,
state6=3'b110,
state7=3'b111;

//由主时钟(60)产生AD时钟(7.5)
always @(posedge clk)
        cnt<=cnt+1;
assign AD_clock=~cnt;                //8分频输出

//*******************************************************************
//产生状态机动作时序
always @(posedge AD_clock)
        cntZ<=cntZ+1;
assign ZT_clock=~cntZ;                //4分频输出   1.875MHz
       

//*******************************************************************
//有限状态机切换时间       8*4=32   posedge ZT_clock posedge rst_4128 or
always @(posedge ZT_clock,posedge rst_4128)
        begin       
                if(rst_4128)
                        state<=state0;               
                else
                        state<=next_state;       
        end
               
//*******************************************************************
//状态机转换(框架程序)
always @( state )
begin
        next_state=3'bx;       

        case(state)
        state0:begin
                        next_state=state1;
                end

        state1:begin       
                        next_state=state2;
                end

        state2:begin       
                        next_state=state3;
                end


        state3:begin       
                        next_state=state4;
                end

        state4:begin       
                        next_state=state5;
                end


        state5:begin       
                        next_state=state6;
                end

        state6:begin       
                        next_state=state7;
                end

        state7:begin
                        next_state=state7;        //循环       
                end

        endcase


end


我的目的是rst_4128复位一次,状态机执行一次完整的流程(),但是实际上状态机完成了N次流程,请各位帮帮忙看看那里出现问题了,我用的是LC4128 ,刚接触CPLD。着急等待解决。

I2C 发表于 2011-12-3 03:52:18

将问题发到这里 http://www.fpgaw.com/thread-14188-1-1.html
页: [1]
查看完整版本: 求助,状态机工作不正常