中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 牛人業(yè)話 > 零基礎學FPGA(七)淺談狀態(tài)機

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

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

          今天我們來寫。

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

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

          

        360桌面截圖20140601211319.jpg

         

          

        360桌面截圖20140601211344.jpg

         

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

          

        360桌面截圖20140601205828.jpg

         

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

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

          //可綜合的狀態(tài)機設計的典型方法

          //實現典型的狀態(tài)機設計

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

          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; //當前狀態(tài)寄存器

          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) //狀態(tài)判斷與組合邏輯賦值

          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語句已經指定了所有狀態(tài),這樣綜合器就會刪除不需要的譯碼電路,使生成的電路簡單

          endcase

          endmodule

        fpga相關文章:fpga是什么



        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區(qū)

        關閉