本文主要是介绍[HDLBits] Exams/2012 q2fsm,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Consider the state diagram shown below.
Write complete Verilog code that represents this FSM. Use separate always blocks for the state table and the state flip-flops, as done in lectures. Describe the FSM output, which is called z, using either continuous assignment statement(s) or an always block (at your discretion). Assign any state codes that you wish to use.
module top_module (input clk,input reset, // Synchronous active-high resetinput w,output z
);parameter A=3'b000, B=3'b001, C=3'b010, D=3'b011, E=3'b100, F=3'b101;wire[2:0] state, next;// state transition logicalways@(*)begincase(state)A: next = w? B:A;B: next = w? C:D;C: next = w? E:D;D: next = w? F:A;E: next = w? E:D;F: next = w? C:D;endcaseend// flip-flop and resetalways@(posedge clk)beginif(reset)state <= A;elsestate <= next;end// outputassign z = (state == E || state == F);endmodule
这篇关于[HDLBits] Exams/2012 q2fsm的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!