基于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的视频显示”. 实习要求用 ...
随机推荐
- CodeForces 528D Fuzzy Search 多项式 FFT
原文链接http://www.cnblogs.com/zhouzhendong/p/8782849.html 题目传送门 - CodeForces 528D 题意 给你两个串$A,B(|A|\geq| ...
- UOJ#172. 【WC2016】论战捆竹竿 字符串 KMP 动态规划 单调队列 背包
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ172.html 题解 首先,这个问题显然是个背包问题. 然后,可以证明:一个字符串的 border 长度可 ...
- EHDU-1039 asier Done Than Said?
Password security is a tricky thing. Users prefer simple passwords that are easy to remember (like b ...
- 20172328 2018-2019《Java软件结构与数据结构》第一周学习总结
20172328 2018-2019<Java软件结构与数据结构>第一周学习总结 概述 Generalization 本周学习了软件质量.数据结构以及算法分析的具体内容,主要依托于所用教材 ...
- vue实现数据双向绑定的原理
一.知识准备Object.defineProperty( )方法可以直接在一个对象上定义一个新属性,或者修改一个已经存在的属性,并返回这个对象.Object.defineProperty(obj,pr ...
- css加载动画...
加载动画... <p>加载动画...</p> <p> </p> <p> </p> <style><!-- .c ...
- __x__(5)0905第二天__网页三大组成部分
根据 W3C 标准,将网页主要分成 3 个部分:结构,表现,行为. 结构: HTML 用于描述页面结构. 表现: CSS 用于控制页面中元素的样式. 行为: JavaScript 用于响应用户操作.
- CF_2018-2019 Russia Open High School Programming Contest (Unrated, Online Mirror, ICPC Rules, Teams Preferred)
只做了两个就去上课去啦... A. Company Merging time limit per test 1 second memory limit per test 512 megabytes i ...
- 关于“svn: Can't connect to host '*.*.*.*': 由于连接方在一段时间后没有正确答复或连接”的解决方法
阿里云服务器环境(PHP+Nginx+MySQL) [原因1]svnserve.conf 没写好,当然你先备份一份先: cp svnserve.conf svnserve.conf.bak 打开此文件 ...
- python语法_集合
集合:不同的元素(不可hash)组合在一起的就叫做集合,去掉重复的,以空字符返回,无序的 可以分为可变集合和不可变集合(frozenset) 创建: s = set('gm gyx') print(s ...