从零开始的FPGA学习9-状态机实例

状态图

在这里插入图片描述

Mealy 型有限状态机

module lab( 
    input clk, 
    input rst, 
    input A, 
    output reg F, 
    output reg G 
    ); 
    reg [3:0] state ; 
    parameter Idle = 4'b1000; 
    parameter Start = 4'b0100; 
    parameter Stop = 4'b0010; 
    parameter Clear = 4'b0001;  
    always @(posedge clk) 
        begin  
            if (!rst) 
                begin  
                    state <= Idle; 
                    F<=0;  
                    G<=0;  
                end  
            else  
                begin 
                    case (state) 
                        Idle:  
                            begin 
                                if (A) 
                                    begin  
                                        state <= Start; 
                                        G<=0;  
                                    end  
                                else  
                                    state <= Idle;  
                            end  
                        Start: 
                            begin 
                                if (!A) 
                                    state <= Stop;  
                                else  
                                    state <= Start; 
                            end  
                        Stop: 
                            begin 
                                if (A) 
                                    begin  
                                        state <= Clear; 
                                        F <= 1; 
                                    end 
                                else  
                                    state <= Stop; 
                            end  
                        Clear:  
                            begin  
                                if (!A) 
                                    begin 
                                        state <=Idle;  
                                        F<=0;  
                                        G<=1;  
                                    end  
                                else 
                                    state <= Clear; 
                            end 
                        default:  
                            state <=Idle; 
                    endcase  
                end 
        end 
endmodule
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值