一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

FPGA學(xué)習(xí)系列:9.簡單狀態(tài)機設(shè)計

FPGA學(xué)習(xí)交流 ? 來源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2018-06-01 16:59 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

設(shè)計背景:

狀態(tài)機是描述各種復(fù)雜時序的時序行為,是使用HDL進行數(shù)學(xué)邏輯設(shè)計中非常重要的方法之一,狀態(tài)機分為摩爾機和米粒機,當輸出只和狀態(tài)有關(guān)系的話稱為摩爾機,當輸出不僅和狀態(tài)有關(guān)系也和輸入信號有關(guān)系的時候稱為米粒機,米粒機和摩爾機的電路原型我就不在這里給大家介紹了。

狀態(tài)機是由狀態(tài)寄存器和組合邏輯電路構(gòu)成,能夠根據(jù)控制信號按照預(yù)先設(shè)計的狀態(tài)進行狀態(tài)的轉(zhuǎn)移,是協(xié)調(diào)相關(guān)信號的動作,完成特定操作的控制中心。比如我們生活中遇到的問題,健康---感冒---健康,這個就是一個狀態(tài)的轉(zhuǎn)移圖,從健康狀態(tài)到感冒狀態(tài)在到健康狀態(tài)。

設(shè)計原理:

我認為對于我們初學(xué)者來說我們只要只要狀態(tài)機就是當這個狀態(tài)也就是當這個時鐘來的時候發(fā)生這件事情,當下各時鐘來的時候發(fā)生另一件事,也就是說發(fā)生這件事后,跳轉(zhuǎn)下一個時鐘發(fā)生另一件事情,兩個事情發(fā)生沒有關(guān)系。我們理解初學(xué)者理解這個就行了,不用理解高深的二段式,三段式。

我們會在下面的設(shè)計中用到簡單的狀態(tài)機讓大家明白簡單的狀態(tài)機。

我們的設(shè)計也是一個流水燈,我們的設(shè)計是在復(fù)位的時候讓4個等全熄滅,第一個上升沿點亮一個,第二個點亮下一個,依次類推。

我們的寫法可以這樣想,當?shù)谝粋€狀態(tài)也就是一個上升沿點亮第一個燈,然后跳轉(zhuǎn)下一個狀態(tài)點亮第二個燈,第三個點亮下一個。。。。

設(shè)計架構(gòu)圖:

image.png?

設(shè)計代碼:

設(shè)計模塊

0moduleled_run (clk,rst_n,led);

1

2 inputclk,rst_n; //定義輸入輸出

3

4 outputreg[3:0]led;

5

6 reg[10:0]count; //定義一個時間寄存器

7 regclk_1hz; //定義一個時鐘

8 reg[1:0]state;//定義狀態(tài)

9

10 always@(posedgeclk)

11 if(!rst_n)

12 begin

13 clk_1hz <=1;

14 count <=0;

15 end

16 elseif(count <(5/1/2-1))//計數(shù)來產(chǎn)生一個時鐘

17 count <=count +1'd1;

18 else

19 begin

20 count <=26'd0;

21 clk_1hz <=~clk_1hz;

22 end

23

24 always@(posedgeclk_1hz)

25 if(!rst_n)

26 led <=4'b1111; //復(fù)位熄滅4個燈

27 else

28 case(state)

29 0 : begin //第一個狀態(tài)點亮第一個燈,然后跳轉(zhuǎn)下 一個狀態(tài)

30 state <=1;

31 led <=4'b1110;

32 end

33

34 1 : begin //2個狀態(tài)點亮第2個燈,然后跳轉(zhuǎn)下 一個狀態(tài)

35 state <=2;

36 led <=4'b1101;

37 end

38

39 2 : begin //3個狀態(tài)點亮第3個燈,然后跳轉(zhuǎn)下 一個狀態(tài)

40 state <=3;

41 led <=4'b1011;

42 end

43 3 : begin //4個狀態(tài)點亮第4個燈,然后跳轉(zhuǎn)0狀態(tài)

44 state <=0;

45 led <=4'b0111;

46 end

47

48 default:state <=0;//否則跳轉(zhuǎn)0狀態(tài)

49 endcase

50

51endmodule

測試模塊

