国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

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

發(fā)布時(shí)間:2015-1-14 14:57    發(fā)布者:wp1981
作者:小墨同學(xué)

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





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



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

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

//小墨同學(xué)于2014年5月31日在金翰林宿舍作

//實(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
//************************小墨品牌,你值得擁有~**************************





下面是另一種寫法,叫做輸出指定的碼表示狀態(tài)的狀態(tài)機(jī)




//***********************************************************
//**********************小墨筆記*****************************
//由輸出指定的碼表示狀態(tài)的狀態(tài)機(jī)

//小墨同學(xué)于2014年5月21日在金翰林宿舍作

//用于高速狀態(tài)機(jī)的設(shè)計(jì)

//************************小墨筆記,留作回憶**********************

module fsm2(clk,rst_n,A,k1,k2,State);
input clk;
input rst_n;
input A;
output k1,k2;
output [4:0] State;
reg [4:0] State;   //當(dāng)前狀態(tài)寄存器
assign k1 =State[0];
assign k2 =State[4];

parameter    Idle = 5'b00000,            //采用毒熱編碼(每個(gè)狀態(tài)只有一個(gè)寄存器置位的狀態(tài)機(jī)這樣用的組合電路省一些,而且速度也快)
                      Start = 5'b00010,
                      Stop = 5'b00100,
                      StoptoClear = 5'b11000,
                      Clear = 5'b01010,
                     
  CleartoIdle  = 5'b00111;          //編碼 ,注意,只有在最后一句用分號(hào),其他地方用逗號(hào)

always @(posedge clk or negedge rst_n)
  if(!rst_n)  
  
     State <= Idle;

  else case (State)                   //狀態(tài)判斷與組合邏輯賦值
  
       Idle :if(A)  
      State <= Start;

else
State <= Idle;


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


else State <= Stop;
StoptoClear :State <= Stop;

Clear :if(!A)
       State <= Clear;


else State <= Clear;
CleartoIdle :State <= Idle;
default : State <= Idle;//告訴綜合器 case語(yǔ)句已經(jīng)指定了所有狀態(tài),這樣綜合器就會(huì)刪除不需要的譯碼電路,使生成的電路簡(jiǎn)單
endcase  

endmodule

//************************小墨品牌,你值得擁有~**************************
這樣寫就是把狀態(tài)碼的指定與狀態(tài)機(jī)控制的輸出聯(lián)系起來,把狀態(tài)的變化直接作用于輸出,這樣做可以提高輸出信號(hào)的開關(guān)素的并節(jié)省電路器件。但這種方法也有缺點(diǎn),就是快關(guān)的維持時(shí)間必須與狀態(tài)維持的時(shí)間一致,這種設(shè)計(jì)方法常用在告訴狀態(tài)機(jī)中。


下面這種寫法應(yīng)該是以后我們經(jīng)常要用到的,即三段式狀態(tài)機(jī)寫法,比較適合于多輸出的狀態(tài)機(jī)設(shè)計(jì)。


//***********************************************************
//**********************小墨筆記*****************************
//多輸出狀態(tài)時(shí)的狀態(tài)機(jī)

//小墨同學(xué)于2014年5月31日在金翰林宿舍作

//用于多輸出時(shí)的狀態(tài)機(jī)設(shè)計(jì),也即三段式狀態(tài)機(jī)的常見寫法,推薦!

//************************小墨筆記,留作回憶**********************
module fsm3 (clk,rst_n,A,k1,k2,state);
input clk,rst_n,A;
output k1,k2;
output [1:0] state;
reg k1,k2;
reg [1:0] state;
reg [1:0] xiaomo;
parameter Idle = 2'b00,
                    start = 2'b01,
                    stop = 2'b10,
                    clear = 2'b11;
always @ (posedge clk or negedge rst_n)   
       if(!rst_n) state <= Idle;
else state <= xiaomo;      //每一個(gè)時(shí)鐘產(chǎn)生一個(gè)可能的變化,即時(shí)序邏輯部分



always @ (state or A)      //組合邏輯部分
       begin
case (state)
    Idle : if(A) xiaomo = start;
        else  iaomo = Idle;
start : if(!A)xiaomo = stop;
               else iaomo = start;
stop  : if(A)xiaomo = clear;
            else iaomo = stop;
clear : if(!A) xiaomo =Idle;
               else iaomo = clear;
default : xiaomo = 2'bxx;
     endcase
end
always @ (state or A or rst_n)    //產(chǎn)生輸出k1的組合邏輯
      if(!rst_n) k1=0;
else if(state ==clear && !A)
   k1=1;
else k1=0;
always @(state or A or rst_n)      //產(chǎn)生輸出k2的組合邏輯
      if(!rst_n) k2=0;
else if(state ==stop && A)
    k2=1;
else k2=0;


endmodule  
//************************小墨品牌,你值得擁有~**************************

本文地址:http://m.qingdxww.cn/thread-144621-1-1.html     【打印本頁(yè)】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
  • Dev Tool Bits——使用條件軟件斷點(diǎn)宏來節(jié)省時(shí)間和空間
  • Dev Tool Bits——使用DVRT協(xié)議查看項(xiàng)目中的數(shù)據(jù)
  • Dev Tool Bits——使用MPLAB® Data Visualizer進(jìn)行功率監(jiān)視
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 四虎影视入口 | а新版天堂中文在线 | 91精品福利麻豆专区 | 四虎永久在线精品视频播放 | 亚洲色图视频在线观看 | 韩国美女高清爽快一级毛片 | xvideos国产在线视频 | 91专区| 污视频导航 | 在线视频欧美精品 | 日本欧美大码a在线视频播放 | 91精品视频在线播放 | 国产精品一区二区在线观看完整版 | 青青草网站在线观看 | 日本韩国免费 | 草莓视频丝瓜视频下载 | 亚洲国产精品日韩高清秒播 | 国内精品卡一卡二卡三 | 99热在这里只有免费精品 | 91区国产福利在线观看午夜 | 朋友的妻子免费观看 | 禁网站在线观看免费视频 | 最近韩国日本高清免费观看 | 午夜免费视频观看在线播放 | 欧美视频在线免费播放 | 青青成人在线 | 91新网站| 王茜麻豆 | 国产福利一区二区 | 四虎在线精品 | 欧美日韩大尺码免费专区 | 国产一区欧美 | 亚洲www在线观看 | 日韩毛片在线 | 国产成人精品亚洲日本在线 | 女人18毛片a级毛片一区二区 | 中文在线最新版天堂8 | 日产乱码2021永久手机版 | 欧美一区二区三区四区视频 | 欧美一区高清 | 久草综合在线 |