基于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的视频显示”. 实习要求用 ...
随机推荐
- vba 读取数据库
1.安装数据库 2.创建数据源 Private Sub Worksheet_Change(ByVal Target As Range) Then Call mySQL End If End Sub P ...
- ssl证书专题(2):自签名ssl 证书生成
参考: https://www.cnblogs.com/littleatp/p/5878763.html https://www.cnblogs.com/hnxxcxg/p/7610582.html
- CodeForces 286E Ladies' Shop 多项式 FFT
原文链接http://www.cnblogs.com/zhouzhendong/p/8781889.html 题目传送门 - CodeForces 286E 题意 首先,给你$n$个数(并告诉你$m$ ...
- rabbitmq重启时报错,并导致erlang崩溃和Rabbit的常用命令
-------------------------------------------------------------------------------------------------- R ...
- 理解ActivityManagerService
--摘自<Android进阶解密> *AMS家族* 1.Android 7.0的AMS家族 2.AMP和AMS进行通信 3.(Android 7.0)AMP是AMN的内部类,它们都实现了I ...
- git 入门教程之删除文件
删除文件 回忆一下文件的常见操作,新增文件,修改文件,删除文件等,新增和修改文件都单独讨论过,现在我们来研究一下如何删除文件. 你可能会说删除文件还不简单啊,直接 rm -rf <file> ...
- BZOJ.2823.[AHOI2012]信号塔(最小圆覆盖 随机增量法)
BZOJ 洛谷 一个经典的随机增量法,具体可以看这里,只记一下大体流程. 一个定理:如果一个点\(p\)不在点集\(S\)的最小覆盖圆内,那么它一定在\(S\bigcup p\)的最小覆盖圆上. 所以 ...
- Django——发送邮件
Django--发送邮件 在web应用中,服务器对客户发送邮件来通知用户一些信息,可以使用邮件来实现. Django中提供了邮件接口,使我们可以快捷的建设一个邮件发送系统. 以下是一个简单实例: se ...
- In the beginning, Coders create the repos and blogs
---恢复内容开始--- 这是一个新的博客 print(‘hello new world’) 这个博客叫做 brain in a jar, 不知道以后会不会改名. 只是因为偶然想到了普特南的缸中之脑理 ...
- XIV Open Cup named after E.V. Pankratiev. GP of Europe
A. The Motorway 等价于找到最小和最大的$L$满足存在$S$使得$S+(i-1)L\leq a_i\leq S+i\times L$ 即 $S\leq\min((1-i)L+a_i)$ ...