【FPGA & Modsim】序列检测

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

实验题目:  序列检测器设计                                  

实验目的:  掌握应用数字逻辑设计集成开发环境进行序列检测器设计的方法;掌握时序逻辑电路设计的过程。                      

实验内容:

1、设计一个序列检测器,用于检测输入数据中的特定序列“10010”。

2、实现一个电路,当检测到该序列时,输出为1,否则为0。

3、分析实验结果,验证电路的功能是否符合设计要求。

实验步骤:

1、在数字逻辑集成开发环境中新建一个序列检测器工程;

2、编写Verilog HDL源程序;

3、编译和逻辑综合源程序;

4、编写Verilog HDL仿真测试程序;

5、调用数字逻辑设计仿真环境对源程序进行仿真;

6、安装输入/输出端口建立约束文件;

7、下载到实验开发板,观察实践运行结果。

实验数据记录:

  1. 写出编写的Verilog HDL源程序。

`timescale 1ns/1ps

module seq_tb();

reg [23:0] d;

reg clk;

reg rst_n;

wire y;

reg data;

seq_test uut (

    .clk(clk),

    .rst_n(rst_n),

    .data(data),

    .y(y)

);

initial begin

clk=0;

rst_n=0;

#10;

rst_n=1;

#20;d = 24'b0011_0100_1001_0110_1001_0101;

end

always #10 clk=~clk;

always@(negedge clk) begin

#10  data = d[23];

 d = {d[22 : 0], d[23]}; //Parallel to serial

end

endmodule

  1. 写出编写的Verilog HDL仿真测试程序。

`timescale 1ns/1ps

module seq_test(clk,rst_n,data,y

   );

input clk;

input rst_n;

input data;//10010

output y;

reg [2:0] state;

reg [2:0] next_state;

wire y;

parameter s_idle=3'b000,s1=3'b001,s2=3'b010,s3=3'b011,

            s4=3'b100,s5=3'b101,s6=3'b110,s7=3'b111;

always @(posedge clk or negedge rst_n)

begin

        if (~rst_n)

            next_state <= 0;

    else

            next_state <= state;

end

always @(posedge clk or negedge rst_n)

begin

        if (~rst_n)

            state <= s_idle;

    else begin

    case(state)

        s_idle: begin if(data ==1)

                    state <= s1;

                else

                    state <= s_idle; end

        s1:     begin  if(data ==0)

                    state <= s2;

                else

                    state <= s1;end

        s2:     begin  if(data ==0)

                    state <= s3;

                else

                    state <= s7; end

        s3:     begin  if(data ==1)

                    state <= s4;

                else

                    state <= s6; end

        s4:     begin  if(data ==0)

                    state <= s5;

                else

                    state <= s1; end

        s5:     begin   if(data == 1)

                     state <= s1;

else

                     state <= s3;end

s6: begin  if(data == 1)

                            state <= s7;

                               else

                            state <= s6;end

s7: begin  if(data == 1)

                               state <= s1;

                 else

                             state <= s2;end

default: state <= s_idle;

    endcase

  end

end

assign y = (state == s4 && data == 0)?1'd1:1'd0;

endmodule

3、画出仿真环境中测试波形图。

【FPGA & Modsim】序列检测,fpga开发

【FPGA & Modsim】序列检测,fpga开发

【FPGA & Modsim】序列检测,fpga开发

问题讨论:

论述时序逻辑电路中有限状态机设计与实现方法。文章来源地址https://www.toymoban.com/news/detail-831232.html

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

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

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