0`timescale1ns/1ps//例化時標

1

2moduletb();

3

4 regclk,rst_n;

5 wire[3:0]led;

6

7 initialbegin

8

9 clk =1;

10 rst_n =0;

11

12 #200.1rst_n =1;

13

14

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

    關(guān)注

    1645

    文章

    22034

    瀏覽量

    617879
  • 狀態(tài)機
    +關(guān)注

    關(guān)注

    2

    文章

    493

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    FPGA工程師:如何在FPGA中實現(xiàn)狀態(tài)機?

    安全高效的狀態(tài)機設(shè)計對于任何使用FPGA的工程師而言都是一項重要技能。選擇Moore狀態(tài)機、Mealy狀態(tài)機還是混合機取決于整個系統(tǒng)的需求。無論選擇哪種類型的
    發(fā)表于 03-29 15:02 ?1.4w次閱讀
    <b class='flag-5'>FPGA</b>工程師:如何在<b class='flag-5'>FPGA</b>中實現(xiàn)<b class='flag-5'>狀態(tài)機</b>?

    高效安全的狀態(tài)機設(shè)

    本帖最后由 eehome 于 2013-1-5 09:56 編輯 高效安全的狀態(tài)機設(shè)
    發(fā)表于 08-13 17:53

    狀態(tài)機設(shè)計的例子

    本帖最后由 eehome 于 2013-1-5 09:56 編輯 狀態(tài)機設(shè)計的例子
    發(fā)表于 08-19 23:01

    狀態(tài)機設(shè)計指導(dǎo)

    狀態(tài)機設(shè)計指導(dǎo)
    發(fā)表于 08-20 23:45

    明德?lián)P視頻分享--點撥FPGA課程---第十四章 狀態(tài)機設(shè)

    1.狀態(tài)機設(shè)計原則2.狀態(tài)機練習(xí)13.狀態(tài)機練習(xí)1答案4.波形對比方法5.狀態(tài)機練習(xí)26.狀態(tài)機練習(xí)2答案7.
    發(fā)表于 10-31 13:52

    FPGA---如何寫好狀態(tài)機,詳細下載pdf

    的基本方法。但是,筆者希望大家能擴展思維,認識到狀態(tài)機不僅僅是一種時序電路設(shè)計工具,它更是一種思想方法。我們先看下面一個簡單的例子。在大學(xué)生活中,某學(xué)生的在校的學(xué)習(xí)生活可以簡單地概括為
    發(fā)表于 09-28 10:29

    一個簡單狀態(tài)機設(shè)

    筆試時也很常見。[例1] 一個簡單狀態(tài)機設(shè)計--序列檢測器序列檢測器是時序數(shù)字電路設(shè)計中經(jīng)典的教學(xué)范例,下面我們將用Verilog HDL語言來描述、仿真、并實現(xiàn)它。序列檢測器的邏輯功能...
    發(fā)表于 02-16 07:29

    狀態(tài)機設(shè)

    狀態(tài)機設(shè)計:8.1.1 數(shù)據(jù)類型定義語句TYPE語句的用法如下:TYPE 數(shù)據(jù)類型名IS 數(shù)據(jù)類型定義OF 基本數(shù)據(jù)類型;或TYPE 數(shù)據(jù)類型名IS 數(shù)據(jù)類型定義;TYPE st1 IS ARRAY ( 0 TO 15 ) OF STD_L
    發(fā)表于 08-09 23:07 ?36次下載

    高速環(huán)境下FPGA或CPLD中的狀態(tài)機設(shè)

        本文給出了采用這些技術(shù)的高速環(huán)境狀態(tài)機設(shè)計的規(guī)范及分析方法和優(yōu)化方法,并給出了相應(yīng)的示例。       為了使FPGA或CPLD中的狀態(tài)機設(shè)
    發(fā)表于 04-15 11:27 ?748次閱讀
    高速環(huán)境下<b class='flag-5'>FPGA</b>或CPLD中的<b class='flag-5'>狀態(tài)機設(shè)</b>計

    VHDL有限狀態(tài)機設(shè)計-ST

    EDA的有限狀態(tài)機,廣義而言是指只要涉及觸發(fā)器的電路,無論電路大小都可以歸結(jié)為狀態(tài)機。有限狀態(tài)機設(shè)計在學(xué)習(xí)EDA時是很重要的一章。
    發(fā)表于 06-08 16:46 ?3次下載

    華清遠見FPGA代碼-狀態(tài)機

    FPGA學(xué)習(xí)資料教程——華清遠見FPGA代碼-狀態(tài)機
    發(fā)表于 10-27 18:07 ?9次下載

    FPGA狀態(tài)機設(shè)計原則

    狀態(tài)機狀態(tài)寄存器和組合邏輯電路構(gòu)成,能夠根據(jù)控制信號按照預(yù)先設(shè)定的狀態(tài)進行狀態(tài)轉(zhuǎn)移,是協(xié)調(diào)相關(guān)信號動作、完成特定操作的控制中心。
    的頭像 發(fā)表于 10-09 07:02 ?2603次閱讀

    FPGA狀態(tài)機簡述

    FPGA設(shè)計中一種非常重要、非常根基的設(shè)計思想,堪稱FPGA的靈魂,貫穿FPGA設(shè)計的始終。 02. 狀態(tài)機簡介 什么是狀態(tài)機
    的頭像 發(fā)表于 11-05 17:58 ?8023次閱讀
    <b class='flag-5'>FPGA</b>:<b class='flag-5'>狀態(tài)機</b>簡述

    如何在FPGA中實現(xiàn)狀態(tài)機

    狀態(tài)機往往是FPGA 開發(fā)的主力。選擇合適的架構(gòu)和實現(xiàn)方法將確保您獲得一款最佳解決方案。 FPGA 常常用于執(zhí)行基于序列和控制的行動, 比如實現(xiàn)一個簡單的通信協(xié)議。對于設(shè)計人員來說,滿
    的頭像 發(fā)表于 07-18 16:05 ?1485次閱讀
    如何在<b class='flag-5'>FPGA</b>中實現(xiàn)<b class='flag-5'>狀態(tài)機</b>

    基于FPGA狀態(tài)機設(shè)

    狀態(tài)機的基礎(chǔ)知識依然強烈推薦mooc上華科的數(shù)字電路與邏輯設(shè)計,yyds!但是數(shù)電基礎(chǔ)一定要和實際應(yīng)用結(jié)合起來,理論才能發(fā)揮真正的價值。我們知道FPGA是并行執(zhí)行的,如果我們想要處理具有前后順序的事件就需要引入狀態(tài)機。
    的頭像 發(fā)表于 07-28 10:02 ?1388次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>狀態(tài)機設(shè)</b>計