关于三段式状态机(VHDL)的写法心得和问题

本文介绍了三段式状态机的设计方法,强调了状态改变时必须依赖时钟沿、敏感列表的正确设置以及避免综合出锁存器的重要性。在每个状态转换段,需初始化next_state并确保信号变化仅由clk沿触发。
摘要由CSDN通过智能技术生成

三段式状态机,看着很繁琐,但是用起来条理清晰,自己总结一下

第一段:状态改变

这里需要特别注意的是,第5行,状态变化的时候,必须要使用时钟沿,上升或下降,不能在两个沿都变化,虽然这样仿真正确,但是下载到硬件中无效,状态不会变化

 

 

 

   1: process(clk,rst_n)
   2: begin
   3:     if(rst_n = '0') then
   4:         current_state <= s_wait;
   5:     elsif rising_edge(clk) then
   6:         current_state <= next_state;
   7:     end if;
   8: end process state_change;

 

 

 

第二段:状态转化

这一段注意:

敏感列表是current_state和process中涉及到变化的所有信号

在case xxx is 前面初始化 next_state <= s_wait; 这样就不用在下面状态中关心这个状态了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值