状态机

本文介绍了状态机的分类——米里型和摩尔型,以及设计FSM的两种常见方法。讨论了不同编码方式(Binary、Gray-code、One-hot)在CPLD和FPGA中的应用,并给出了编码选择的建议。同时,强调了状态机编码风格的重要性,包括避免生成锁存器、使用parameter定义状态、以及采用非阻塞赋值方式来减少竞争冒险。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.状态机分为2类,米里型和摩尔型

组成要素有:输入(包括复位),状态(包括当前状态的操作),状态转移条件,状态输出条件

设计FSM总结起来为2大类。

用状态机去实现时序逻辑

(1)将状态转移和状态的操作和判断等写到一个模块中:如

parameter IDLE= 4'd0;   
parameter START1 = 4'd1;
parameter ADD1 = 4'd2;   
parameter ACK1 = 4'd3;    
parameter ADD2 = 4'd4;    
reg[3:0] cstate; //状态寄存器
always @ (posedge clk or negedge rst_n) 
begin
  if(!rst_n) 
      begin
          cstate <= IDLE;
      end
   else  
      case (cstate)
         IDLE: 
  &nb
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值