实验 5 巴克码检测器

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

5.1 实 验 目 的

(1) 了解通信领域中经常使用的巴克码检测器的设计方法。

(2) 掌握使用状态机设计时序电路的方法。

5.2 实 验 仪 器 与 器 材

(1) EDA 开发软件 一 套

(2) 微 机 一 台

(3) 实验开发系统 一 台

(4) 打印机 一 台

(5) 其他器件与材料 若 干

5.3 实 验 说 明

巴 克 码 检 测 在 数 据 通 信 、 雷 达 和 遥 控 等 领 域 中 用 于 检 测 同 步 识 别 标 志 , 它 是 一 种用来检测一组或多组序列信号的电路。本实验中的巴克码检测器可使用多种方法 实 现 ,为 了 更 好 地 掌 握 HDL 的 使 用 方 法 ,建 议 同 学 们 使 用 状 态 机 进 行 设 计 ,实 验 中 检测的串行码组可用脉冲按键输入,输出的检测结果由发光二极管或数码管指示, 巴克码检测器示意图如图 5.1 所示。

5.4 实 验 要 求

(1) 设 计 一 个 巴 克 码 检 测 器 , 当 检 测 器 连 续 收 到 一 组 串 行 码 {1110010}后 , 其 输 出 为 1,其余码组输出为 0;

(2) 对设计的巴克码检测器进行仿真验证;

 (3) 下载并用实验开发系统验证。

5.5 实 验 报 告 要 求

 (1) 写出设计过程和源文件;

module buc_devider(clk, rst, din, valid, threshold);

  input clk;

  input rst;

  input din;

  input [2:0] threshold;

  output valid;

  wire [6:0] data_buc;

  wire [2:0] threshold;

  buc_dev U1(.din_buc(data_buc), .threshold(threshold), .valid(valid));

  buc_recieve U2(.clk(clk), .rst(rst), .din(din), .dout_buc(data_buc));

endmodule

// 数据接收模块

module buc_recieve(clk, rst, din, dout_buc);

  input clk;

  input rst;

  input din;

  output [6:0] dout_buc;

  reg [6:0] dout_buc;

  always @(posedge clk)

    if (!rst)

      dout_buc <= 7'b0;

    else

      dout_buc <= {dout_buc[6:0], din};

endmodule

// 巴克码检测模块

module buc_dev(din_buc, threshold, valid);

  parameter LENGTH = 7;

  parameter BUC = 7'b1110010;

 

  input [6:0] din_buc;

  input [2:0] threshold;

  output valid;

  reg valid;

  reg [2:0] sum;

  integer i;

  always @(din_buc)

  begin

    sum <= 0;

    for (i = 0; i < LENGTH; i = i + 1)

      if (din_buc[i] == BUC[i])

        sum <= sum + 1;

  end

  always @(sum)

  begin

    if (sum >= threshold)

      valid = 1;

    else

      valid = 0;

  end

endmodule

测试代码:

`timescale 1ns/1ns

module bkjtb;

  reg clk;

  reg rst;

  reg din;

  reg[2:0] threshold;

  wire valid;

 bkjtb dut (

    .clk(clk),

    .rst(rst),

    .din(din),

    .valid(valid),

    .threshold(threshold)

  );

  `timescale 1ns/1ns; 

module buc_devider_tb; 

reg clk, rst, din; 

reg[2:0] threshold; 

reg[6:0] data;  

initial 

  begin 

     clk = 1'b0; 

     forever 

     #10 clk = ~clk; 

   end 

   

initial 

  begin 

     rst = 1'b0; 

    #5 rst = 1'b1; 

  end 

   

initial 

   begin 

    data = 7'b1110010; 

    threshold = 3'b101;

       end 

   

   integer i; 

   always@(posedge clk or negedge rst) 

  if(!rst)   

      begin 

        din = 1'b0; 

        i = 10; 

       end 

   else 

    

         begin

         if(i == 0) 

         begin 

          din = data[i]; 

         i = 6; 

        end 

      else 

        begin 

           din = data[i];

          i = i - 1; 

        end 

   end 

buc_devider v1(.clk(clk), .rst(rst), .din(din), .valid(valid), .threshold(threshold)); 

 endmodule

当遇到

实验 5 巴克码检测器,fpga开发


1110010时,会输出1,在再次接收到一段序列时再次变为0,经检测后再发生变化。

实验心得:巴克码检测器输入是一位序列,需要先移至移位寄存器中,再将移位寄存器中的值与标准巴克码同或,通过判断同或值是否大于阈值来确定巴克码。文章来源地址https://www.toymoban.com/news/detail-790668.html

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

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

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

相关文章

  • Verilog设计“111”检测器与“01110”检测器并测试所有情况

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

    2024年02月08日
    浏览(58)
  • 【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日
    浏览(40)
  • 1001序列检测器

    multisim仿真文件:1001序列检测器(mealy机)-单片机文档类资源-CSDN下载 modelsim仿真文件:1001序列检测器modelsim仿真和测试文件-单片机文档类资源-CSDN下载 实验报告:1001序列检测器实验报告-单片机文档类资源-CSDN下载 电 子 科 技 大 学 课程设计名称:           1001 序列检

    2024年02月06日
    浏览(47)
  • 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日
    浏览(47)
  • ChatGPT检测器(Detector)

    现阶段可使用的Detector如以下所示,在网页端有5个(3个支持中文),api有3个途径,代码运行成功的有一个。 名称 地址 特性 GPTZero https://gptzero.me/ 支持中英文,判定较为严格,有开源代码 OpenAI GPT2 Output Detector https://openai-openai-detector.hf.space/ 支持中英文,判定宽松 Hello-Simple

    2023年04月27日
    浏览(39)
  • 简易温度检测器电路原理

    在日常生活中,对温度的及时检测能够减免火灾的发生,所以今天就说说温度检测器。 实际功能 在常温下显示数字0,随着温度的升高,数码管逐步显示1、3、8,分别代表三档温度,并且在显示8的时候,LED灯开始闪烁,代表温度过高而报警,当温度下降时,数码管的显示状态

    2024年02月09日
    浏览(43)
  • OpenCV 如何实现边缘检测器

    返回:OpenCV系列文章目录(持续更新中......) 上一篇:OpenCV如何实现拉普拉斯算子的离散模拟 下一篇 :OpenCV系列文章目录(持续更新中......) 在本教程中,您将学习如何: 使用 OpenCV 函数 cv::Canny 实现 Canny 边缘检测器。 Canny Edge探测器 [48]由John F. Canny于1986年开发。Canny 算法

    2024年04月25日
    浏览(42)
  • 序列检测器的verilog实现

    设计一个序列检测同步时序逻辑电路,要实现的功能如下: 当已有输入码流出现序列 111000或101110时输出检测信号为1 ,否则输出为0。在时序上检测到完整序列的 下一个时钟周期 输出检测结果。输入信号有效为1时表示当前输入有效,否则表示无效。之前输入依旧计入序列中

    2024年02月06日
    浏览(54)
  • OpenCV实战——尺度不变特征检测器

    特征检测的不变性是一个重要概念,虽然方向不变性(即使图像旋转也能检测到相同特征点)能够被简单特征点检测器(例如 FAST 特征检测器等)处理,但难以实现在图像尺度改变时特征保持不变。为了解决这一问题,在计算机视觉中引入了尺度不变特征的概念。 无论对象是在哪

    2023年04月20日
    浏览(42)
  • 简单的状态机设计——序列检测器

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

    2024年02月11日
    浏览(43)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包