参加了几次笔试,发现序列检测器是常考的内容,而之前认为序列检测器真的很简单,但是这次X疆的笔试题做完之后,我怀疑自己了。

画状态转移图的时候,我开始犹豫了,我怕我会没考虑全,甚至有点晕。

人家又问:

针对这个具体设计如何衡量验证的完备性?

这是什么鬼?


题目:

用Moore型状态机实现序列“1101”从右到左的不重叠检测。

1、请画出状态转移图,其中状态用S1,S2,...来标识。

2、针对这个具体设计,如何衡量验证的完备性?


题目要求从右到左检测序列1101,也就是说检测序列1011,先画出状态转移图,后面我会用状态机实现,练练状态机的写法,很久不写会生疏。

还需要注意的一个点是不重叠检测,什么意思呢?大神告诉我,举例:不重叠检测1011011只能检测出来一个序列,如果是重叠检测,则能检测出来两个1011.

如下图,是我画出的一个状态转移图(测试当时画出的图并不是这样的,哎,这混乱的思维呀)

如果没有要求不重叠检测,则将S5状态之后输入1的下一个状态跳转到S3。

根据上面的状态机,使用三段式状态机来写一段实现代码:

`timescale 1ns / 1ps
//
// Company:
// Engineer: ljs
//
// Create Date: 2019/08/05 19:42:24
//module Seq_Detect(input clk,input rst_n,input seq_in,output reg seq_valid);localparam S1 = 5'b10000, S2 = 5'b01000, S3 = 5'b00100, S4 = 5'b00010, S5 = 5'b00001;reg [4 : 0] cur_state, nxt_state;always @(posedge clk or negedge rst_n) beginif(~rst_n) cur_state <= S1;else cur_state <= nxt_state;endalways@(*) begincase(cur_state)S1: if(seq_in == 1'b0) nxt_state = S1;else nxt_state = S2;S2:if(seq_in == 1'b0) nxt_state = S3;else nxt_state = S2;S3:if(seq_in == 1'b1) nxt_state = S4;else nxt_state = S1;S4:if(seq_in == 1'b1) nxt_state = S5;else nxt_state = S3;S5:if(seq_in == 1'b1) nxt_state = S2;else nxt_state = S1;default: nxt_state = S1;endcase endalways@(*) beginif(cur_state == S5) seq_valid = 1'b1;else seq_valid = 1'b0;endendmodule

仿真验证就不写了,时间不是太充裕。应该不问题,请自行验证吧。

欢迎评论。

至于第二问,应该属于验证类的东西,请教了下大佬,这样说:

正常的状态跳转,各种出错状态的跳转,输出是否正确的验证等。

例如:由于是不重叠检测,所以1011011只能检测到1个有效序列,10111011则能检测到两个有效序列。

我也不是太懂。。。

总的来说,这类题目,状态转移图最重要,画对了怎么考都行,画错了,写的设计代码也是错的。

IC/FPGA校招笔试题分析(四)再看Moore状态机实现序列检测器相关推荐

  1. IC/FPGA校招笔试题分析(三)

    还有1天就要进行某瓦科技的面试了,今天晚上赶紧复习下上次它的笔试题: 1.一个四位十六个状态的格雷码计数器,起始值为1001,经过100个时钟脉冲作用之后的值为(). 首先,算出100个脉冲后跑了多少 ...

  2. IC/FPGA校招笔试题分析(二)任意切换的时钟分频电路

    今天的笔试题是某芸科技的现场笔试题,数字前端的笔试题,要求很简单,就是现场写出代码实现: 任意切换1-8分频,且无论奇分频还是偶分频,占空比均为50%,我至今仍然认为,在那种紧张且时间有限的情况下(本 ...

  3. IC/FPGA校招笔试题分析(一)

    某发科的一个题目,仅仅给出下面一个电路图,让你画出Q1,Q2以及Q3的波形,并描述电路功能. 可以看出,这个电路很简单(可tm的当时就是没做出来),我当时疑惑的是初值是什么,输入初值是什么? 可想想和 ...

  4. FPGA校招笔试题分析

    仅仅给出下面一个电路图,让你画出Q1,Q2以及Q3的波形,并描述电路功能 第一个触发器的输入是第二个以及第三个触发器的输出的反馈,是Q1与Q2的或非:实际上就是同步三分频电路: 只要触发器复位有初值即 ...

  5. IC/FPGA笔试/面试题分析(八)近期IC/FPGA笔试面试讨论群题目汇总解析

    背景:IC前端设计/FPGA笔(面)试交流群,欢迎同行加入 自从开始邀请同行加入笔试面试交流群之后,目前已经有40多位同行加入,大家踊跃发言,各抒己见,让各自受益匪浅. 今天的这篇博文是将近期部分题目 ...

  6. IC/FPGA笔试/面试题分析(七)建立时间和保持时间类型考题汇总分析

    自从召集2020届校招同行加入新建立的"IC/FPGA校招笔试面试交流群",见识到了很多关于建立时间和保持时间分析的题目,在为别人解答疑惑,以及别人为自己解答疑惑的同时,自己对于知 ...

  7. IC/FPGA笔试/面试题分析(九)关于FIFO最小深度计算的问题

    IC/FPGA逻辑设计笔试题中最常见的体型莫过于FIFO最小深度的计算了,以前看到过计算FIFO最小深度,需要代入公式,直到看到这篇文档,才觉得使用逻辑分析的方法来看更能让人理解的更为深刻. 文档把计 ...

  8. IC/FPGA笔试/面试题分析(十一)基础概念(三态门等)

    上篇博文写了一些有关CMOS门电路的基础内容,相信认真看完,一定能画出各种CMOS门电路:CMOS门电路,这些是最常考的基础内容. 下面简单介绍一下其他概念题目: 1. 解释一下Vih,Vil,Vol ...

  9. IC/FPGA笔试/面试题分析(十)CMOS门电路

    目录 CMOS介绍 CMOS非门 CMOS与非门 CMOS或非门 CMOS或门 CMOS与门 CMOS与或式 CMOS或与非 CMOS介绍 MOS管分为NMOS和CMOS,二者成对出现在电路中,且二者 ...

最新文章

  1. bitmap对海量无重复的整数排序--转
  2. 【最新刷榜】层次化视觉Transformer来啦!性能大幅优于DeiT、ViT和EfficientNet
  3. Java的内存泄漏和垃圾回收机制
  4. 关于迪杰斯特拉算法(最短路)的PHP实现
  5. 日志消息是可执行代码和注释
  6. Java语言学习概述
  7. 走进统信软件,读懂国产操作系统新生态建设
  8. layui横向时间线_操盘线:线上阴线满仓,线下阳线清仓
  9. Leetcode 300.最长上升子序列(求长度)
  10. 周志华教授专著《集成学习:基础与算法》上市,豆瓣满分森林书破解AI实践难题
  11. python抓取网页内容并下载图片
  12. matlab分析傅里叶级数
  13. c语言算法单循环球队比赛安排,单循环赛赛程安排算法的研究.doc
  14. linux版filezilla使用教程,FileZilla使用测评
  15. SSH、SSL、TSL
  16. OPPO 数据湖统一存储技术实践
  17. 使用fsck修复损坏磁盘
  18. 海量数据下的舆情分析,该如何搭建?
  19. LAMP+haproxy+varnish实现网站访问的动静分离及静态资源缓存
  20. XLSX实现导出带样式的Excel表格的坑

热门文章

  1. linux 中FTP服务器的架设
  2. 饥荒联机版连不上服务器_饥荒联机版不搜索房间直连服务器教程 搜索不到房间怎么办_游侠网...
  3. 检测到你的手机处于root环境_选择群控系统的注意事项!繁星云手机盒子会比群控更合适好用吗!...
  4. python怎么理解函数的参数_理解Python中函数的参数
  5. thymeleaf 使用页面报错_异常处理-SpringBoot中thymeleaf对应前台页面大于号\小于号使用问题...
  6. Springboot 打包时引入外部jar
  7. android textview 设置字体,Android TextView设置字体风格
  8. 制作测试MM32F3277-MicroPython最小电路板
  9. 上海中学生的科技活动小论文集锦
  10. int的长度_Java中String长度有限制吗?身边的同事每一个人知道!