verilog使用Mealy電路實現交通燈
Mealy電路實現十字路口交通燈
原始碼連結:http://download.csdn.net/detail/august717/8747577
使用Verilog語言完成十字路口交通燈的設計與實現。用2個手撥開關表示南北向和東西向通道的狀態,6個led燈從左到右依次顯示A路口紅燈,A路口黃燈,A路口綠燈,B路口紅燈,B路口黃燈,B路口綠燈,再用一個手撥開關實現復位(高電平有效)。
其中時鐘分頻為5秒,即每5秒檢測一次路口狀態,確定燈亮的下一狀態。
原理
Mealy Machine:
說明: led[5:0] : A’red A’yellow A’green ; B’red, B’yellow, B’ green
t[1:0]: TA, TB
狀態節點
狀態 |
狀態編碼 |
狀態輸出 : |
INI (啟動狀態) |
0000 |
000_000 |
S1 |
0001 |
001_100 |
S2 |
0010 |
010_100 |
S3 |
0100 |
100_001 |
S4 |
1000 |
100_010 |
狀態轉化
TA TB
當前狀態 |
下一狀態 / 燈的輸出
|
|||
|
00 |
01 |
10 |
11 |
S1 |
S2/010_100 |
S2/010_100 |
S1/001_100 |
S1/001_100 |
S2 |
S3/100_001 |
S3/100_001 |
S3/100_001 |
S3/100_001 |
S3 |
S4/100_010 |
S3/100_001 |
S4/100_010 |
S3/100_001 |
S4 |
S1/001_100 |
S1/001_100 |
S1/001_100 |
S1/001_100 |
INI |
S1/001_100 |
S1/001_100 |
S1/001_100 |
S1/001_100 |
狀態轉化圖
總結Moore電路和Mealy電路
Moore電路的狀態結點就表示了輸出。而Mealy電路的狀態結點僅表示狀態,輸出在有向邊上,和輸入用斜槓區分,表示當前輸出依賴於有向邊的起點和並列的輸入值。
一般來說根據實際問題可以靈活選擇Moore或者Mealy狀態機,看哪一種更接近實際問題的描述。
Mealy狀態機在一些情況下會比等價的Moore狀態機節點數少一些,但是本次實驗交通燈並沒有少。針對其他一些問題:
1、畫出Moore狀態機後可以直接列出表格,也可以進一步轉化為Mealy狀態機,只要把Moore機中下一狀態的輸出改變成Mealy機中當前狀態的輸出,然後再進一步列表格簡化Mealy狀態機。
2、畫出Mealy狀態機後可以直接列出表格,進行化簡。也可以進一步轉化為Moore狀態機,只要把現時輸出改變為下一時刻輸出。當一個狀態有多(n)個輸出時,需要將該狀態拆分為多(n)個狀態。
e.g
Mealy型機轉換為Moore型機
如上圖所示,把Mealy型機轉換為Moore型機,只要把現時輸出改變為下一時刻輸出。對於狀態A,有4個箭頭指向它,表示在當前狀態下有4個狀態可以轉換為下一狀態的A;同時當前輸出均為0,可以把0移入狀態A內部,表示在Moore機中狀態A的輸出為0。同理,可以把0分別移位B/C狀態。但對於狀態D,有兩個箭頭指向且具有不同的輸出值,需要把狀態D分解成兩個狀態D1和D2(每個狀態對應一個輸出,當輸出不同需要利用不同的狀態表示,這即是Moore機具有更多狀態的原因),得到完整的Moore機狀態模型。
同理,若把上圖的Moore機轉換為Mealy機,只要把Moore機中下一狀態的輸出改變成Mealy機中當前狀態的輸出,由於D1/D2兩狀態處於A/C兩狀態之間,且相當於A/C節點之間的一個等效節點,可以把D1/D2兩狀態合併為一個狀態。
參考資料:
http://blog.sina.com.cn/s/blog_78699cbf01016mvt.html
http://www.eefocus.com/alvin1130/blog/12-01/236722_9a984.html
相關文章
- 51微控制器串列埠交通燈protues模擬交通燈串列埠控制系統交通燈管制東西南北管制串列埠
- 電信網路使用路由實現了路由
- 多路口交通燈問題
- 流水燈實現
- EnGoPlanet路燈走走就能供電 新型路燈落戶美國賭城Go
- verilog實現乘法器
- Verilog乘法的實現——幾種使用多級流水實現方法對比(2)
- 用verilog實現搶答器
- verilog 中實現 sram 程式碼
- 使用 Flutter 實現一個走馬燈佈局Flutter
- FPGA學習(第10節)-模組的例化-Verilog層次化設計實現LED流水燈FPGA
- 實現探照燈效果
- Totem太陽能路燈 可提供WiFi為電動汽車充電WiFi
- Verilog實現加減乘除運算
- 純JS實現走馬燈JS
- 實現閃爍燈星星動畫動畫
- verilog實現矩陣卷積運算矩陣卷積
- Verilog設計技巧例項及實現
- 城市交通訊號燈高畫質動態桌布
- 簡單實現跑馬燈案例
- mask-image實現聚光燈效果
- 時序邏輯電路的基礎知識(結合Verilog)
- FPGA排序模組與verilog實現【含原始碼!!!】FPGA排序原始碼
- VIVADO vhdl verilog 實現矩陣運算矩陣
- Q8:Design a Mealy FSM
- MacOS下NSWindowZoomButton兩種形式(兩種綠色交通燈)MacOOM
- 51微控制器流水燈電路以及C程式碼C程式
- 從未卜先知的訊號燈說起,阿里城市大腦的智慧交通實踐阿里
- 8Manage助力平陽縣交通運輸局實現招標流程電子化管理
- ARM學習之GPIO實現流水燈
- 51微控制器實現流水燈
- 黑馬程式設計師面試題一(交通燈管理系統)程式設計師面試題
- 網際網路交通圖
- 多功能智慧燈杆:江蘇南通1721套多功能路燈杆已投入使用
- 順序賦值的方式實現流水燈賦值
- m基於FPGA的電子鐘verilog實現,可設定鬧鐘,包含testbench測試檔案FPGA
- 使用Scrcpy實現電腦控制安卓手機安卓
- 新基建棋局下,智慧交通如何實現產業升級?產業