【FPGA Modsim】序列检测

实验题目:  序列检测器设计                                  

实验目的:  掌握应用数字逻辑设计集成开发环境进行序列检测器设计的方法;掌握时序逻辑电路设计的过程。                      

实验内容:

1、设计一个序列检测器,用于检测输入数据中的特定序列“10010”。

2、实现一个电路,当检测到该序列时,输出为1,否则为0。

3、分析实验结果,验证电路的功能是否符合设计要求。

实验步骤:

1、在数字逻辑集成开发环境中新建一个序列检测器工程;

2、编写Verilog HDL源程序;

3、编译和逻辑综合源程序;

4、编写Verilog HDL仿真测试程序;

5、调用数字逻辑设计仿真环境对源程序进行仿真;

6、安装输入/输出端口建立约束文件;

7、下载到实验开发板,观察实践运行结果。

实验数据记录:

  1. 写出编写的Verilog HDL源程序。

`timescale 1ns/1ps

module seq_tb();

reg [23:0] d;

reg clk;

reg rst_n;

wire y;

reg data;

seq_test uut (

    .clk(clk),

    .rst_n(rst_n),

    .data(data),

    .y(y)

);

initial begin

clk=0;

rst_n=0;

#10;

rst_n=1;

#20;d = 24'b0011_0100_1001_0110_1001_0101;

end

always #10 clk=~clk;

always@(negedge clk) begin

#10  data = d[23];

 d = {d[22 : 0], d[23]}; //Parallel to serial

end

endmodule

  1. 写出编写的Verilog HDL仿真测试程序。

`timescale 1ns/1ps

module seq_test(clk,rst_n,data,y

   );

input clk;

input rst_n;

input data;//10010

output y;

reg [2:0] state;

reg [2:0] next_state;

wire y;

parameter s_idle=3'b000,s1=3'b001,s2=3'b010,s3=3'b011,

            s4=3'b100,s5=3'b101,s6=3'b110,s7=3'b111;

always @(posedge clk or negedge rst_n)

begin

        if (~rst_n)

            next_state <= 0;

    else

            next_state <= state;

end

always @(posedge clk or negedge rst_n)

begin

        if (~rst_n)

            state <= s_idle;

    else begin

    case(state)

        s_idle: begin if(data ==1)

                    state <= s1;

                else

                    state <= s_idle; end

        s1:     begin  if(data ==0)

                    state <= s2;

                else

                    state <= s1;end

        s2:     begin  if(data ==0)

                    state <= s3;

                else

                    state <= s7; end

        s3:     begin  if(data ==1)

                    state <= s4;

                else

                    state <= s6; end

        s4:     begin  if(data ==0)

                    state <= s5;

                else

                    state <= s1; end

        s5:     begin   if(data == 1)

                     state <= s1;

else

                     state <= s3;end

s6: begin  if(data == 1)

                            state <= s7;

                               else

                            state <= s6;end

s7: begin  if(data == 1)

                               state <= s1;

                 else

                             state <= s2;end

default: state <= s_idle;

    endcase

  end

end

assign y = (state == s4 && data == 0)?1'd1:1'd0;

endmodule

3、画出仿真环境中测试波形图。

问题讨论:

论述时序逻辑电路中有限状态机设计与实现方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/633422.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法训练营Day51(买卖股票总结)

309.最佳买卖股票时机含冷冻期 309. 买卖股票的最佳时机含冷冻期 - 力扣&#xff08;LeetCode&#xff09; dp数组&#xff1a; 模拟状态&#xff1a;买买买 卖 冻卖卖卖 买 卖 dp[i][0] :持有股票 dp[i][1]: 不持有股票&#xff0c;但是之前卖出去的 dp[i][2]: 不持有股票…

springboot3整合knife4j(swagger增强)

springboot升级到3后之前的knife4j配置就要变了一下了 1.导入依赖 <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId> <version>4.1.0</…

Talk|香港中文大学高瑞元:MagicDrive - 基于3D几何控制的自动驾驶街景数据生成

本期为TechBeat人工智能社区第565期线上Talk。 北京时间1月18日(周四)20:00&#xff0c;香港中文大学博士生—高瑞元的Talk已准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “MagicDrive - 基于3D几何控制的自动驾驶街景数据生成”&#xff0c;介绍了他的…

湛江涡轮壳工件实物扫描三维测绘广州抄数公司造型stl转面3d打印

湛江涡轮壳上门实物三维扫描及抄数打印案例&#xff08;CASAIM中科广电&#xff09;&#xff1a; 涡轮壳三维扫描及逆向设计技术是一种基于计算机辅助设计&#xff08;CAD&#xff09;和逆向工程&#xff08;RE&#xff09;的方法&#xff0c;用于对涡轮壳进行精确的三维测量和…

基于小波多普勒变换的回波信号检测matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1小波变换基础 4.2 多普勒效应与多普勒变换 4.3 小波多普勒变换 4.4 回波信号检测 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 %回波…

解决打开 json 文件中文乱码的问题

如下图&#xff0c;pycharm 打开是下面的样子 右下角的编码尝试了好久&#xff0c;依然打不开 用代码打开就成功了 import jsonwith open(./Mydata/garbage_classification.json,encodingutf8,moder) as f:data json.load(f) print(data)控制台结果&#xff1a;

爬虫(学习笔记)

