999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于VerilogHDL語言的有限狀態機設計

2014-04-29 00:44:03王塞博毛先柏
中國電子商情 2014年5期
關鍵詞:設計

王塞博 毛先柏

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

引言

有限狀態機FSM是一種基本的、簡單的、重要的形式化技術,在軟件設計中常常采用。FSM就是描述一個由有限個獨立狀態組成的過程,這些狀態可以互相遷移,直到最終離開這個過程。采用有限狀態機可以使設計過程直觀簡單易于理解,大大加快設計流程。隨著硬件設計軟件化趨勢的加劇,在運用VerilogHDL硬件描述語言設計數字系統時,利用有限狀態機成為了可靠方便的途徑,有許多電路功能可以利用有限狀態機的設計方案來描述和實現。控制器作為電子系統設計的核心部分,在EDA軟件平臺上,借助有限狀態機表示方法符合人的思維邏輯的特性,將控制功能用有限狀態機來建模實現,有許多優越之處,已使FSM成為大型控制電路設計的有力工具。

一、狀態機的設計

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

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

二、一般有限狀態機的結構

最一般和最常用的狀態機結構中通常都包含了說明部分,主控時序過程,主控組合過程,輔助過程等幾個部分。

將以下面例子,對一個簡單的狀態機(moore型)進行分析,說明一般有限狀態機的結構。

該狀態機狀態轉換圖如下:

Reset

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

Input clk,din;

Output op;

Reg op;

(1)說明部分

說明部分包含狀態轉換變量的定義和所有可能狀態的說明,必要時還要確定每一狀態的編碼形式。

reg[1:0]current_state,next_state;

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

(2)主控時序過程

所謂主控時序過程是指負責狀態機運行和在時鐘驅動下負責狀態轉換的過程。狀態機是隨外部時鐘信號,以同步時序工作方式工作的,因此必須有一個時鐘信號進行驅動。

always@(posedge clk)

begin

current_state<=next_state;

end

(3)主控組合過程

如果將狀態機比喻成一臺機床,那么主控時序過程即為此機床的驅動電機,而主控組合過程則為機床的機械加工部分,它來表明此機床的具體作用。因此,主控組合過程也可稱為狀態譯碼過程,其任務是根據外部輸入的控制信號(包括來自狀態機外部的信號和來自狀態機內部其他非主控的組合或時序過程的信號)以及當前狀態機的狀態值確定下一狀態的取向,以及確定對外輸出或對內部其他組合或時序過程輸出控制信號的內容。

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輔助過程

主要是用于配合狀態機工作的組合過程或時序過程,如根據狀態機的輸出繼續完成某個計算算法,或為了穩定輸出的數據鎖存等。

輔助過程可以不作為狀態機的組成部分,而作為單獨的電路存在。

狀態機的一般結構示意圖

cs

clk

resetns output

input

三、狀態機設計的一般步驟

(1)邏輯抽象得出狀態轉移圖。即把給出的一個實際邏輯關系表示為時序邏輯關系,進而表示為時序邏輯函數。可以用狀態轉換表來描述, 也可以用狀態轉移圖來描述。

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

2.定義輸入、輸出邏輯狀態關系的含義,并將電路狀態順序編號。按要求列出電路的狀態轉移表或畫出狀態轉移圖。

(2)狀態簡化。如果在狀態轉移圖中出現這樣兩個狀態:他們在相同的輸入下轉換到同一個狀態去,并得到相同的輸出,則稱他們為等價態。等價態是重復的,可以合并為一個狀態,電路的狀態數越少,存儲電路就越簡單。

(3)狀態分配,也稱狀態編碼。編碼的方案選擇得當,設計的電路就可以簡單,反之就復雜。在實際設計中主要考慮電路的復雜度和電路的性能這兩個因素。在觸發器資源豐富的FPGA或ASIC設計中,采用獨熱編碼(one hotcoding)即可以保障電路性能,又可以充分發揮觸發器數量多的優點,提高狀態機的運行速度。

(4)選定觸發器的類型并求出狀態方程,驅動方程和輸出方程。

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

四、狀態機綜合的一般原則

(1)綜合之前一定要進行仿真,因為仿真會暴露邏輯錯誤,如果不做仿真,沒有發現的邏輯錯誤會進入綜合器,使綜合的結果產生同樣的邏輯錯誤。

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

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

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

同步狀態機的時鐘是由同一個時鐘產生的,通過特殊設計的全局的時鐘網絡連接到每一個觸發器的時鐘端, 這樣時鐘沿到達每一個觸發器的時鐘端的時刻幾乎完全相同。

