verilog中已知系统时钟频率和波特率可知传输一位数据所需周期和边沿检测电路

2023-11-13

设时钟频率为 clk = 50MHZ = 50_000_000 HZ;

波特率为 bound = 115200 位/秒;   //每秒可以传输115200位数据.

传输一位数据所需周期数为:T_cnt = clk / bound = 50_000_000 / 115200;

其中选择clk_cnt计数至T_cnt / 2时寄存接收端口数据,是因为计数到数据中间时的采样结果最稳定。//clk_cnt是进行一个一个周期的记数.

经典的边沿检测电路,通过检测串口接收端uart_rxd的下降沿来捕获起始位
 

input             uart_rxd
reg        uart_rxd_d0;
reg        uart_rxd_d1;
wire       start_flag;
//捕获接收端口下降沿(起始位),得到一个时钟周期的脉冲信号
assign  start_flag = uart_rxd_d1 & (~uart_rxd_d0);    

always @(posedge sys_clk or negedge sys_rst_n) begin 
    if (!sys_rst_n) begin 
        uart_rxd_d0 <= 1'b0;
        uart_rxd_d1 <= 1'b0;          
    end
    else begin
        uart_rxd_d0  <= uart_rxd;                   
        uart_rxd_d1  <= uart_rxd_d0;//下降沿起作用,当为下降沿时start_flag = 1;
    end   
end

经典的边沿检测电路,通过检测串口接收端uart_en的上升沿来捕获起始位

input         uart_en,
reg        uart_en_d0; 
reg        uart_en_d1; 
wire       en_flag;
//捕获uart_en上升沿,得到一个时钟周期的脉冲信号
assign en_flag = (~uart_en_d1) & uart_en_d0;
                                                 

always @(posedge sys_clk or negedge sys_rst_n) begin         
    if (!sys_rst_n) begin
        uart_en_d0 <= 1'b0;                                  
        uart_en_d1 <= 1'b0;
    end                                                      
    else begin                                               
        uart_en_d0 <= uart_en;                               
        uart_en_d1 <= uart_en_d0;  //捕获上升沿                          
    end
end

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

