FPGA面试题(4)(跨时钟域处理)

跨时钟域处理方法

慢->快快->慢
单bit在快时钟域同步打拍,将信号同步到快时钟域展宽后同步打拍
多bit异步FIFO异步FIFO+握手信号

一.打两拍

  • 适用于单bit跨时钟域处理
  • 所谓的打两拍就是定义两级寄存器实现延时
    在这里插入图片描述

那为什么是打两拍,不是打一拍,打三拍?

  • 打拍的作用:第一拍是异步信号转同步信号,第二拍及以后是防止亚稳态传递。理论来说,打两拍也不是完全消除亚稳态,只是降低了亚稳态出现的概率。触发器进入亚稳态的时间计算可以用参数MBTF计算,其公式如下
    在这里插入图片描述


    其中MBTF的值越大,亚稳态出现的概率越小。而打拍可以增大MBTF的值。
    简而言之就是:打一拍仍然有很大概率出现亚稳态,打两拍出现亚稳态概率不大,打三拍相较于打两拍亚稳态出现的概率更低,但是除非超高频没必要

二.异步双口RAM

  • 这个比较好理解,就是用时钟1来写入,时钟2来读出。可以使用异步FIFO实现同样的目的。

三.格雷码转换

  • 在异步双口RAM操作时,写入RAM后要在读时钟下判断写地址,当写地址大于某个值时再去读取RAM。如果直接打两拍,在高速环境下容易出错。那么更稳妥的方法就是先把RAM的写地址转换为格雷码,再将这个转换后的格雷码打两拍,最后在读时钟域恢复为十进制。在FIFO中也是一样,转换格雷码能够有效降低指针在跳变时出现的亚稳态风险,冒险现象。
  • 格雷码是和FIFO,双口RAM结合使用的

补充格雷码知识点

在这里插入图片描述

  • 规律如下:

    1.最右边一位取反

    2.从右往左第一个0变为1

    (重复上述两个操作)

  • 二进制如何转换为格雷码

    1.格雷码中的最高有效位(最左边)等同于二进制数中相应的最高有效位。

    2.从左到右,加上每一对相邻的二进制编码位,从而得到下一个格雷码位,舍去进位。

    在这里插入图片描述

  • 格雷码如何转为二进制

    1.二进制码的最高有效位(最左边)等同于格雷码中相应的最高有效位。

    2.将所产生的每个二进制码位加下一个相邻位置的格雷码位,从而得到下一个二进制位。舍去进位。

    在这里插入图片描述

参考:

1.https://cloud.tencent.com/developer/article/1664923

2.https://blog.csdn.net/Hide_in_Code/article/details/126600563?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169692141116800225522215%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=169692141116800225522215&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-1-126600563-null-null.142^v95^insert_down1&utm_term=单bit跨时钟域为什么打两拍不是打一拍&spm=1018.2226.3001.4187

3.https://www.zhihu.com/question/43571892

4.https://blog.csdn.net/fpga_start/article/details/122652715?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169692603816800225524240%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=169692603816800225524240&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-122652715-null-null.142^v95^insert_down1&utm_term=格雷码&spm=1018.2226.3001.4187

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/130745.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端性能优化之防抖节流

前端性能优化之防抖&节流 1.什么是防抖和节流2.代码实现2.1 实现防抖2.2 实现节流 3.应用场景3.1 防抖的应用3.2 节流的应用 1.什么是防抖和节流 防抖和节流是前端开发中常用的两种性能优化技术。 为什么需要防抖和节流呢? 两者目的都是为了防止某个时间段内…

使用策略模式重构审批

之前在公司与同时合作开发了一个考核系统,最后干完后整个代码也是合在了我这里,于是进行了codereview,进行优化代码,在审核这边,我先是拆分了公共代码,然后对重复的代码块进行了封装,但是审核这…

面试总结(mysql定精度/oom排查/spring三级缓存/stream流)

Mysql数据类型上的一个把握 1、MySQL Decimal为什么不会丢失精度 DECIMAL的存储方式和其他数据类型都不同,它是以字符串形式存储的。假设一个字段为DECIMAL(3,0),当我们存入100时,实际上存入的1、0、0这三个字符拼接而成的字符串的二进制值&…

计算机竞赛 题目:基于深度学习的手势识别实现

文章目录 1 前言2 项目背景3 任务描述4 环境搭配5 项目实现5.1 准备数据5.2 构建网络5.3 开始训练5.4 模型评估 6 识别效果7 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 基于深度学习的手势识别实现 该项目较为新颖,适合作为竞赛课题…

华为OD机考算法题:字符串划分

题目部分 题目字符串划分难度难题目说明给定一个小写字母组成的字符串s,请找出字符串中两个不同位置的字符作为分割点,使得字符串分成的三个连续子串且子串权重相等,注意子串不包含分割点。 若能找到满足条件的两个分割点,请输出…

c++ qt--线程(二)(第九部分)

c qt–线程(二)(第九部分) 一.线程并发 1.并发问题: ​ 多个线程同时操作同一个资源(内存空间、文件句柄、网络句柄),可能会导致结果不一致的问题。发生的前提条件一定是多线程下…

MyBatis注解开发实现学生管理页面(分页pagehelper,多条件搜索,查看课程信息)

pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 …

PowerShell pnpm : 无法加载文件 C:\Users\lenovo\AppData\Roaming\npm\pnpm.ps1

1、右键点击【开始】&#xff0c;打开Windows PowerShell&#xff08;管理员&#xff09; 2、运行命令set-ExecutionPolicy RemoteSigned 3、根据提示&#xff0c;输入A,回车 此时管理员权限已经可以运行pnpm 如果vsCode还报该错误 继续输入 4、右键点击【开始】&#xff0c;打…

澳大利亚教育部宣布ChatGPT将被允许在澳学校使用!

教育部长最近宣布&#xff0c;从 2024 年起&#xff0c;包括 ChatGPT 在内的人工智能将被允许在所有澳大利亚学校使用。 &#xff08;图片来源&#xff1a;卫报&#xff09; 而早些时候&#xff0c;澳洲各高校就已经在寻找与Chatgpt之间的平衡了。 之前&#xff0c;悉尼大学就…

Mac电脑交互式原型设计 Axure RP 8汉化最新 for mac

Axure RP 8是一款专业且快速的原型设计工具&#xff0c;主要用于定义需求、规格、设计功能和界面。这款工具主要适用于用户体验设计师、交互设计师、业务分析师、信息架构师、可用性专家和产品经理等职业。 Axure RP 8的主要特性包括能够快速设计出应用软件或Web网站的线框图、…

竞赛选题 深度学习 机器视觉 人脸识别系统 - opencv python

文章目录 0 前言1 机器学习-人脸识别过程人脸检测人脸对其人脸特征向量化人脸识别 2 深度学习-人脸识别过程人脸检测人脸识别Metric Larning 3 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习 机器视觉 人脸识别系统 该项目…

XSS原理

原理&#xff1a; 这是一种将任意 Javascript 代码插入到其他Web用户页面里执行以达到攻击目的的漏洞。攻击者利用浏览器的动态展示数据功能&#xff0c;在HTML页面里嵌入恶意代码。当用户浏览改页时&#xff0c;这些潜入在HTML中的恶意代码会被执行&#xff0c;用户浏览器被攻…