小結

VerilogHDL語言不是為了綜合而專門設計的語言,設計出的模型與綜合出的網表可能會出現功能上的不一致,那就要進行功能驗證。一般有2種方法:

(1)將在設計模型的仿真過程中使用的那組激勵拿來對網表進行仿真, 將仿真結果保存在結果文件中,然后比較兩者的仿真結果是否相同。

(2)編寫測試平臺。用VerilogHDL編寫的模型, 并施加各種激勵、比較輸出響應、報告任何功能不一致處。在利用VerilogHDL語言進行電路設計時,必須考慮到其可綜合性。目前,VerilogHDL語言可綜合性沒有統一的標準,不同廠家提供的綜合工具將電路的RT L級語言描述轉換成門級網表的能力也不相同,所以必須掌握其技巧才能寫出可綜合風格的VerilogHDL 的RT L級語言描述程序。

參考文獻

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

[2]潘松、黃繼業、陳龍 eda技術與verilog hdl北京:清華大學出版社2010.

[3]方洪浩、雷蕾 基于Verilog HDL的有限狀態機設計科學技術與工程2007.

[4]李玲、王祖強 Verilog HDL代碼描述對狀態機綜合的研究信息技術與信息化2009.

猜你喜歡
設計
二十四節氣在平面廣告設計中的應用
河北畫報(2020年8期)2020-10-27 02:54:06
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
基于PWM的伺服控制系統設計
電子制作(2019年19期)2019-11-23 08:41:36
基于89C52的32只三色LED搖搖棒設計
電子制作(2019年15期)2019-08-27 01:11:50
基于ICL8038的波形發生器仿真設計
電子制作(2019年7期)2019-04-25 13:18:16
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
從平面設計到“設計健康”
商周刊(2017年26期)2017-04-25 08:13:04
主站蜘蛛池模板: 无码精油按摩潮喷在线播放| 夜精品a一区二区三区| 亚洲v日韩v欧美在线观看| 国产日本欧美在线观看| 在线观看视频一区二区| 亚洲成年人片| 91探花在线观看国产最新| 九九久久精品免费观看| 99久视频| 亚洲综合久久成人AV| 欧类av怡春院| 精品国产三级在线观看| av在线5g无码天天| 97se亚洲综合不卡| 极品尤物av美乳在线观看| 青青草原国产| 国产一区二区网站| 在线不卡免费视频| 欧美性久久久久| 99草精品视频| 88av在线看| 欧美一区二区三区不卡免费| 黄色网页在线播放| 亚洲欧美一区二区三区麻豆| 四虎影视库国产精品一区| 欧美日韩在线亚洲国产人| 久久精品丝袜高跟鞋| 99在线视频免费观看| 亚洲天堂网在线视频| 成人日韩精品| 毛片在线区| 激情综合图区| 亚洲国产天堂久久综合226114| 人妻丝袜无码视频| 欧美人在线一区二区三区| 人妻无码中文字幕第一区| 成人a免费α片在线视频网站| 亚洲第一黄色网| 久久久久青草大香线综合精品| 全部毛片免费看| 久草视频一区| 波多野结衣中文字幕一区二区| 日韩精品无码免费专网站| 极品国产在线| 国产人成在线视频| 成人伊人色一区二区三区| 一本色道久久88亚洲综合| 精品欧美一区二区三区久久久| 国产欧美日韩资源在线观看| 好紧好深好大乳无码中文字幕| 极品尤物av美乳在线观看| 色135综合网| 国产欧美自拍视频| 色婷婷在线影院| 影音先锋丝袜制服| 国产亚洲精品自在久久不卡| 久久精品只有这里有| 欧美日本在线播放| 91福利一区二区三区| 亚洲无码视频图片| 国产成人精品18| 国产精品亚洲精品爽爽| 欧美日韩午夜| 欧美精品亚洲精品日韩专区va| 99久久性生片| 国产精品蜜芽在线观看| 一本无码在线观看| 真人免费一级毛片一区二区| 亚洲妓女综合网995久久| 亚洲性日韩精品一区二区| 国产成人精品亚洲77美色| 亚洲天堂啪啪| 国产精品jizz在线观看软件| 亚洲AⅤ无码国产精品| 日本黄色a视频| 97av视频在线观看| 国产成人AV综合久久| 久久精品电影| 久久亚洲欧美综合| 这里只有精品免费视频| 国产精品熟女亚洲AV麻豆| 爱爱影院18禁免费|