问答 店铺
热搜: ZYNQ FPGA discuz

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

微信扫一扫 分享朋友圈

已有 4588 人浏览分享

开启左侧

一段式状态机与三段式状态机

[复制链接]
4588 0
一段式状态机代码如下:
always@(posedge ui_clk)begin
    if(ui_rstn) begin
        M_S <= IDLE;
        Counter0 <= 10'd0;
        Send_Req <= 1'b0;
        Addr_cnt <= 12'd0;
        Tx_busy <= 1'b0;
        FIFO_rst <= 1'b1;
    end
    else begin
        case(M_S)
            IDLE: begin               
                Counter0 <= 10'd0;
                Send_Req <= 1'b0;
                Addr_cnt <= 12'd0;
                Tx_busy <= 1'b0;
                if(empty) M_S <= FIFO_RST;
            FIFO_RST: begin
                Tx_busy <= 1'b1;
                if(Counter0 >= 10'd100) M_S <= SEND_REQ;
                FIFO_rst <= (Counter0 <= 10'd80);
                Counter0 <= Counter0 + 1'b1;
            end
            SEND_REQ:begin
                if(Addr_cnt >= 12'd2047)
                    M_S <= IDLE;
                else if(empty) begin
                    M_S <=SEND_DATA;
                    Send_Req <= 1'b1;
                    Counter0 <= 10'd0;
                    end
            end
            SEND_DATA: begin
                Send_Req <= 1'b0;
                if(Send_done) begin
                    M_S <= SEND_REQ;
                    Addr_cnt <= Addr_cnt + 4'd8;
                end
            end
    end
end
请大神帮忙改写为三段式状态机。自己试着写过,在状态数量不变的情况下,难以实现。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0

关注

0

粉丝

4

主题
精彩推荐
热门资讯
网友晒图
图文推荐

  • 微信公众平台

  • 扫描访问手机版