Ch07 State Machine

1/1/2023 FPGAVHDL

# FSM

image-20230110190819685

image-20230110190828800

  • image-20230110190904439
  • 第一个moore,第二个mealyimage-20230111103146932
  • 右边是moore,因为和input无关image-20230111103247311
# 给状态编码的时候,可能有多余的状态,就会引起异常,比如红绿灯,而且不会返回正确的状态

image-20230110220410232

image-20230110220422886

image-20230110220428781

image-20230110220438117

  • 解决方案1:把状态图画完整image-20230110220538205
  • 解决方案2:重新选择状态编码image-20230111000825044

门电路会有延迟,为了避免出现不想要的状态可以在输出的地方加一个Flipflop,但是这样就会要把时钟信号设计的非常大image-20230111000850909

寄存器有好多D flipflop产生image-20230111001100908

FSM可以用State diagram或者ASM来表达

image-20230111095743048

  • 在state里面的是moore,在线上的是mealy

ASM

  • 一个框框是一个状态
  • 因为moore只和输入有关系,所以在状态改变的一开始,但是mealy会根据输入做一些判断

image-20230111104536733

image-20230111105022241

image-20230111105218046

image-20230111105402179

  • 框把状态和两条输出边给框起来image-20230111105531568

state的方框里是register:

image-20230111111150162

控制状态转换是transitionsimage-20230111111217760

输出与状态之间是mooreimage-20230111111256256

  • Distriburted RAM 不同步读,同步写、
    • 要实现同步读可以加一个FF
  • Block RAM 同步读,同步写
Last Updated: 11/19/2024, 1:54:38 PM