<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

          零基礎(chǔ)學(xué)FPGA(七)淺談狀態(tài)機(jī)

          —— 零基礎(chǔ)學(xué)FPGA(八)淺談狀態(tài)機(jī)
          作者: 時(shí)間:2015-01-10 來(lái)源:網(wǎng)絡(luò) 收藏

            今天我們來(lái)寫(xiě)。

          本文引用地址:http://www.ex-cimer.com/article/267960.htm

            關(guān)于呢,想必大家應(yīng)該都接觸過(guò),通俗的講就是數(shù)電里我們學(xué)的狀態(tài)轉(zhuǎn)換圖。分為兩中類(lèi)型,一種叫型,一種叫型。前者就是說(shuō)時(shí)序邏輯的輸出不僅取決于當(dāng)前的狀態(tài),還取決于輸入,而后者就是時(shí)序邏輯的輸出僅僅取決于當(dāng)前的狀態(tài)。下面兩個(gè)圖分別表示兩種不同的狀態(tài)機(jī)。

            

          360桌面截圖20140601211319.jpg

           

            

          360桌面截圖20140601211344.jpg

           

            下面我們就通過(guò)代碼來(lái)寫(xiě)一下?tīng)顟B(tài)機(jī),以下面的狀態(tài)轉(zhuǎn)換圖為例

            

          360桌面截圖20140601205828.jpg

           

            首先,是一種典型的狀態(tài)機(jī)寫(xiě)法,這種寫(xiě)法我們稱(chēng)為一段時(shí)狀態(tài)機(jī),用于一些簡(jiǎn)單的設(shè)計(jì)是可以的,但如果是復(fù)雜的狀態(tài)機(jī),不建議大家用這種寫(xiě)法。

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

            //可綜合的狀態(tài)機(jī)設(shè)計(jì)的典型方法

            //實(shí)現(xiàn)典型的狀態(tài)機(jī)設(shè)計(jì)

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

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

            parameter Idle = 2'b00,

            Start = 2'b01,

            Stop = 2'b10,

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

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

            endcase

            endmodule

          fpga相關(guān)文章:fpga是什么



          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞: FPGA 狀態(tài)機(jī) Mealy Moore

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();