【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,一经查实,立即删除!

相关文章

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;

时序分解 | 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/

智能小程序真机调试教程

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

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

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

【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…

代码随想录算法训练营第九天|理论基础,232.用栈实现队列,225. 用队列实现栈

系列文章目录 代码随想录算法训练营第一天|数组理论基础&#xff0c;704. 二分查找&#xff0c;27. 移除元素 代码随想录算法训练营第二天|977.有序数组的平方 &#xff0c;209.长度最小的子数组 &#xff0c;59.螺旋矩阵II 代码随想录算法训练营第三天|链表理论基础&#xff…

React配置src根目录@

文章目录 1.打开webpack配置文件2.配置webpack 1.打开webpack配置文件 yarn eject or npm run eject 如果报错了记得提前 git commit一下 2.配置webpack 找到 webpack.config.js 文件在 webpack.config.js 文件中找到 alias 配置在alias里添加: path.resolve(src) , 或者 : pa…

提升开发效率的google插件

在如今的软件开发领域&#xff0c;Google Chrome浏览器的开发者插件扮演着至关重要的角色&#xff0c;为开发人员提供了丰富的工具和功能&#xff0c;从而提高了开发效率。下面介绍几款强大的 Google 插件&#xff0c;它们在不同方面为开发者提供了便利&#xff0c;并能显著提升…

MSVS C# Matlab的混合编程系列1 - 看似简单的问题引出

前言&#xff1a; 问题提出&#xff0c;如何把Matlab(本文简称MT)的算法集成到Visual Studio(本文简称VS)里面运行&#xff1f; 本文&#xff0c;通过编制一个MT中最简单的加法函数&#xff0c;我们把他做成 MSVS C#能够使用的动态库&#xff0c;说明了MSVS C# 和 MT集成的最…

下拉框联动控制,明细数据重复检查

1、明细数据重复检查针对下拉框的字段&#xff0c;在重新赋空值时没成功&#xff0c;被注释了。 2、下拉联动控制如图 价格类型&#xff1a;优惠价&#xff0c;门店价 与员工关系&#xff1a;本人&#xff0c;父母&#xff0c;儿女&#xff0c;兄弟姐妹 优惠类型&#xff1a…

精华推荐 |【深入浅出Sentinel源码】「源码探索专题」完整剖析Alibaba微服务架构体系之分布式系统的流量防卫兵的基本介绍(入门源码介绍)

整剖析Alibaba微服务架构体系之分布式系统的流量防卫兵的基本介绍 推荐资料Sentinel 是什么&#xff1f;Sentinel 具有以下特征: Maven的pom中配置main函数介绍总结说明自定义的rule加载规则 Sentinel的限流原理滑动时间窗口算法固定时间窗口算法普通的滑动窗口做法Sentinel的滑…

ReactNative中样式与布局的书写

样式 const styles StyleSheet.create({container: {flex: 1,justifyContent: center,alignItems: center,backgroundColor: #F5FCFF,}, welcome: {fontSize: 20, textAlign: center,margin: 10, }, instructions: {textAlign: center,color: #333333,marginBottom: 5,}, …