Consider the state machine shown below, which has one input w and one output z.

Consider the state machine shown below, which has one input w and one output z. 

 

module top_module (
    input clk,
    input reset,     // synchronous reset
    input w,
    output z);
	
	//状态编码
	parameter 
	   A=0,
	   B=1,
	   C=2,
	   D=3,
	   E=4,
	   F=5;
	reg[2:0] state ,next_state;
	//下一状态的确定
	always @(*)begin
		case(state)
			A:next_state=w?A:B;
			B:next_state=w?D:C;
			C:next_state=w?D:E;
			D:next_state=w?A:F;
			E:next_state=w?D:E;
			F:next_state=w?D:C;
			default:next_state='bx;		
		endcase
	end
	//状态转换
	always @(posedge clk)begin
		if(reset)
			state<=A;
		else
			state<=next_state;
	
	end
	//确定输出
	always @(*)begin
		case(state)
			A:z=0;
			B:z=0;
			C:z=0;
			D:z=0;
			E:z=1;
			F:z=1;
			default:z='bx;
		endcase
	end


endmodule
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值