91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Verilog設(shè)計(jì)過(guò)程中狀態(tài)機(jī)的設(shè)計(jì)方法

FPGA之家 ? 來(lái)源:時(shí)沿科技 ? 作者:NemoYxc ? 2021-06-25 11:04 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

“本文主要分享了在Verilog設(shè)計(jì)過(guò)程中狀態(tài)機(jī)的一些設(shè)計(jì)方法。

關(guān)于狀態(tài)機(jī)

狀態(tài)機(jī)本質(zhì)是對(duì)具有邏輯順序或時(shí)序順序事件的一種描述方法,也就是說(shuō)具有邏輯順序和時(shí)序規(guī)律的事情都適用狀態(tài)機(jī)描述。狀態(tài)機(jī)的基本要素有三個(gè):狀態(tài)、輸出和輸入。

根據(jù)狀態(tài)機(jī)的輸出是否與輸入條件有關(guān),可將狀態(tài)機(jī)分為:

摩爾(Moore)型和米里(Mealy)型。

摩爾型狀態(tài)機(jī):輸出僅與當(dāng)前狀態(tài)有關(guān),而與輸入條件無(wú)關(guān)。

米里型狀態(tài)機(jī):輸出不僅依賴于當(dāng)前狀態(tài),還取決于輸入條件。

狀態(tài)機(jī)的邏輯通常用“case”語(yǔ)句或者“if-else”語(yǔ)句來(lái)描述,枚舉當(dāng)前狀態(tài)和輸入的所有可能組合,并為下一個(gè)狀態(tài)和輸出制定適當(dāng)?shù)闹怠?/p>

RTL級(jí)狀態(tài)機(jī)描述常用語(yǔ)法:

wire、reg;

parameter,用于描述狀態(tài)名稱,增強(qiáng)代碼可讀性;

always,根據(jù)主時(shí)鐘沿,完成同步時(shí)序的狀態(tài)遷移;根據(jù)信號(hào)敏感表,完成組合邏輯輸出。

case/endcase:其中default是可選的關(guān)鍵字,用于指明當(dāng)所列的所有條件都不匹配時(shí)的操作;一般的FSM設(shè)計(jì)都會(huì)加上default關(guān)鍵字描述FSM所需的補(bǔ)集狀態(tài)。

task/endtask。

幾種狀態(tài)機(jī)的描述方法

一段式FSM描述方法:一個(gè)always塊里面,即描述狀態(tài)轉(zhuǎn)移,又描述狀態(tài)的輸入和輸出。

兩段式FSM描述方法:兩個(gè)always塊,一個(gè)采用同步時(shí)序描述狀態(tài)轉(zhuǎn)移;另一個(gè)模塊采用組合邏輯判斷狀態(tài)轉(zhuǎn)移條件,描述狀態(tài)轉(zhuǎn)移規(guī)律。

三段式FSM描述方法:第一個(gè)always模塊采用同步時(shí)序描述狀態(tài)轉(zhuǎn)移;第二個(gè)采用組合邏輯判斷狀態(tài)轉(zhuǎn)移條件,描述狀態(tài)轉(zhuǎn)移規(guī)律;第三個(gè)always模塊使用同步時(shí)序電路,描述每個(gè)狀態(tài)的輸出。

一段式:

reg [2:0] Next_State;//下一個(gè)狀態(tài) parameter IDLE = 3‘b000; parameter S1 = 3’b001; parameter S2 = 3‘b010; parameter CLEAR = 3’b100;

//--------------------------------------------------------------------------------//------ 在一個(gè)always中包含狀態(tài)、輸入和輸出。 always@(posedge clk or posedge rst) begin if(rst) begin Next_State 《= IDLE; out 《= 2‘b00; end else begin case(Next_State) IDLE : begin if(key_in == 1’b1) begin Next_State 《= S1; out 《= 2‘b01;

end else begin Next_State 《= IDLE; out 《= 2’b00; end end S1 : begin if(key_in == 1‘b1) begin Next_State 《= S2; out 《= 2’b10; end else begin Next_State 《= S1; out 《= 2‘b01;

end end S2 : begin if(key_in == 1’b1) begin Next_State 《= CLEAR; out 《= 2‘b11; end else begin Next_State 《= S2; out 《= 2’b10; end end CLEAR : begin if(key_in == 1‘b1) begin Next_State 《= IDLE; out 《= 2’b00;

end else begin Next_State 《= CLEAR; out 《= 2‘b11; end end endcase end end

兩段式:

reg [2:0] Next_State;//下一個(gè)狀態(tài) reg [2:0] Current_State;//當(dāng)前狀態(tài)

