Verilog 检测连续二进制序列 11001101,检测输出1,否则输出0

该博客介绍了如何使用Verilog语言编写逻辑电路来检测连续的二进制序列11001101。当检测到该特定序列时,设计将输出1,否则输出0。
摘要由CSDN通过智能技术生成
/* 功能定义:一段式FSM产生连续二进制序列检测
*/

module Fre_Check(Clk,Rst_n,Din,Dout);
    input Clk;
	 input Rst_n;
	 input Din;
	 
	 output reg Dout;
	 
	 reg [3:0] Next_State;
	 parameter
	 IDLE = 0,
	 st0 = 1,
	 st1 = 2,
	 st2 = 3,
	 st3 = 4,
	 st4 = 5,
	 st5 = 6, 
	 st6 = 7,
	 st7 = 8;
	 
	 always @(posedge Clk or negedge Rst_n)
	 if(!Rst_n)begin
	 Next_State = IDLE;
	 Dout = 1'b0;
	 end
	 else begin
	 case(Next_State)
	     IDLE: if(Din) begin Next_State = st0;Dout = 1'b0;end
		        else begin Next_State = IDLE;Dout = 1'b0;end
	     st0: if(Din) begin Next_State = st1;Dout = 1'b0;end
		        else begin Next_State = IDLE;Dout = 1'b0;end
	     st1: if(!Din)begin Next_State = st2;Dout = 1'b0;end
		        else begin Next_State = st0;Dout = 1'b0;end
	     st2: if(!Din)begin Next_State = st3;Dout = 1'b0;end
		
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值