• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

mealy型狀態(tài)機(jī)設(shè)計(jì)Verilog代碼Quartus仿真

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

2-250514193214603.doc

共1個文件

名稱:mealy型狀態(tài)機(jī)設(shè)計(jì)Verilog代碼Quartus仿真

軟件:Quartus

語言:Verilog

代碼功能:

對于圖7-1所示的狀態(tài)圖和狀態(tài)機(jī)框圖,將其實(shí)現(xiàn)為Mealy型狀態(tài)機(jī)(Mealy type state machine),輸出信號是否存在“毛刺(burr)”沒有要求,寫出其VERILOG HDL源代碼(包括entity和architecture)并畫出結(jié)果電路圖,要求調(diào)試通過。

實(shí)驗(yàn)原理(Experimental principle )

Mealy型狀態(tài)機(jī)和其等價的Moore型狀態(tài)機(jī)相比,其輸出變化要領(lǐng)先一個時鐘周期(Clock cycle)。Mealy機(jī)的輸出既和當(dāng)前狀態(tài)有關(guān),又和所有輸入信號有關(guān)。也就是說,一旦輸入信號發(fā)生變化或狀態(tài)發(fā)生變化,輸出信號立即發(fā)

生變化,因此在狀態(tài)圖中,一般把輸出信號值畫在狀態(tài)變遷(changes)處。例如:假定當(dāng)前狀態(tài)為S0,當(dāng)輸入信號為‘1’時,輸出信號為“1001”;當(dāng)輸入

信號不是‘1’時,輸出信號為“0000”。

構(gòu)造 Mealy機(jī)的方法和Moore機(jī)相同,唯一的區(qū)別是:組合進(jìn)程中的輸

出信號是當(dāng)前狀態(tài)和當(dāng)前輸入的函數(shù)。

FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com

演示視頻:

設(shè)計(jì)文檔:

1.工程文件

2.程序文件

3.程序編譯

4.RTL圖

5.仿真圖

部分代碼展示:

//狀態(tài)機(jī)
module?mealy_state(
input?clk,//時鐘
input?rst_n,//復(fù)位
input?data_in,
output?reg[3:0]?data_out
);
parameter?S0=2'b00;
parameter?S1=2'b01;
parameter?S2=2'b10;
parameter?S3=2'b11;
reg?[1:0]?curr_state;
reg?[1:0]?next_state;
always@(posedge?clk?or?negedge?rst_n)
if(~rst_n)
curr_state<=S0;
else?
curr_state<=next_state;
//狀態(tài)跳轉(zhuǎn)
always@(*)
case(curr_state)
S0:
if(data_in==1)
next_state=S1;
else
next_state=S0;
S1:
if(data_in==0)
next_state=S2;
else
next_state=S1;
S2:
if(data_in==1)
next_state=S3;
else
next_state=S2;
S3:
if(data_in==0)
next_state=S0;
else
next_state=S3;
endcase

點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1522

  • 2-250514193214603.doc
    下載

相關(guān)推薦