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

        ?

        基于VerilogHDL語(yǔ)言的有限狀態(tài)機(jī)設(shè)計(jì)

        2014-04-29 00:44:03王塞博毛先柏
        中國(guó)電子商情 2014年5期
        關(guān)鍵詞:設(shè)計(jì)

        王塞博 毛先柏

        引言:有限狀態(tài)機(jī)及其設(shè)計(jì)技術(shù)是實(shí)用數(shù)字系統(tǒng)設(shè)計(jì)中的重要組成部分,也是實(shí)現(xiàn)高效率、高可靠和高速控制邏輯系統(tǒng)的重要途徑。VerilogHDL 是一種硬件描述語(yǔ)言,可以在門級(jí)和寄存器傳輸級(jí)描述硬件,在算法級(jí)對(duì)硬件加以描述。狀態(tài)機(jī)是數(shù)字系統(tǒng)的控制單元, 包括時(shí)序邏輯和組合邏輯, 語(yǔ)言描述較為抽象, 如果句柄編寫不規(guī)范, 綜合工具就很難把抽象思維變?yōu)殚T級(jí)電路。本文介紹了VerilogHDL語(yǔ)言的綜合實(shí)質(zhì), 研究了編寫可綜合的狀態(tài)機(jī)的方法、步驟以及綜合原則, 具有一定的參考價(jià)值。

        引言

        有限狀態(tài)機(jī)FSM是一種基本的、簡(jiǎn)單的、重要的形式化技術(shù),在軟件設(shè)計(jì)中常常采用。FSM就是描述一個(gè)由有限個(gè)獨(dú)立狀態(tài)組成的過程,這些狀態(tài)可以互相遷移,直到最終離開這個(gè)過程。采用有限狀態(tài)機(jī)可以使設(shè)計(jì)過程直觀簡(jiǎn)單易于理解,大大加快設(shè)計(jì)流程。隨著硬件設(shè)計(jì)軟件化趨勢(shì)的加劇,在運(yùn)用VerilogHDL硬件描述語(yǔ)言設(shè)計(jì)數(shù)字系統(tǒng)時(shí),利用有限狀態(tài)機(jī)成為了可靠方便的途徑,有許多電路功能可以利用有限狀態(tài)機(jī)的設(shè)計(jì)方案來描述和實(shí)現(xiàn)??刂破髯鳛殡娮酉到y(tǒng)設(shè)計(jì)的核心部分,在EDA軟件平臺(tái)上,借助有限狀態(tài)機(jī)表示方法符合人的思維邏輯的特性,將控制功能用有限狀態(tài)機(jī)來建模實(shí)現(xiàn),有許多優(yōu)越之處,已使FSM成為大型控制電路設(shè)計(jì)的有力工具。

        一、狀態(tài)機(jī)的設(shè)計(jì)

        所謂狀態(tài)機(jī),就是用來控制數(shù)字系統(tǒng),根據(jù)它的輸出逐步地進(jìn)行相應(yīng)操作和運(yùn)算的機(jī)器(這里應(yīng)理解為電路)。有限狀態(tài)機(jī)設(shè)計(jì)的關(guān)鍵是:如何把一個(gè)實(shí)際的時(shí)序邏輯關(guān)系抽象成一個(gè)時(shí)序邏輯函數(shù),傳統(tǒng)的電路圖輸入法通過直接設(shè)計(jì)寄存器組來實(shí)現(xiàn)各個(gè)狀態(tài)之間的轉(zhuǎn)換,而用硬件描述語(yǔ)言來描述有限狀態(tài)機(jī),往往是通過充分發(fā)揮硬件描述語(yǔ)言的抽象建模能力,通過系統(tǒng)級(jí)或寄存器傳輸級(jí)進(jìn)行描述來建立有限狀態(tài)機(jī)。

        一個(gè)完備的狀態(tài)機(jī)應(yīng)該具有初始狀態(tài)和默認(rèn)狀態(tài)。當(dāng)芯片加電或者復(fù)位后,狀態(tài)機(jī)能夠自動(dòng)將所有的判斷條件復(fù)位, 并進(jìn)入初始狀態(tài);當(dāng)轉(zhuǎn)移條件不滿足, 或者狀態(tài)發(fā)生突變時(shí),狀態(tài)機(jī)進(jìn)入一個(gè)默認(rèn)(default)狀態(tài),能保證邏輯不會(huì)陷入“死循環(huán)”,這是對(duì)狀態(tài)機(jī)健壯性的一個(gè)重要要求,即自動(dòng)恢復(fù)功能。Verilog中,使用“case”語(yǔ)句的時(shí)候要用“def ault”建立默認(rèn)狀態(tài)。使用完備的“ifelse”的好處是:可以避免生成非目的性的“鎖存器”。一般采用case,casex或casez語(yǔ)句來建立狀態(tài)機(jī)的模型,可方便地從當(dāng)前狀態(tài)分支轉(zhuǎn)向下一個(gè)狀態(tài),并設(shè)置輸出。case語(yǔ)句的最后一個(gè)分支default等于告訴綜合器:case語(yǔ)句已經(jīng)指定了所有的狀態(tài)。這樣綜合器就可以刪掉不需要的譯碼電路,使生成的電路簡(jiǎn)潔,并與設(shè)計(jì)要求一致。

        二、一般有限狀態(tài)機(jī)的結(jié)構(gòu)

        最一般和最常用的狀態(tài)機(jī)結(jié)構(gòu)中通常都包含了說明部分,主控時(shí)序過程,主控組合過程,輔助過程等幾個(gè)部分。

        將以下面例子,對(duì)一個(gè)簡(jiǎn)單的狀態(tài)機(jī)(moore型)進(jìn)行分析,說明一般有限狀態(tài)機(jī)的結(jié)構(gòu)。

        該狀態(tài)機(jī)狀態(tài)轉(zhuǎn)換圖如下:

        Reset

        Module moore(clk,din,op);//定義輸入、輸出以及中間變量

        Input clk,din;

        Output op;

        Reg op;

        (1)說明部分

        說明部分包含狀態(tài)轉(zhuǎn)換變量的定義和所有可能狀態(tài)的說明,必要時(shí)還要確定每一狀態(tài)的編碼形式。

        reg[1:0]current_state,next_state;

        Parameter S0=2'b00,S1=2'b01,S2=2'b10,S3=2'b11;

        (2)主控時(shí)序過程

        所謂主控時(shí)序過程是指負(fù)責(zé)狀態(tài)機(jī)運(yùn)行和在時(shí)鐘驅(qū)動(dòng)下負(fù)責(zé)狀態(tài)轉(zhuǎn)換的過程。狀態(tài)機(jī)是隨外部時(shí)鐘信號(hào),以同步時(shí)序工作方式工作的,因此必須有一個(gè)時(shí)鐘信號(hào)進(jìn)行驅(qū)動(dòng)。

        always@(posedge clk)

        begin

        current_state<=next_state;

        end

        (3)主控組合過程

        如果將狀態(tài)機(jī)比喻成一臺(tái)機(jī)床,那么主控時(shí)序過程即為此機(jī)床的驅(qū)動(dòng)電機(jī),而主控組合過程則為機(jī)床的機(jī)械加工部分,它來表明此機(jī)床的具體作用。因此,主控組合過程也可稱為狀態(tài)譯碼過程,其任務(wù)是根據(jù)外部輸入的控制信號(hào)(包括來自狀態(tài)機(jī)外部的信號(hào)和來自狀態(tài)機(jī)內(nèi)部其他非主控的組合或時(shí)序過程的信號(hào))以及當(dāng)前狀態(tài)機(jī)的狀態(tài)值確定下一狀態(tài)的取向,以及確定對(duì)外輸出或?qū)?nèi)部其他組合或時(shí)序過程輸出控制信號(hào)的內(nèi)容。

        always@(current_state or din)begin

        case(current_state)

        S0:begin

        op=0;

        if(din==0)

        next_state=S0;

        else

        next_state=S1;

        end

        S1:begin

        op=0;

        if(din==0)

        next_state=S0;

        else

        next_state=S2;

        end

        S2:begin

        op=0;

        if(din==0)

        next_state=S0;

        else

        next_state=S3;

        end

        S3:begin

        op=1;

        if(din==0)

        next_state=S0;

        else

        next_state=S3;

        end

        default:begin op=0;

        next_state=S0;

        end

        endcase

        end

        endmodule

        (4)else輔助過程

        主要是用于配合狀態(tài)機(jī)工作的組合過程或時(shí)序過程,如根據(jù)狀態(tài)機(jī)的輸出繼續(xù)完成某個(gè)計(jì)算算法,或?yàn)榱朔€(wěn)定輸出的數(shù)據(jù)鎖存等。

        輔助過程可以不作為狀態(tài)機(jī)的組成部分,而作為單獨(dú)的電路存在。

        狀態(tài)機(jī)的一般結(jié)構(gòu)示意圖

        cs

        clk

        resetns output

        input

        三、狀態(tài)機(jī)設(shè)計(jì)的一般步驟

        (1)邏輯抽象得出狀態(tài)轉(zhuǎn)移圖。即把給出的一個(gè)實(shí)際邏輯關(guān)系表示為時(shí)序邏輯關(guān)系,進(jìn)而表示為時(shí)序邏輯函數(shù)??梢杂脿顟B(tài)轉(zhuǎn)換表來描述, 也可以用狀態(tài)轉(zhuǎn)移圖來描述。

        1.分析給定的邏輯問題, 確定輸入變量、輸出變量以及電路的狀態(tài)數(shù)。通常取原因(或條件)為輸入變量,取結(jié)果為輸出變量。

        2.定義輸入、輸出邏輯狀態(tài)關(guān)系的含義,并將電路狀態(tài)順序編號(hào)。按要求列出電路的狀態(tài)轉(zhuǎn)移表或畫出狀態(tài)轉(zhuǎn)移圖。

        (2)狀態(tài)簡(jiǎn)化。如果在狀態(tài)轉(zhuǎn)移圖中出現(xiàn)這樣兩個(gè)狀態(tài):他們?cè)谙嗤妮斎胂罗D(zhuǎn)換到同一個(gè)狀態(tài)去,并得到相同的輸出,則稱他們?yōu)榈葍r(jià)態(tài)。等價(jià)態(tài)是重復(fù)的,可以合并為一個(gè)狀態(tài),電路的狀態(tài)數(shù)越少,存儲(chǔ)電路就越簡(jiǎn)單。

        (3)狀態(tài)分配,也稱狀態(tài)編碼。編碼的方案選擇得當(dāng),設(shè)計(jì)的電路就可以簡(jiǎn)單,反之就復(fù)雜。在實(shí)際設(shè)計(jì)中主要考慮電路的復(fù)雜度和電路的性能這兩個(gè)因素。在觸發(fā)器資源豐富的FPGA或ASIC設(shè)計(jì)中,采用獨(dú)熱編碼(one hotcoding)即可以保障電路性能,又可以充分發(fā)揮觸發(fā)器數(shù)量多的優(yōu)點(diǎn),提高狀態(tài)機(jī)的運(yùn)行速度。

        (4)選定觸發(fā)器的類型并求出狀態(tài)方程,驅(qū)動(dòng)方程和輸出方程。

        (5)按照方框圖得出邏輯圖。

        四、狀態(tài)機(jī)綜合的一般原則

        (1)綜合之前一定要進(jìn)行仿真,因?yàn)榉抡鏁?huì)暴露邏輯錯(cuò)誤,如果不做仿真,沒有發(fā)現(xiàn)的邏輯錯(cuò)誤會(huì)進(jìn)入綜合器,使綜合的結(jié)果產(chǎn)生同樣的邏輯錯(cuò)誤。

        (2)每一次布線之后都要進(jìn)行仿真,在器件編程或流片之前一定要進(jìn)行仿真。

        (3)用VerilogHDL語(yǔ)言描述的異步狀態(tài)機(jī)是不能綜合的,因此應(yīng)該避免用綜合器來設(shè)計(jì),如果一定要設(shè)計(jì)異步狀態(tài)機(jī),則可以用電路圖輸入的方法來設(shè)計(jì)。

        (4)如果要為電平敏感的鎖存器建模,使用連續(xù)賦值語(yǔ)句是最簡(jiǎn)單的方法。目前大多數(shù)綜合器往往不支持在一個(gè)always塊中有多個(gè)事件觸發(fā)的狀態(tài)機(jī)(隱含狀態(tài)機(jī))。如果設(shè)計(jì)要求必須有不同時(shí)鐘觸發(fā)器的狀態(tài)機(jī),可以采用以下方法:編寫另一個(gè)模塊,在那個(gè)模塊中使用另外一個(gè)時(shí)鐘;然后使用實(shí)例引用的方法在另一個(gè)模塊中把他們連接起來。為了使設(shè)計(jì)簡(jiǎn)單,容易調(diào)試,盡量使這兩個(gè)狀態(tài)機(jī)的時(shí)鐘有一定的關(guān)系。例如甲模塊的時(shí)鐘是乙模塊時(shí)鐘同步計(jì)數(shù)器的輸出。目前大多數(shù)的綜合器不能綜合采用VerilogHDL描述的異步狀態(tài)機(jī)。異步狀態(tài)機(jī)是沒有確定時(shí)鐘的狀態(tài)機(jī),他的狀態(tài)轉(zhuǎn)移不是由惟一的時(shí)鐘跳變沿所觸發(fā)。之所以不能用異步狀態(tài)機(jī)來綜合的原因是:異步狀態(tài)機(jī)不容易規(guī)范觸發(fā)器的瞬間, 不容易判別是正常的觸發(fā)脈沖還是冒險(xiǎn)競(jìng)爭(zhēng)的毛刺。

        同步狀態(tài)機(jī)的時(shí)鐘是由同一個(gè)時(shí)鐘產(chǎn)生的,通過特殊設(shè)計(jì)的全局的時(shí)鐘網(wǎng)絡(luò)連接到每一個(gè)觸發(fā)器的時(shí)鐘端, 這樣時(shí)鐘沿到達(dá)每一個(gè)觸發(fā)器的時(shí)鐘端的時(shí)刻幾乎完全相同。

        小結(jié)

        VerilogHDL語(yǔ)言不是為了綜合而專門設(shè)計(jì)的語(yǔ)言,設(shè)計(jì)出的模型與綜合出的網(wǎng)表可能會(huì)出現(xiàn)功能上的不一致,那就要進(jìn)行功能驗(yàn)證。一般有2種方法:

        (1)將在設(shè)計(jì)模型的仿真過程中使用的那組激勵(lì)拿來對(duì)網(wǎng)表進(jìn)行仿真, 將仿真結(jié)果保存在結(jié)果文件中,然后比較兩者的仿真結(jié)果是否相同。

        (2)編寫測(cè)試平臺(tái)。用VerilogHDL編寫的模型, 并施加各種激勵(lì)、比較輸出響應(yīng)、報(bào)告任何功能不一致處。在利用VerilogHDL語(yǔ)言進(jìn)行電路設(shè)計(jì)時(shí),必須考慮到其可綜合性。目前,VerilogHDL語(yǔ)言可綜合性沒有統(tǒng)一的標(biāo)準(zhǔn),不同廠家提供的綜合工具將電路的RT L級(jí)語(yǔ)言描述轉(zhuǎn)換成門級(jí)網(wǎng)表的能力也不相同,所以必須掌握其技巧才能寫出可綜合風(fēng)格的VerilogHDL 的RT L級(jí)語(yǔ)言描述程序。

        參考文獻(xiàn)

        [1]T homas, Mo or by.硬件描述語(yǔ)言Verilo g[M].第4版.劉明業(yè),蔣敬旗譯.北京:清華大學(xué)出版社,2002.

        [2]潘松、黃繼業(yè)、陳龍 eda技術(shù)與verilog hdl北京:清華大學(xué)出版社2010.

        [3]方洪浩、雷蕾 基于Verilog HDL的有限狀態(tài)機(jī)設(shè)計(jì)科學(xué)技術(shù)與工程2007.

        [4]李玲、王祖強(qiáng) Verilog HDL代碼描述對(duì)狀態(tài)機(jī)綜合的研究信息技術(shù)與信息化2009.

        猜你喜歡
        設(shè)計(jì)
        二十四節(jié)氣在平面廣告設(shè)計(jì)中的應(yīng)用
        何為設(shè)計(jì)的守護(hù)之道?
        《豐收的喜悅展示設(shè)計(jì)》
        流行色(2020年1期)2020-04-28 11:16:38
        基于PWM的伺服控制系統(tǒng)設(shè)計(jì)
        電子制作(2019年19期)2019-11-23 08:41:36
        基于89C52的32只三色LED搖搖棒設(shè)計(jì)
        電子制作(2019年15期)2019-08-27 01:11:50
        基于ICL8038的波形發(fā)生器仿真設(shè)計(jì)
        電子制作(2019年7期)2019-04-25 13:18:16
        瞞天過?!律O(shè)計(jì)萌到家
        設(shè)計(jì)秀
        海峽姐妹(2017年7期)2017-07-31 19:08:17
        有種設(shè)計(jì)叫而專
        Coco薇(2017年5期)2017-06-05 08:53:16
        從平面設(shè)計(jì)到“設(shè)計(jì)健康”
        商周刊(2017年26期)2017-04-25 08:13:04
        一区二区精品| 色欲av伊人久久大香线蕉影院| 97精品久久久久中文字幕| 精品久久久久久中文字幕大豆网| 日韩中文字幕一区二区高清| 日本中文字幕人妻精品| av影院在线免费观看不卡| 亚洲色成人网站www永久四虎| 91福利国产在线观看一区二区| 91亚洲精品久久久蜜桃| 国产剧情av麻豆香蕉精品| 国产亚洲精品美女久久久| 免费的成年私人影院网站| 超高清丝袜美腿视频在线| 精品久久综合日本久久综合网| 国产又粗又黄又爽的大片| 国产精美视频| 亚洲精品在线观看一区二区| 成人性生交大片免费入口| 欧美黑吊大战白妞| 亚洲AV无码精品一区二区三区l | 粗大的内捧猛烈进出在线视频| 亚洲女同系列高清在线观看| 亚洲av高清一区二区在线观看| 最新中文字幕av无码不卡| 久久成年片色大黄全免费网站| 白色橄榄树在线阅读免费| 米奇欧美777四色影视在线| 天堂中文在线资源| 亚洲av成人在线网站| 日韩av一区二区不卡在线| 欧美69久成人做爰视频| 自拍偷自拍亚洲精品播放| 中文字幕中文一区中文字幕| 妃光莉中文字幕一区二区| av无码久久久久不卡网站下载 | 国产精品国产三级国产一地 | 亚洲三区二区一区视频| 91九色极品探花内射| 人禽交 欧美 网站| 中文字幕国产欧美|