FPGA跨时钟域信号处理之亚稳态问题

2023-11-06

FPGA跨时钟域信号处理之亚稳态问题学习笔记
将慢速时钟域(PC 机中的波特率)系统中的 rx 信号同步到快速时钟域(FPGA 中的 sys_clk)系统中,所使用的方法叫电平同 步,俗称“打两拍法”。
跨时钟域会导致“亚稳态(metastable)”的问题,信号的上升沿和下降沿并不是瞬间被拉高或拉低的,而是有一个倾斜变化的过程,如下图中rx信号的上升沿和下降沿。如果数据传输中触发器的建立时间Tsu保持时间Th不满足,或者复位过程中复位信号的释放相对于有效时钟沿的恢复时间(recoverytime)和撤离时间(removaltime)不满足,就可能产生亚稳态,此时触发器输出端 Q 在有效时钟沿之后比较长的一段时间处于不确定的状态。

建立时间Tsu:在时钟翻转之前数据rx必须有效的时间;维持时间Th:在时钟边沿之后数据必须仍然有效的时间。[3]

下图中rx的跳变沿处于时钟的
图1

  1. 单比特信号从慢速时钟域同步到快速时钟域需要使用打两拍的方式消除亚稳态。第一级寄存器产生亚稳态并经过自身后可以稳定输出的概率为 70%~80%左右,第二级寄存器可以稳定输出的概率为 99%左右,后面再多加寄存器的级数改善效果就不明显了,所以数据进来后一般选择打两拍即可。如下图中rx_reg1和rx_reg2。
    图2
    振荡时间 Tmet 是受到很多因素影响的,所以 Tmet 时间有长有短。当然有人会问到第二级寄存器的 Tmet2 的持续时间会不会继续延长到大于一个采样周期?这种情况虽然会存在,但是其概率是极小的,寄存器本身就有减小 Tmet 时间让数据快速稳定的作用(因为静态存储器用正反馈来建立双稳态网络,比如说两个相互串联的反相器为一种典型的双稳电路,在反相器VTC过渡区(翻转区)增益大于1时,反相器输出逻辑会收敛到额定逻辑电平中的一个)。亚稳态振荡时间 Tmet 关系到后级寄存器的采集稳定问题,Tmet 影响因素包括:器件的生产工艺、温度、环境以及寄存器采集到亚稳态里稳定态的时刻等。甚至某些特定条件,如干扰、辐射等都会造成 Tmet 增长。
  2. 另外单比特信号从快速时钟域同步到慢速时钟域还仅仅使用打两拍的方式会漏采数据,所以往往使用脉冲同步法或的握手信号法;而多比特信号跨时钟域需要进行格雷码编码(多比特顺序数才可以)后才能进行打两拍的处理,或者通过使用 FIFORAM 来处理数据与时钟同步的问题。

参考文献
[1]宋文强,胡毅.FPGA跨时钟域信号同步设计方法研究[J].单片机与嵌入式系统应用,2018,18(09):24-27+81.
[2]刘火良.FPGA Verilog开发实战指南——基于Altera EP4CE10[M].北京:机械工业出版社,2020:582
[3]Jan M.Rabaey.数字集成电路——电路、系统与设计.第二版.周润德.北京:电子工业出版社,2017:215-247,215

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