相关文章

  • FPGA学习(2)m序列和gold序列的产生

           m序列是最长线性反馈移位寄存器序列的简称。它是由带线性反馈的移存器产生的周期最长的序列。一般来说,一个n级线性反馈移存器可能产生的最长周期等于。         m序列是一种典型的伪随机序列。在通信领域有着广泛的应用,如扩频通信、卫星通信的码分

    2024年02月11日
    浏览(40)
  • m序列生成方法及其fpga实现

    1、 什么是PN码 PN码的英文名字叫Pseudo-Noise Code,(pseudo:adj.伪; 假的),直译过来就是伪噪声码,这里噪声主要是想表达随机的意思。其中最重要的一种PN序列叫 m序列 (全称叫最长线性反馈移位寄存器序列),说它重要主要是研究得早,理论成熟,用得多。 其本质上就是一串

    2024年02月03日
    浏览(30)
  • 基于FPGA的运动目标检测跟踪系统项目,FPGA项目,FPGA图像处理(已实现)

      1.项目简介 基于FPGA的运动目标检测跟踪系统项目,FPGA项目,FPGA图像处理 FPGA项目 采用帧间差分法作为核心算法,该项目涉及图像采集,颜色空间转换,帧间差分核心算法,腐蚀等形态学处理,目标定位,目标标识,图像显示等模块。 通过该项目可以学习到以下两方面内容

    2024年02月07日
    浏览(49)
  • 基于fpga的sobel边缘检测

    基于fpga的sobel边缘检测,部分的代码参考的是野火正点原子的代码和视频。通过matlab将图片转成txt文件,并编写verilog代码将处理好的数据再转成txt文件,同时通过matlab将txt文件再读取成图片。 文章目录 前言 一、verilog代码 1.sobel_edge代码 2.tb文件(读写txt文件) 注意 Sobel算法

    2024年02月08日
    浏览(65)
  • Verilog实现上升、下降沿检测 FPGA

    源文件 激励文件 仿真波形 释义 代码的含义,已经通过注释讲明,如有不清楚存在疑问的,可以评论留言。 这里解释下,为什么要拍2拍,为什么不只是拍1拍,也就是为什么存在两个signal_buff。 试想一下,当上升沿到来的时候,signal_buff_1为低电平,signal为高电平,可以直接

    2024年02月11日
    浏览(35)
  • Python与FPGA——sobel边缘检测

      边缘存在于目标、背景区域之间,它是图像分割所依赖的较重要的依据,也是图像匹配的重要特征。边缘检测在图像处理和计算机视觉中,尤其在图像的特征提前、对象检测以及模式识别等方面都有重要的作用。   下图是Gx的计算,Gy的计算类似。   为什么要乘以一

    2024年03月16日
    浏览(54)
  • FPGA:计算滑动求和----信号检测计算信号功率

    FPGA:计算滑动求和----信号检测计算信号功率 在进行简单信号检测过程中,需要计算信号的能量,这时候需要用到滑动求和的计算过程。 这里记录如何利用Verilog编写滑动求和过程。 思路:滑动求和的过程需要按照滑动窗口的大小,依次向后进行滑动求和; 从任务出发:输入

    2024年02月11日
    浏览(36)
  • Fpga开发笔记(二):高云FPGA发开发软件Gowin和高云fpga基本开发过程

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/135620590 红胖子网络科技博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中… 上一篇:《Fpga开发笔记(一):

    2024年01月16日
    浏览(73)
  • 基于FPGA:多目标运动检测(手把手教学①)

          在3月份发表了基于FPGA:运动目标检测(原理图+源码+硬件选择,可用毕设)后反应很强,很多同学表示,希望我们能 在运动目标检测的基础上 , 做多目标运动检测。 最近跟其他两个工程师刚好有空,就把就版本的工程 做了一次超大升级。       本次工程,花了

    2023年04月08日
    浏览(53)
  • 【FPGA】高云FPGA之科学的FPGA开发流程

    项目需要做什么,了解系统的功能,如果是大型的项目还会划分模块 通过使用verilog、VHDL、成熟的IP核或者通过画原理图的方式进行逻辑输入设计 当逻辑输入设计完成后需要对其进行验证,该部分由软件部分进行验证,如果逻辑输入有问题需要检查语法错误或则重新设计设计

    2024年02月04日
    浏览(50)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包