11.22数电第四次报告

《数字逻辑》实验报告

姓名

贾轲

年级

22

学号

20220669

专业、班级

计算机科学与技术计卓01

实验名称

实验十五 摩尔状态机序列检测器&实验十六 米利状态机序列检测器

实验时间

 2023.11.23

实验地点

DS1410

实验成绩

 实验性质

验证性  设计性  综合性

教师评价:

□算法/实验过程正确; □源程序/实验内容提交  □程序结构/实验步骤合理;

□实验结果正确;      □语法、语义正确;     □报告规范;           

评语:                          

                             评价教师签名(电子签名):

一、实验目的

实验十五 摩尔状态机序列检测器(*****)

  1. 设计“1101”序列检测的状态转换图;
  2. 设计一个 8 位并转串输出模块 par2ser。该器件有 8 位输入 d[7:0],1 位输出 q,另有一个 clk 端,一个 set 端。set端上升沿将 8位输入锁存到逻辑右移移位寄存器中。
  3. 调用并转串输出模块,使用Verilog HDL语言的行为描述方式实现一个摩尔状态机,能检测一个8位的二进制数据中是否存在“1101”序列,如果检测到该序列则指定的LED灯亮;
  4. 综合、实现、生成bit流,下载到Nexys4开发板进行验证;

实验十六 米里状态机序列检测器(*****)

设计实现一个米里状态机,能检测一个8位的二进制数据中是否存在“1011”序列。

二、实验项目内容

  1. 设计“1101”序列检测的状态转换图;
  2. 设计一个 8 位并转串输出模块 par2ser。该器件有 8 位输入 d[7:0],1 位输出 q,另有一个 clk 端,一个 set 端。set端上升沿将 8位输入锁存到逻辑右移移位寄存器中。
  3. 调用并转串输出模块,使用Verilog HDL语言的行为描述方式实现一个摩尔状态机,能检测一个8位的二进制数据中是否存在“1101”序列,如果检测到该序列则指定的LED灯亮;
  4. 综合、实现、生成bit流,下载到Nexys4开发板进行验证;

三、实验设计

如图为moore与mealy状态机的状态转移图

四、实验过程或算法(关键步骤、核心代码注解等)

文件结构

顶层文件串联起对应的模块,消抖模块用于消除按键抖动,转换模块用于并转串,将8位的二进制信号转化为一位一位的信号,状态机模块负责状态转移与输出结果。

顶层文件:

Mealy:

Moore:

用key模拟时间步

按键消抖模块:

思路为设置多个信号记录按键的输入信号,如果在一定的时间内,检测到信号都相同,那么就可以认为按键在这一段时间内保持稳定,也就是稳定,认为可以使用此时记录的信号

信号声明:clk为系统时钟,rst为复位信号,key与debkey分别代表实际按键输入的信号以及最后输出的认为是按键稳定后的信号

此部分负责分频,产生一些短暂的延迟,在这些延迟后进行取样。

此部分设置三个寄存器,用来连续记录,目的就是实现检测输入的值是否稳定

最后输出就是,如果三个寄存器寄存的值都相同,那么就可以认为按键已经稳定

串并转换模块:

信号声明:

Clk为时钟信号,rst为复位信号,en为使能信号,datain为输入的8位信号,dataout显示此时转化出的位上的数是否为1,dout显示这8位信号里是否有1101;data为移位寄存器,当clk循环一次时,寄存器循环右移一位;cnt用于计数,记录当前进行到了8位里的第几位。

每次输出移位寄存器里的最高位为当前的并转串结果

此部分调用状态机模块,用于状态转换与生成最终输出,其传入的信号即此时并转串的结果,移位寄存器的最高位

状态机代码:

大体可分为现态次态转换,状态转移逻辑,输出逻辑等三部分

现态次态转换的逻辑固定,在每个时钟上升沿来临时执行;