FPGA跨时钟域信号处理之亚稳态问题 的相关文章

  • FPGA Xilinx 7系列高速收发器GTX通信

    Xilinx 7系列高速收发器GTX 说明 FPGA TX端 zynq 7z035 RX端 zynq 7z100 两个FPGA通过SFP 光纤 接口相连进行GTX的通信 环境 Vivado2018 2 IP核 7 Series FPGAs
  • 使用七牛云进行文件上传

    目录 一 七牛云入门测试 1 注册七牛云账号 完成后选择对象存储 2 在里面创建空间 一个空间相当于一个文件夹 就是将对象上传到的地方 3 查看个人秘钥 注册完成账号后 会有一个秘钥 上传文件的时候进行授权和认证 4 文件上传测试 二 封装
  • 【电子技术】什么是LFSR?

    目录 0 前言 1 数学基础 1 1 逻辑异或 1 2 模2乘法 和 模2除法 2 线性反馈移位寄存器LFSR 3 抽头和特征多项式 4 阶线性反馈移位寄存器实例 0 前言 线性反馈移位寄存器 Linear Feedback Shift R
  • 【FPGA多周期时序约束详解】- 解读FPGA多周期时序约束的全过程

    FPGA多周期时序约束详解 解读FPGA多周期时序约束的全过程 FPGA作为数字电路设计的常见工具 其设计中必然会遇到时序约束的问题 而多周期时序约束更是FPGA设计中不可避免的难点之一 本文将详细介绍FPGA多周期时序约束的全过程 并结合
  • 画时序图软件——TimeGen和Timing Designer下载

    在写实验报告的时候需要画波形图 但是手头没有很好的软件 就上网搜了一些 分享出来 这里分享的是TimeGen和Timing Designer两个软件 资源均来自网上 有侵权请联系 TimeGen使用和安装都比较简单 我发的应该里面有破解方法
  • VHDL:按钮去抖动(或不去抖动,视情况而定)

    我已阅读其他帖子 但似乎无法修复我的 我是 VHDL 新手 所以我确信这是一个简单的修复 简而言之 按钮没有防抖 代码编译和比特流程序 在测试台中 按下按钮可以工作 但输出 LED 不会改变 在板上 按下按钮会使随机 LED 亮起 我猜是因
  • 串口通信知识点总结

    串口是串行接口 serial port 的简称 也称为串行通信接口或COM接口 串口通信是指采用串行通信协议 serial communication 在一条信号线上将数据一个比特一个比特地逐位进行传输的通信模式 串口按电气标准及协议来划分
  • 时序约束理解

    异步配置信息 跨时钟域 配置信息一般set max delay按照3delay来约束 2 异步回读 rst clear信号 设置set false path 放松时序约束要求 不应分析设计中的逻辑路径 因为不关心点到点时序要求
  • 无线网络管理系统与无线路由器的区别

    第5章 波形发生器软件设计 本章我们将介绍系统的软件设计 系统中控制软件占有很重要的地位 它不仅要产生波形数据 控制波形的发生 还要控制显示电路和键盘电路 因此系统软件的好坏直接决定着系统的功能和稳定 5 1软件的总体结构 在本系统中 由于
  • 如何生成异步复位verilog总是阻塞凿子

    Chisel 始终生成敏感度列表中仅包含时钟的块 always posedge clk begin end 是否可以将模块配置为使用异步重置并生成这样的始终块 always posedge clk or posedge reset begi
  • 同时读取和写入寄存器

    我计划在 FPGA 上用 VHDL 设计一个类似 MIPS 的 CPU CPU 将具有经典的五级管道 没有转发和危险预防 在计算机体系结构课程中 我了解到第一个 MIPS CPU 用于在时钟上升沿读取寄存器文件并在时钟下降沿写入 我使用的F
  • 修改后的 baugh-wooley 算法乘法 verilog 代码不能正确乘法

    以下 verilog 源代码和 或测试平台可以很好地工作商业模拟器 iverilog https www edaplayground com x 3TuQ也形式化验证工具 yosys smtbmc https gist github com
  • Matlab图像处理系列——图像复原之噪声模型仿真

    微信公众号上线 搜索公众号 小灰灰的FPGA 关注可获取相关源码 定期更新有关FPGA的项目以及开源项目源码 包括但不限于各类检测芯片驱动 低速接口驱动 高速接口驱动 数据信号处理 图像处理以及AXI总线等 本节目录 一 图像复原的模型 二
  • PyOpenCL 中的时间测量

    我正在 FPGA 和 GPU 中使用 PyOpenCL 运行内核 为了测量执行所需的时间 我使用 t1 time event mykernel queue c width c height block size block size d c
  • VHDL 中的 BRAM_INIT

    我正在模拟基于处理器的设计 其中程序存储器内容保存在 BRAM 中 我正在使用 VHDL 推断 BRAM 实现程序存储器 我试图避免使用 CoreGen 因为我想保持设计的可移植性 最终该设计将进入 FPGA 我想看看是否有一种方法可以使用
  • 赋值语句中的“others=>'0'”是什么意思?

    cmd register process rst n clk begin if rst n 0 then cmd r lt others gt 0 elsif clk event and clk 1 then cmd r lt end if
  • 从 OpenCV 代码到 FPGA 代码的转换是否比 Matlab 代码更容易? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想做一个关于图像处理的项目 我想知道如果我想在FPGA上实现这个项目 我应该在第一阶段选择Matla
  • 如何从 Spartan 6 写入 Nexys 3 FPGA 板上的 Micron 外部蜂窝 RAM?

    我到处都查过了 数据表 Xilinx 网站 digilent 等等 但什么也没找到 我能够使用 Adept 工具来验证我的蜂窝 RAM 是否正常运行 但我找不到任何库存 VHDL 代码作为控制器来写入数据和从中读取数据 帮助 找到了此链接
  • 学习 Verilog 的资源 [关闭]

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

    谁能告诉我以下书面陈述之间的区别 signal A unsigned 3 downto 0 signal B std logic vector 3 downto 0 Both std logic vector and unsigned ar

