当前位置: 首页 > article >正文

笔试题目 :状态检测11011011

某公司笔试题目: 大致就是状态检测11011,但是如果出现11011011算两次

这里建议画一画状态转移图

code

module check_11011(
	input clk ,
	input rst_n ,
	input data ,
	
	output check
	);
	
	//11-0-11
	parameter S0 = 3'd0 ;
	parameter S1 = 3'd1 ;
	parameter S2 = 3'd2 ;
	parameter S3 = 3'd3 ;
	parameter S4 = 3'd4 ;
	parameter S5 = 3'd5 ;
	
	reg [2:0] current_stage ;
	reg [2:0] next_stage ;
	
	reg flag ;
	
	assign check = flag ;
	
	always @(posedge clk or negedge rst_n)begin
		if(!rst_n)begin
			current_stage <= S0;
		end else begin
			current_stage <= next_stage ;
		end 
	end 
	
	always @(*)begin
		case(current_stage)
			S0 : next_stage = data == 1 ? S1 : S0 ;
			S1 : next_stage = data == 1 ? S2 : S0 ;
			S2 : next_stage = data == 1 ? S1 : S3 ;
			S3 : next_stage = data == 1 ? S4 : S0 ;
			S4 : next_stage = data == 1 ? S5 : S0 ;
			S5 : next_stage = data == 1 ? S2 : S3 ;
			default : next_stage = next_stage ;
		endcase
	end 
	
	always @(posedge clk or negedge rst_n)begin
		if(~rst_n)begin
			flag <= 1'b0 ;
		end else if(next_stage == S5)begin
			flag <= 1'b1 ;
		end else begin
			flag <= 1'b0;
		end 
	end 

endmodule

tb

`timescale 1ns / 1ps

module check_11011_tb;

    reg clk;
    reg rst_n;
    reg data;
    wire check;

    check_11011 uut (
        .clk(clk),
        .rst_n(rst_n),
        .data(data),
        .check(check)
    );

    initial begin
        clk = 0;
        forever #5 clk = ~clk; 
    end

    initial begin
        rst_n = 0;
        data = 0;
        #10;
        rst_n = 1;
        #10 data = 1;
        #10 data = 1;
        #10 data = 0;
        #10 data = 1;
        #10 data = 0; 
        #10 data = 1;
        #10 data = 1;
        #10 data = 1;
        #10 data = 0;
        #10 data = 1;
        #10 data = 1;
        #10 data = 0;
        #10 data = 1;
        #10 data = 1;

        #100 $finish;
    end

endmodule

http://www.kler.cn/a/317774.html

相关文章:

  • 华为路由策略配置
  • Linux git-bash配置
  • C#发票识别、发票查验接口集成、电子发票(航空运输电子行程单)
  • NAT网络工作原理和NAT类型
  • java导出pdf
  • 灰狼优化算法
  • JavaScript 可视化
  • 【软件文档】项目质量保证计划书(Word原件)
  • 【Kubernetes】常见面试题汇总(三十三)
  • 基于python flask的高血压疾病预测分析与可视化系统的设计与实现,使用随机森林、决策树、逻辑回归、xgboost等机器学习库预测
  • React——setState 新旧值复用问题
  • CSS的多种选择器
  • 牛客小白月赛101
  • 如何检测电脑有无恶意软件并处理掉?
  • SQL_HAVING小例子
  • [Spring]Spring MVC 请求和响应及用到的注解
  • 文本驱动的3D人体动作生成
  • Postman导出报告
  • Linux复习--网络基础(OSI七层、TCP三次握手与四次挥手、子网掩码计算)
  • Docker学习笔记(四)单主机网络
  • 【Elasticsearch】-实现向量相似检索
  • Spring MVC 基本配置步骤 总结
  • Kafka 3.0.0集群部署教程
  • 【Proteus单片机仿真】基于51单片机的循迹小车避障+气体传感器和温度传感器系统
  • conda环境下module ‘numba.types‘ has no attribute ‘Macro‘问题解决
  • 【Qt】控件样式案例