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

这篇具有很好参考价值的文章主要介绍了FPGA面试题(4)(跨时钟域处理)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

跨时钟域处理方法

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

一.打两拍

  • 适用于单bit跨时钟域处理
  • 所谓的打两拍就是定义两级寄存器实现延时
    fpga中什么是打两拍,FPGA面试题,fpga开发

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

  • 打拍的作用:第一拍是异步信号转同步信号,第二拍及以后是防止亚稳态传递。理论来说,打两拍也不是完全消除亚稳态,只是降低了亚稳态出现的概率。触发器进入亚稳态的时间计算可以用参数MBTF计算,其公式如下
    fpga中什么是打两拍,FPGA面试题,fpga开发


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

二.异步双口RAM

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

三.格雷码转换

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

补充格雷码知识点

fpga中什么是打两拍,FPGA面试题,fpga开发

  • 规律如下:

    1.最右边一位取反

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

    (重复上述两个操作)

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

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

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

    fpga中什么是打两拍,FPGA面试题,fpga开发

  • 格雷码如何转为二进制

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

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

    fpga中什么是打两拍,FPGA面试题,fpga开发

参考:

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文章来源地址https://www.toymoban.com/news/detail-845347.html

到了这里,关于FPGA面试题(4)(跨时钟域处理)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 基于vivado(语言Verilog)的FPGA学习(5)——跨时钟处理

    慢时钟到快时钟一般都不需要处理,关键需要解决从快时钟到慢时钟的问题,因为可能会漏信号或者失真,比如: 第一种办法是开环解决方案,也就是人为设置目标信号脉宽大于1.5倍的周期。但是容易和设计要求冲突 所以第二个大方法是闭环解决方案,也就是从改善同步方

    2024年02月03日
    浏览(37)
  • FPGA学习——FPGA实现电子时钟

    Cyclone IV开发板上的数码管一共有6个,我们每次只能选择其中一个显示,怎么解决电子时钟时、分、秒同时显示呢?要实现电子时钟首先要了解什么是余晖效应。   余晖效应一般指视觉暂留。 视觉暂留现象即视觉暂停现象(Persistence of vision,Visual staying phenomenon,duration o

    2024年02月09日
    浏览(59)
  • FPGA时钟资源详解(3)——全局时钟资源

     FPGA时钟系列文章总览: FPGA原理与结构(14)——时钟资源 https://ztzhang.blog.csdn.net/article/details/132307564         全局时钟是 FPGA 中的一种专用互连网络,旨在将时钟信号分配到 FPGA 内各种资源的时钟输入处。这种设计考虑了时钟信号在整个芯片上的传播,确保了低偏斜(

    2024年04月27日
    浏览(33)
  • FPGA时钟资源详解(4)——区域时钟资源

     FPGA时钟系列文章总览: FPGA原理与结构(14)——时钟资源 https://ztzhang.blog.csdn.net/article/details/132307564 目录 一、概述 二、Clock-Capable I/O 三、I/O 时钟缓冲器 —— BUFIO 3.1 I/O 时钟缓冲器 3.2 BUFIO原语 四、区域时钟缓冲器——BUFR  4.1 区域时钟缓冲器 4.2 BUFR原语 五、区域时钟网

    2024年04月26日
    浏览(34)
  • 【FPGA 衍生时钟约束】——时钟分频与倍频

    【FPGA 衍生时钟约束】——时钟分频与倍频 在 FPGA 开发中,时钟约束是必不可少的一部分。而对于一些需要高速运算的设计,时钟分频和倍频则是一种经常使用的技术。在本文中,我们将详细介绍 FPGA 中时钟分频和倍频的实现方法及注意事项。 时钟分频是将时钟信号分裂成更

    2024年02月06日
    浏览(30)
  • FPGA设计时序约束一、主时钟与生成时钟

    一、主时钟create_clock 1.1 定义 1.2 约束设置格式 1.3 Add this clock to the existing clock 1.4 示例 1.5 差分信号 二、生成时钟generate_clock 2.1 定义 2.2 格式 2.2.1 by clock frequency 2.2.2 by clock edges 2.2.3 示例 2.2.4 自动生成时钟 2.2.5 重命名生成时钟     主时钟是来自FPGA芯片外部的时钟,通过时

    2024年01月20日
    浏览(32)
  • 【FPGA & Modsim】数字时钟

    实验题目:    数字时钟设计                                   实验目的:    掌握数字时钟的工作原理;掌握使用数字逻辑设计集成开发环境分模块设计数字时钟的方法。                           实验内容: 1、创建一个数字时钟工程,使用

    2024年01月18日
    浏览(26)
  • FPGA项目设计:数字时钟

    项目要求: 设计一个数字时钟,数码管前两位显示小时,数码管中间两位显示分钟,数码管后面两位显示秒。 项目设计: 系统框架图: 计数模块时序图: 代码实现: 计数模块: 数码管显示模块: 顶层文件:

    2024年02月14日
    浏览(31)
  • FPGA时钟和原语

             大型设计一般推荐使用同步时序电路。同步时序电路基于时钟触发沿设计,对时钟的周期、占空比、延时和抖动提出了更高的要求. 为了满足同步时序设计的要求,一般在FPGA设计中采用全局时钟资源驱动设计的主时钟,以达到最低的时钟抖动和延迟.        

    2024年02月05日
    浏览(26)
  • FPGA的时钟资源

    目录 简介 Clock Region详解 MRCC和SRCC的区别  BUFGs 时钟资源总结 7系列FPGA的时钟结构图: Clock Region:时钟区域,下图中有6个时钟区域,用不同的颜色加以区分出来 Clock Backbone:从名字也能看出来,这个一个纵向贯穿整个FPGA的时钟资源,把FPGA的clock region分成了两个部分,所有的

    2024年04月12日
    浏览(30)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包