跳到主要内容

24.Q3a: 有限状态机(FSM)

考虑一个具有输入s和w的有限状态机。假设FSM从一个称为A的复位状态开始,如下图所示。只要s = 0,FSM就保持在状态A,而当s = 1时,它转移到状态B。一旦进入状态B,FSM将在接下来的三个时钟周期内检查输入w的值。如果在这三个时钟周期中恰好有两个周期w = 1,则FSM必须在接下来的时钟周期将输出z设为1。否则,z必须为0。FSM会继续在接下来的三个时钟周期检查w的值,以此类推。下图的时间图说明了不同w值所需的z的值。

尽可能使用最少的状态。需要注意的是,输入s只在状态A中使用,所以你只需要考虑w输入即可。

alt text

alt text

模块声明

module top_module (
input clk,
input reset, // Synchronous reset
input s,
input w,
output z
);

做题区