IC基础(五):序列检测器

参考:https://blog.csdn.net/Reborn_Lee/article/details/85763185
序列检测器经常出现在笔试题目当中,其实其中的主要思想还是状态机的设计,因此本文也借着序列检测器这一点,讲讲状态机的设计。

一、序列检测器要是实现什么功能?
序列检测器主要是实现输入的一串序列是否是特定的序列。比如设计一个序列检测器,检测序列“11001”,检测到就输出1,否则输出0。

二、设计状态机来检测序列

首先要设计状态机,最好是先把状态转换图先画出来,有了状态转换图一切设计就很好办了。

序列检测器状态转换图
根据状态转换图很容易就写出状态机了。状态机代码如下。

源文件:

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2019/04/01 16:29:18
// Design Name: 
// Module Name: seq_det_moore
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//


module seq_det_moore(
input		Clk,
input		Rst_n,
input		Din,
output		reg	Dout
    );
    
    //
    localparam		  [2:0] S0 = 3'b000;
    localparam	      [2:0] S1 = 3'b001;
    localparam		  [2:0] S2 = 3'b010;
    localparam       [2:0] S3 = 3'b011;
    localparam       [2:0] S4 = 3'b100;
    localparam       [2:0] S5 = 3'b101;
    
    reg	[2:0] Current_State;
    reg	[2:0] Next_State;
    
    always@(posedge Clk or negedge Rst_n)begin
    	if(!Rst_n)begin
    		Current_State <= S0;
    	end
    	e
  • 9
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值