parameter IDLE = 3’b000; parameter S1 = 3‘b001; parameter S2 = 3’b010; parameter CLEAR = 3‘b100;

//-------------------------------------------------------------------------------- always@(posedge clk or posedge rst) begin if(rst) Current_State 《= IDLE; else Current_State 《= Next_State; end always@(*)

// always@(rst or Current_State or key_in) begin case(Current_State) IDLE : begin idle_out;// out = 2’b00; if(key_in == 1‘b1) Next_State = S1; else Next_State = IDLE; end S1 : begin s1_out;// out = 2’b01; if(key_in == 1‘b1) Next_State = S2; else Next_State = S1; end S2 : begin s2_out;// out = 2’b10; if(key_in == 1‘b1) Next_State = CLEAR; else Next_State = S2; end CLEAR : begin clear_out;

// out = 2’b11; if(key_in == 1‘b1) Next_State = IDLE; else Next_State = CLEAR; end endcase end

//-------------------------------------------------------------------------------- task idle_out; out = 2’b00; endtask task s1_out; out = 2‘b01; endtask

task s2_out; out = 2’b10; endtask

task clear_out; out = 2‘b11; endtask

三段式:

//-------------------------------------------------------------------------------- reg [2:0] Next_State;//下一個(gè)狀態(tài) reg [2:0] Current_State;//當(dāng)前狀態(tài) parameter IDLE = 3’b000; parameter S1 = 3‘b001; parameter S2 = 3’b010; parameter CLEAR = 3‘b100;

//-------------------------------------------------------------------------------- always@(posedge clk or posedge rst) begin if(rst) Current_State 《= IDLE; else Current_State 《= Next_State; end

//--------------------------------------------------------------------------------// always@(rst or Current_State or key_in) always@(*) begin case(Current_State) IDLE : begin if(key_in == 1’b1) Next_State = S1; else Next_State = IDLE; end S1 : begin if(key_in == 1‘b1) Next_State = S2; else Next_State = S1; end S2 : begin if(key_in == 1’b1) Next_State = CLEAR; else Next_State = S2; end CLEAR : begin if(key_in == 1‘b1) Next_State = IDLE; else Next_State = CLEAR; end endcase end

//-------------------------------------------------------------------------------- always@(posedge clk or posedge rst) begin if(rst) begin out 《= 2’b00; end else begin case(Next_State) IDLE : begin out 《= 2‘b00; end S1 : begin out 《= 2’b01; end S2 : begin out 《= 2‘b10; end CLEAR : begin out 《= 2’b11; end endcase end end

//--------------------------------------------------------------------------------

結(jié)論:

一段式狀態(tài)機(jī)比較適合在狀態(tài)較少的情況下使用,因?yàn)樗械臓顟B(tài)、輸入和輸出都在一起,可能不是很適合閱讀、理解、維護(hù);

二段式狀態(tài)機(jī)比一段式要容易理解,但是由于輸出是組合邏輯,容易存在不穩(wěn)定與毛刺隱患;

三段式狀態(tài)機(jī)比一段式更容易理解,用時(shí)序邏輯代替組合邏輯消除了不穩(wěn)定與毛刺的隱患,但是代碼量會(huì)稍微多一點(diǎn);

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Verilog
    +關(guān)注

    關(guān)注

    29

    文章

    1367

    瀏覽量

    112411
  • 狀態(tài)機(jī)
    +關(guān)注

    關(guān)注

    2

    文章

    493

    瀏覽量

    28302

