上篇博文:时钟简介,简单的介绍了下时钟,这篇博文讲下时钟域的相关问题。

时钟域的概念

随着FPGA芯片所承载的功能日趋复杂,单个时钟信号已经往往不能满足FPGA设计的需求。就拿一个最简单地串并转换接口来说,要实现它就至少需要两个时钟信号,因此,通常情况下,一个FPGA设计中往往要用到多个时钟信号。

当FPGA设计中的时钟增多了以后,多时钟并存,就会导致跨时钟域问题。这篇博文暂时不讲跨时钟域问题,而要要将目光聚集到时钟域上,只要搞清楚什么是时钟域,后续的讨论才有意义。

简而言之,时钟域就是时钟信号的“势力范围”。一个时钟域只能存在一个时钟信号,但是一个时钟信号最多可以对应两个时钟域,当其上升沿和下降沿分别都被一部分资源敏感的时候。

而被各个时钟域所瓜分的资源,正是具有存储功能的各个单元,而其中最典型的就是寄存器。要想判断一个寄存器时属于哪一个时钟域的,方法很简单,只要看它的时钟输入端口接的是哪个时钟信号以及敏感那个边沿即可。

时钟树简介

既然是“势力范围”,那么不同时钟信号的时钟域大小就可能不同。因此,对于“势力范围”大小不同的各个时钟域,时钟的管理方法也必然不同,也就是使用时钟树!(时钟树其实就是FPGA内部的时钟网络资源)

那么时钟树是如何管理时钟域的呢?

首先,如果一个时钟域包含10000个触发器,那么该时钟信号必须能够同时连接到这10000个触发器的时钟输入端,而如此之大的信号扇出要怎么实现呢?

时钟树可以做到这么大的扇出!

其次,为了达到更好的时序指标,我们总希望时钟信号尽可能同时到达其时钟域内各个触发器的时钟输入端,那么如此苛刻的要求又要怎么实现呢?

不用担心,时钟树可以保证时钟信号到达时钟域内不同的触发器的时间差最小。

由此可见,时钟树资源对时钟信号的重要性。


时钟树的工作原理

先看看百度百科的解释:

时钟树,是个由许多缓冲单元(buffer cell)平衡搭建的网状结构,它有一个源点,一般是时钟输入端(clock input port),也有可能是design内部某一个单元输出脚(cell output pin),然后就是由一级一级的缓冲单元搭建而成,具体的多少级,根据你的设置以及所使用的单元而定,目的就是使所用终点的clock skew(一般最关心这个)、insertion delay以及transition了,满足设计要求。

给出FPGA之道的解释:

如下图:

上图为一个时钟树的原理结构图,时钟信号由最中间的树根引入时钟树,并经由第一级缓存扇出若干个分别送往不同的区域;在各个区域中,再采用同样的方式继续扇出并送往不同的子区域;如此往复,直到时钟信号到达最基本的触发器等资源。

可见,时钟树主要利用多级扇出的形式来达到最终的高扇出结果;而通过控制各级扇出后的布线长度尽量一致来保证时钟信号能够尽可能同时到达各个触发器,这就是时钟树工作的基本原理。

注意,如果两个时钟域分别对应一个时钟信号的上升沿和下降沿,则它们可以共用一个时钟树。

最后,需要澄清一个概念,那就是时钟树是保证时钟信号到达时钟域内不同触发器的时间差尽可能小的资源,而不是保证时钟信号到达触发器所消耗时间最短的资源。

时钟树的分类

按照时钟树的作用范围来看,FPGA内部的时钟树资源共有三种:全局时钟树、区域时钟树、IO时钟树。

这篇博文就到这里,下篇博文接着讲如何正确地使用时钟。包括,如何选择时钟树,时钟信号如何上树等问题。

参考文献:

FPGA之道

百度百科

