Fsm serial

Fsm serial存在的疑问

在这里插入图片描述

在这里插入图片描述

module top_module(
    input clk,
    input in,
    input reset,    // Synchronous reset
    output done
); 
     enum logic[3:0]{
        stop1=4'b0001,start=4'b0010,data=4'b0100,stop=4'b1000
    } state,next_state;

    logic [3:0] counter = 1'b0;
    always_comb
        begin
            case(state)
                start:begin next_state <=(in)?start:data;end
                data: begin   if(counter==4'd7) begin next_state <= stop; end else next_state<=data; end
                stop: begin  if(in)next_state <= start;else next_state <= stop1;  end
                stop1:begin next_state <=(in)?start:stop1;  end
                default :begin  next_state <= start;end
            endcase
        end
     always_ff@(posedge clk)
        begin
           if(reset)
              state <= start;
           else
              state <= next_state;
         end 
	 always_ff@(posedge clk)
        begin
           if(state==data)
              begin
                if(counter=='d7)
                    counter <= 1'b0;
                else                                 
                    counter <= counter + 1;
              end
           else
              counter <= 1'b0;         //如果不加这个条件就会出现错误
           if(state==stop && in==1'b1)
               done <= 1'b1;
            else
               done <= 1'b0;
          end    
endmodule

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值