• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于VerilogHDL的狀態(tài)機(jī)設(shè)計(jì)探討

    2016-11-02 23:38:09黃金鳳張紅
    電腦知識(shí)與技術(shù) 2016年23期
    關(guān)鍵詞:狀態(tài)機(jī)

    黃金鳳 張紅

    摘要:在日常生活中,我們經(jīng)常看到很多循環(huán)控制產(chǎn)品,如十字路口的交通燈、自動(dòng)飲料收貨機(jī)、電梯運(yùn)行、微波爐、電飯鍋等,它們的控制系統(tǒng)其實(shí)都可以用Verilog HDL的狀態(tài)機(jī)設(shè)計(jì)方法來完成。該論文首先講述了狀態(tài)機(jī)設(shè)計(jì)方法,然后講述了如何有效的運(yùn)用3種過程描述來設(shè)計(jì)狀態(tài)機(jī)。

    關(guān)鍵詞:Verilog HDL;狀態(tài)機(jī);過程描述

    中圖分類號(hào):TP18 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)23-0204-02

    1 概述

    有限狀態(tài)機(jī)(Finite State Machine,F(xiàn)SM)是時(shí)序電路設(shè)計(jì)中經(jīng)常采用的一種方式,尤其適合設(shè)計(jì)數(shù)字系統(tǒng)的控制模塊,在一些需要控制高速器件的場(chǎng)合,用狀態(tài)機(jī)進(jìn)行設(shè)計(jì)是一種很好的解決問題的方案,具有速度快、結(jié)構(gòu)簡(jiǎn)單、可靠性高等優(yōu)點(diǎn)。

    有限狀態(tài)機(jī)非常適合用FPGA器件實(shí)現(xiàn),用Verilog HDL的case語句能很好地描述基于狀態(tài)機(jī)的設(shè)計(jì),再通過EDA工具軟件的綜合,一般可以生成性能極優(yōu)的狀態(tài)機(jī)電路,從而使其在執(zhí)行時(shí)間、運(yùn)行速度和占用資源等方面優(yōu)于用CPU實(shí)現(xiàn)的方案。

    2 狀態(tài)機(jī)設(shè)計(jì)

    有限狀態(tài)機(jī)可以認(rèn)為是組合邏輯和寄存器邏輯的特殊組合,它一般包括組合邏輯和寄存器邏輯兩部分,寄存器邏輯用于存儲(chǔ)狀態(tài),組合邏輯用于狀態(tài)譯碼和產(chǎn)生輸出信號(hào)。根據(jù)輸出信號(hào)產(chǎn)生方法的不同,狀態(tài)機(jī)可分為兩類:摩爾型(Moore)和米里型(Mealy)。Moore型狀態(tài)機(jī)的輸出只和當(dāng)前狀態(tài)有關(guān),和輸入無關(guān)。 Mealy型狀態(tài)機(jī)的輸入是由當(dāng)前狀態(tài)和輸入共同決定。如圖1和圖2所示。

    使用Verilog HDL語言設(shè)計(jì)狀態(tài)機(jī)的步驟:

    1)將實(shí)際問題抽象成狀態(tài)圖

    分析實(shí)際問題,找出輸入信號(hào)、輸出信號(hào),最好畫出一個(gè)具有輸入和輸出的框圖,要給輸入、輸出信號(hào)取字母名。取狀態(tài)機(jī)上電的狀態(tài)為初始狀態(tài),并由此狀態(tài)開始,根據(jù)輸入條件決定狀態(tài)機(jī)的次態(tài)及輸出,直至所有情況描繪素完畢,畫出完整的狀態(tài)圖。

    2)定義變量

    定義描寫次態(tài)邏輯、狀態(tài)寄存器中需要的變量,注意在always塊中使用的變量應(yīng)該定義成寄存器變量,而連續(xù)賦值語句中使用的變量應(yīng)該定義成連線變量。

    3)狀態(tài)編碼

    根據(jù)狀態(tài)圖選擇狀態(tài)變量,進(jìn)行狀態(tài)編碼,雖然有多種編碼方式,但可以找一種編碼試一試。例如,使用自然二進(jìn)制碼。

    4)描寫次態(tài)邏輯

    使用always塊或是連續(xù)賦值語句描寫次態(tài)邏輯。

    5) 描寫狀態(tài)寄存器

    使用always塊描寫狀態(tài)寄存器。

    6)描寫輸出邏輯

    使用always塊或是連續(xù)賦值語句描寫輸出邏輯(輸出邏輯可以與次態(tài)邏輯在一個(gè)塊中描述)。

    7)仿真

    根據(jù)狀態(tài)機(jī)輸入信號(hào)的要求,用圖形或文本方式編輯輸入信號(hào)波形,然后進(jìn)行功能仿真,根據(jù)仿真結(jié)果的正確與否決定是否修改設(shè)計(jì),例如在狀態(tài)轉(zhuǎn)換時(shí)出現(xiàn)不該有的尖峰脈沖,則可以更改狀態(tài)編碼試一試。如果仿真成功,就可以在引腳鎖定后,進(jìn)行編譯形成文件下載到芯片中,試一試是否成功。

    在用Verilog HDL描述的有限狀態(tài)機(jī)時(shí),其中重要的核心部分是描述方式,有以下3種描述方式。

    1)三段式過程描述:即現(xiàn)態(tài)(CS)、次態(tài)(NS)、輸出邏輯(OL)各用一個(gè)always過程描述。

    2)二段式過程描述:分為兩種,第一種:CS+NS、OL雙過程描述,使用兩個(gè)always過程來描述有限狀態(tài)機(jī),一個(gè)過程描述現(xiàn)態(tài)和次態(tài)時(shí)序邏輯(CS+NS);另一個(gè)過程描述輸出邏輯(OL)。第二種,CS、NS+OL雙過程描述,一個(gè)過程用來描述現(xiàn)態(tài)(CS);另一個(gè)過程描述次態(tài)和輸出邏輯(NS+OL)。

    3)一段式過程描述:將狀態(tài)機(jī)的現(xiàn)態(tài)、次態(tài)和輸出邏輯(CS+NS+OL)放在一個(gè)always過程中進(jìn)行描述。

    3 狀態(tài)機(jī)的3種過程描述

    一般而言,對(duì)于符合圖1或圖2兩種模塊圖的狀態(tài)機(jī)設(shè)計(jì)而言,3種過程描述方式都是適合的,只不過,一段式過程描述一般不推薦使用,因?yàn)樗贿m合設(shè)計(jì)簡(jiǎn)單的狀態(tài)機(jī),對(duì)于復(fù)雜的狀態(tài)機(jī),一段式不僅浪費(fèi)了觸發(fā)器資源,而且其代碼難以修改調(diào)試。所以,通常情況下,我們都用二段式過程描述和三段式過程描述。

    對(duì)于圖1(圖2)中的次態(tài)邏輯模塊中的輸入信號(hào),如果不受時(shí)鐘信號(hào)控制,二段式和三段式過程描述設(shè)計(jì)方法是一樣的,但如果次態(tài)邏輯模塊是時(shí)序電路,輸入信號(hào)受時(shí)鐘信號(hào)控制,就適合采用二段式過程描述方法。下面以單通道交通燈設(shè)計(jì)為例加以驗(yàn)證。

    題目要求:?jiǎn)瓮ǖ澜煌粼O(shè)計(jì),南北方向,初始狀態(tài)為綠燈,綠燈停留6秒變?yōu)辄S燈,黃燈停留4秒變?yōu)榧t燈,紅燈停留6秒變?yōu)榫G燈,如此反復(fù)。

    通過圖3和圖4的仿真結(jié)果圖,我們可以看出,圖3滿足題目要求,而圖4卻是凌亂的。當(dāng)次態(tài)邏輯模塊和現(xiàn)態(tài)寄存器模塊都受同一時(shí)鐘控制時(shí),如果采用三段式分開描述這兩個(gè)模塊,那么現(xiàn)態(tài)變量和次態(tài)變量的值其實(shí)相互之間產(chǎn)生了干擾。所以建議使用二段式過程描述方式以避免邏輯的混亂。

    4 結(jié)語

    狀態(tài)機(jī)理論最初的發(fā)展在數(shù)字電路設(shè)計(jì)領(lǐng)域。狀態(tài)機(jī)設(shè)計(jì)是HDL設(shè)計(jì)里面的精華,幾乎所有的設(shè)計(jì)里面都或多或少地使用了狀態(tài)機(jī)的思想。狀態(tài)機(jī),顧名思義,就是一系列狀態(tài)組成的一個(gè)循環(huán)機(jī)制,這樣的結(jié)構(gòu)使得編程人員能夠更好地使用HDL語言,同時(shí)具有特定風(fēng)格的狀態(tài)機(jī)也能提高程序的可讀性和調(diào)試性。

    參考文獻(xiàn):

    [1]魏芳,劉志軍,王立華.基于Verilog HDL的可綜合有限狀態(tài)機(jī)設(shè)計(jì)[J].電子工程師,2006(6).

    [2]溫國(guó)忠.基于Verilog HDL的高效狀態(tài)機(jī)設(shè)計(jì)[J].電子工程師,2006(6).

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

    [4]楊慶.有限狀態(tài)機(jī)的設(shè)計(jì)與優(yōu)化[J].湖北民族學(xué)院學(xué)報(bào)(自然科學(xué)版),2006(1).

    猜你喜歡
    狀態(tài)機(jī)
    FPGA狀態(tài)機(jī)綜合可靠性探究 ①
    基于有限狀態(tài)機(jī)的交會(huì)對(duì)接飛行任務(wù)規(guī)劃方法
    基于Spring StateMachine的有限狀態(tài)機(jī)應(yīng)用研究
    三段式狀態(tài)機(jī)在單片機(jī)中的實(shí)現(xiàn)
    基于單片機(jī)運(yùn)行的多線程任務(wù)狀態(tài)機(jī)
    基于狀態(tài)機(jī)比對(duì)的狀態(tài)機(jī)推斷方案
    江蘇通信(2015年5期)2015-03-16 01:16:51
    雙口RAM讀寫正確性自動(dòng)測(cè)試的有限狀態(tài)機(jī)控制器設(shè)計(jì)方法
    FPGA設(shè)計(jì)中狀態(tài)機(jī)安全性研究
    基于反熔絲FPGA的有限狀態(tài)機(jī)加固設(shè)計(jì)
    μC/OS 的層次式狀態(tài)機(jī)在人機(jī)界面中的應(yīng)用
    仙居县| 上高县| 罗甸县| 平舆县| 新晃| 南康市| 松溪县| 紫阳县| 民县| 辽宁省| 宝应县| 社会| 济宁市| 扎赉特旗| 景泰县| 巢湖市| 新津县| 天峻县| 龙井市| 义马市| 东光县| 莲花县| 应城市| 大名县| 新余市| 益阳市| 陆河县| 安宁市| 仪征市| 周宁县| 陇西县| 维西| 兰溪市| 兴和县| 红原县| 凤翔县| 宝鸡市| 曲阳县| 望都县| 永嘉县| 镇康县|