• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 牛人業話 > 零基礎學FPGA(七)淺談狀態機

    零基礎學FPGA(七)淺談狀態機

    —— 零基礎學FPGA(八)淺談狀態機
    作者: 時間:2015-01-10 來源:網絡 收藏

      今天我們來寫

    本文引用地址:http://www.czjhyjcfj.com/article/267960.htm

      關于呢,想必大家應該都接觸過,通俗的講就是數電里我們學的狀態轉換圖。分為兩中類型,一種叫型,一種叫型。前者就是說時序邏輯的輸出不僅取決于當前的狀態,還取決于輸入,而后者就是時序邏輯的輸出僅僅取決于當前的狀態。下面兩個圖分別表示兩種不同的狀態機。

      

    360桌面截圖20140601211319.jpg

     

      

    360桌面截圖20140601211344.jpg

     

      下面我們就通過代碼來寫一下狀態機,以下面的狀態轉換圖為例

      

    360桌面截圖20140601205828.jpg

     

      首先,是一種典型的狀態機寫法,這種寫法我們稱為一段時狀態機,用于一些簡單的設計是可以的,但如果是復雜的狀態機,不建議大家用這種寫法。

      //***********************************************************

      //可綜合的狀態機設計的典型方法

      //實現典型的狀態機設計

      //**********************************************

      module fsm (clk,rst_n,A,k1,k2,State);

      input clk;

      input rst_n;

      input A;

      output k1,k2;

      output [1:0] State;

      reg k1;

      reg k2;

      reg [1:0] State; //當前狀態寄存器

      parameter Idle = 2'b00,

      Start = 2'b01,

      Stop = 2'b10,

      Clear = 2'b11; //編碼 ,注意,只有在最后一句用分號,其他地方用逗號

      always @(posedge clk or negedge rst_n)

      if(!rst_n)

      begin

      State <= Idle;

      k1 <=1'b0;

      k2 <=1'b0;

      end

      else case (State) //狀態判斷與組合邏輯賦值

      Idle :if(A) begin

      State <= Start;

      k1 <= 0;

      end

      else begin

      State <= Idle;

      k1 <= 0;

      k2 <= 0;

      end

      Start :if(!A) State <= Stop;

      else State <= Start;

      Stop :if(A) begin

      State <=Clear;

      k2 <= 1;

      end

      else State <= Stop;

      Clear :if(!A) begin

      State <= Clear;

      k2 <= 0;

      k1 <= 1;

      end

      else State <= Clear;

      default : State <= 2'bxx; //告訴綜合器 case語句已經指定了所有狀態,這樣綜合器就會刪除不需要的譯碼電路,使生成的電路簡單

      endcase

      endmodule

    fpga相關文章:fpga是什么



    上一頁 1 2 下一頁

    關鍵詞: FPGA 狀態機 Mealy Moore

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 宜宾市| 安仁县| 徐州市| 台前县| 威海市| 且末县| 隆林| 宁陕县| 大港区| 滦平县| 三台县| 微山县| 婺源县| 太仆寺旗| 泽普县| 河源市| 外汇| 灵璧县| 马龙县| 邳州市| 无为县| 黎平县| 彰化市| 卓资县| 博湖县| 乌鲁木齐县| 林甸县| 台中县| 浮山县| 都安| 合江县| 宜丰县| 澎湖县| 米易县| 广河县| 霍山县| 吴堡县| 花莲县| 清新县| 政和县| 利川市|