随机推荐

  • PFC电源设计与电感设计计算学习笔记

    PFC电源设计与电感设计计算 更新于2018 11 30 课程概览 常见PFC电路和特点1 常见PFC电路和特点1 CRM PFC电路设计计算 CCM PFC电路设计计算 CCM Interleave PFC电感纹波电流计算 DCM CRM
  • 3)minikube玩转k8s集群之创建k8s集群

    配套视频教程 1 Minikube介绍 简单说 创建k8s集群很麻烦 minikube可以让我们快速搭建一个k8s集群用于学习 Minikube 是一种可以让您在本地轻松运行 Kubernetes 的工具 Minikube 在笔记本电脑上的
  • 大数据数据库之HBase:集群安装部署

    文章目录 前言 1 HBase是什么 5分钟 1 1 HBase的概念 1 2 HBase的特点 2 HBase集群安装部署 2 1 准备安装包 2 2 修改HBase配置文件 2 2 1 hbase env sh 2 2 2 hbase
  • c语言max函数用法_C语言之typedef与define

    1 typedef C语言支持一种typedef的机制 其允许编程人员为各种数据类型定义新名字 例如 原代码 使用typedef后 如图利用typedef对int进行重新命名为mm 同时对变量i输出了正确的结果 与此同时 对定义了新名字的数
  • MyDLNote-High-Resolution: CVPR2020 High-Resolution Daytime Translation 不带域名标签的高分辨率日间图像翻译

    High Resolution Daytime Translation Without Domain Labels CVPR 2020 GitHub Abstract Modeling daytime changes in high res
  • 张霖峰:AV1和VVC的格局将在2023年后明朗

    本文是MSU评测解读的系列文章之一 不过Ucodec CEO张霖峰还讲述了Video Codec的机会 VVC与AV1的竞争格局 苹果公司在Video Codec格局中扮演的重要角色等等 文 张霖峰 策划 LiveVideoStack Li
  • Java基础--------基本语法

    参考http www cnblogs com xdp gacl p 3624567 html 点击打开链接 以此为模板 自己做了整理 修改 目录 一 标识符和关键字 1 1 标识符 1 2 关键字 二 Java基本数据类型 常量和变量 2
  • 05 openEuler DDE 桌面环境的安装和使用

    05 openEuler DDE 桌面环境的安装和使用 文章目录 05 openEuler DDE 桌面环境的安装和使用 5 1 DDE简介 5 2 DDE安装方法 5 2 1 更新软件源 5 2 2 安装DDE 5 2 3 设置以图形界面
  • java项目jar打包后读取文件失败解决办法

    在本地项目读取文件时 this getClass getClassLoader getResource getPath fileName this getClass getResource filename getPath 都是可以成功的
  • 饼图的legend文字太长和数量太多处理

    legend文字太长和数量太多 在我们使用图表饼图的时候会发现因为数据太多导致页面的布局发现重叠或者不好看 比如label的文字太长了 legend的数量太多了等一些问题 所以今天我们就来聊聊遇到这些问题的是可以通过那些设置来进行改进 文字
  • 计算机网络期末总结笔记(《计算机网络自顶向下的方法》第七版、考点总结与核心知识)

    本文排版和主要内容总结于 计算机网络自顶向下方法 参考论文如下 MANET 中TCP 改进研究综述 TCP协议的拥塞控制策略及改进 互联网端到端拥塞控制研究综述 LS路由算法与DV路由算法的比较 在王老师的严格要求下 计网学得还是认真的 也
  • 软件设计师---知识产权

    这里写目录标题 考题形式 著作权 真题 专利地域性 真题 计算机软件著作权 客体和主体 具体的权利 计算机软件著作的保护期 真题 职务作品 真题 委托开发 真题 计算机软件著作权侵权 真题 商业秘密权 真题 专利权申请 真题 商标权 真题
  • MySQL group by 多字段分组

    摘要 https blog csdn net xx star1204 article details 72884983 GROUP BY X意思是将所有具有相同X字段值的记录放到一个分组里 那么GROUP BY X Y呢 GROUP BY
  • ctfshow 网络迷踪-你的名字+噶即正义

    ctfshow 你的名字 通过yandex识图找到图片 这题很简单 但是不太好找 直接得到答案 野菜山下商店 这题可能会比较难找 噶即正义 先通过百度识图得到这是 无法成为野兽的我们 剧照 通过百度识图找到这是居酒屋 再通过谷歌找到所对应啤
  • 阿诺德图像加密c语言,基于Arnold置乱的数字图像加密算法(二)

    前文我们介绍了基于Arnold置乱的数字图像加密算法的两种图像置乱变换 今天我们介绍的是另外三种图像置乱变换 基于骑士巡游的图像置乱变换 基于Arnold变换的数字图像置乱和基于仿射变换的置乱变换 一 基于骑士巡游的图像置乱变换 所谓骑士巡
  • 服务器文件远程复制迁移命令

    文件远程复制迁移命令 两个系统进行远程迁移的时候 除了通过ftp工具 或者先下载在上传这种方式 如果两个服务器网络互通的话 也可以通过命令直接进行复制迁移 方便高效 命令可以进行文件单独迁移 可以对整个目录进行迁移 scp P 22 r 源
  • AlertDialog 修改文本内容的颜色

    最近遇到一个问题在联想A858T白色手机上测试如下AlertDialog时 AlertDialog背景默认为白色 title message为黑色 但是CheckBox的Text却为白色 final CheckBox cb new Chec
  • 1.VS软件错误代码C3848

    VS软件错误代码C3848 VS2022不知道怎么解决这个错误 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 C3848 具有类型 const Keycmp 的表达式会丢失一些 const volatile 限定符以调用 bool
  • 10000条数据怎么插入比较快

    具体方案 要快速插入10000条数据 以下是一些可行的方法 开启事务 JDBC直接处理 开启事务和关闭事务 耗时差距5倍左右 并且这个倍数会随着数据量的增大而增大 因为在未开启事务时 更新10000条数据 就得访问数据库10000次 导致每
  • FPGA跨时钟域信号处理之亚稳态问题

    FPGA跨时钟域信号处理之亚稳态问题学习笔记 将慢速时钟域 PC 机中的波特率 系统中的 rx 信号同步到快速时钟域 FPGA 中的 sys clk 系统中 所使用的方法叫电平同 步 俗称 打两拍法 跨时钟域会导致 亚稳态 metastab