python爬虫 Python基础回顾变量类型其他操作面向对象编程 爬虫demo01爬虫demo02 学习资料 Python爬虫 爬虫实战案例 Python基础回顾 变量类型 可变类型&#xff1a;可以进行添加、修改、删除 &#xff08;列表、字典…&#xff09; 不可变类型&#xff1a;不可以进行上述操作 …

时序分解 | Matlab实现SMA-CEEMDAN利用黏菌优化算法优化CEEMDAN时间序列信号分解

时序分解 | Matlab实现SMA-CEEMDAN利用黏菌优化算法优化CEEMDAN时间序列信号分解 目录 时序分解 | Matlab实现SMA-CEEMDAN利用黏菌优化算法优化CEEMDAN时间序列信号分解效果一览基本介绍程序设计参考资料 效果一览 基本介绍 SMA-CEEMDAN利用黏菌优化算法优化CEEMDAN Matlab语言…

JVM性能调优-垃圾收集器G1详解

目录 G1收集器(-XX:UseG1GC) G1垃圾收集分类 YoungGC MixedGC Full GC G1收集器参数设置 G1垃圾收集器优化建议 什么场景适合使用G1 G1收集器(-XX:UseG1GC) G1 (Garbage-First)是一款面向服务器的垃圾收集器,主要针对配备多颗处理器及大容量内存的机器. 以极高概率满足…

VSCode 插件推荐

前言 关于开发用的插件就不做赘述了&#xff0c;网上面有很多文章都做了推荐&#xff0c;本文推荐几个好看的插件。 文件图标主题 Vscode icons Material Icon Theme 字体主题 推荐 One Dark Pro 其他 推荐一个生成好看代码的网址 https://carbon.now.sh/

医院体检中心客户满意度调查流程

制定医院体检中心客户满意度调查方案需要明确调查的目标、方法和步骤。以下是一个可能的满意度调查方案的示例&#xff1a; 1.确定调查目标&#xff1a;明确定义调查的主要目标和期望的结果。例如&#xff0c;您可能希望了解客户对医院体检中心的整体满意度、医疗服务质量、员…

智能小程序真机调试教程

概述 Tuya MiniApp Tools 真机调试通过网络连接实现 kit 插件调试功能&#xff0c;帮助开发者更好地排查定位问题。区别于模拟调试&#xff0c;真机调试将使用用户的真实环境。 功能 发起调试 在 Tuya MiniApp Tools 中登录并打开项目&#xff0c;单击上述图片红框内按钮后&…

【前沿技术杂谈:智能对话的未来】深入比较ChatGPT与文心一言

【前沿技术杂谈&#xff1a;智能对话的未来】深入比较ChatGPT与文心一言 引言主体智能回复语言准确性知识库丰富度 深入分析&#xff1a;ChatGPT与文心一言的技术对比技术架构和算法数据处理和隐私用户界面和体验 应用场景分析未来展望技术进步的趋势潜在的挑战对社会的影响 结…

BIO、NIO、AIO 的区别

Java面试题 BIO 阻塞IO。一个连接一个线程&#xff0c;当服务端接受到多个客户端的请求时&#xff0c;客户端有连接请求时服务器端就需要启动一个线程进行处理&#xff0c;如果这个连接不做任何事情会造成不必要的线程开销 NIO 同步非阻塞IO。一个线程处理多个连接。NIO 包含…

【mars3d】 graphic.bindPopup(inthtml).openPopup()无需单击小车,即可在地图上自动激活弹窗的效果。

实现效果&#xff1a;new mars3d.graphic.FixedRoute({无需单击小车&#xff0c;即可在地图上实现默认打开弹窗的激活效果。↓↓↓↓↓↓↓↓ 相关链接说明&#xff1a; 1.popup的示例完全开源&#xff0c;可参考&#xff1a;功能示例(Vue版) | Mars3D三维可视化平台 | 火星科…

Python使用HTTP代理实现网络请求的调试和日志记录

在Python中&#xff0c;使用HTTP代理可以实现网络请求的调试和日志记录。通过HTTP代理&#xff0c;我们可以拦截、修改或记录网络请求和响应的数据&#xff0c;以便更好地了解和调试网络请求。 下面是一个使用Python和httplib2库实现HTTP代理的示例&#xff0c;同时对请求和响…

水经微图Web版1.5.0发布

让每一个人都有自己的地图&#xff01; 水经微图&#xff08;简称“微图”&#xff09;新版已上线&#xff0c;在该版本中主要新增了撤销、重做、截图、视频气泡、绘制时捕捉节点和属性导出选择等功能。 现在&#xff0c;为你分享一下本轮迭代上新主要功能&#xff0c;以及部…

安卓Android studio读写EM4305卡源码

本示例使用的发卡器&#xff1a; https://item.taobao.com/item.htm?id718720660087&spma1z10.5-c.w4002-21818769070.15.57dc6f89txUhXE <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xml…

C#设计模式教程(4):单例模式

单例模式(Singleton Pattern)是一种常用的设计模式,用于确保一个类只有一个实例,并提供一个访问它的全局访问点。在C#中实现单例模式通常有几种不同的方法,这里介绍几种典型的实现方式。 C# 单例模式的各种实现方式 1. 懒汉式(线程不安全) public class Singleton {p…

单链表的建立,把a~z 26个字母插入到链表中,并且倒叙,还要打印

单链表的建立&#xff0c;把a~z 26个字母插入到链表中&#xff0c;并且倒叙&#xff0c;还要打印 #include<stdio.h> #include<stdlib.h> #include<assert.h>typedef int DataType; typedef struct ListNode {DataType data;struct ListNode* next; }ListNo…