状态转移逻辑、输出逻辑依据具体问题与状态机类型确定

Moore:

Moore状态机的输出仅取决于现态

Mealy:

Mealy状态机的输出由现态与输入信号共同决定

五、实验过程中遇到的问题及解决情况(主要问题及解决情况)

如何完成状态机代码设计?

解决情况:完全解决。

Moore状态机与mealy状态机区别是什么?在解决这一问题上有什么不一样的地方?

解决情况:完全解决。

六、实验结果及分析和(或)源程序调试过程

最终实现效果为,

R2为复位开关,T1为使能开关,V2~V17从左至右为输出的8位信号的低位到高位,T17为模拟时钟信号,按一次表示一个时间步;V14为当前并转串结果,U16显示当前是否检测到目标序列(1101)

就MOORE与MEALY的不同点,MOORE状态机的输出要在下个时间步里才会输出,例如序列1101000,U16并非在第四个时间步里亮,而是在第五个时间步里亮,这是因为MOORE机的输出仅取决于现态;与之相比,由于MEALY机输出取决于输入与现态,所以可以在当下的时间步里输出结果,即上例中的U16会在第四个时间步里亮。

七、小组分工情况说明

本实验由贾轲20220669完成

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

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

相关文章

SIFT尺度不变特征变换

SIFT(Scale-Invariant Feature Transform)是一种用于图像处理和计算机视觉中的特征提取和匹配的算法。它的主要优点是对图像的尺度、旋转和亮度变化具有较强的鲁棒性。 基本原理: Scale-space peak selection: Potential location for finding features.Keypoint Localizat…

JMeter之压力测试——混合场景并发

在实际的压力测试场景中,有时会遇到多个场景混合并发的情况,这时就需要设置不同的并发比例对不同场景请求数量的控制,下面提供两种方案。 一、多线程组方案 1.业务场景设计如下:场景A、场景B、场景C,三个场景按照并发…

HNU 练习八 结构体编程题1. 评委打分

【问题描述】 校园卡拉OK比赛设置了7名评委,当一名选手K完歌之后,主持人报出歌手名字后,7位评委同时亮分,按照惯例,去掉一个最高分和一个最低分后,其余5位评委评分总和为该选手的最终得分。 一共有n组选手参…

商用车量产智能驾驶路径思考

1、商用车量产智能驾驶特点 2、量产自动驾驶路径 3、商用车ADAS法规件 4、高等级自动驾驶

oracle impdp 导入元数据表空间异常增大的解决办法

expdp导出的时候指定了contentsmetadata_only只导出元数据,但是在impdp导入到新库的时候,发现新库的表空间增长非常大,其实这个直接就可以想到,应该是大表的initial segment过大导致的 正常impdp,在执行创建表和索引的…

c/c++ 字符 - ‘0‘ 或者 + ‘0‘ 的含义

总的就是说,int0char;char-0int ,但是我们在做题时,这两个式子对数字才有意义,比如 char x50;int y5-0. 而我们平常对字符操作,比如大写字符转小写(char cA->a),只需要cc-Aa,等…

Java LinkedHashMap

LinkedHashMap 继承于 HashMap。在 HashMap 基础上, 维护了一条双向链表, 用来记录存入 Map 中的数据的顺序, 即存储到 Map 中的 key-value 是有序的。 解决了 HashMap 无法顺序访问的和保持插入顺序的问题。 1 LinkedHashMap 的结构定义 LinkedHashMap 是基于 HashMap 的实现…

springboot3.2 整合 mybatis-plus

springboot3.2 整合 mybatis-plus springboot3.2 正式发布了 迫不及待地的感受了一下 结果在整个mybatis-plus 的时候遇到了如下报错 java.lang.IllegalArgumentException: Invalid value type for attribute factoryBeanObjectType: java.lang.String. ____ _ …

华为拆分零部件业务,长安入股,赛力斯接洽中

