【FPGA/verilog -入门学习16】fpga状态机实现
需求:
用两段式状态机设计序列码检测机。这个序列码检测机用于检索连续输入的 1bit 数据
(每个时钟周期输入 1bit),当检测到一串“101100”的输入数据时,产生一个时钟周期的
高脉冲指示信号
状态图

//实现状态机切换//101100 //完成切换后,输出高脉冲`timescale 1ns/1ps
module vlg_design(input i_clk,input i_rest_n,input i_incode,output reg o_vaild);parameter IDLE = 4'd0;
parameter S1 = 4'd1;
parameter S2 = 4'd2;
parameter S3 = 4'd3;
parameter S4 = 4'd4;
parameter S5 = 4'd5;
parameter S6 = 4'd6; reg [3:0] cstate;
reg [3:0] nstate;always @(posedge i_clk) beginif(!i_rest_n) cstate <= IDLE;else cstate <= nstate;
endalways @(*) begincase(cstate)IDLE:begino_vaild <= 1'd0;if(i_incode == 1) nstate <= S1;else nstate <= IDLE;endS1:begino_vaild <= 1'd0;if(i_incode == 0) nstate <= S2;else nstate <= S1;endS2:begino_vaild <= 1'd0;if(i_incode == 1) nstate <= S3;else nstate <= IDLE;endS3:begino_vaild <= 1'd0;if(i_incode == 1) nstate <= S4;else nstate <= S2;endS4:begino_vaild <= 1'd0;if(i_incode == 0) nstate <= S5;else nstate <= S1;endS5:begino_vaild <= 1'd0;if(i_incode == 0) nstate <= S6;else nstate <= S3;endS6:begino_vaild <= 1'd1;if(i_incode == 1) nstate <= S1;else nstate <= IDLE;end default :beginnstate <= IDLE;o_vaild <= 1'd0;endendcase
endendmodule
`timescale 1ns/1psmodule testbench_top();//参数定义`define CLK_PERIORD 20 //时钟周期设置为20ns(50MHz) //接口申明
reg i_clk;
reg i_rest_n;
reg i_incode;
wire o_vaild;//对被测试的设计进行例化vlg_design uut_vlg_design(.i_clk(i_clk),.i_rest_n(i_rest_n),.i_incode(i_incode),.o_vaild(o_vaild) ); ///initial begini_clk <= 0;
i_rest_n <= 0;
#20;
i_rest_n <= 1;endalways #(`CLK_PERIORD/2) i_clk = ~i_clk;
integer i;initial begin@(posedge i_clk);
@(posedge i_rest_n);my_task(6'b101100);
my_task(6'b101100);my_task(6'b111100);
my_task(6'b101110);
my_task(6'b101100);
repeat(10)@(posedge i_clk);#2_000_000;
$stop;
endtask my_task; input [5:0] data; begin for(i=0;i < 6;i = i+1) begini_incode <= data[5-i];@(posedge i_clk);endend
endtaskendmodule
仿真波形

相关文章:
【FPGA/verilog -入门学习16】fpga状态机实现
需求: 用两段式状态机设计序列码检测机。这个序列码检测机用于检索连续输入的 1bit 数据 (每个时钟周期输入 1bit),当检测到一串“101100”的输入数据时,产生一个时钟周期的 高脉冲指示信号 状态图 //实现状态机切…...
记chrome的hackbar无法post php://input的问题
尽管hackbar支持post请求体,但是当请求体里面没有等于号的时候,无法post出去,这样如果需要使用php://input绕过waf的时候就没法做。 在开发人员工具的网络里面可以看到不使用等于号的情况下没有荷载。 之后在这里看到了解决方法,…...
相机解析驱动小记
用过了几款相机,对使用相机也有了一点心得,在此记录。 当你得到一款相机,你需要做的: 第一件事:在datasheet中阅读配置单,知道怎么配置、配置完输出来是什么。 配置输出尺寸;传输模式…...
EasyExcel判断导入时是否符合给定模板
问题描述 在做系统的导入导出模块时需要在导入时判断用户导入的表格是否符合给定的模板,该系统导入导出使用的是EasyExcel,因此在实现该功能时是基于EasyExcel的 解决方案 创建Spring Boot项目,并添加如下依赖 <dependency><group…...
BDD - Python Behave Retry 机制
BDD - Python Behave Retry 机制 引言Behave RetryBehave Retry 应用feature 文件创建 step 文件Retry运行 Behave 并生成 rerun 文件重新运行失败的场景 引言 在日常运行测试用例,有时因为环境不稳定造成一些测试用例跑失败了,如果能将这些失败的测试用…...
链 表
3_1 删除链表中的节点 Answer-将被删节点下一个val复制到待删除节点,然后将待删节点直接连接到下下一个节点即可。 学到: /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) …...
一个可以用于生产环境得PHP上传函数
上传表单 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><title>文件上传</title> </head> <body><h1>选择要上传的文件</h1><!-- 定义一个包含文件输入字段的表单 --…...
PyTorch中常用的工具(3)TensorBoard
文章目录 前言3 可视化工具3.1 TensorBoard 前言 在训练神经网络的过程中需要用到很多的工具,最重要的是数据处理、可视化和GPU加速。本章主要介绍PyTorch在这些方面常用的工具模块,合理使用这些工具可以极大地提高编程效率。 由于内容较多,…...
Langchain-Chatchat开源库使用的随笔记(一)
笔者最近在研究Langchain-Chatchat,所以本篇作为随笔记进行记录。 最近核心探索的是知识库的使用,其中关于文档如何进行分块的详细,可以参考笔者的另几篇文章: 大模型RAG 场景、数据、应用难点与解决(四)R…...
软件体系架构复习二
呃,前面复习的忘了发了。从后面开始吧 Unit 11--18 复习Tips: 重点在于对概念的理解,概念间关系的理解。 对具体的识别方法,处理方法等根据自己的兴趣做一些了解即可 。 如:关于 软件架构脆弱性的成因 , …...
产品经理学习-策略产品指标
目录: 数据指标概述 通用指标介绍 Web端常用指标 移动端常用指标 如何选择一个合适的数据指标 数据指标概述 指标是衡量目标的一个参数,指一项活动中预期达到的指标、目标等,一般用数据表示,因此又称为数据指标;…...
【c语言】日常刷题☞有趣的题目分享❀❀
︿( ̄︶ ̄)︿hi~~ ヽ( ̄ω ̄( ̄ω ̄〃)ゝ本次刷题发现3个比较有趣的题目,分享给您,希望对您有所帮助,谢谢❀❀~ 目录 1.单词覆盖还原(单词的连续性) …...
LINUX 抓包工具Tcpdump离线安装教程
本次教程基于内网环境无法访问网络使用安装包进行安装抓包工具 1、首先给大家看下一共有6个安装包,依次进行解压,包我就放到csdn上了,需要的可以联系我进行下载 2打包然后传到服务器任意一个目录下,进入到当前目录,然后…...
c语言-string.h库函数初识
目录 前言一、库函数strlen()1.1 strlen()介绍1.2 模拟实现strlen() 二、库函数strcpy()2.1 strcpy()介绍2.2 模拟实现strcpy() 三、库函数strcmp()3.1 strcmp()介绍3.3 模拟实现strcmp() 总结 前言 本篇文章介绍c语言<string.h>头文件中的库函数,包含strlen…...
PyTorch官网demo解读——第一个神经网络(4)
上一篇:PyTorch官网demo解读——第一个神经网络(3)-CSDN博客 上一篇我们聊了手写数字识别神经网络的损失函数和梯度下降算法,这一篇我们来聊聊激活函数。 大佬说激活函数的作用是让神经网络产生非线性,类似人脑神经元…...
TCP发送和接受数据
发送数据 public class sendmessage {public static void main (String[] args) throws IOException {//创建socket对象//在创建的同时会连接服务器,若连接不上,代码会报错Socket socketnew Socket("127.0.0.1",10086);//从连接通道中获取输出流OutputStream ossock…...
SpringBoot快速集成多数据源(自动版)
有些人因为看见所以相信,有些人因为相信所以看见 有目录,不迷路 前期准备实现演示代码地址参考 最近研究了一下多数据源,这篇博客讲的是简单模式,下篇博客预计写自动切换模式 前期准备 本篇博客基于SpringBoot整合MyBatis-plus&a…...
mysql原理--Explain详解
1.概述 一条查询语句在经过 MySQL 查询优化器的各种基于成本和规则的优化会后生成一个所谓的 执行计划 ,这个执行计划展示了接下来具体执行查询的方式,比如多表连接的顺序是什么,对于每个表采用什么访问方法来具体执行查询等等。设计 MySQL 的…...
阶段五-JavaWeb综合练习-学生管理系统
一.项目说明 1.前台 (用户使用) 前端,后端 2.后台 (管理员使用) 前端,后端 3.该项目为后台管理系统 项目开发流程: 1.需求分析 1.1 登录功能 用户访问登录页面输入用户名和密码,并且输入验证码。全部输入正确后点击登录,登录成功跳转主页面;登录…...
DevC++ easyx实现视口编辑--像素绘图板与贴图系统
到了最终成果阶段了,虽然中间有一些代码讲起来没有意思,纯靠debug,1-1解决贴图网格不重合问题,这次是一个分支结束。 想着就是把瓦片贴进大地图里。 延续这几篇帖子,开发时间也从2023年的4月16到了6月2号,80小时基本…...
3D模型格式转换终极方案:用stltostp轻松实现STL到STEP的专业转换
3D模型格式转换终极方案:用stltostp轻松实现STL到STEP的专业转换 【免费下载链接】stltostp Convert stl files to STEP brep files 项目地址: https://gitcode.com/gh_mirrors/st/stltostp 你是否曾遇到这样的困境:3D打印的STL模型无法在专业CAD…...
国产多模态新星:mPLUG-Owl全解析,从原理到落地
国产多模态新星:mPLUG-Owl全解析,从原理到落地 引言 在ChatGPT引爆文本大模型之后,多模态大模型正成为AI领域的下一个主战场。在这场全球竞赛中,国产模型的表现尤为引人注目。由阿里通义实验室推出的 mPLUG-Owl,凭借…...
基于BMapGL与MapVGL,实战城市人流热力图可视化
1. 从零开始搭建热力图开发环境 第一次接触百度地图GL版开发时,我也被各种配置搞得晕头转向。现在把完整的环境搭建流程梳理出来,帮你避开我踩过的那些坑。BMapGL作为百度地图的WebGL版本,相比传统API渲染效率提升明显,特别适合数…...
HTML转Figma:连接网页开发与设计协作的桥梁
HTML转Figma:连接网页开发与设计协作的桥梁 【免费下载链接】figma-html Convert any website to editable Figma designs 项目地址: https://gitcode.com/gh_mirrors/fi/figma-html 在今天的数字产品开发流程中,设计和开发团队之间的协作常常面临…...
UE4.27渲染管线实战:从Global Shader到Mesh Draw Pipeline,手把手教你自定义渲染Pass
UE4.27渲染管线深度实战:构建自定义渲染通道的完整方法论 引言:为什么需要深入理解UE4渲染管线? 当你在UE4项目中遇到需要实现特殊屏幕特效、非标准深度计算或定制化材质渲染时,引擎内置的渲染管线往往显得力不从心。作为图形程序…...
Resemble Enhance:AI语音增强的终极指南,让嘈杂录音秒变专业音频
Resemble Enhance:AI语音增强的终极指南,让嘈杂录音秒变专业音频 【免费下载链接】resemble-enhance AI powered speech denoising and enhancement 项目地址: https://gitcode.com/gh_mirrors/re/resemble-enhance 你是否曾因录音环境嘈杂而烦恼…...
中兴光猫终极管理工具:快速开启工厂模式与永久Telnet指南
中兴光猫终极管理工具:快速开启工厂模式与永久Telnet指南 【免费下载链接】zteOnu A tool that can open ZTE onu device factory mode 项目地址: https://gitcode.com/gh_mirrors/zt/zteOnu zteOnu是一款专为中兴光猫设备设计的专业管理工具,能够…...
< 12 > Linux进程:进程虚拟地址空间机制 —— 内存管理的美学
1. 程序地址空间回顾C语言阶段学习过程序地址空间,长这样代码段,数据段:这些是常量区,栈区,堆区,还有一些系统需要的空间这些是内存吗? ——不是内存。这些都是虚拟地址空间,OS给我们…...
开源爬虫框架OpenClaw深度集成Bitrix24:企业级数据自动化采集实战
1. 项目概述:当开源爬虫框架遇上企业级CRM如果你正在寻找一个能够与Bitrix24深度集成、稳定可靠且高度可定制的数据采集方案,那么rsvbitrix/openclaw-bitrix24这个开源项目绝对值得你花时间深入研究。简单来说,这是一个基于Python的爬虫框架&…...
5G时代LTE-A为何依然能打:从技术原理到实战场景的深度解析
1. 项目概述:一场意料之外的“降维打击”最近和几个做无线通信的朋友聊天,聊到一个挺有意思的现象:在很多公开的测试和实际部署场景里,当5G和LTE-A(LTE-Advanced,通常指4G)被放在同一个竞技场里…...
