新聞中心

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

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

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

          今天我們來寫

        本文引用地址:http://www.104case.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

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 秀山| 郴州市| 凤山市| 庆安县| 辽宁省| 庆城县| 衡东县| 沁水县| 太白县| 溧水县| 赤壁市| 綦江县| 南溪县| 连山| 葫芦岛市| 庆安县| 介休市| 塘沽区| 洛浦县| 府谷县| 北碚区| 海阳市| 渑池县| 杭锦后旗| 伊金霍洛旗| 淅川县| 哈巴河县| 安顺市| 漳浦县| 务川| 株洲县| 金山区| 攀枝花市| 林口县| 德庆县| 改则县| 密云县| 句容市| 怀远县| 桂阳县| 洪江市|