作者 |德新 编辑 |王博 11月26日,长安汽车官宣与华为在智能汽车零部件业务上的投资与合作: 华为拟成立一家新的公司,并将其在智能汽车解决方案业务上的核心技术和资源注入新公司,长安汽车及关联方有意投资该新公司。 参照目前长…

每日一题--寻找重复数

蝶恋花-王国维 阅尽天涯离别苦, 不道归来,零落花如许。 花底相看无一语,绿窗春与天俱莫。 待把相思灯下诉, 一缕新欢,旧恨千千缕。 最是人间留不住,朱颜辞镜花辞树。 目录 题目描述: 思路分析…

搭建Appium工具环境

1、安装Java Development Kit(JDK) 前往Oracle官网下载JDK。 在https://www.oracle.com/java/technologies/javase-jdk11-downloads.html 找到最新版本的JDK。根据操作系统选择适合的版本,并根据指示下载安装程序。 安装JDK。运行下载的安…

动静分离+多实例实验(nginx+tomcat)

Nginx服务器:192.168.188.14:80 Tomcat服务器1:192.168.188.11:80 Tomcat服务器2:192.168.188.12:8080 192.168.188.12:8081 部署Nginx负载均衡器 关闭防火墙 systemctl stop firewalld setenforce 0 安装依赖 yum -y install pcre-dev…

Java 基础学习(二)运算符与分支流程控制

1 运算符 1.1 运算符概述 1.1.1 运算符概述 运算符是一种告诉计算机执行特定的数学或逻辑等操作的符号。Java运算符号包括:数学运算符、关系运算符、逻辑运算符、赋值运算符号、字符串连接运算符。计算机本质上只能处理数字,处理数字的最常见的方式就…

华夏ERP信息泄露漏漏洞复现 [附POC]

文章目录 华夏ERP信息泄露漏漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 华夏ERP信息泄露漏漏洞复现 [附POC] 0x01 前言 免责声明:请勿利用文章内的相关技术从事非法测试&#x…

好用的基于layui的免费开源后台模版layuimini

发现一个好用的后台模版 基于layui的免费开源后台模版layuimini layuimini - 基于Layui的后台管理系统前端模板 easyadmin开源项目 EasyAdmin是基于ThinkPHP6.0Layui的快速开发的后台管理系统。 演示站点 演示地址:跳转提示(账号:admin&a…

Java实现—数据结构 1.初识集合框架

一、什么是集合框架 Java集合框架,又被称为容器,是定义在java.util包下的一组接口interfaces和其实现类classes 其主要表现为将多个元素element置于一个单元中, 集合框架是由若干个类组成的,每个类的背后就是一种数据结构&…

Jupyter Markdown 插入图片

首先截图 注意 这一步是关键的!! 它需要使用电脑自带的截图,用qq啊vx啊美图秀秀那些都不行哦。 截图之后复制: 然后快捷键粘贴到jupyter里面,它会生成一段代码(没有代码就是说截图形式不对)&a…

【数据结构】线段树

目录 1.概述2.代码实现2.1.聚合操作——求和2.2.聚合操作——求和、求最小值、求最大值 3.应用4.与前缀和之间的区别 更多数据结构与算法的相关知识可以查看数据结构与算法这一专栏。 1.概述 (1)线段树 (Segment Tree) 是一种二叉树形数据结构&#xff…

C#使用WebSocket进行链接

C#使用WebSocket进行网络链接,和服务端搭建一个长连接进行通信。 有两种方式:串口方式(SerialPort)和网口方式(Socket 包括:TcpClient和UdpClient) 准备: 1.C#使用WebSocket的一种…

计算机网络:网络层

0 本节主要内容 问题描述 解决思路 1 问题描述 两大问题(重点,也是难点): 地址管理;路由选择。 1.1 子问题1:地址管理 网络上的这些主机和节点都需要使用一种规则来区分,就相当于是一种身…