verilog中已知系统时钟频率和波特率可知传输一位数据所需周期和边沿检测电路 的相关文章

  • FPGA面试真题解析(3)

    9 寄存器的Tsu 建立时间 是如何定义的 硬件逻辑实习岗 A 在时钟沿到来之后数据保持稳定的时间 B 在时钟沿带来前后数据都需要保持稳定的时间 C 在整个时钟周期数据保持稳定的时间 D 在时钟沿到来之前数据保持稳定的时间 解析 考察数字电
  • Ubuntu16.04主机安装基于ZYNQ的QT交叉编译库

    Ubuntu16 04主机尝试安装基于ZYNQ的QT交叉编译库 前言 基于vivado2016 4 SDK的交叉编译环境 主机Linux上安装vivado2016 4版本 qtcreator上添加基于ZYNQ的交叉编译工具 基本环境 参考资
  • [FPGA系列] 扩展知识 --- 时钟小结

    一 基本概念 时钟域 由同一个时钟信号控制的区域 时钟抖动 Jitter 相对于理想时钟信号 实际时钟信号存在时而超前 时而之后的偏移 时钟偏斜 Skew 时钟信号到达数字电路各个部分所用时间的差异 时钟漂移 Wander 工程上解释 抖动
  • Xilinx平台SRIO介绍(二)SRIO IP核基础知识

    使用SRIO IP核必须掌握的基础知识 理解了这篇 剩下的只是代码罢了 汇总篇 Xilinx平台SRIO介绍 汇总篇 目录 前言 SRIO RapidIO GT 有什么关系
  • 【Xilinx DDR3 MIG】Xilinx FPGA DDR3读写实验相关用户接口引脚解释

    目录 DDR3读写实验 实验框图 时钟模块 DDR3读写及LED指示模块 MIG IP核 用户接口解释
  • HDLBits刷题_Verilog Language_Procedures_Alwaysblock1

    学习内容 Since digital circuits are composed of logic gates connected with wires any circuit can be expressed as some combin
  • Xilinx AXI-memory接口 转 AXI-stream 接口(含源码)

    AXI memory接口 转 AXI stream 接口 AXI memory接口介绍 具体详情可以查看源码 AXI memory接口介绍 从图中我们可以看出memory接口有5个通道 分别是读地址通道 写地址通道 写响应通道 读数据通道
  • xilinx xdma PCIe中断bug

    xilinx xdma PCIe中断存在bug bug1 此中断虽然是msi或者msx中断 但是不中断cpu bug2 此中断不是边沿中断 而是电平中断 在驱动层需要不断地轮训查询中断事件 bug3 此中断持续时间必须长 而且在收到中断应答
  • verilog 基本语法 {}大括号的使用

    的基本使用是两个 一个是拼接 一个是复制 下面列举了几种常见用法 基本用法 表示拼接 第一位 第二位 表示复制 4 a 等同于 a a a a 所以 13 1 b1 就表示将13个1拼接起来 即13 b1111111111111 拼接语法详
  • JESD204B(RX)协议接口说明。

    解释一下Vivado IP协议中的Shared Logic in Example 与 Shared Logic in Core 首先 什么是Shared Logic 字面意思很好理解 就是共享逻辑 主要包括时钟 复位等逻辑 当选择Share
  • libero-soc许可证申请和环境配置

    环境 64位机 在哪台电脑上安装libero soc 就用哪台电脑申请许可证 1 注册 https www microsemi co 在官网注册 之后申请的许可证会发到注册时填写的邮箱 2 申请许可证 https www microsemi
  • 从零开始zynq linux AXI DMA传输

    本文从0开始叙述过程 使用的工具为vivado2016 4 sdk也是2016 4 准备工作 首先下载如下的目标文件 1 下载xilinx官方的bootloader文件 git clone https github com Xilinx u
  • FPGA功耗估计(二)

    针对于Altera的Cyclone III 做出了静态功耗 对于Altera 其提供了一个功耗早期估计工具 可以在官网上下到 首先需要将宏设置为安全 在excel选型中选择文件 之后便可看到 根据相应的选择 红框部分 可以查看静态功耗 对于
  • 基于FPGA的简易BPSK和QPSK

    1 框图 2 顶层 3 m generator M序列的生成 输出速率为500Kbps 4 S2P是串并转换模块 将1bit的m序列转换到50M时钟下的2bit M序列数据 就有4个象限 5 my pll是生成256M的时钟作为载波 因为s
  • 异步FIFO设计之格雷码

    目录 二进制转格雷码 格雷码转二进制 相邻的格雷码只有1bit的差异 因此格雷码常常用于异步fifo设计中 保证afifo的读地址 或写地址 被写时钟 或读时钟 采样时最多只有1bit发生跳变 在不考虑路径延时的情况下 因为源数据 读写地址
  • 使用 VHDL 实例化 FPGA 中的 RAM

    我试图按照中的指导实现双端口 RAM这篇优秀的博文 http danstrother com 2010 09 11 inferring rams in fpgas 然而 ModelSim 在编译时给出以下警告 Warning fifo ra
  • Linux驱动程序DMA传输到PC作为主机的PCIe卡

    我正在开发一个 DMA 例程 将数据从 PC 传输到 PCIe 卡上的 FPGA 我阅读了 DMA API txt 和 LDD3 ch 15 详细信息 但是 我不知道如何从 PC 到 PCIe 卡上的一致 iomem 块进行 DMA 传输
  • 使用双寄存器方法解决亚稳态问题

    为了解决Verilog中不同时钟域引起的亚稳态 采用双寄存器方法 但据我所知 亚稳态的最终输出尚未确定 输出独立于输入 那么 我的问题是如何保证使用双寄存器方法输出的正确性 Thanks 您不能完全确定您避免了亚稳态 正如您所提到的 亚稳态
  • 您可以使用类 C 语言对 FPGA 进行编程吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 在大学里 我用类似 C 的语言编写了 FPGA 不过 我也知道人们通常使用 Verilog 或 VHD
  • 学习 Verilog 的资源 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我是 Verilog 新手 有人可以推荐学习资源 书籍 视频 博客或任何他们有良好个人经验并帮助他们更

