11010序列检测器Verilog代码及仿真测试文件

2023-11-04

1.“11010序列检测器”状态转移图

 2.Verilog代码

module fsm(x,z,clk,rst,data);
input clk,rst,x;
input [20:0]data;
output reg z;
reg[2:0]state,nstate;

parameter s0 = 3'b000,//状态编码
          s1 = 3'b001,
          s2 = 3'b011,
          s3 = 3'b010,
          s4 = 3'b110;

always @(posedge clk) 
begin
    if(rst)state<=s0;
    else state<=nstate;    
end

always @(state or x) //产生次态
begin   
    case(state)
s0:if(x==1) nstate<=s1;
    else nstate<=s0;
s1:if(x==1) nstate<=s2;
    else nstate<=s0;
s2: if(x==0) nstate<=s3;
    else nstate<=s2;
s3: if(x==1) nstate<=s4;
    else nstate<=s0;
s4: if(x==0) nstate<=s0;
    else nstate<=s2;
    default:nstate <= s0;
    endcase
end
always @(state)//输出
begin
    case(state)
    s4:z=1'b1;
    default:z=1'b0;
    endcase
end
endmodule

3.testbench仿真代码

`timescale 1ns/1ps
 
 //声明定义
 module tb();
 reg clk;
 reg rst;
 reg x;
 reg[20:0] data;
 wire z;


//例化模块
fsm uut (
  .data(data),
  .x(x),
  .z(z),
  .clk(clk),
  .rst(rst)
 );
 assign x=data[20];


//产生激励
 initial begin
        clk = 0;
        rst = 1;
         #3
        rst=0;
         #20
        rst=1;
        data=21'b 1101_0110_0101_0011_01001; 
         end
     always #10 clk=~clk;
     always@(posedge clk)
     begin
  #2 data={data[19:0],data[20]};
  end
endmodule

4.仿真结果

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

11010序列检测器Verilog代码及仿真测试文件 的相关文章

  • 在vivado中使用tcl脚本(UG894)

    本文源自UG894 主要介绍如何在vivado中使用tcl脚本 1 vivado中如何获取tcl help vivado中任何自带的命令都可以通过 help 获取帮助信息 也可以直接输入 help 取得vivado命令合集 并通过 help
  • PLL时钟约束

    方法 1 自动创建基时钟和 PLL 输出时钟 例 derive pll clocks 这一方法使您能够自动地约束 PLL 的输入和输出时钟 ALTPLL megafunction 中指定的 所有 PLL 参数都用于约束 PLL 的输入和输出
  • 用Vscode编辑verilog代码配置

    这篇教程感觉很详细了 我这里分享一下vscode和插件的安装包链接 都是官网下载的 放心食用 用VSCode编辑verilog代码 iverilog编译 自动例化 自动补全 自动格式化等常用插件 链接 https pan baidu com
  • 最详细的Vivado安装教程

    V i v a d o 安 装
  • HDLBits刷题_Verilog Language_Procedures_Alwaysblock1

    学习内容 Since digital circuits are composed of logic gates connected with wires any circuit can be expressed as some combin
  • Xilinx AXI-memory接口 转 AXI-stream 接口(含源码)

    AXI memory接口 转 AXI stream 接口 AXI memory接口介绍 具体详情可以查看源码 AXI memory接口介绍 从图中我们可以看出memory接口有5个通道 分别是读地址通道 写地址通道 写响应通道 读数据通道
  • xilinx xdma PCIe中断bug

    xilinx xdma PCIe中断存在bug bug1 此中断虽然是msi或者msx中断 但是不中断cpu bug2 此中断不是边沿中断 而是电平中断 在驱动层需要不断地轮训查询中断事件 bug3 此中断持续时间必须长 而且在收到中断应答
  • verilog 基本语法 {}大括号的使用

    的基本使用是两个 一个是拼接 一个是复制 下面列举了几种常见用法 基本用法 表示拼接 第一位 第二位 表示复制 4 a 等同于 a a a a 所以 13 1 b1 就表示将13个1拼接起来 即13 b1111111111111 拼接语法详
  • JESD204B(RX)协议接口说明。

    解释一下Vivado IP协议中的Shared Logic in Example 与 Shared Logic in Core 首先 什么是Shared Logic 字面意思很好理解 就是共享逻辑 主要包括时钟 复位等逻辑 当选择Share
  • libero-soc许可证申请和环境配置

    环境 64位机 在哪台电脑上安装libero soc 就用哪台电脑申请许可证 1 注册 https www microsemi co 在官网注册 之后申请的许可证会发到注册时填写的邮箱 2 申请许可证 https www microsemi
  • 从零开始zynq linux AXI DMA传输

    本文从0开始叙述过程 使用的工具为vivado2016 4 sdk也是2016 4 准备工作 首先下载如下的目标文件 1 下载xilinx官方的bootloader文件 git clone https github com Xilinx u
  • 【PIPE】流水线设计中的基本模块

    大概分成以下几节 1 概述及协议 2 valid forward valid超前 3 bubble collapse 消除气爆 4 input output skid 不知中文怎么说 5 pipe halt 流水停顿 6 idle pres
  • 用python接收高速率的UDP数据包

    我正在使用 python 来从 FPGA 接收 UDP 数据包流 并尝试丢失尽可能少的数据包 数据包速率从大约 5kHz 到一些 MHz 我们希望在特定时间窗口 代码中的 acq time 内获取数据 我们现在有这样的代码 BUFSIZE
  • VHDL:按钮去抖动(或不去抖动,视情况而定)

    我已阅读其他帖子 但似乎无法修复我的 我是 VHDL 新手 所以我确信这是一个简单的修复 简而言之 按钮没有防抖 代码编译和比特流程序 在测试台中 按下按钮可以工作 但输出 LED 不会改变 在板上 按下按钮会使随机 LED 亮起 我猜是因
  • Verilog、FPGA、统一寄存器的使用

    我有一个问题 关于我正在开发的 AGC SPI 控制器在我看来奇怪的行为 它是用 Verilog 完成的 针对的是 Xilinx Spartan 3e FPGA 该控制器是一个依赖外部输入来启动的 FSM FSM的状态存储在状态寄存器它没有
  • 使用 VHDL 实例化 FPGA 中的 RAM

    我试图按照中的指导实现双端口 RAM这篇优秀的博文 http danstrother com 2010 09 11 inferring rams in fpgas 然而 ModelSim 在编译时给出以下警告 Warning fifo ra
  • 同时读取和写入寄存器

    我计划在 FPGA 上用 VHDL 设计一个类似 MIPS 的 CPU CPU 将具有经典的五级管道 没有转发和危险预防 在计算机体系结构课程中 我了解到第一个 MIPS CPU 用于在时钟上升沿读取寄存器文件并在时钟下降沿写入 我使用的F
  • verilog $readmemh 对于 50x50 像素 RGB 图像花费太多时间

    我正在尝试编译用于 FPGA 编程的 verilog 代码 我将在其中实现 VGA 应用程序 我使用 QuartusII 和 Altera 我正在尝试正确使用 readmemh 来逐像素获取图片 现在 我已经使用 matlab 将图片转换为
  • 在 Verilog 程序中使用连续分配?

    在 Verilog 程序中使用连续赋值是否可能和 或有用 例如 是否有任何理由将assign里面一个always堵塞 例如这段代码 always begin assign data in Data end 此外 是否可以用这种方法生成顺序逻
  • 可以购买哪些 FPGA(现场可编程门阵列)在家中进行实验? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 什么是 FPGA 在哪里可以买到 它们要花多少钱 您需要什么样的系统来试验它们 如何对它们进行编程 如果这是正确的术语 您能否使用普通 M

随机推荐

  • python绘制网络关系图

    import networkx as nx 数据准备 G nx DiGraph 单边有向图 G add edges from 1 2 x y 2 3 一次性添加多条边 nx draw G 简单画一下 改变样式 一次性画 pos nx spr
  • 安装eclipse出现Failed to load the JNIshared library---我的解决

    在安装eclipse时如果出现Failed to load the JNIshared library这句话 可能是你安装的eclipse的位数和JDK的位数不匹配 首先 我们来查看电脑JDK是多少位的 在搜索框 或windows R 中输
  • Python数据分析实战(2)使用Pandas进行数据分析

    文章目录 一 Pandas的使用 1 Pandas介绍 2 Pandas基本操作 Series的操作 创建DataFrame 常见列操作 常见行操作 DateFrame的基本操作 时间操作 3 Pandas进行数据分析 读取数据 选择数据子
  • 阿里云oss图片缩放

    您可以通过文件URL SDK API方式设置参数 处理图片 本文以文件URL为例进行介绍 关于如何使用SDK和REST API处理图片 请参见图片处理操作方式 本文示例使用的Bucket为杭州地域名为oss console img demo
  • 申请堆区空间

    malloc void malloc size t size 功能 申请 size 个字节的堆区空间 返回值 成功返回堆区空间首地址 失败返回 NULL free void free void ptr 功能 释放堆区空间 memset 对空
  • IPSec 专栏目录锦集(openswan)

    为了方便查阅现有的文章 特准备一个目录页供后续查询使用 专栏序言 1 IPsec理论知识 openswan任务调度基础知识之信号 IPSec协议详细介绍 pdf 一本书 IPSec技术理论介绍 pdf IBM手册 包括IKE协商commit
  • 图像型火灾探测系统

    图像型火灾探测系统是基于视频图像处理 人工智能处理分析 物联网通讯 大数据平台等先进技术实现的可视化早期 火灾探测报警系统 可探测物质燃烧产生的烟雾 火焰 温度等光谱特性 系统主要由图像型火焰火灾探测器 图像型线型 光束感烟火灾探测器 图像
  • hive 调优记录

    数据倾斜总结 在做Shuffle阶段的优化过程中 遇到了数据倾斜的问题 造成了对一些情况下优化效果不明显 主要是因为在Job完成后的所得到的Counters是整个Job的总和 优化是基于这些Counters得出的平均值 而由于数据倾斜的原因
  • Centos7配置samba

    Centos7 配置 SAMBA Centos7 配置 SAMBA步骤 一 关闭selinux和firewall 关闭selinx SELINUX enforcing 改为 SELINUX disabled 关闭firewall syste
  • msvcp140.dll是什么东西,msvcp140.dll丢失的修复方案

    在我们打开游戏或者软件的时候 电脑提示由于找不到msvcp140 dll 无法继续执行此代码 重新安装程序可能会解决问题 那么msvcp140 dll是什么东西 msvcp140 dll丢失有什么修复方案 msvcp140 dll是什么东西
  • 微信小程序 如何把小程序页面保存至用户相册

    思路 canvas绘制出页面 将canvas转化成图片 获取到临时路径 用临时路径将图片保存至相册 组件及API canvas 画布 官方文档链接 wx canvasToTempFilePath 将canvas转换为临时文件路径 官方文档链
  • 用C语言实现贪吃蛇(基于Linux系统 ubuntu 环境,调用curses库实现)

    前言 这是一个基于C语言链表开发的贪吃蛇游戏 其实贪吃蛇游戏要解决的主要问题就是 1 这个游戏的基本组成元素和数据结构 2 如何初始化贪吃蛇并正常行走 如何判断事件发生 游戏说明 按方向键上下左右 可以实现蛇移动方向的改变 超出边界或者蛇头
  • 实现文件秒传

    实现文件秒传 文件的校验值计算 校验算法类型 校验码长度 1 CRC 4 8字节 计算效率高但安全性较低 传输数据的校验 2 MD5 16个字节 中等 文件校验和数据签名 3 SHA1 20个字节 安全性高 文件校验和数据签名 秒传原理 场
  • PCL 半径滤波器——高级用法

    目录 一 概述 1 不足 2 改进 二 代码实现 三 结果展示 一 概述 1 不足 传统半径滤波的算法原理及使用方法见 PCL 半径滤波器 传统方法有一个弊端就是会损失点云的一些信息 如原始点云数据中包含回波次数 扫描时间 扫描角度等属性信
  • Spring 使用指南 ~ 1、Spring 的 IOC 和 DI 简介

    一 IOC DI 1 概念介绍 IOC 控制反转 即把类的实例化交给 Spring 来管理 DI 依赖注入 即通过 Spring 为应用中被 Spring 管理的类实例注入其依赖的实例和其他信息 2 使用 XML 形式 1 构造函数注入 p
  • ReactiveUI MVVM框架(1)-Collections

    ReactiveUI MVVM框架 1 Collections ReactiveUI使用动态数据 DynamicData 用于集合的操作 当对动态数据集合进行更改时 会产生更改通知 通知表示为ChangeSet 里面包含了更改信息 多个更改
  • QML的语法——样式表QSS

    一 QSS介绍 如果学过前端的话 QSS Qt style sheet 就很好理解了 QSS 是一个非常强大的用于自定义控件外观的机制 它的概念 术语以及语法都是受到了 HTML CSS 的启发 QSS是用来设置界面样式的 设置的方法就是类
  • Excel修改日期格式,改变日期的筛选方式

    我们有两列日期数据 左边这一列筛选会显示 右边这一列筛选会显示 修改格式 将 日期1 改为 日期2 将 日期1 的格式修改为文本格式即可 修改格式 将 日期2 改为 日期1 选中日期2 点击 数据 gt 分列 然后什么都不用操作直接点击完成
  • Unity单元测试笔记

    Unity单元测试 在项目中安装NUnit 在unity面板中打开单元测试面板 在项目中安装NUnit 比如对测试用例代码中对缺乏引用的SetUp字段 按下快捷键Alt Enter 选择安装最新版本的NUnit using UnityEng
  • 11010序列检测器Verilog代码及仿真测试文件

    1 11010序列检测器 状态转移图 2 Verilog代码 module fsm x z clk rst data input clk rst x input 20 0 data output reg z reg 2 0 state ns