原文標(biāo)題:Verilog基礎(chǔ)知識(shí)學(xué)習(xí)筆記(四)

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    請(qǐng)問(wèn)如何在FX10上使用GPIF III狀態(tài)機(jī) *.h 文件?

    LVCMOS 2 位 SlaveFIFO GPIF III 狀態(tài)機(jī)的演示中有一個(gè) cy_gpif_header_lvcmos.h 文件。 我想知道如何使用.h文件,只需放入.h文件放入 FX10 項(xiàng)目? 您有它的用戶指南文檔嗎?
    發(fā)表于 07-16 08:17

    NVMe高速傳輸之?dāng)[脫XDMA設(shè)計(jì)之八:PCIe初始化狀態(tài)機(jī)設(shè)計(jì)

    PCIe配置初始化狀態(tài)機(jī)實(shí)現(xiàn)PCIe設(shè)備枚舉和配置空間初始化過(guò)程,在完成鏈路訓(xùn)練后,使用DFS(深度優(yōu)先搜索)算法枚舉PCIe總線上的設(shè)備,完成PCIe總線域的地址分配和設(shè)備的初始化。PCIe配置
    發(fā)表于 07-05 22:00

    超聲波清洗機(jī)如何在清洗過(guò)程中減少?gòu)U液和對(duì)環(huán)境的影響?

    超聲波清洗機(jī)如何在清洗過(guò)程中減少?gòu)U液和對(duì)環(huán)境的影響隨著環(huán)保意識(shí)的增強(qiáng),清洗過(guò)程中的廢液處理和環(huán)境保護(hù)變得越來(lái)越重要。超聲波清洗機(jī)作為一種高效的清洗技術(shù),也在不斷發(fā)展以減少?gòu)U液生成和對(duì)環(huán)
    的頭像 發(fā)表于 06-16 17:01 ?245次閱讀
    超聲波清洗<b class='flag-5'>機(jī)</b>如何在清洗<b class='flag-5'>過(guò)程中</b>減少?gòu)U液和對(duì)環(huán)境的影響?

    有可能在 FX3 GPIF2 創(chuàng)建兩個(gè)獨(dú)立的狀態(tài)機(jī)嗎?

    我想,如果我想通過(guò) FX3 GPIF2 創(chuàng)建兩個(gè)獨(dú)立的傳輸流接口,我需要在 GPIF2 設(shè)計(jì)器創(chuàng)建兩個(gè)獨(dú)立的狀態(tài)機(jī),我是否有可能在 GPIF2 設(shè)計(jì)器創(chuàng)建兩個(gè)獨(dú)立的狀態(tài)機(jī)
    發(fā)表于 05-20 06:14

    求助,關(guān)于srammaster.cydsn狀態(tài)機(jī)的問(wèn)題求解

    晚上好。 我目前正在學(xué)習(xí) GPIF II。 查看..EZ-USB FX3 SDK1.3firmwaregpif_examplescyfxsrammastersrammaster.cydsn狀態(tài)機(jī),有狀態(tài)START和START
    發(fā)表于 05-12 06:20

    在linux下開(kāi)發(fā)過(guò)程中, DLP4500 GUI無(wú)法連接光機(jī)怎么解決?

    在linux下開(kāi)發(fā)過(guò)程中, DLP4500 GUI 無(wú)法連接光機(jī),出現(xiàn)錯(cuò)誤提示如下: open device_handle error: Is a directory opening path
    發(fā)表于 02-20 08:41

    在測(cè)試過(guò)程中,如何防止電池?cái)D壓試驗(yàn)機(jī)的故障率?

    在測(cè)試過(guò)程中,防止電池?cái)D壓試驗(yàn)機(jī)故障率的關(guān)鍵在于設(shè)備的使用、維護(hù)和保養(yǎng)。以下是一些具體的方法和建議: 一、正確使用設(shè)備 熟悉操作規(guī)程 · 操作人員必須熟讀并理解電池?cái)D壓試驗(yàn)機(jī)的操作規(guī)程
    的頭像 發(fā)表于 01-10 08:55 ?389次閱讀
    在測(cè)試<b class='flag-5'>過(guò)程中</b>,如何防止電池?cái)D壓試驗(yàn)<b class='flag-5'>機(jī)</b>的故障率?

    錫膏印刷機(jī)印刷過(guò)程中有哪些不良及解決方法

    PCB制作工藝基本上都需要用到SMT工藝,因此在PCBA的加工工藝普遍用到錫膏印刷機(jī),在使用錫膏印刷機(jī)過(guò)程中有時(shí)候會(huì)遇到各種問(wèn)題,這些不良應(yīng)該如何解決呢?下面深圳佳金源錫膏廠家給大
    的頭像 發(fā)表于 12-19 16:40 ?1170次閱讀
    錫膏印刷<b class='flag-5'>機(jī)</b>印刷<b class='flag-5'>過(guò)程中</b>有哪些不良及解決<b class='flag-5'>方法</b>

    Verilog 與 ASIC 設(shè)計(jì)的關(guān)系 Verilog 代碼優(yōu)化技巧

    Circuit,專用集成電路)設(shè)計(jì)是一個(gè)復(fù)雜的過(guò)程,涉及到邏輯設(shè)計(jì)、綜合、布局布線、物理驗(yàn)證等多個(gè)環(huán)節(jié)。在這個(gè)過(guò)程中Verilog被用來(lái)描述數(shù)字電路的行為和結(jié)構(gòu),進(jìn)而實(shí)現(xiàn)ASIC的設(shè)計(jì)。 具體來(lái)說(shuō)
    的頭像 發(fā)表于 12-17 09:52 ?1100次閱讀

    Verilog 測(cè)試平臺(tái)設(shè)計(jì)方法 Verilog FPGA開(kāi)發(fā)指南

    Verilog測(cè)試平臺(tái)設(shè)計(jì)方法Verilog FPGA開(kāi)發(fā)的重要環(huán)節(jié),它用于驗(yàn)證Verilog設(shè)計(jì)的正確性和性能。以下是一個(gè)詳細(xì)的
    的頭像 發(fā)表于 12-17 09:50 ?1193次閱讀

    Simulink狀態(tài)機(jī)建模方法 Simulink數(shù)據(jù)可視化與分析功能

    1. Simulink狀態(tài)機(jī)建模方法 1.1 理解狀態(tài)機(jī)的基本概念 在開(kāi)始建模之前,了解狀態(tài)機(jī)的基本概念是必要的。
    的頭像 發(fā)表于 12-12 09:27 ?3124次閱讀

    Jtti:有哪些工具可以幫助我監(jiān)控自動(dòng)更新過(guò)程中的系統(tǒng)狀態(tài)

    監(jiān)控自動(dòng)更新過(guò)程中的系統(tǒng)狀態(tài)對(duì)于確保系統(tǒng)的穩(wěn)定性和性能至關(guān)重要。以下是一些可以幫助你監(jiān)控系統(tǒng)狀態(tài)的工具: 1.系統(tǒng)日志工具 dmesg:顯示內(nèi)核環(huán)緩沖區(qū)消息,有助于識(shí)別硬件和驅(qū)動(dòng)程序相關(guān)
    的頭像 發(fā)表于 12-10 15:46 ?533次閱讀

    芯片制造過(guò)程中的兩種刻蝕方法

    本文簡(jiǎn)單介紹了芯片制造過(guò)程中的兩種刻蝕方法 ? 刻蝕(Etch)是芯片制造過(guò)程中相當(dāng)重要的步驟。 刻蝕主要分為干刻蝕和濕法刻蝕。 ①干法刻蝕 利用等離子體將不要的材料去除。 ②濕法刻蝕 利用腐蝕性
    的頭像 發(fā)表于 12-06 11:13 ?1746次閱讀
    芯片制造<b class='flag-5'>過(guò)程中</b>的兩種刻蝕<b class='flag-5'>方法</b>

    LM5145在pre-bias啟機(jī)過(guò)程中的電壓反灌問(wèn)題

    電子發(fā)燒友網(wǎng)站提供《LM5145在pre-bias啟機(jī)過(guò)程中的電壓反灌問(wèn)題.pdf》資料免費(fèi)下載
    發(fā)表于 09-27 10:19 ?1次下載
    LM5145在pre-bias啟<b class='flag-5'>機(jī)</b><b class='flag-5'>過(guò)程中</b>的電壓反灌問(wèn)題

    觸發(fā)器和狀態(tài)機(jī)的關(guān)系是什么

    觸發(fā)器和狀態(tài)機(jī)在數(shù)字電路設(shè)計(jì)中有著緊密的關(guān)系,它們共同構(gòu)成了時(shí)序邏輯電路的基礎(chǔ),用于實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)、處理和傳輸。
    的頭像 發(fā)表于 08-12 11:24 ?980次閱讀
    主站蜘蛛池模板: 九色综合伊人久久富二代 | 第四色男人天堂 | 五月天免费在线播放 | 精品卡1卡2卡三卡免费视频 | 免费啪视频观在线视频在线 | 狠狠狠狠狠狠 | 华人永久免费视频 | 天天色综合久久 | 四虎永久在线观看免费网站网址 | 久久98精品久久久久久婷婷 | 婷婷爱五月 | 久久久久九九精品影院 | 香港日本三级在线播放 | 欧美福利视频网站 | 三级网站在线免费观看 | 日韩午夜r电影在线观看 | 国产精品一久久香蕉产线看 | 激情五月深爱五月 | 日韩一区二区在线观看 | 综合欧美亚洲 | 91无毒不卡 | 伊人网在线视频观看 | 九色伊人| 成人精品一级毛片 | 性做久久久久久免费观看 | 日日干狠狠干 | 色视频在线观看网站 | 特黄aa级毛片免费视频播放 | 男女透逼视频 | 久久99操| 精品国模 | 午夜欧美在线 | 韩国三级视频网站 | 视频免费在线 | 99精品免费视频 | 四虎永久在线观看视频精品 | 国产亚洲一区二区三区啪 | 欧美三级免费看 | 色视频在线 | 黄色 在线| 综合五月天婷婷丁香 |