基于FPGA的序列检测器10010
最近在学习状态机,用状态机实现序列检测器10010.
思路如下:
1. S0代表当前数据0,如果检测到0就停在S0,如果检测到1就进入S1。
2. S1代表当前数据1,如果检测到0就进入S2,如果检测到1就停在S1。
3. S2 代表数据10,如果检测到0就进入S3,如果检测到1就回到S1。
4. S3代表数据100,如果检测到0就回到S0,如果检测到1就进入S4。
5. S4代表数据1001,如果检测到0就进入S5,如果检测到1就回到S1。
6. S5代表数据10010,如果检测到0就回到S0,如果检测到1就进入S1。
状态机图如下:

代码如下:
module Xulie(
input wire clk,
input wire rst_n,
input wire in,
output wire Bingo ); reg [:] state; parameter [:] S0 = 'b00_0001;
parameter [:] S1 = 'b00_0010;
parameter [:] S2 = 'b00_0100;
parameter [:] S3 = 'b00_1000;
parameter [:] S4 = 'b01_0000;
parameter [:] S5 = 'b10_0000; always @ (posedge clk or rst_n) begin
if(!rst_n)
state <= S0;
else case(state)
S0: begin
if(in == 'b1)
state <= S1;
else
state <= S0;
end
S1: begin
if(in == 'b0)
state <= S2;
else
state <= S1;
end
S2: begin
if(in == 'b0)
state <= S3;
else
state <= S1;
end
S3: begin
if(in == 'b1)
state <= S4;
else
state <= S0;
end
S4: begin
if(in == 'b0)
state <= S5;
else
state <= S1;
end
S5: begin
if(in == 'b0)
state <= S0;
else
state <= S1;
end default:
state <= S0; endcase
end assign Bingo = state == S5; endmodule
Testbench如下:
`timescale 1ns/1ns module Tb_Xulie; reg clk, rst_n,in;
wire Bingo; initial begin
clk = ;
rst_n = ;
in = ;
#;
rst_n =;
end initial begin
#;
in = ;
#;
in = ;
#;
in = ;
#;
in = ;
#;
in = ;
#;
in = ;
#;
in = ;
#;
in = ;
#;
in = ;
#;
in = ;
#;
in = ;
#;
in = ;
#;
in = ;
#;
in = ;
#;
in = ;
end always # clk <= ~clk; Xulie Xulie_inst(
.clk (clk),
.rst_n (rst_n),
.in (in),
.Bingo (Bingo)
); endmodule
波形图如下:

基于FPGA的序列检测器10010的更多相关文章
- FPGA 状态机-序列检测器verilog
实现功能:检测出串行输入数据4位Data二进制序列0101,当检测到该序列的时候,out=1,否则out=0 (1)给出状态编码,画出状态图 (2)门电路实现 (3)verilog实现 首先规定Q3Q ...
- 10010序列检测器的三段式状态机实现(verilog)
序列检测器是时序数字电路设计中经典的教学范例,夏宇闻的<verilog数字系统设计教程>一书中有这个例子,用verilog设计一个“10010”序列的检测器.看完后我觉得F和G两个状态多余 ...
- 基于FPGA的音频信号的FIR滤波(Matlab+Modelsim验证)
1 设计内容 本设计是基于FPGA的音频信号FIR低通滤波,根据要求,采用Matlab对WAV音频文件进行读取和添加噪声信号.FFT分析.FIR滤波处理,并分析滤波的效果.通过Matlab的分析验证滤 ...
- 基于FPGA的IIR滤波器
基于FPGA的IIR滤波器 by方阳 版权声明:本文为博主原创文章,转载请指明转载地址 ...
- 基于FPGA的中值滤波算法实现
在这一篇开篇之前,我需要解决一个问题,上一篇我们实现了基于FPGA的均值滤波算法的实现,最后的显示效果图上发现有一些黑白色的斑点,我以为是椒盐噪声,然后在做基于FPGA的中值滤波算法的实验时,我发现黑 ...
- 基于FPGA的有限状态机浅析
前言:状态机大法好,状态机几乎可以实现一切时序逻辑电路. 有限状态机(Finite State Machine, FSM),根据状态机的输出是否与输入有关,可分为Moore型状态机和Mealy型状态机 ...
- 基于FPGA的数字识别的实现
欢迎大家关注我的微信公众号:FPGA开源工作室 基于FPGA的数字识别的实现二 作者:lee神 1 背景知识 1.1基于FPGA的数字识别的方法 通常,针对印刷体数字识别使用的算法有:基于模版 ...
- 基于FPGA的XPT2046触摸控制器设计
基于FPGA的XPT2046触摸控制器设计 小梅哥编写,未经许可,文章内容和所涉及代码不得用于其他商业销售的板卡 本实例所涉及代码均可通过向 xiaomeige_fpga@foxmail.com 发 ...
- 基于FPGA的HDMI显示设计(三)
上一篇:基于FPGA的VGA显示设计(二) 10月10日 ~ 20日期间实习,令我万万没想到的是实习题目是 “便携式高清电视显示屏测试系统原型设计” 也就是 “基于FPGA的视频显示”. 实习要求用 ...
随机推荐
- loj6077
题解: 网上的做法好像都是容斥 那就先说一下容斥 首先问题等价于求下面这个式子的方案数 $$\sum_{i=1}^{n} ai (0<ai<i) =k$$ 直接$dp$复杂度是$nk$的, ...
- windows下创建MySQL定时备份与删除脚本
今天在windows服务器上面写了一个MySQL定时任务,备份呢与删除 rem *****************************Code start********************* ...
- 重启部署在阿里云上的huginn
背景,因为重新编译安装了gcc,不知怎么服务器上的huginn就停了, 因为之前是安装在docker上的,服务器重启之后需要:1.启动dockerservice docker start2.命令创建h ...
- 网络流之最大流Dinic算法模版
/* 网络流之最大流Dinic算法模版 */ #include <cstring> #include <cstdio> #include <queue> using ...
- 关于WQS二分算法以及其一个细节证明
应用分析 它的作用就是题目给了一个选物品的限制条件,要求刚好选$m$个,让你最大化(最小化)权值, 然后其特点就是当选的物品越多的时候权值越大(越小). 算法分析 我们先不考虑物品限制条件, 假定我们 ...
- 05-Python入门学习-字符串与列表的内置方法
字符串 一:基本使用 1 用途: 记录描述性的状态,比如人的名字.地址.性别 2 定义方式: 在"",'',"""""" ...
- (转)谈谈用ASP.NET开发的大型网站有哪些架构方式(成本)
在上篇文章里(http://www.cnblogs.com/ms0017/archive/2011/07/26/2117676.html),列举了国内外用ASP.NET开发的大型网站有哪些.最后提到了 ...
- JS-词法作用域 作用域链
## 词法作用域 概念:所谓的词法作用域,就是代码在编写过程就体现出来的作用范围.代码一旦写好,不用执行, 作用范围就已经确定好了,这个就是所谓的词法作用域. ## 词法作用域的规则: 1,函数允许访 ...
- cadence分列元件原理图库的设计
- eclipse设置properties文件的字体颜色
点击Window->preferences->搜素properties ============================ 其它设置字体颜色设置 =========== ...