FPGA异步时钟域处理之格雷码转换
0 本章目录
1)时钟域定义
2)为什么要做跨时钟域的处理?
3)FPGA简介
4)结束语
1 时钟域定义
所谓时钟域,就是同一个时钟驱动的区域。单一时钟域是FPGA的基本组成部分,但是随着设计规模扩大,多时钟域的设计是必要的。
2 为什么要做跨时钟域的处理?
基于FPGA的数字系统设计中大都推荐采用同步时序的设计,也就是单时钟系统。但是实际的工程中,纯粹单时钟系统设计的情况很少,特别是设计模块与外围芯片的通信中,跨时钟域的情况经常不可避免。如果对跨时钟域带来的亚稳态、采样丢失、潜在逻辑错误等等一系列问题处理不当,将导致系统无法运行。
3 FPGA简介
1)现场可编程门阵列(FPGA),FPGA是可重新编程的硅芯片。
2)FPGA优点:与DSP和ARM相比,FPGA在数据采集领域有着极其重要的地位。FPGA具有时钟频率高、内部延时小、纯硬件并行控制、运算速度快、编程配置灵活、开发周期短、抗干扰能力强、内部资源丰富等优点,非常适用于实时高速数据采集。
4 格雷码处理跨时钟域
1)处理多bit数据的跨时钟域,一般采用FIFO或双端口RAM(对于大数据而言),但是对于少量数据且只有一个或几个信号,采用格雷码处理跨时钟域。
2)首先将跨时钟域信号转换为格雷码,然后将格雷码打两拍,最后使用最终时钟将格雷码转换为十进制。
3)对于格雷码相邻之间只有一个bit在变化,打两拍相当于处理单信号跨时钟域问题。
5 结束语
希望对你有帮助,如果遇到问题,可以一起沟通讨论,邮箱:jhqwy888@163.com。
FPGA异步时钟域处理之格雷码转换相关推荐
- 3位格雷码的顺序编码_FPGA 设计之 跨时钟域(四 - 格雷码)
上一篇文章总结了四种常用的多比特跨时钟域的设计.这篇我们主要来看一下 格雷码,文章目录如下: 什么是格雷码 格雷码转二进制码 二进制码转格雷码 N比特格雷码转N-1比特格雷码 什么是格雷码 ? A G ...
- FPGA跨时钟域处理的三大方法
跨时钟域处理是FPGA设计中经常遇到的问题,而如何处理好跨时钟域间的数据,可以说是每个FPGA初学者的必修课.如果是还在校的本科生,跨时钟域处理也是面试中经常常被问到的一个问题. 在本篇文章中,主要介 ...
- FPGA跨时钟域异步时钟设计的几种同步策略
1 引言 基于FPGA的数字系统设计中大都推荐采用同步时序的设计,也就是单时钟系统.但是实际的工程中,纯粹单时钟系统设计的情况很少,特别是设计模块与外围芯片的通信中,跨时钟域的情况经常不可避免.如果对 ...
- FPGA跨时钟域信号处理之亚稳态问题
FPGA跨时钟域信号处理之亚稳态问题学习笔记 跨时钟域会导致"亚稳态"的问题,信号的上升沿和下降沿并不是瞬间被拉高或拉低的,而是有一个倾斜变化的过程,如图中的tx信号的上升沿和下降 ...
- FPGA异步时钟设计中的同步策略
1 引言 基于FPGA的数字系统设计中大都推荐采用同步时序的设计,也就是单时钟系统.但是实际的工程中,纯粹单时钟系统设计的情况很少,特别是设计模块与外围芯片的通信中,跨时钟域的情况经常不可避免. ...
- (11)FPGA跨时钟域处理(第3天)
(11)FPGA跨时钟域处理(第3天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)FPGA跨时钟域处理(第3天) 5)技术交流 6)参考资料 2 FPGA初级 ...
- (10)FPGA跨时钟域处理
(10)FPGA跨时钟域处理 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)FPGA跨时钟域处理 5)结语 1.2 FPGA简介 FPGA(Field Programm ...
- FPGA跨时钟域处理方法延迟法
1.1 FPGA跨时钟域处理方法延迟法 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA跨时钟域处理方法延迟法: 5)结束语. 1.1.2 本节引言 " ...
- FPGA跨时钟域处理方法FIFO
1.1 FPGA跨时钟域处理方法FIFO 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA跨时钟域处理方法FIFO: 5)结束语. 1.1.2 本节引言 &quo ...
最新文章
- 生活总是在推着你一步一步往前走
- catia 无许可证服务器名称,win10升级2004后CATIA无法连接许可证服务器解决方案(2页)-原创力文档...
- Sa身份登陆SQL SERVER失败的解决方案
- Leetcode295 数据流中的中位数-最小堆和最大堆
- Python爬虫入门(2):爬虫基础了解
- 期待着DELPHI的浴火重生
- hackerrank---Sets - Symmetric Difference
- oracle的学生,Oracle做学生信息系统的脚本
- 一个在职的软件测试的日常工作是怎么样的?
- 微信URL带来重大调整
- c# Quartz使用
- 【已解决】SVN设置为中文 最全面
- 副业 | 程序员开启副业之路经验之谈!
- 在线java编译器_五个免费在线Java编译器,轻松编译代码
- Gitlab首次首次使用步骤
- 如何使用Element Plus 提供的Icon图标库
- 微信小程序----对接OneNet平台(测试版)
- win服务器的远程连接--如何打开远程连接服务器?如何设置远程连接?连接工具?
- 条码应用与企业ERP无缝集成
- 【JAVA】奥林匹克五环(Olympic rings)
热门文章
- html瀑布流视频列表,StaggeredGridLayoutManager实现瀑布流视频列表和头部广告位以及分栏Header条...
- 计算机怎么会自动开机,Windows10系统电脑半夜会自动开机如何解决
- python 第一天
- Redis HyperLogLog
- python使用repeat、cycle重复打印字符串
- pytorch 使用 CPU 多进程多核训练模型
- python取两个列表的并集、交集、差集
- Mac os安装SEAL
- 使用pandas 按同一列名称合并,并解决concat() got an unexpected keyword argument ‘join_axes‘报错
- 小程序真机调试访问不了接口_24小时从0到1开发阴阳师小程序