当前位置: 首页 > wzjs >正文

网站开发日程安排百度搜索风云榜排名

网站开发日程安排,百度搜索风云榜排名,wordpress获取文章发表时间,免费户型图设计软件文章目录 一、序列检测二、牛客真题1. 输入序列连续的序列检测(输入连续、重叠、不含无关项、串行输入)写法一:移位寄存器写法二:Moore状态机写法三:Mealy状态机 一、序列检测 序列检测器指的就是将一个指定的序列&…

文章目录

  • 一、序列检测
  • 二、牛客真题
    • 1. 输入序列连续的序列检测(输入连续、重叠、不含无关项、串行输入)
    • 写法一:移位寄存器
    • 写法二:Moore状态机
    • 写法三:Mealy状态机


一、序列检测

  序列检测器指的就是将一个指定的序列(以‘10010’为例)从数字码流中识别出来,是一个经典的数字电路实例,也是数字IC和FPGA笔试面试中常考的知识点。写法总共可分为三种:
写法:

  • 移位寄存器
  • Moore状态机
  • Mealy状态机

  常考的题目类型有以下特点,可能取其一类型进行拷打,也可能多个类型进行结合。比如说输入非连续且并行输入,最终需要提取出某个非重叠序列。
题目类型:

  • 输入连续/非连续,非连续输入会有使能信号valid
  • 重叠/非重叠序列检测
  • 含无关项/不含无关项,比如说检测输入信号a是否满足011XXX110序列(长度为9位数据,前三位是011,后三位是110,中间三位不做要求)
  • 串行输入/并行输入,比如说并行输入2bit数据

二、牛客真题

1. 输入序列连续的序列检测(输入连续、重叠、不含无关项、串行输入)

  以牛客上比较简单的题目VL25 输入序列连续的序列检测,介绍三种写法。
在这里插入图片描述

写法一:移位寄存器

module sequence_detect(input clk,input rst_n,input a,output reg match);reg [7:0] shift_reg;always @(posedge clk or negedge rst_n)beginif(~rst_n)beginshift_reg <= 'd0;endelse beginshift_reg <= {shift_reg[6:0], a};endendalways @(posedge clk or negedge rst_n)beginif(~rst_n)beginmatch <= 1'b0;endelse if(shift_reg==8'b0111_0001)beginmatch <= 1'b1;endelse beginmatch <= 1'b0;endend
endmodule

写法二:Moore状态机

module sequence_detect(input clk,input rst_n,input a,output reg match);localparam idle  = 'd0;localparam s0    = 'd1;localparam s1    = 'd2;localparam s2    = 'd3;localparam s3    = 'd4;localparam s4    = 'd5;localparam s5    = 'd6;localparam s6    = 'd7;localparam detect= 'd8;reg [3:0] curr_state;reg [3:0] next_state;always @(posedge clk or negedge rst_n)beginif(~rst_n)curr_state <= idle;else curr_state <= next_state;endalways @(*)begincase(curr_state)idle    : next_state = (a==1'b0)?s0     :idle   ;s0      : next_state = (a==1'b1)?s1     :s0     ;s1      : next_state = (a==1'b1)?s2     :s0     ;s2      : next_state = (a==1'b1)?s3     :s0     ;s3      : next_state = (a==1'b0)?s4     :idle   ;s4      : next_state = (a==1'b0)?s5     :s1     ;s5      : next_state = (a==1'b0)?s6     :s1     ;s6      : next_state = (a==1'b1)?detect :s0     ;detect  : next_state = (a==1'b1)?s3     :s0     ;default : next_state = idle;endcaseendalways @(posedge clk or negedge rst_n)beginif(~rst_n)match <= 1'b0;else if(curr_state==detect)match <= 1'b1;elsematch <= 1'b0;endendmodule

写法三:Mealy状态机

  注意:牛客上仿真需要用的是Moore状态机,因此Mealy状态机仿真结果的match会提前一个周期到来.

module sequence_detect(input clk,input rst_n,input a,output reg match);localparam idle  = 'd0;localparam s0    = 'd1;localparam s1    = 'd2;localparam s2    = 'd3;localparam s3    = 'd4;localparam s4    = 'd5;localparam s5    = 'd6;localparam s6    = 'd7;reg [2:0] curr_state;reg [2:0] next_state;always @(posedge clk or negedge rst_n)beginif(~rst_n)curr_state <= idle;else curr_state <= next_state;endalways @(*)begincase(curr_state)idle    : next_state = (a==1'b0)?s0     :idle   ;s0      : next_state = (a==1'b1)?s1     :s0     ;s1      : next_state = (a==1'b1)?s2     :s0     ;s2      : next_state = (a==1'b1)?s3     :s0     ;s3      : next_state = (a==1'b0)?s4     :idle   ;s4      : next_state = (a==1'b0)?s5     :s1     ;s5      : next_state = (a==1'b0)?s6     :s1     ;s6      : next_state = (a==1'b1)?s1     :s0     ;default : next_state = idle;endcaseendalways @(posedge clk or negedge rst_n)beginif(~rst_n)match <= 1'b0;else if(curr_state==s6 && a==1'b1)match <= 1'b1;elsematch <= 1'b0;endendmodule
http://www.dtcms.com/wzjs/414622.html

相关文章:

  • 云速建站可以建个人网站吗发稿软文公司
  • 苏州网站建设2万起百度手机应用市场
  • 信仰类型的企业网站360营销
  • 广东建设信息网站首页宁波seo关键词
  • 重庆模板建站公司百度seo指数查询
  • 广州做网络服装的网站建设设计公司企业网站
  • 网站建设改版百度知道
  • 数学网站怎么做的手游推广平台
  • 网站留言效果怎么做seo搜索引擎优化论文
  • 织梦网站地图自动更新百度搜索风云榜小说
  • 网站上做网页怎么改图片网络营销怎么做?
  • 住建局领导班子成员分工seo托管服务
  • 近期的国际新闻中国seo
  • 淘客导购网站怎么做最近发生的热点新闻
  • 公司的国外网站怎么建关键词免费网站
  • 网站开发用什么书谷歌google
  • 海南在线人才在线网站seo方案案例
  • 濮阳网站注册营销软文范例大全
  • 淘宝客论坛响应式php网站下载国外新闻最新消息
  • 彩票代购网站开发郑州专业网站建设公司
  • 建湖县建设局网站学生个人网页制作html代码
  • 网站开发有哪些认证小吴seo博客
  • 做网站要几个部门组成哪个搜索引擎最好用
  • discuz和wordpressseo关键词的选择步骤
  • 用python做网站开发的课程长沙网络推广外包费用
  • 网站开发需要准备什么软件莆田百度seo公司
  • 大同市住房城乡建设网站html家乡网站设计
  • 网站建设视频软文代写网
  • 做外贸网站租什么服务器百度网站客服电话
  • 为澳门赌场做网站维护东莞网络推广