1001序列检测器

这篇具有很好参考价值的文章主要介绍了1001序列检测器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

multisim仿真文件:1001序列检测器(mealy机)-单片机文档类资源-CSDN下载

modelsim仿真文件:1001序列检测器modelsim仿真和测试文件-单片机文档类资源-CSDN下载

实验报告:1001序列检测器实验报告-单片机文档类资源-CSDN下载

  • 课程设计名称:           1001序列检测器
  1. 设计要求

设计一个两位十进制数的BCD码检测器,待检测的两位十进制数来自每组某位同学的学号最后2位数。当检测到待测序列后,输出为高电平,否则输出为0。要求分别采用Moore机和Mealy机实现,给出仿真波形,并分析比较两种设计在波形上的区别。

  1. 设计原理
    1. 以学号最后两位数09为例,09的BCD码为1001,即设计1001序列检测器。
    2. 1001序列检测器mealy机状态图

1001序列检测器

                 状态转移表:

X

Q2

Q1

0

1

0

0

00/0

01/0

0

1

11/0

01/0

1

1

10/0

01/0

1

0

00/0

01/1

JK触发器特征方程为:Q*=JQ’+K’Q

由状态转移表可得:

Q*2=X’Q1Q’2+Q1X’Q2       Q*1=XQ’1+(X’Q2)’Q1

               即J1=X’Q1;K1=(Q1X’)’’;J2=XQ’1;K2=X’Q2。

              仿真图如下:

1001序列检测器(mealy机)-单片机文档类资源-CSDN下载

       对该电路输入0011_1100_1001_0000_1001_0100信号时,应得到00000000100100000001信号输出。

输出波形如下:1001序列检测器

 

软件仿真:

仿真代码:

module sequential_detector(clk, reset, d, y);

       //输入输出端口定义

       input clk, reset, d;

       output y;

       //内部寄存器及连线定义

       reg [2 : 0] state;

       wire y;

       //状态编码

       parameter idle = 2'b00, s1 = 2'b01, s2 = 2'b11, s3 = 2'b10;

       //状态机实现

       always@(posedge clk or posedge reset)

      ......

      ......

       assign y = (state == s3 && d == 1) ? 1 : 0;

endmodule

测试文件代码:

`timescale 1ns/1ns

`define halfperiod 10

module sequential_detector_t(clk, reset, d, y);

       //定义要观察的的信号

       output clk, reset, d, y;

       //定义内部连线及寄存器

       reg clk, reset;

       reg [23 : 0] data; //定义一个24位的寄存器用于存放待测数据码

       wire d, y;

       //生成测试信号逻辑

       initial

       begin

              clk = 0; reset = 0;

              #5 reset = 1;

              #20 reset = 0; data = 24'b0011_1100_1001_0000_1001_0100;

               ......

               ......

输出波形:

1001序列检测器

    1. Moor机实现

1001序列检测器

仿真代码:

module state_test(clk, reset, d, y);

  input clk, reset, d;

  output y;

  reg [2 : 0] state;

  wire y;

  parameter idle = 3'b000, s1 = 3'b001, s2 = 3'b011, s3 = 'b010,s4 = 3'b110;

  always@(posedge clk or posedge reset)

  begin

           if(reset) state <= idle;

           else

           begin

              casex(state)

   ......

   ......

endmodule   

测试代码:

`timescale    1ns/1ps

`define halfperiod 10

module state_test_tb(clk, reset, d, y);

  output clk, reset, d, y;

  reg clk, reset;

  reg [23 : 0] data;

  wire d, y;

  initial

  begin

           clk = 0; reset = 0;

           #5 reset = 1;

           #20 reset = 0; data = 24'b0011_1100_1001_0000_1001_0100;

  ......

  ......

输出波形:

1001序列检测器

          文章来源地址https://www.toymoban.com/news/detail-464490.html