【 FPGA 】时钟域问题简介相关推荐

  1. FPGA之道(47)时钟及时钟域

    文章目录 前言 时钟及时钟域 时钟,时序逻辑的心跳 时钟信号基本特征 时钟信号基本特征参数介绍 如何区分时钟和数据 时钟信号的分类 按来源分 外部时钟 再生时钟 门控时钟 行波时钟 按波形分 连续时钟 ...

  2. (84)FPGA面试题-多bit跨时钟域

    1.1 FPGA面试题-多bit跨时钟域 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题-多bit跨时钟域: 5)结束语. 1.1.2 本节引言 &quo ...

  3. (79)FPGA如何处理跨时钟域问题-面试必问(三)(第16天)

    (79)FPGA如何处理跨时钟域问题-面试必问(三)(第16天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)FPGA如何处理跨时钟域问题-面试必问(三)(第1 ...

  4. (11)FPGA跨时钟域处理(第3天)

    (11)FPGA跨时钟域处理(第3天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)FPGA跨时钟域处理(第3天) 5)技术交流 6)参考资料 2 FPGA初级 ...

  5. (10)FPGA跨时钟域处理

    (10)FPGA跨时钟域处理 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)FPGA跨时钟域处理 5)结语 1.2 FPGA简介 FPGA(Field Programm ...

  6. FPGA跨时钟域处理方法延迟法

    1.1 FPGA跨时钟域处理方法延迟法 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA跨时钟域处理方法延迟法: 5)结束语. 1.1.2 本节引言 " ...

  7. FPGA跨时钟域处理方法FIFO

    1.1 FPGA跨时钟域处理方法FIFO 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA跨时钟域处理方法FIFO: 5)结束语. 1.1.2 本节引言 &quo ...

  8. FPGA异步时钟域处理之格雷码转换

    0 本章目录 1)时钟域定义 2)为什么要做跨时钟域的处理? 3)FPGA简介 4)结束语 1 时钟域定义 所谓时钟域,就是同一个时钟驱动的区域.单一时钟域是FPGA的基本组成部分,但是随着设计规模扩 ...

  9. FPGA知识点汇总(verilog、数字电路、时序分析、跨时钟域、亚稳态)

    FPGA十分擅长同时做简单且重复的工作(并行计算)人工智能就有许多重复性.需要并行计算的工作如模式识别.图像处理,在通信领域,FPGA的低延时.可编程.低功耗的特点 开发流程:RTL设计,仿真验证,逻 ...

最新文章

  1. DIY强大的虚拟化环境-技术可行性部分
  2. linux kprobe rootkit 简介
  3. 缺乏管理思想的管理软件是没有灵魂的
  4. scrapy的Middleware
  5. Linux把文件移动到容器外,Docker容器与主机之间拷贝文件的方法
  6. mac镜像cdr格式_eps是什么格式怎么打开?全面解析图片的eps是什么格式
  7. 文档下载:《两万字深度介绍分布式系统原理》.pdf
  8. 电商促销海报PSD分层模板,轻松搞定
  9. DX学习笔记之Surfaces
  10. jeecms 代码生成 Tools
  11. Thinking in Java Chapter 14
  12. 使用Navicat for MySQL设置定时备份数据库和数据恢复
  13. android_handler(三)
  14. 苹果+beta+软件测试计划,自讨苦吃:加入苹果Apple Beta版软件计划之后
  15. shp地图如何导入奥维地图手机_如何将平面控制点导入Google Earth、奥维互动地图及手机奥维互动地图APP里面?...
  16. aliplayer阿里云播放器直播及录播前端代码
  17. 合肥Android两天十面总结
  18. Unity微信Android端第三方登陆
  19. 超详细傻瓜iPhone自定义来电铃声教程
  20. Android自定义View-简约风歌词控件

热门文章

  1. mysql字符串相加函数concat()
  2. android谷歌返色状态栏实例,Android实现状态栏(statusbar)渐变效果的示例
  3. 同步和串行的区别_[深度思考]·为什么CNN是同步(并行)而RNN是异步(串行)的呢?...
  4. webpack打包转换es6_webpack(二)解析es6并打包
  5. 网络带宽由什么决定_加工中心价格分析,加工中心价格是由什么决定的呢?
  6. 三星s8自带测试硬件软件,三星S8手机国行固件开启测试:或支持桌面级操作体验...
  7. java删除有序数组中的重复元素_java去除已排序数组中的重复元素
  8. 智能车竞赛技术报告 | 智能视觉组 - 大连海事大学 - 菜鸡啄米
  9. RT-Thread逐飞-智能车培训之RT-Thread在全向行进组中的应用
  10. RT-Thread智能车培训计划-2021