国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

采用米利型的狀態機電路設計

西西 ? 來源:博客園 ? 作者: zxl2431 ? 2020-09-08 14:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1.0 序列檢測器電路設計

設計一個序列檢測器電路,功能是:檢測出串行輸入數據Sin中的4位二進制序列0101(自左至右輸入),當檢測到該序列時,輸出Out=1;沒有檢測到該序列時,輸出Out=0(注意考慮序列重疊的可能性,如010101,相當于出現兩個0101序列)。

經過分析,首先可以確定采用米利型狀態機設計該電路。因為該電路在連續收到信號0101時,輸出為1,其他情況下輸出為0,所以采用米利型狀態機。

其次,確定狀態機的狀態圖,該電路必須能記憶所收到的輸入數據0、連續收到前兩個數據01.。。可見至少要是個狀態,分別用S1,S2,S3,S4,再加上電路初始態S0。根據要求可以畫出狀態圖:

采用米利型的狀態機電路設計

觀察該圖可以看出,當狀態機處以S2、S4的時候,如果輸入Sin = 1,則電路會轉移到相同的次態S0,如果輸入Sin = 0,則電路會轉移到相同的次態S3,且兩種情況下輸出Out都為0。所以,S2、S4為等價狀態,可用S2代替S4,于是得到簡化的狀態圖:

如果用CPLD/FPGA器件實現狀態機,則邏輯綜合器會自動化簡狀態機。

利用Verilog HDL描述狀態圖主要包括:

(1) 利用參數定義語句parameter描述狀態機中各個狀態的名稱,并指定狀態編碼。

(2) 用時序的always塊描述狀態觸發器實現的狀態存儲。

(3) 使用敏感表和case語句(也可以采用if-else語句)描述狀態轉換邏輯。

(4) 描述狀態機的輸出邏輯。

這個電路我試著用3種方式來描述,看看他們的差別在哪里。

(1) 單個always塊描述狀態機方法(應該避免的寫法)

生成的RTL視圖:

采用米利型的狀態機電路設計

State模塊里面其實就是一個狀態機:

采用米利型的狀態機電路設計

仿真結果有時會出錯:

采用米利型的狀態機電路設計

在每個clk上升沿讀取數據,可以看到是0101,在285ps時輸出oOut應該是高電平,但不是,這是為什么了?再看下面一張圖

采用米利型的狀態機電路設計

這張是對的,為什么有時對又是錯了,如果是這樣那就失去了它的意義了。

對序列檢測器電路用單個always塊的描述的邏輯存在一個隱含的錯誤,即輸出信號oOut的描述存在錯誤。其原因是:oOut信號是由狀態機的當前狀態和輸入信號共同決定的,它是一個純組合邏輯電路,如果當前狀態不變,而輸入信號變了,oOut信號應立即發生變化,而不是等到時鐘上升沿來了才變化。因此,單個always塊描述狀態機的寫法僅僅適用于穆爾型狀態機。這雖然是個問題,但是跟我出現的問題貌似沒有什么直接關系,郁悶。。。繼續思考。

在實際應用中,為了消除組合邏輯輸出信號中的毛刺,在時序允許的情況下,通常允許米利型狀態機中輸出信號通過寄存器輸出。但是單個的always塊的描述方法將狀態轉換判斷的組合邏輯和狀態觸發器轉移的時序邏輯混合編寫在同一個always塊中,不符合將時序和組合邏輯分開描述的代碼風格(Coding Style),而且在描述當前狀態時還要考慮下一個狀態的邏輯,整個代碼的結構不清晰,不利于修改和維護,不利于時序約束條件的加入,不利于綜合器對設計的優化。所以不推薦使用單個always塊的描述方式。

必須為自己的粗心大意買單,還說輸出有時會出錯原來狀態圖都是錯了,不經意的一眼,看來不能隨便啊。case語句后的 S1:當條件滿足時(iSin == 1‘b1)時會跳到S2否則還會停留在S1。改過來看看正確的狀態機就不會出錯了。太粗心了!

正確的狀態機:

采用米利型的狀態機電路設計

(2) 兩個always塊描述狀態機的方法(推薦寫法)

