FPGA计数器边界问题解析

2023-10-30

FPGA计数器边界问题解析
一次作者在处理AMBE2000数据接收过程中,遇到一个问题,对该计数器边界总是模糊不清。现在予以说明,以警示以后工作时书写错误代码。

AMBE2000数据一旦准备好后,一次会输出24个字,其中第1个字0x13ec是同步头,连上同步头的前12个字为控制字,后12个字为数据字,我们需要提前数据字,抛弃控制字。作者的解决思路是:当捕获到0x13ec同步头后拉高一个flag,然后计数23次,完成整个接收过程。这其中需要拉个另一个flag,将后12个数据字表示出来。

问题:除去帧头标志外,还需要去掉11个字。计数器边界到底是卡在10还是11?模棱两可的。

always @(posedge clk or posedge rst) begin
	if (rst==1'b1) begin
		vld_frame_flag<=1'b0;		
	end
	else if ( frame_flag==1'b1 && frame_cnt>='d11 ) begin
		vld_frame_flag<=1'b1;	
	end
	else begin
		vld_frame_flag<=1'b0;	
	end
end

分析:需要去掉11字,那么计数器的边界肯定是11。以上代码验证是拉高时刻是正确的,frame_cnt是在data_vld条件下增加的,所以去掉前11个字,那么cnt11后立即拉高是可以的。也可以如下文所述:上一个时刻frame_cnt10,data_vld又再一次有效,也表示第11个数。

always @(posedge clk or posedge rst) begin
	if (rst==1'b1) begin
		vld_frame_flag<=1'b0;		
	end
	else if ( frame_flag==1'b1 && data_lvd==1'b1 && frame_cnt>='d10 ) begin
		vld_frame_flag<=1'b1;	
	end
	else begin
		vld_frame_flag<=1'b0;	
	end
end

在这里插入图片描述

结论:为统一期间,计数器的边界判断都需要带上计数条件,要判断n个数,判断条件就是: 条件 && n-1。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FPGA计数器边界问题解析 的相关文章

  • FPGA零基础学习之Vivado-ROM使用教程

    FPGA零基础学习之Vivado ROM使用教程 本系列将带来FPGA的系统性学习 从最基本的数字电路基础开始 最详细操作步骤 最直白的言语描述 手把手的 傻瓜式 讲解 让电子 信息 通信类专业学生 初入职场小白及打算进阶提升的职业开发者都
  • 各种FIFO硬件设计(FIFO概念、异步、同步、非2次幂深度FIFO)

    文章目录 一 FIFO概述 二 FIFO分类 三 FIFO重要信号与参数 3 1 信号 3 2 参数 3 2 1 data depth的确定 四 FIFO存储原理 五 同步FIFO 5 1 空满信号判断 5 2 同步FIFO源码 5 3 测
  • Verilog:【1】时钟分频电路(clk_divider.sv)

    碎碎念 作为Basic Verilog的第一个学习笔记 打算用这种命名方式来对博客进行命名 应该有助于检索 简单阅览了部分工程的代码 发现里面有很多嵌套关系 因此决定先从基础模块开始 也是为了整个博客内容的流畅性 读者朋友有问题的话 也可以
  • Vivido添加pynq-Z2开发板

    一 下载pynq z2开发板文件 下载地址 https www tulembedded com FPGA ProductsPYNQ Z2 html 二 将下载的文件解压到vivado安装的位置 如果boards目录下面没有boards fi
  • HDLBits — Verilog Practice(每日一题)

    HDLBits Verilog Practice 每日一题 一 Getting Started 1 Getting Started 一 Getting Started 1 Getting Started 问题描述 Build a circu
  • Verilog实例-AMBA(AHB)协议

    目录 一 简介 1 1 AHB 1 2 signal list 1 3 Bus interconnection 总线互联 1 4 Overview of AMBA AHB operation 1 4 1 Basic transfer 1 4
  • PLL时钟约束

    方法 1 自动创建基时钟和 PLL 输出时钟 例 derive pll clocks 这一方法使您能够自动地约束 PLL 的输入和输出时钟 ALTPLL megafunction 中指定的 所有 PLL 参数都用于约束 PLL 的输入和输出
  • 【科普】波特率和比特速率的理解

    什么是波特率 单位时间内传输的码元个数称为波特率 单位为 Baud 那码元又是什么呢 码元又称为 符号 即 symbol 维基百科上对码元的解释 持续一段固定时间的通信信道有效状态就是码元 这么解释比较抽象 可以解释码元的物理意义 在通信信
  • Matlab 高斯信道下QPSK通带通信系统的简单仿真

    1 原理 2 仿真 3 总结反思 4 参考资料 1 原理 QPSK的具体内容请参考百度 QPSK的调制jie框图大致如下 QPSK信号可以采用正交调制的方式产生 如第一张图片的左半部分 I路信号与cos 信号相乘 Q 路信号与sin信号相乘
  • SD卡读写实验(SPI模式)

    对于 SD 卡的 SPI 模式而言 采用的 SPI 的通信模式为模式 3 即 CPOL 1 CPHA 1 在 SD 卡 2 0 版 本协议中 SPI CLK 时钟频率可达 50Mhz SD 卡的 SPI 模式 只用到了 SDIO D3 SP
  • 手把手教你Modelsim仿真【2020.4版本】

    首先新建一个文件夹 test5 打开Modelsim 依次选择 File gt Change Directory 把目录选择到创建的 test5 文件夹 创建库 依次选择 File gt New gt Library 一般我们选择第三个 库
  • 用Vscode编辑verilog代码配置

    这篇教程感觉很详细了 我这里分享一下vscode和插件的安装包链接 都是官网下载的 放心食用 用VSCode编辑verilog代码 iverilog编译 自动例化 自动补全 自动格式化等常用插件 链接 https pan baidu com
  • 跨时钟域处理方法(一)——打拍

    一 说明 处理跨时钟域的数据可以分为单bit数据和多bit数据 而打拍的方法主要常见于处理单bit数据的跨时钟域问题 打拍的本质是通过添加寄存器 对输入的数据进行延拍 其主要目标是消除亚稳态的影响 常见的是打2拍 也就是添加2级寄存器 二
  • 数码管电子时钟

    文章目录 前言 一 回顾数码管 二 任务描述 三 系统框图 四 模块调用 五 模块原理图 六 工程源码 6 2 时钟计数模块代码 6 2 数码管驱动模块代码 6 3 顶层模块代码 七 仿真测试 7 1 测试代码 7 2 仿真结果 八 管脚信
  • FIFO读写控制

    如果在两个模块之间传输数据 两个模块之间的处理速率不同 会导致采集数据的遗漏或错误 在他们之间加一个数据缓存器 所有数据先经过缓存器缓存 再输入数据接送模块 创建两个模块 一个 作为发送模块 一个作为接受模块 发送模块检测到 fifo为空开
  • 握手2倍速率进,一倍速率出[verilog]

    module two to one parameter WORD LEN 33 input clk input arst input 2 WORD LEN 1 0 i din input i din valid output o din r
  • 关于xilinx BRAM IP的延迟以及流程

    关于RAM IP的延迟 1 选择了output registers 可以在RAM输出端口添加register 也可以在core的输出添加 在primitives添加 降低clock to out到primitive的延迟 在core添加re
  • 蓝桥杯真题:迷宫

    目录 题目描述 运行限制 dfs bfs 结果 题目描述 本题为填空题 只需要算出结果后 在代码中使用输出语句将所填结果输出即可 下图给出了一个迷宫的平面图 其中标记为 11 的为障碍 标记为 00 的为可以通行的地方 010000 000
  • 硬核 | 从零制作一个激光雷达需要多久?

    编辑 ADS智库 点击下方 卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 点击进入 自动驾驶之心 硬件交流 技术交流群 本文只做学术分享 如有侵权 联系删文 激光雷达 LiDAR 是激光探测及测距系统的简称 目前广泛应用在无
  • DSCA190V 57310001-PK

    DSCA190V 57310001 PK DSCA190V 57310001 PK 具有两个可编程继电器功能 并安装在坚固的 XP 外壳中 DSCA190V 57310001 PK 即可使用 只需最少的最终用户校准 DSCA190V 573

随机推荐

  • 轻量人脸检测,5个关键点

    cpu实时人脸检测 https github com Rock 100 FaceKit 这里面有三个算法 1 pcn实时人脸检测 能达到400fps 检测一个人脸 能检测人脸方向 caffe模型 有c 推理 c opencv读取caffe模
  • Python--Python复习之常用内置对象--内置函数用法(一)

    内置函数用法 1 进制转换 gt gt gt bin 10 转换为二进制 0b1010 gt gt gt oct 10 转换为八进制 0o12 gt gt gt hex 10 转换为十进制 0xa gt gt gt float 与 comp
  • 机械手臂c语言如何编程,工业机械手臂程序示教图文教程

    1 新建工业机器人程序 在示教器软件左下方点击 新建 默认选择新建类型为 程序 输入程序名 点击确定即可 注意 程序名须为字母 数字 下划线的形式 不能包含中文 工业机械手臂子程序通常在同一个程序下即可以编写保存 在工业机械手臂子程序较多
  • Python:每日一题之奖学金(排序)

    题目描述 某小学最近得到了一笔赞助 打算拿出其中一部分为学习成绩优秀的前 5 名学生发奖学金 期末 每个学生都有 3 门课的成绩 语文 数学 英语 先按总分从高到低排序 如果两个同学总分相同 再按语文成绩从高到低排序 如果两个同学总分和语文
  • RPA制造业经典场景解析(专题一)

    了解RPA www i search com cn 学习RPA https support i search com cn 下载RPA https www i search com cn from csdn 回顾已经过去的2020年 数字化
  • FL Studio Producer Edition 21.0.3 Build 3517 中文解锁版和许可证密钥2023最新完整下载

    FL Studio Producer Edition 21 0 3 Build 3517 中文解锁版和许可证密钥2023最新完整下载是一款功能强大的软件解决方案 允许使用高级混音器 均衡器 集成乐器等专业工具创建歌曲和循环 尽管它是非常强大
  • unity 模型加点击事件

    1 相机增加如下组件 2 场景内增加EventSystem 3 选择需要添加点击事件的模型 添加脚本以及Event Trigger 在Event Trigger 内点击加号 增加Pointer Click 选择脚本内容写好的点击事件方法以及
  • 压力测试工具Apache JMeter:1:概要介绍与环境搭建

    版权声明 本文为博主原创文章 遵循 CC 4 0 BY SA 版权协议 转载请附上原文出处链接和本声明 本文链接 https blog csdn net liumiaocn article details 101264380 Apache
  • R包安装时安装程序包****时退出的状态不是0,或者版本不适的一种解决方法。

    Bioconductor中包几乎都是安装下面代码安装 比如 miRBaseVersions db包 if requireNamespace BiocManager quietly TRUE install packages BiocMana
  • Postman 自动化 API 测试

    特点 Postman 支持探索和测试 Web API 帮助测试人员和开发人员弄清楚 API 的工作原理 使用 Postman 可以为任何 API 创建有效的测试自动化 了解有效 API 测试的原则 使用 Postman 创建设计良好 文档化
  • 解决fiddler抓不到浏览器包的问题

    对于web开发人员来说 fiddler强烈推荐 他可以说是一款神器 但是我有次开启了fiddler之后 发现抓不到浏览器的包了 我不知道是什么原因 但是总算是解决了 下面是我找到的几个解决办法 我的是这样解决的 1 必须先打开FI 再打开浏
  • Android 8.0 华为手机 桌面应用图标显示圆形适配方案

    Android 8 0的启动图标适配方案可以参考以下两篇文章 一篇是郭霖大神的Android应用图标微技巧 8 0系统中应用图标的适配 还有另外一篇 android8 0桌面图标适配以及相应问题的解决 看过这里两篇文章的都大概懂了个原理 就
  • 通俗解读人脸检测框架-RetinaFace

    目录 一 简介 二 模型结构 1 MobileNet 0 25 2 FPN结构 3 SSH结构 4 Head结构 三 Anchor的编解码 四 Multi task Loss 一 简介 2019年何凯明提出Focal Loss时为了验证Fo
  • 以管理员身份运行bat文件

    echo off gt nul 2 gt 1 SYSTEMROOT system32 cacls exe SYSTEMROOT system32 config system if errorlevel NEQ 0 goto UACPromp
  • 线性代数——矩阵1

    矩阵 Matrix 不要把矩阵放在分母上 矩阵的概念 有m n个数排成的m行n列的数表称为m行n列的矩阵 简称m n 记作 这m n个数称为矩阵A的元素 简称为元 数aij位于矩阵A的第i行第j列 称为矩阵A的 i j 元 以数 aij为
  • GIT常用统计

    查看git上个人代码量 git log author username pretty tformat numstat awk add 1 subs 2 loc 1 2 END printf added lines s removed lin
  • va_list 详解

    VA LIST 是在C语言中解决变参问题的一组宏 VA LIST的成员 1 va list型变量 ifdef M ALPHA typedef struct char a0 pointer to first homed integer arg
  • 【Spring 核心

    IoC IoC 简介 定义 IoC 和 DI Bean IoC 容器 Ioc IoC容器 IoC 简介 定义 IoC即控制反转 Inversion of Control 缩写为 IoC IoC又称为依赖倒置原则 设计模式六大原则之一 IoC
  • 技术文档工程师笔试_如何帮助工程师制作技术文档

    技术文档工程师笔试 As discussed in my previous post technical writers are a vital part of any team They focus on creating documen
  • FPGA计数器边界问题解析

    FPGA计数器边界问题解析 一次作者在处理AMBE2000数据接收过程中 遇到一个问题 对该计数器边界总是模糊不清 现在予以说明 以警示以后工作时书写错误代码 AMBE2000数据一旦准备好后 一次会输出24个字 其中第1个字0x13ec是