状态机finite-state machine学习笔记1

这篇笔记介绍了状态机finite-state machine的学习,包括从Verilog数字系统设计教程第12章的例子出发,讨论了Gray编码和独热码(one-hot code)两种编码方式,指出独热码在速度和可靠性上的优势。同时,文中提到了状态变化和输出控制的两种方法,一种适合大型状态机,另一种要求输出开关时间和状态维持一致。最后提到了测试模块的重要性。

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

**

状态机finite-state machine学习笔记1

**

例子来自于<Verilog数字系统设计教程>第12章,书中的例子错误较多,代码已经经过改写。
在这里插入图片描述
状态转移图

1.Gray编码

module fsm(
 Clock,
 Reset,
 A,
 K2,
 K1,
 state
);
input Clock,Reset,A;
output reg K1,K2;
output reg [1:0]state;
parameter Idle = 2'b00,
    Start = 2'b01,
    Stop = 2'b10,
    Clear = 2'b11;
always@(posedge Clock)
 if(!Reset)
  begin 
   state <= Idle;
   K2 = 0;
   K1 = 0;
  end
 else 
  case(state)
  
   Idle:if(A)begin
    state <= Start;
    K1 <= 0;
   end
   else begin
    state <= Idle;
    K2 = 0;
    K1 = 0;
   end
   
   Start:if(!A)begin
    state <= Stop;
   end
   else begin
    state <= Start;
   end
   
   Stop:if(A)begin
    state <=Clear;
    K2 <= 1;
   end
   else begin
    state <=Stop;
    K2 = 0;
    K1 = 0;
   end
   Clear:if(!A
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值