名稱:mealy型狀態(tài)機設(shè)計Verilog代碼Quartus? 開發(fā)板
軟件:Quartus
語言:Verilog
代碼功能:
1)、使用原理圖輸入法或 Verilog HDI語言設(shè)計一個 Mealy有限狀態(tài)機,用七段數(shù)碼管顯示輸出編碼;
2)、用 Quartus II軟件進(jìn)行編譯,并用 Mode lsim軟件進(jìn)行仿真,最后將編譯程序下載到設(shè)計平臺上進(jìn)行驗證。
2、設(shè)計要求
1)、 MEALY狀態(tài)機分為2個狀態(tài):(1)初始狀態(tài)或復(fù)位SO鍵觸發(fā),僅LED燈5點亮
(2)SW0為1觸發(fā),FLAG位用燈0點亮,LED燈展現(xiàn)燈3、燈5、燈7、燈9的走馬燈效果,
旦狀態(tài)發(fā)生變化,SW0為0保持當(dāng)前狀態(tài)不變
2)、狀態(tài)(1)用LCD中的第二位“B”表示,狀態(tài)(2)中的走馬燈狀態(tài)分別用LCD中
的第一位“A”、第二位“B”、第三位“C”第四位“D”分別顯示。
3、設(shè)計原理
數(shù)字系統(tǒng)控制部分的每一個控制態(tài)可以看作一種狀態(tài),與每一個控制態(tài)相關(guān)的轉(zhuǎn)換條件指定了狀態(tài)的下一個狀態(tài)和輸出。根據(jù)有限狀態(tài)機的輸出與當(dāng)前狀態(tài)與當(dāng)前輸入的關(guān)系,狀態(tài)機可以分成 Moore型和 Mealy型兩種類型的有限狀態(tài)機。其中, Mealy有限狀態(tài)機的輸出不但與當(dāng)前狀態(tài)有關(guān),而且與輸入信號的當(dāng)前值有關(guān),如圖1所示。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在開發(fā)板驗證,開發(fā)板如下,其他開發(fā)板可以修改管腳適配:
演示視頻:
設(shè)計文檔:
1、工程文件
2、程序文件
3、程序編譯
4、RTL圖
5、管腳分配
6、Testbench
7、仿真圖
整體仿真圖
狀態(tài)控制模塊
數(shù)碼管顯示模塊
部分代碼展示:
module?mealy_state( input?clk,//50M input?rst_n,//復(fù)位 input?SW0, output?LED0,//S2?flag(LED0) output?LED1, output?LED2, output?LED3, output?LED4, output?LED5, output?LED6, output?LED7, output?LED8, output?LED9, output?LED10, output?[7:0]?sel,//數(shù)碼管位選 output?[7:0]?segment//數(shù)碼管段選 ); wire?flag;//S2?flag(LED0) wire?A; wire?B; wire?C; wire?D; assign?LED0=flag;//S2?flag(LED0) assign?LED3=A; assign?LED5=B; assign?LED7=C; assign?LED9=D; assign?LED1=1'b0; assign?LED2=1'b0; assign?LED4=1'b0; assign?LED6=1'b0; assign?LED8=1'b0; assign?LED10=1'b0;
點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1529