到了这里,关于1001序列检测器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 简单的状态机设计——序列检测器

    1.序列检测器 序列检测器是时序数字电路中非常常见的设计之一。它的逻辑功能是将一个指定的序列从数字码流中识别出来。 2.例1:\\\"10010\\\"序列检测器 对串行输入的数据进行检测,检测“10010”。设X为数字码流输入,Z为检出标记输出,高电平表示“发现指定序列”,低电平表

    2024年02月11日
    浏览(43)
  • “01110”双输入口序列检测器的Verilog设计

    设计一个序列检测功能的时序电路,如图所示。其输入信号有clr、clk、A、 B,输出信号Z。其中clk为时钟信号, clr是低电平有效的异步复位信号,A、B是输入数据信号。有一个二进制串行数据D0D1D2D3……Dx,以两位为一组顺序送入电路,D0送入A,D1送到B,以此类推。电路检测此

    2024年02月12日
    浏览(43)
  • 实验四 用集成移位寄存器实现序列检测器

    一、实验要求 用移位寄存器和与非门设计一个 1101 序列检测器。电路连续不停地工作,对 串行输入的序列进行检测,当连续检测 4 个码元符合检测码 1101 时,检测器输出 为 1 ,指示灯亮,其他情况下输出为 0 ,指示灯灭。 二、实验设备 1 . Mini-FPGA 开发板( Cyclone IV 系列

    2024年02月03日
    浏览(46)
  • 【 FPGA 】序列检测器 11010 (mealy状态机,moore状态机)

            状态机是硬件电路设计的常用的描述工具,也是电路设计的重要思想。很早之前我就知道mealy状态机和moore状态机,但是对两者的差别不是非常的清楚,最近在学习系列检测器的设计时对这两种状态机和一段式、三段式状态机有了更深刻的了解,在这里分享自己的见解

    2024年02月05日
    浏览(41)
  • vivado序列检测器verilog代码ego1开发板验证

    名称:vivado序列检测器verilog代码ego1开发板验证 软件:VIVADO 语言:Verilog 代码功能: 设计一个111序列检测器。 要求:当检测到3个或3个以上的1时,输出为1,其他输入情况输出为0. 画出状态转移图,完成 Verilog描述。 本代码已在ego1开发板验证,开发板如下,其他开发板可以修改管

    2024年02月03日
    浏览(56)
  • 用jk触发器设计一个011序列检测器的设计分析过程

       心得体会:经过此次设计,加深了对时序逻辑电路的理解,当要求对一个连续的一串信号进行输入输出处理时可以用到有记忆存储、反馈功能的jk触发器或者d触发器。

    2024年02月04日
    浏览(47)
  • 15.1_使用Verilog设计:一个简单的状态机设计——序列检测器(可实现重复性检测)

    序列检测器的逻辑功能: 序列检测是将一个指定的序列从数字码流中识别出来。本项目要检测的序列是:10010。 设X是“数字码流的输入”,Z是“检出标记输出”;高电平是“实现指定序列”;低电平是“没有发现指定序列”。码流如下表所示。 由上述码流可知:该序列检测

    2024年01月23日
    浏览(40)
  • Verilog设计“111”检测器与“01110”检测器并测试所有情况

    使用Quartus+modelsim完成本次设计 分析 分析题目,得到其有限状态机为下图: 代码实现 Testbench 结果 Modelsim结果如下图所示,分析可知实现了题目要求。 逻辑综合出来的电路如下图所示:即只有S3状态才会输出OUT=1。 其中的state的状态机如下图所示(RLT viewer中所示),可见其与

    2024年02月08日
    浏览(57)
  • 【opencv】传统目标检测:Haar检测器实现人脸检测

    传统目标分类器主要包括Viola Jones Detector、HOG Detector、DPM Detector,本文主要介绍VJ检测器,在VJ检测器基础上发展出了Haar检测器,Haar检测器也是更为全面、使用更为广泛的检测器。 Viola Jones Detector是作为人脸检测器被Viola和Jones提出来的,后来Rainer Lienhart和Jochen Maydt将这个检测

    2024年02月12日
    浏览(39)
  • OpenCV分类检测器训练

    OpenCV中有两个程序可以训练级联分类器: opencv_haartraining 和opencv_traincascade。opencv_traincascade 是一个新程序,使用OpenCV 2.x API 以C++ 编写。这二者主要的区别是 opencv_traincascade 支持 Haar、Hog和 LBP(Local Binary Patterns) 三种特征,并易于增加其他的特征。与Haar特征相比,LBP特征是整数

    2024年02月17日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包