一、设计要求
可乐机每次投1枚一块硬币,每瓶可乐3块钱,投3个硬币就可以出可乐。
二、模块设计
分析
一个简单的状态转移图,由此编写代码。
四、代码编写
module simple_fsm(
input wire sys_clk ,
input wire sys_rst_n ,
input wire pi_money ,
output reg po_cola
);
parameter IDLE = 3'b001;
parameter ONE = 3'b001;
parameter TWO = 3'b001;
reg [2:0] state ;
always@(posedge sys_clk or negedge sys_rst_n)
if(!sys_rst_n)
po_cola <= 1'b0 ;
else case(state)
IDLE : if(pi_money==1'b1)
state <= ONE ;
else
state <= IDLE ;
ONE : if(pi_money==1'b1)
state <= TWO ;
else
state <= ONE ;
TWO : if(pi_money==1'b1)
state <= IDLE ;
else
state <= TWO ;
default state <= IDLE ;
endcase
always@(posedge sys_clk or negedge sys_rst_n)
if(!sys_rst_n)
po_cola <= 1'b0 ;
else if((pi_money==1'b1)&&(state==TWO))
po_cola <= 1'b1 ;
else
po_cola <= 1'b0 ;
endmodule
五、RTL视图
这篇想找一个简单的状态机实例,没有找到,下一篇开始进一阶,数码管驱动。文章来源:https://www.toymoban.com/news/detail-835116.html
不啻微芒,造炬成阳。文章来源地址https://www.toymoban.com/news/detail-835116.html
到了这里,关于zynq学习之fpga篇(三)状态机的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!