值得注意的是Next_state = 2’bxx;對狀態的默認賦值有3種方式:(1) 全部設置成不定狀態(x); (2) 設置成預先規定的初始狀態; (3) 設置成FSM中的某一有效狀態。設置成不定狀態(x)的好處是:(1) 在仿真時可以很好地考察所設計的FSM的完備性,若設計的FSM不完備,則進入任意狀態,仿真時容易發現;(2) 綜合器對代碼進行綜合時,會忽略沒有定義的狀態觸發器向量。

生成的RTL視圖:

采用米利型的狀態機電路設計

和上面的比較了一下,少了個D觸發器,這是為什么呢?并且仿真的結果也不一樣了。仿真圖:

采用米利型的狀態機電路設計

當然新的問題也就隨之而來:

采用米利型的狀態機電路設計

我們可以明顯的看到這種寫法和上面寫法的區別,最重要的是:輸出oOut不在是在clk上升沿來的時候才能發生變化,它是一個純組合邏輯電路只要輸入條件滿足輸出就立馬發生改變。隨著毛刺的出現,毛刺是一個很重要的問題,很值得我們認真思考。為什么會出現毛刺了,我們可以清楚的看到這時次態是完全由組合邏輯電路決定的,時序電路做的事情僅僅是在clk上升沿來的時候把,把次態賦給現態。在445ps時在S1狀態,輸出為0、在455ps時在S2狀態,輸出為0、在465ps時在S3狀態,此時就算clk的posedge不來,只要iSin == 1,輸出同樣會為1,正如上圖,但在這里,clk 的上升沿和iSin 的高電平是同時來的,所以,在 iSin 的高電平來的那一瞬間,輸出oOut = 1,就在同時狀態裝換到S2,輸出oOut = 0;

這就導致了上面毛刺的產生。怎么解決這個問題呢?我們來看看第三種方法。

(3) 3個always塊描述狀態機(推薦寫法)

分析一下代碼,我們很容易看出:第一個always塊采用同步時序邏輯方式描述狀態轉移(在電路框圖的中間框),第二個always塊采用組合邏輯方式描述狀態轉移規律(一般是第一個方框),第三個always塊描述電路的輸出信號,在時序允許的情況下,通常讓輸出信號經過一個寄存器再輸出,保證輸出信號中沒有毛刺。

