Fsm hdlc题
状态转换图
module top_module(
input clk,
input reset, // Synchronous reset
input in,
output disc,
output flag,
output err);
reg [3:0] state;
reg [3:0] next_state;
always@(*)begin
case(state)
0:next_state = in?1:0;
1:next_state = in?2:0;
2:next_state = in?3:0;
3:next_state = in?4:0;
4:next_state = in?5:0;
5:next_state = in?6:7;
6:next_state = in?9:8;
7:next_state = in?1:0;
8:next_state = in?1:0;
9:next_state = in?9:0;
endcase
end
always@(posedge clk)begin
if(reset) state <=0;
else state<=next_state;
end
assign disc = state==7;
assign flag = state==8;
assign err = state==9;
endmodule
这篇博客详细介绍了如何使用Fsmhdlc模块进行状态转换的设计,通过实例展示了状态机的结构,包括输入信号in如何驱动状态变化,以及同步reset的作用。重点讲解了状态转移表和时钟触发的更新过程,同时给出了状态变量的赋值逻辑以及错误、标志和数据输出的关联规则。
2296

被折叠的 条评论
为什么被折叠?



