设计块:

module Detector2 (
input CP,Sin,nCR,
output reg Out
); reg [1:0] Current_state,Next_state;
parameter S0=2'b00, S1=2'b01, S2=2'b10, S3=2'b11;
always @(posedge CP , negedge nCR)
begin
  if(~nCR)
      begin
        Current_state = S0;
        Next_state = S0;
      end
     
  else
      Current_state = Next_state;
end
always @(Current_state, Sin)
begin
  Next_state=2'bxx;
  Out=1'b 0;
  case(Current_state)
    S0: begin Out=1'b0; Next_state=(Sin==1)? S0 : S1; end
    S1: begin Out=1'b0; Next_state=(Sin==1)? S2 : S1; end
    S2: begin Out=1'b0; Next_state=(Sin==1)? S0 : S3; end
    S3: if (Sin==1)
    begin Out=1'b1; Next_state=S0;  end
    else
    begin Out =1'b0; Next_state=S1; end
  endcase
end
endmodule

测试块:

`timescale 1ms / 1ms
module Detector2test();
reg CP,Sin,nCR;
wire Out ;
 
// 实例化被测试模块
  Detector2 test (
    .Sin(Sin),
    .CP(CP),
    .nCR(nCR),
    .Out(Out)
  );  
initial
  begin
    //Current_state=2'b00;
   // Next_state=2'b00;
    nCR=1'b0;
    CP=1'b0;
    #100 nCR = 1'b1;
    Sin=1'b0;
    #10Sin=1'b1;
    #10Sin=1'b0;
    #10Sin=1'b1;
    #10Sin=1'b0;
    #10Sin=1'b1;
    #10Sin=1'b0;
    #10Sin=1'b1;
    #10Sin=1'b0;
    #10Sin=1'b1;
    #10Sin=1'b0;
    #10Sin=1'b1;
    #10Sin=1'b0;
  end
always #5 CP = ~CP;
//always #10 Sin =~ Sin;
 
   
 
   
 
 
endmodule

 
   
 
   

使用书上的源代码,报错,分析,发现循环语句中发现为见过的语句。推测打印错误,开始以为是编码问题,使用vs code 打开后取出非法字符

编译还是出现错误,教材未对always @(pose<e CP, nege<e nCR)

begin修改代码做出解释,所以应该是和第一种编写方式一样才对。

修改后,编译通过。

1.参考例5.2.1,设计一个序列检测器。功能是检测出串行输入数据Sin中的4位二进制序列0101(自左至右输入),当检测到该序列时,输入Out=1;没有检测到该序列时,输入Out=0。要求不考虑序列重叠,如010101的序列中只包含一个0101序列。的更多相关文章

  1. java实现将包含多个<REC>的文件拆成若干只包含一个<REC>的文件

    遍历文件夹里的文件,将包含多个<REC>的文件拆成若干只包含一个<REC>的文件 package com.prepub; import java.io.BufferedRead ...

  2. FPGA 状态机-序列检测器verilog

    实现功能:检测出串行输入数据4位Data二进制序列0101,当检测到该序列的时候,out=1,否则out=0 (1)给出状态编码,画出状态图 (2)门电路实现 (3)verilog实现 首先规定Q3Q ...

  3. 每天进步一点点------基础实验_12_有限状态机 :Moore型序列检测器

    /********************************************************************************* * Company : * Eng ...

  4. 痞子衡嵌入式:揭秘i.MXRT1060,1010上串行NOR Flash冗余程序启动设计

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1060,1010上串行NOR Flash冗余程序启动设计. 工业产品设计里经常会有冗余程序/备份程序设计的需求,因为在工业 ...

  5. C# JabLib系列之如何保证只运行一个应用程序的实现

    保证只运行一个应用程序的C#实现: using System;using System.Collections.Generic;using System.Linq;using System.Windo ...

  6. Android开发笔记——以Volley图片加载、缓存、请求及展示为例理解Volley架构设计

    Volley是由Google开源的.用于Android平台上的网络通信库.Volley通过优化Android的网络请求流程,形成了以Request-RequestQueue-Response为主线的网 ...

  7. Verilog学习笔记简单功能实现(七)...............接口设计(并行输入串行输出)

    利用状态机实现比较复杂的接口设计: 这是一个将并行数据转换为串行输出的变换器,利用双向总线输出.这是由EEPROM读写器的缩减得到的,首先对I2C总线特征介绍: I2C总线(inter integra ...

  8. QDataStream类参考(串行化数据,可设置低位高位,以及版本号),还有一个例子

    QDataStream类提供了二进制数据到QIODevice的串行化. #include 所 有成员函数的列表. 公有成员 QDataStream () QDataStream ( QIODevice ...

  9. UE4笔记:利用Widget设计一个切换材质功能

    UE4引擎中的Widget蓝图是一个重要的工具,可用于场景中的页面叠加,镜头绑定,场景切换等多处地方,在这里笔者介绍一种利用控件蓝图和场景中物体进行信息交互的方法,直观的体现就是进行物体的材质切换. ...

  10. HBase--DependentColumnFilter(参考例过滤器 )详解

    DependentColumnFilter是一种允许用户指定一个参考列或引用列来过滤其他列的过滤器,过滤的原则是基于参考列的时间戳来进行筛选 . 官方说明: 大意:此过滤器提供两个参数--列族和列限定 ...

随机推荐

  1. 解读 --- yield 关键字

    引言 yield关键字是 C# 中的一种语言特性,用于在枚举器中简化迭代器的实现.它使得开发人员可以通过定义自己的迭代器来简化代码,而不必手动实现 IEnumerable 和 IEnumerator ...

  2. linux中利用crontab设置定时任务

    linux中利用crontab设置定时任务: # 每隔1个小时运行一次命令,四个*分别代表分,时,日,月,周 # crontab -l查看:crontab -e编辑 */1 * * * * /root ...

  3. AcWing 4797. 移动棋子题解

    算出数值为 \(1\) 的点离 \((3, 3)\) 的距离即可. #include <iostream> #include <cstring> #include <al ...

  4. 【青少年CTF】Crypto-easy 题解小集合

    Crypto-easy 1.BASE 拿到附件用cyberchef自动解码得到flag 2.basic-crypto 拿到附件发现是一串01的数字,这时候想到二进制转换 然后base64在线解码 接着 ...

  5. AcWing 第 92 场周赛 C题 4866. 最大数量 题解

    原题链接 链表 + 并查集乱搞做法: 思路 首先可以发现,想要让度数尽量大,那我们应该构造成菊花图,即下图所示: 对于每个需求,我们可以知道,如果之前他们没有连在一起,那我们一定得把他们连在一起,该过 ...

  6. 洛谷 P1387 最大正方形 题解

    方法1 二分+暴力+前缀和Check 注意细节 通过二维前缀和判定矩形内是否全为1,计算和等于长度的平方就判断为是 复杂度\(\Theta (n^2\log{n})\) #include <bi ...

  7. [nginx]借助nginx实现自动获取本机IP

    前言 在用脚本自动化部署应用时,有的应用需要指定本机IP,网上找到的方案大多是过滤ifconfig或者ip命令的结果,这里提供一种通过nginx获取本机ip的方法.大致思路为客户端向nginx发起请求 ...

  8. python中将时间转换为时间戳

    某平台url中的时间格式为时间戳,将时间变量传入url前,需要将固定格式的时间转换为时间戳.使用python中的time模块,对时间的几种格式进行转换. strptime(),将时间字符串转换成 结构 ...

  9. ubuntu/linux 好用的截图工具 搜狗输入法自带的截图快捷键,自己觉得不方便的话,修改为自己习惯的快捷键即可

    公司要求使用ubuntu开发,在安装完必要得开发工具之后,按照我在windows平台的习惯,就准备安装一个好用的截图工具了,我比较推荐的是snipaste([https://zh.snipaste.c ...

  10. 当小白遇到FullGC

    起初没有人在意这场GC,直到它影响到了每一天! 前言 本文记录了一次排查FullGC导致的TP99过高过程,介绍了一些排查时思路,线索以及工具的使用,希望能够帮助一些新手在排查问题没有很好的思路时,提 ...