亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于FSM的控制系統(tǒng)設(shè)計與實現(xiàn)

        2016-01-28 07:44:23李躍華張金林李佳煒
        艦船電子對抗 2015年5期
        關(guān)鍵詞:編碼方式

        豐 坤,李躍華,張金林,李佳煒

        (空軍預(yù)警學(xué)院,武漢 430019)

        ?

        基于FSM的控制系統(tǒng)設(shè)計與實現(xiàn)

        豐坤,李躍華,張金林,李佳煒

        (空軍預(yù)警學(xué)院,武漢 430019)

        摘要:介紹了有限狀態(tài)機的基本描述方式、評判標準、編碼方式以及描述風(fēng)格,并對比了不同編碼方式和描述風(fēng)格的優(yōu)缺點,以局部動態(tài)可重構(gòu)過程中控制系統(tǒng)的有限狀態(tài)機為例,用Verilog HDL實現(xiàn)了3種不同描述風(fēng)格的有限狀態(tài)機,對比了它們各自的安全穩(wěn)定性、RTL Viewer、資源消耗和速度,得出了有限狀態(tài)機的最優(yōu)描述風(fēng)格。

        關(guān)鍵詞:有限狀態(tài)機;描述風(fēng)格;編碼方式

        0引言

        隨著微電子設(shè)計技術(shù)和硬件系統(tǒng)的飛速發(fā)展,基于現(xiàn)場可編程門陣列(FPGA)的動態(tài)可重構(gòu)技術(shù)被廣泛應(yīng)用于生活中的各個領(lǐng)域,重構(gòu)控制系統(tǒng)作為動態(tài)可重構(gòu)的重要組成部分,引起了眾多硬件開發(fā)者的關(guān)注??刂葡到y(tǒng)的主體是一個有限狀態(tài)機[1](FSM),它描述了一個由有限個獨立狀態(tài)組成的過程,這些狀態(tài)之間可以互相遷移直到最終離開這個過程[2]。FSM簡單易讀、結(jié)構(gòu)清晰、設(shè)計靈話,易于建立、理解和維護,特別應(yīng)用在具有大量狀態(tài)轉(zhuǎn)移和復(fù)雜時序控制的系統(tǒng)中,更顯其優(yōu)勢[3]。目前,F(xiàn)SM已在數(shù)字電路系統(tǒng)設(shè)計中廣泛應(yīng)用。

        本文介紹FSM的幾種編碼方式和描述風(fēng)格,分析了FSM的幾個評判標準,運用Verilog HDL語言,以3種不同的描述風(fēng)格實現(xiàn)了動態(tài)重構(gòu)過程中的控制狀態(tài)機,從資源消耗、可靠性等方面對比3種不同描述風(fēng)格的優(yōu)缺點,選擇最優(yōu)的描述風(fēng)格。

        1FSM的基本特性

        狀態(tài)、輸入和輸出是狀態(tài)機的3個基本要素,狀態(tài)用來劃分設(shè)計的邏輯順序,輸出根據(jù)是否與輸入有關(guān),將狀態(tài)機分為摩爾型和米勒型兩大類[4]。如果輸出僅僅與當前狀態(tài)相關(guān),而與輸入條件無關(guān),那么該狀態(tài)機為摩爾型狀態(tài)機;如果輸出不僅與當前狀態(tài)有關(guān),還受輸入條件的影響,那么該狀態(tài)機為米勒型狀態(tài)機。本文中的控制狀態(tài)機輸出受到當前狀態(tài)和輸入的影響,所以選用米勒型狀態(tài)機。

        1.1 FSM的基本描述方式

        狀態(tài)機的基本描述方式有3種:狀態(tài)轉(zhuǎn)移圖,狀態(tài)轉(zhuǎn)移列表,HDL語言描述。

        狀態(tài)轉(zhuǎn)移圖是FSM最直觀的描述方式,這種描述方式直觀、清晰、方便,很容易理解設(shè)計者的意圖,其常用在設(shè)計的規(guī)劃階段來定義邏輯功能,在規(guī)模較小的狀態(tài)機方面使用廣泛。狀態(tài)轉(zhuǎn)移列表是用列表的方式描述狀態(tài)機,在狀態(tài)化簡方面應(yīng)用較多,但對安全性、穩(wěn)定性要求較高的狀態(tài)機,不用其來優(yōu)化狀態(tài)。用HDL語言描述狀態(tài)機具有很大的優(yōu)勢,因為Verilog HDL[5]經(jīng)過幾十年的發(fā)展,已經(jīng)由最初的私有語言演變成主流的硬件描述語言之一,在FPGA和專用集成電路(ASIC)的設(shè)計中應(yīng)用較為廣泛,且Verilog設(shè)計方便,應(yīng)用靈活,維護修改快捷,可以根據(jù)不同標準完成不同功能的狀態(tài)機。本設(shè)計使用Verilog HDL來描述狀態(tài)機。

        1.2 FSM的評判標準

        狀態(tài)機的評判標準有很多,下面從安全穩(wěn)定、速度、面積以及復(fù)雜程度4個方面來討論。

        安全穩(wěn)定:狀態(tài)機要安全,穩(wěn)定性高。安全主要指確保狀態(tài)機工作在正常狀態(tài),不會進入死循環(huán);穩(wěn)定性高,要保證狀態(tài)機最后的實現(xiàn)結(jié)果不受異常干擾,如毛刺等。

        速度:這里的速度指設(shè)計穩(wěn)定運行能夠達到的最高頻率,狀態(tài)機要求速度快,能夠滿足設(shè)計的頻率要求。

        面積:這里面積是指設(shè)計中消耗的FPGA邏輯資源數(shù)量,狀態(tài)機要求消耗邏輯資源數(shù)量少,即面積小。

        復(fù)雜程度:狀態(tài)機設(shè)計要清晰易懂,便于解讀,以方便后續(xù)的維護。

        在具體設(shè)計中,以上4條標準要綜合考慮,滿足設(shè)計要求。當評判標準發(fā)生沖突時,按照安全穩(wěn)定、速度、面積以及復(fù)雜程度的順序來考慮,也即是“安全穩(wěn)定”優(yōu)先級最高,必須優(yōu)先考慮;“復(fù)雜程度”優(yōu)先級最低,可最后再考慮。

        1.3 FSM的編碼方式

        編碼方式是狀態(tài)機的重要組成部分之一,根據(jù)設(shè)計需要選擇最適合的編碼方式,能夠滿足狀態(tài)機的評判標準,使設(shè)計效果最佳。常用的編碼方式主要有3種[6]:二進制碼、格雷碼、獨熱碼。表1是3種編碼方式的優(yōu)缺點、適用器件以及適用狀態(tài)數(shù)。

        表1 3種編碼方式的優(yōu)缺點、適用器件以及適用狀態(tài)數(shù)

        由于本設(shè)計中的控制狀態(tài)機有6種狀態(tài),硬件平臺選用的是FPGA器件,再根據(jù)設(shè)計的具體細節(jié)要求,對比表1的3種編碼方式,選用獨熱碼進行編碼。

        1.4 FSM的3種描述風(fēng)格

        通常,最常用的FSM有3種描述風(fēng)格[1]:One-Always(一段式FSM描述風(fēng)格)、Two-Always(兩段式FSM描述風(fēng)格)、Three-Always(三段式FSM描述風(fēng)格)。

        One-Always由1個Always模塊組成,即將整個狀態(tài)機寫到1個Always模塊里,該模塊里包含了輸入、輸出以及轉(zhuǎn)移狀態(tài);Two-Always由2個Always模塊組成,其中一個Always模塊用來描述狀態(tài)轉(zhuǎn)移,另一個Always模塊用來描述狀態(tài)轉(zhuǎn)移的條件和狀態(tài)轉(zhuǎn)移的規(guī)律;Three-Always包含了3個Always模塊,其中一個Always模塊描述狀態(tài)轉(zhuǎn)移,第2個Always模塊描述狀態(tài)轉(zhuǎn)移的條件和狀態(tài)轉(zhuǎn)移的規(guī)律,第3個Always模塊則通過使用同步時序電路描述狀態(tài)的輸出。

        表2是3種描述方式的優(yōu)缺點。

        表2 3種描述風(fēng)格的優(yōu)缺點

        2控制系統(tǒng)的有限狀態(tài)機設(shè)計與仿真驗證

        2.1 控制系統(tǒng)的有限狀態(tài)機設(shè)計

        本設(shè)計描述的是局部動態(tài)可重構(gòu)中的控制模塊,該控制模塊的主體是FSM,主要對可重構(gòu)的過程進行監(jiān)測。該狀態(tài)機有6個工作狀態(tài),分別是:IDLE(閑置狀態(tài))、WAIT_FOR_PR_READY(重構(gòu)準備狀態(tài))、SEND_PR_DATA(傳送數(shù)據(jù)狀態(tài))、WAIT_PR_SUCCESS(重構(gòu)成功狀態(tài))、WAIT_PR_ERROR(重構(gòu)失敗狀態(tài))、PR_REQUEST_DONE(重構(gòu)結(jié)束狀態(tài))。其狀態(tài)流程圖如圖1所示。

        圖1 控制系統(tǒng)狀態(tài)流程圖

        該FSM工作過程:系統(tǒng)正常工作時,狀態(tài)機處于閑置狀態(tài)(IDLE),當接收到重構(gòu)開始信號“pr_start=1”時,則進入重構(gòu)準備狀態(tài)(WAIT_FOR_PR_READY),并對外輸出重構(gòu)請求信號“pr_request”。當接收到外部應(yīng)答信號“pr_ready=1”,則判定系統(tǒng)完成鎖定,進入傳送數(shù)據(jù)狀態(tài)(SEND_PR_DATA)。在該狀態(tài),存儲器開始按照地址向動態(tài)模塊傳送.rbf文件,對動態(tài)模塊進行重新配置。如果接收到“pr_done=1”信號,表明配置成功,則系統(tǒng)進入WAIT_PR_SUCCESS(重構(gòu)成功狀態(tài)),并通過cnt< LAST_CLOCK-1'd1判斷重構(gòu)是否全部完成。若cnt< LAST_CLOCK-1'd1,滿足條件,表示重構(gòu)全部完成,此時系統(tǒng)進入PR_REQUEST_DONE(重構(gòu)結(jié)束狀態(tài)),在該狀態(tài),表明重構(gòu)結(jié)束,系統(tǒng)進入IDLE。若cnt< LAST_CLOCK-1'd1,不滿足條件,則系統(tǒng)返回數(shù)據(jù)傳輸狀態(tài),繼續(xù)傳送數(shù)據(jù),每傳送一次,計數(shù)變量cnt和外部存儲器地址都加1。如果接收到“pr_error=1”或“crc_error=1”信號,表明此次配置不成功,系統(tǒng)進入WAIT_PR_ERROR(重構(gòu)失敗狀態(tài))。在WAIT_PR_ERROR(重構(gòu)失敗狀態(tài))狀態(tài),接收到“pr_error=0”或“crc_error=0”信號,系統(tǒng)回到等待狀態(tài)。

        2.2 3種描述風(fēng)格的FSM

        下面是用3種不同的描述風(fēng)格對該控制模塊狀態(tài)機進行描述,其部分關(guān)鍵代碼如表3所示。

        2.3 仿真驗證與比較分析

        利用功能強大的QuartusII軟件對以上3種描述風(fēng)格的FSM進行綜合、編譯、時序仿真后,得到其時序仿真圖如圖2所示。并選擇任一種描述風(fēng)格(如One-Always)生成其狀態(tài)機,如圖3所示。從時序仿真圖和狀態(tài)機可觀察出,設(shè)計符合要求。

        圖2 時序仿真結(jié)果

        圖3 控制系統(tǒng)的FSM

        One-AlwaysTwo-AlwaysThree-Alwaysalways@(posedgeclk)beginif(sreset) beginpr_state<=IDLE;ready_for_pr<=0;pr_request<=0;cnt_done_to_last_clock<=0;endelse begincase(pr_state)IDLE: beginready_for_pr<=1; pr_request<=0;if(pr_start) beginpr_state<=WAIT_PR_READY;cnt_done_to_last_clock<=0;pr_request<=1; end end……PR_REQUEST_DONE: begin pr_state<=IDLE;enddefault:……endcaseend always@(posedgeclk) if(sreset)cstate<=IDLE; elsecstate<=pr_state; always@(posedgeclk)begin if(sreset) begin ready_for_pr<=0; pr_request<=0;cnt_done_to_last_clock<=0;end elsebegin case(cstate)IDLE: beginready_for_pr<=1;pr_request<=0;if(pr_start) beginpr_state<=WAIT_PR_READY;cnt_done_to_last_clock<=0; pr_request<=1; end end ……PR_REQUEST_DONE:begin pr_state<=IDLE; end default: …… endcase endalways@(posedgeclk) if(sreset)cstate<=IDLE;elsecstate<=pr_state;always@(posedgeclk)begincase(cstate) IDLE: begin if(pr_start) beginpr_state<=WAIT_PR_READY; cnt_done_to_last_clock<=0; end end ……always@(posedgeclk)beginif(sreset)begin ready_for_pr<=0; pr_request<=0; end elsebegin case(pr_state) IDLE: begin ready_for_pr<=1; pr_request<=0; end end …… default: …… endcaseend

        對3種不同描述風(fēng)格的FSM進行綜合、編譯、布局布線后,可以生成各自的寄存器傳輸級視圖(RTL Viewer)。對它們進行對比,One-Always風(fēng)格的有限狀態(tài)機的RTL Viewer相對比較簡單,但其狀態(tài)、輸入以及輸出都放在了一個模塊中,當前狀態(tài)可能會受到其它狀態(tài)的影響;Two-Always風(fēng)格有限狀態(tài)機的RTL Viewer比較復(fù)雜,它是在One-Always的基礎(chǔ)上增加了一個狀態(tài)(cstate),把轉(zhuǎn)移狀態(tài)和轉(zhuǎn)移條件放在2個Always模塊中描述,使RTL Viewer清晰易讀;Three-Always風(fēng)格的有限狀態(tài)機的RTL Viewer 最復(fù)雜,其與Two-Always的最大不同在于能夠根據(jù)下一狀態(tài)的判斷,把FSM的輸出寄存在同步時序邏輯中,可有效消除毛刺。

        根據(jù)綜合、編譯得出的編譯報告對3種不同描述風(fēng)格FSM的資源消耗(即面積)和最大頻率(即速度)進行對比,分別如表4、表5所示。

        表4 3種描述風(fēng)格消耗資源對比(單位:個)

        表5 3種描述風(fēng)格的最大頻率對比單位:MHz

        從表4、表5可看出,在3種描述方式中,One-Always消耗資源最少,速度最快;Two-Always消耗資源較多,速度最慢;Three-Always消耗資源最多,速度較快。

        綜上,如果僅從資源消耗以及RTL Viewer復(fù)雜程度來考慮,選用One-Always的描述風(fēng)格最佳。但是,One-Always將同步轉(zhuǎn)移、輸出和輸入條件都混寫在1個Always模塊中,這與時序與組合邏輯分開的Coding Style(代碼風(fēng)格)不相符,整個描述代碼不清晰,后期維護和修改也比較困難,不利于綜合和布局布線對設(shè)計本身的優(yōu)化以及時序約束,且容易產(chǎn)生狀態(tài)鎖存(Latches),影響FSM的安全穩(wěn)定性,因此,一般不推薦使用這種描述風(fēng)格來描述FSM。

        Two-Always把同步時序與組合邏輯分別寫到2個不同的Always模塊中,能在一定程度上克服One-Always的不足,但是這種組合邏輯輸出可能會產(chǎn)生毛刺,不僅會影響約束、綜合和布局布線,還可能影響狀態(tài)機的安全穩(wěn)定性。

        但其資源消耗比Three-Always少,且RTL Viewer復(fù)雜程度比Three-Always的低,可以在FSM的組合邏輯輸出端插入1個額外的節(jié)拍(Latency),使輸出寄存1個節(jié)拍,消除毛刺,此時插入節(jié)拍的Two-Always為最佳的描述方式。

        與Two-Always相比,Three-Always的最大好處在于狀態(tài)機的輸出使用了同步時序邏輯寄存,有效消除了毛刺,但是 Three-Always資源消耗最多,輸入到輸出比One-Always和Two-Always會延時1個周期,在Two-Always不允許插入額外節(jié)拍的情況下,使用該描述方式。

        3結(jié)束語

        FSM是動態(tài)可重構(gòu)技術(shù)中控制系統(tǒng)的主要組成部分,其設(shè)計技術(shù)是數(shù)字系統(tǒng)中實現(xiàn)高效率、高可靠性邏輯控制的重要途徑[7]。在使用Verilog HDL語言描述有限狀態(tài)機時,應(yīng)根據(jù)評判標準優(yōu)先保證其安全穩(wěn)定性,繼而在考慮速度、面積和復(fù)雜程度之后,再根據(jù)具體的實際需要選擇合適的編碼方式和描述風(fēng)格,使設(shè)計更優(yōu)。本文用3種不同的描述風(fēng)格設(shè)計了控制系統(tǒng)的FSM,并依據(jù)評判標準的4個方面進行了比較,得到了最優(yōu)的描述風(fēng)格。

        參考文獻

        [1]劉小平,何云斌,董懷國.基于Verilog HDL的有限狀態(tài)機設(shè)計與描述[J].計算機工程與設(shè)計,2008,29(4):958-960.

        [2]李云,馮永浩,孟濤.基于VHDL有限狀態(tài)機控制器的設(shè)計方法[J].微計算機信息,2010,26(5):74-75.

        [3]樊輝娜.基于狀態(tài)機的8路彩燈VHDL設(shè)計[J].制造業(yè)自動化,2011,33(1):176-179.

        [4]方洪浩,雷蕾,常何民.基于Verilog HDL的有限狀態(tài)機設(shè)計[J].科學(xué)技術(shù)與工程,2007,20(7):5276- 5281.

        [5]張繼森,楊恢東,黃波,等.基于Verilog HDL的DDS信號發(fā)生器的設(shè)計與實現(xiàn)[J].微電子學(xué),2012,42(6):819-822.

        [6]孔聽,吳武臣,侯立剛,等.基于Verilog的有限狀態(tài)機設(shè)計與優(yōu)化[J].微電子學(xué)與計算機,2010,27(2):180- 183.

        [7]吳春波,蘇厚勤.基于有限狀態(tài)機模型的GUI設(shè)計及其應(yīng)用[J].計算機應(yīng)用與軟件,2010,27(11):141- 144.

        Design and Implementation of Control System Based on FSM

        FENG Kun,LI Yue-hua,ZHANG Jin-lin,LI Jia-wei

        (Air Force Early WarningAcademy,Wuhan 430019,China)

        Abstract:This paper introduces the basic description mode,evaluation criteria,coding mode and description style of finite state machine(FSM),and compares the advantages and disadvantages of different coding modes and description styles,taking FSM of control system in the local dynamic reconfiguration process as an example,realizes three FSMs of different description styles by using Verilog HDL,and compares the security stability,RTL Viewer,resource consumption and speed of the three different FSMs,obtains the optimal FSM description style.

        Key words:finite state machine;description style;coding mode

        基金項目:青年創(chuàng)新基金,項目編號:2013QNCX0112

        收稿日期:2015-05-19

        DOI:10.16426/j.cnki.jcdzdk.2015.05.021

        中圖分類號:TP332.3

        文獻標識碼:A

        文章編號:CN32-1413(2015)05-0094-05

        猜你喜歡
        編碼方式
        非物質(zhì)文化遺產(chǎn)項目編碼標準研究
        中國標準化(2024年4期)2024-05-13 14:41:13
        地震交換標準數(shù)據(jù)的壓縮技術(shù)和數(shù)據(jù)解壓
        地震研究(2019年1期)2019-08-27 02:15:24
        編碼方式和線索顯著性對前瞻記憶的影響
        用于多維尺寸可變裝箱的遺傳算法新編碼
        計算機時代(2018年8期)2018-10-17 01:27:54
        GCOA算法
        價值工程(2017年22期)2017-07-15 04:21:23
        可穿戴式多通道傳感系統(tǒng)功能需求分析及設(shè)計
        混合編碼方式自適應(yīng)差分進化算法優(yōu)化設(shè)計寬帶天線
        基于MPC編碼方式的軟件產(chǎn)品線配置優(yōu)化算法研究
        淺談Qt中的布局管理
        單PDCH承載效率提升專題
        精品无码中文字幕在线| 一区二区三区乱码专区| av大全亚洲一区二区三区| 国产女人高潮叫床视频| 北条麻妃在线视频观看| 日韩精品极品视频在线观看蜜桃| 亚洲天堂一区二区偷拍| 天堂中文最新版在线中文| 麻豆AⅤ无码不卡| 91精品人妻一区二区三区蜜臀| 亚洲精品视频1区2区| 亚洲日产一线二线三线精华液 | 色欲色香天天天综合vvv| 国产高清在线精品一区| 91精品91| 久亚洲一线产区二线产区三线麻豆| 亚洲高清美女久久av| 国产一区白浆在线观看| 日韩人妻一区二区三区蜜桃视频| 思思99热精品免费观看| 亚洲精品国产一区av| 日韩精品一区二区在线天天狠天 | 亚洲AV无码久久久久调教| 精彩视频在线观看一区二区三区| 欧美狠狠入鲁的视频777色| 中文字幕在线亚洲日韩6页手机版| 国产天堂av手机在线| 国产精品一区二区三区在线蜜桃 | 欧美freesex黑人又粗又大| 久久99精品这里精品动漫6| 男女做那个视频网站国产| 777米奇色8888狠狠俺去啦| 婷婷丁香五月亚洲| 久久精品一区二区三区夜夜| 亚洲爆乳无码精品aaa片蜜桃| 大地资源在线播放观看mv| www久久久888| 久久99天堂av亚洲av| 在线不卡av片免费观看| 国产精品久久久亚洲第一牛牛| 99久久国产免费观看精品|