HDLBits网址:https://hdlbits.01xz.net/wiki/Main_Page
题目
考虑输入为s和w的有限状态机,假定FSM以称为A的复位状态开始。只要s = 0,FSM就会保持状态A,而当s = 1时,FSM会进入状态B。一旦进入状态B,FSM就会在接下来的三个时钟周期中检查输入w的值,如果恰好在这些时钟周期中的两个时钟周期中w = 1,则FSM必须在下一个时钟周期中将输出z设置为1,否则z必须为0。FSM在接下来的三个时钟周期中继续检查w,依此类推。下面的时序图说明了不同w值所需的z值。
使用尽可能少的状态,请注意,s输入仅在状态A中使用,因此只需要考虑w输入。
Module Declaration
module top_module (
input clk,
input aresetn, // Asynchronous active-low reset
input x,
output z );
我的设计
根据状态机转移图和题目描述,代码如下:
mod