随机推荐

  • Matlab知识点基础(一)

    最近感觉在这上面搜相应的知识点都好困难 所以自己写点总结 以免又忘了 1 循环的总结 1 1 编写MATLAB程序 计算1到100的和 for 循环 s 0 for i 1 1 100 这里分别是初始值 间隔 终止值 s s i end s
  • live555学习之二和客户端通信流程顶层

    1 创建了一个 RTSPClientConnection 类型的实例 session RTSPClientConnection 2 调用该类的处理函数 session gt incomingRequestHandler1 2 1 读取 so
  • python基础语法

    基础语法 持续学习更新中 1 变量类型 2 逻辑语句 3 类 Python内置类属性 4 错误和异常 1 变量类型 数字 字符串 字符串可以看做是字符的列表 不存在字符类型 包含一个字符的也称作字符串 创建字符串可以用单引号也可以用双引号
  • 机器学习速成课程笔记10:使用TF的基本步骤

    快速翻阅 快速学习 TensorFlow 是一个用于人工智能的开源神器 TensorFlow 是一个采用数据流图 data flow graphs 用于数值计算的开源软件库 节点 Nodes 在图中表示数学操作 图中的线 edges 则表示
  • Qt纯代码实现添加背景图片的自定义按钮

    Qt的控件中提供了按钮类 我们在调用一个按钮控件的时候 一般通过使用按钮类本身的接口函数已经够用了 在添加按钮的图标或者背景的时候可以通过调用如下所示的接口函数 void setIcon const QIcon icon 虽然Qt已经提供了
  • 异步模式之生产者消费者

    4 异步模式之生产者消费者 刚才的情况 我们一直都在讨论 一个执行者对应一个接收者的情况 下面 我们来讨论另外一种情况 多个生产者对应多应多个消费者的情况 消息类 class Message private int id private O
  • json基本使用与简介

    一 简介 二 json两种构造结构 三 js解析JSON 1 JSON2解析JSON 2 用eval 方法把JSON字符串转化成JSON对象 3 使用JSON2中的JSON对象的parser 方法解析JSON字符串 4 使用JSON2中的J
  • Jupyter notebook更换工作目录

    打开Anaconda 打开cmd Prompt如图所示 输入jupyter notebook generate config找到目录文件jupyter notebook config py jupyter notebook config p
  • vsphere 虚拟机的迁移,冷迁移,vmotion(热迁移)

    备注 理论部分参考王春海老师的课程 一 概述 1 vsphere数据中心当处于某种目的进行维护时 需要将某台主机上运行或关闭的虚拟机 迁移到其他主机上 这个时候就需要使用迁移 2 可以使用冷迁移或热迁移将虚拟机移到其他主机或数据存储 3 迁
  • 开发前期准备工作

    开发前期准备工作 文章目录 开发前期准备工作 0 代码规范 0 1 强制 0 2 推荐 0 3 参考 dao 跟数据库打交道 service 业务层 人类思维解决 controller 抽象化 0 4 注释规范 0 5 日志规范 0 6 专
  • 欧姆龙NJ1P2 Fins Udp通讯

    NJ1P2 Tcp连接不成功 咨询客服说不支持Fins Tcp 所以改成Udp方式 Udp连接 locateIp IPAddress Parse txtLocateIP Text locatePoint new IPEndPoint loc
  • 使用CMakeList编译报错

    可能出现的一个原因是磁盘空间不足 使用 df h 查看磁盘空间 若磁盘空间已满 清理磁盘 然后再进行编译
  • Gradle project sync failed. Please fix your project and try again.

    在Android Studio中Import Module后 再运行项目 报下列错误 Gradle project sync failed Please fix your project and try again 这是由于build gr
  • node.js学习

    一 基础知识 1 终端 shell命令 dir 列出当前目录下所有路径 表示当前目录 表示上一级目录 md 目录名 新建文件 rd 目录名 删除文件 文件名 直接打开文件 2 环境变量 windows系统中的变量 配置path 当在命令行窗
  • 数字图像处理之二维码图像提取算法(十一)

    check ratio requirement b w b w b 1 1 3 1 1 bool qr checkRatio totalFinderSize 0 for int i 0 i lt 5 i int count stateCou
  • vue项目PC端屏幕分辨率与窗口大小自适应

    效果 mermaid svg O0n9N0Pq5xuLBK3e label font family trebuchet ms verdana arial font family var mermaid font family fill 33
  • java求数组中,某个值连续出现次数最多的数的次数

    这次遇到的问题是 要在一个数组中找到连续出现次数最多的数的次数 下面的数组 我想拿到0的连续出现次数最多的次数 连续出现3次 第一次0连续出现一次 第二次连续出现2次 第三次连续出现6次 我要拿到6次这个东西 int s 0 1 0 0 1
  • 信息物理系统(CPS)之吾之愚见

    信息物理系统 CPS 是这两年比较热门的研究方向 下面我就从定义 结构等2个方面浅谈一下 如有错误之处请多指教 信息物理系统是集成计算 通信与控制于一体的下一代智能系统 通过人机交互接口实现和物理进程的交互 使用网络化空间以远程的 可靠的
  • 利用python处理excel

    本宝宝有个工作中 需要报送个人所得税 其实以前我写过一个集成报送各年金税金vba的小代码 但是因为新接的任务数据量太大 vba可能会假死 即使能处理 也因为最近在自学python 所以想尝试用python 我的思路是 把报税模板复制出来 然
  • verilog中已知系统时钟频率和波特率可知传输一位数据所需周期和边沿检测电路

    设时钟频率为 clk 50MHZ 50 000 000 HZ 波特率为 bound 115200 位 秒 每秒可以传输115200位数据 传输一位数据所需周期数为 T cnt clk bound 50 000 000 115200 其中选择