国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

2016-01-28 07:44李躍華張金林李佳煒
艦船電子對(duì)抗 2015年5期

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

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

?

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

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

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

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

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

0引言

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

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

1FSM的基本特性

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

1.1 FSM的基本描述方式

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

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

1.2 FSM的評(píng)判標(biāo)準(zhǔn)

狀態(tài)機(jī)的評(píng)判標(biāo)準(zhǔn)有很多,下面從安全穩(wěn)定、速度、面積以及復(fù)雜程度4個(gè)方面來討論。

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

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

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

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

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

1.3 FSM的編碼方式

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

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

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

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

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

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

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

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

本設(shè)計(jì)描述的是局部動(dòng)態(tài)可重構(gòu)中的控制模塊,該控制模塊的主體是FSM,主要對(duì)可重構(gòu)的過程進(jìn)行監(jiān)測(cè)。該狀態(tài)機(jī)有6個(gè)工作狀態(tài),分別是:IDLE(閑置狀態(tài))、WAIT_FOR_PR_READY(重構(gòu)準(zhǔn)備狀態(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)正常工作時(shí),狀態(tài)機(jī)處于閑置狀態(tài)(IDLE),當(dāng)接收到重構(gòu)開始信號(hào)“pr_start=1”時(shí),則進(jìn)入重構(gòu)準(zhǔn)備狀態(tài)(WAIT_FOR_PR_READY),并對(duì)外輸出重構(gòu)請(qǐng)求信號(hào)“pr_request”。當(dāng)接收到外部應(yīng)答信號(hào)“pr_ready=1”,則判定系統(tǒng)完成鎖定,進(jìn)入傳送數(shù)據(jù)狀態(tài)(SEND_PR_DATA)。在該狀態(tài),存儲(chǔ)器開始按照地址向動(dòng)態(tài)模塊傳送.rbf文件,對(duì)動(dòng)態(tài)模塊進(jìn)行重新配置。如果接收到“pr_done=1”信號(hào),表明配置成功,則系統(tǒng)進(jìn)入WAIT_PR_SUCCESS(重構(gòu)成功狀態(tài)),并通過cnt< LAST_CLOCK-1'd1判斷重構(gòu)是否全部完成。若cnt< LAST_CLOCK-1'd1,滿足條件,表示重構(gòu)全部完成,此時(shí)系統(tǒng)進(jìn)入PR_REQUEST_DONE(重構(gòu)結(jié)束狀態(tài)),在該狀態(tài),表明重構(gòu)結(jié)束,系統(tǒng)進(jìn)入IDLE。若cnt< LAST_CLOCK-1'd1,不滿足條件,則系統(tǒng)返回?cái)?shù)據(jù)傳輸狀態(tài),繼續(xù)傳送數(shù)據(jù),每傳送一次,計(jì)數(shù)變量cnt和外部存儲(chǔ)器地址都加1。如果接收到“pr_error=1”或“crc_error=1”信號(hào),表明此次配置不成功,系統(tǒng)進(jìn)入WAIT_PR_ERROR(重構(gòu)失敗狀態(tài))。在WAIT_PR_ERROR(重構(gòu)失敗狀態(tài))狀態(tài),接收到“pr_error=0”或“crc_error=0”信號(hào),系統(tǒng)回到等待狀態(tài)。

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

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

2.3 仿真驗(yàn)證與比較分析

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

圖2 時(shí)序仿真結(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

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

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

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

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

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

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

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

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

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

3結(jié)束語

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

參考文獻(xiàn)

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

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

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

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

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

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

[7]吳春波,蘇厚勤.基于有限狀態(tài)機(jī)模型的GUI設(shè)計(jì)及其應(yīng)用[J].計(jì)算機(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

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

收稿日期:2015-05-19

DOI:10.16426/j.cnki.jcdzdk.2015.05.021

中圖分類號(hào):TP332.3

文獻(xiàn)標(biāo)識(shí)碼:A

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

太和县| 金沙县| 营口市| 忻州市| 万山特区| 全州县| 盐池县| 星子县| 石门县| 灵台县| 徐汇区| 神木县| 黄龙县| 北川| 眉山市| 肇庆市| 莱西市| 扎赉特旗| 陈巴尔虎旗| 阿鲁科尔沁旗| 阜城县| 阿瓦提县| 龙门县| 凤城市| 华宁县| 明溪县| 鹰潭市| 密云县| 惠水县| 金山区| 宣恩县| 涞水县| 方正县| 婺源县| 屯留县| 喀喇沁旗| 广德县| 长沙县| 华安县| 通化市| 定州市|