綜合后的RTL視圖,就跟第一版程序是一樣的了,又有了D觸發器,仿真結果和第一版也是一樣的,但是兩版代碼的風格(Coding Style)是不一樣的。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 邏輯電路
    +關注

    關注

    13

    文章

    503

    瀏覽量

    44080
  • 檢測器
    +關注

    關注

    1

    文章

    931

    瀏覽量

    49933
  • D觸發器
    +關注

    關注

    3

    文章

    181

    瀏覽量

    49736
  • 狀態機
    +關注

    關注

    2

    文章

    499

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    TDK PLEC69電感:小身材大能量的電源電路利器

    的PLEC69電感,采用薄膜工藝和金屬磁性材料,為電源電路設計帶來了新的解決方案。今天,我們就來深入了解一下這款電感。 文件下載: TDK PLE69B薄膜功率電感器.pdf 電感特性:緊湊尺寸下的卓越性能 1. 高電感與小尺
    的頭像 發表于 12-25 14:05 ?326次閱讀

    睿遠研究院丨IO-Link規范解讀(十一):ISDU狀態機與EVENT事件

    上篇我們介紹了ISDU的典型編碼格式和應用案例,本篇我們就來詳細介紹下,ISDU的狀態機,并把EVENT事件的邏輯,給大家好好解析下。 1主站ISDU狀態機 如上圖所示,ISDU的狀態機的核心
    的頭像 發表于 11-29 18:28 ?4721次閱讀
    睿遠研究院丨IO-Link規范解讀(十一):ISDU<b class='flag-5'>狀態機</b>與EVENT事件

    什么是狀態機

    狀態,這樣用 20 個狀態同樣能實現這個狀態機,而且只需要一個 unsigned char 的變量就足夠了,每次擊鍵都會引發狀態遷移,每
    發表于 11-27 08:15

    嵌入式開發為何經常用到狀態機架構

    一個管腳電平跳變或者一個串口數據,讓整個程序都不動的情況也讓我非常糾結,如果事件一直不發生電平跳變,你要等到世界末日么? 如果應用狀態機編程思想,程序只需要用全局變量記錄下工作狀態,就可以轉頭去干別的
    發表于 11-25 07:08

    睿遠研究院丨IO-Link規范解讀(六):主從站狀態機解析

    前言 書接上文,今天我們就來好好聊聊主從站的DL-Mode狀態機,還請各位童鞋前排坐好! 1主站狀態機解析 主站的DL-Mode狀態機有5個大狀態,也是我們很熟悉的 建立通信、開始、預
    的頭像 發表于 10-28 17:34 ?6198次閱讀
    睿遠研究院丨IO-Link規范解讀(六):主從站<b class='flag-5'>狀態機</b>解析

    PFC電路與BOOST電路設計實例分享

    PFC電路與BOOST電路設計實例資源下載 傳統的AC-DC變換器和開關電源,其輸入電路普遍采用了全橋二極管整流,輸出端直接接到大電容濾波器。雖然不可控整流器
    發表于 10-23 16:15 ?19次下載

    請問如何在FX10上使用GPIF III狀態機 *.h 文件?

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

    NVMe高速傳輸之擺脫XDMA設計之八:PCIe初始化狀態機設計

    PCIe配置初始化狀態機實現PCIe設備枚舉和配置空間初始化過程,在完成鏈路訓練后,使用DFS(深度優先搜索)算法枚舉PCIe總線上的設備,完成PCIe總線域的地址分配和設備的初始化。PCIe配置
    發表于 07-05 22:00

    硬件設備的開機密鑰:電路設計深度解析

    機電路設計如同為硬件設備編寫了一串“開機密鑰”,它通過復雜的信號傳遞與邏輯判斷,確保系統從斷電狀態到正常工作模式的平穩過渡。這一設計的精妙程度,直接定義了設備的啟動效率與可靠性。 本文應工程師朋友
    的頭像 發表于 06-23 16:08 ?793次閱讀
    硬件設備的開機密鑰:<b class='flag-5'>電路設計</b>深度解析

    有可能在 FX3 GPIF2 中創建兩個獨立的狀態機嗎?

    我想,如果我想通過 FX3 GPIF2 創建兩個獨立的傳輸流接口,我需要在 GPIF2 設計器中創建兩個獨立的狀態機,我是否有可能在 GPIF2 設計器中創建兩個獨立的狀態機
    發表于 05-20 06:14

    為什么芯片制造常用P

    從早期的平面 CMOS 工藝到先進的 FinFET,p 襯底在集成電路設計中持續被廣泛采用。為什么集成電路的制造更偏向于P硅?
    的頭像 發表于 05-16 14:58 ?1231次閱讀
    為什么芯片制造常用P<b class='flag-5'>型</b>硅

    cypress3014視頻格式改變的話,GPIF狀態機需不需要重新配置?

    你好,請問視頻格式改變的話,GPIF狀態機需不需要重新配置
    發表于 05-14 07:28

    求助,關于srammaster.cydsn中狀態機的問題求解

    晚上好。 我目前正在學習 GPIF II。 查看..EZ-USB FX3 SDK1.3firmwaregpif_examplescyfxsrammastersrammaster.cydsn中的狀態機,有狀態START和START1。 這意味著什么?
    發表于 05-12 06:20

    晶體管電路設計(下)

    晶體管,FET和IC,FET放大電路的工作原理,源極接地放大電路的設計,源極跟隨器電路設計,FET低頻功率放大器的設計與制作,柵極接地放大電路的設計,電流反饋
    發表于 04-14 17:24

    跟著華為學硬件電路設計,華為全套硬件電路設計學習資料都在這里了!

    硬件設計,三分經驗,七分勤奮,要想要搞硬件設計,不能閉門造車,需要站在巨人的肩膀上才行,要想做好一名硬件工程師,就需學習大牛工程師的電路設計經驗,因為這些經驗都是從無數的失敗開發經歷中獲得的,成功
    發表于 03-25 13:59