提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

Vivado从此开始(进阶篇)读书笔记——跨时钟处理

  • 前言
  • ASYNC_REG
  • 高效设计异步跨时钟域电路
    • 单bit异步跨时钟域电路
    • 多bit异步跨时钟域电路

前言

最近买了几本书,对知识进行细节方面查漏补缺,从0分到90分容易,从90分到95分难。主要记录一些自认为有用,但平时又没有用到的一些小知识点或者技巧,包括例如一些新奇的设计、一些忽略的报表分析或者约束等等,也许不关注这些东西,工程也能正常编译和使用,但为了更加精益求精,还是要广泛吸收其他人的一些总结和经验,才能不断进步。

在这篇文章中提到的XPM_CDC模板,以前我从来没关注过,直到看到这本书中写到,因此记录下来,准备研究看看

ASYNC_REG

在异步跨时钟域场合,对于控制信号(通常位宽为1bit)常使用双触发器的方式完成跨时钟域操作。如图所示。对于图中标记的1和2的触发器,需要使用综合属性ASYNC_REG,其目的有两个:表明1触发器接收的数据来自与接收时钟异步的时钟域;表明2触发器是同步链路上的触发器。这样就能保证1/2触发器在布局时会被放置在同一个SLICE内,从而减少线延迟对时序的影响

在实际工程中,1和2触发器往往会被设计者忘记标记ASYNC_REG。一个好的解决方法是使用Xilinx提供的XPM_CDC模板来避免遗忘,相应的代码如图所示。可以看到,这里只需要实例化xpm_cdc_single即可,无需标记ASYNC_REG(该属性已被标记)

结论:
(1)ASYNC_REG用于单bit信号采用双(或多)触发器实现异步跨时钟域的场合,此时所有用于同步的触发器都要标记ASYNC_REG。
(2)可使用Xilinx提供的XPM_CDC模板避免遗忘标记ASYNC_REG

高效设计异步跨时钟域电路

单bit异步跨时钟域电路

对于同步跨时钟域电路,由于时钟之间有明确的相位关系,因此可通过时序约束明确建立时间需求,保证电路正常工作。对于异步跨时钟域电路,由于发送时钟与接收时钟之间没有明确的相位关系,因此,需要通过电路本身保证数据被稳定地传输。Xilinx提供了单bit跨时钟域时钟电路设计流程,可减小设计开发的难度。

多bit异步跨时钟域电路

对于多bit异步跨时钟域电路,首先,需要明确数据是否已经处于稳定状态,不会再翻转。例如,由clka驱动的4个触发器,其输入端口是固定数值(0或1),其输出端口连接到由clkb驱动的4个触发器,那么此时并不需要跨时钟域电路。又或者,由clka驱动的4个触发器,其输入端由外部CPU提供,只在上电时给数据,之后保持不变,那么此时也不需要跨时钟域电路。其次,判断是否每个时钟周期都要传输数据,如果是,则需要用到XPM_FIFO_ASYNC;如果不是,则明确数据是否需要缓存,如果需要,则仍需要使用XPM_FIFO_ASYNC,否则就要检查数据是否是个计数器,如果是,就需要用到XPM_CDC_GRAY,如果不是,则明确所有bit是否要求在同一时钟周期内到达,如果是,则需要用到XPM_CDC_HANDSHAKE;否则,就需要用到XPM_CDC_ARRAY_SINGLE。整个流程如图所示。


以上所有的模板都位于:

后续还需添加一些实例

Vivado从此开始(进阶篇)读书笔记——跨时钟处理相关推荐

  1. 鸟哥的linux私房菜-基础学习篇 读书笔记

    从事linux工作一年多,算是能够熟练运用linux服务器,但仍觉得自己对Linux的原理,理论缺乏空洞,潜下心来认真阅读尘封的鸟哥经典,知识点很全,收获颇多,实践与知识结合,知行合一,对linux开 ...

  2. 鸟哥的LINUX私房菜 基础学习篇 读书笔记 -- 第零章 计算机概论 (一)

    鸟哥的LINUX私房菜 基础学习篇 读书笔记 -- 第零章 计算机概论 (一) 第零章 计算机概论 0.1 电脑:辅助人脑的好工具 0.1.1 计算机硬件五大组成部分 0.1.2 一切设计的起点: C ...

  3. Android进阶之光 读书笔记

    第一章, Android 5.6.7新特性 1.RecycleView的自定义分割线 public class DividerItemDecoration extends RecycleView.It ...

  4. 3星|《工作是最好的修行》:樊登读书会节目文稿,14篇读书笔记

    工作是最好的修行 全书是樊登读书会的14期免费节目的文稿,也就是14篇樊登的读书笔记,把书的内容用樊登的话概括转述一遍,夹杂樊登个人的理解和联想. 14本书都是经管类的,清单如下:<干法> ...

  5. 第一篇读书笔记,关于UML和模式应用(1)--书籍简介

    新添加了一个读书笔记分类,以后多写一些读书笔记吧.因为真的觉得自己技术太差了,写不出好文章了. 关于UML和模式应用(1)--书籍简介 Applying UML and patterns(Craig ...

  6. 12篇读书笔记系列-1、置身事内

    导语:当今社会短视频横行,导致全民专注力下降:年关将近,我回顾近几年看过的书籍,竟没有一本能简要复述,不能回想起获取了作者的哪些观点,更别提对作者观点的升华:所以,接下来的12本书,我强迫自己静下心来 ...

  7. 《大数据之路:阿里巴巴大数据实践》第二篇 数据模型篇-读书笔记

    目录 8.大数据领域建模综述 8.1 为什么需要数据建模 8.2 关系数据库系统和数据仓库 8.3 从OLTP和OLAP系统的区别看模型方法论的选择 8.4 典型的数据仓库建模方法论 8.4.1 ER ...

  8. 管理者的50堂课之创始人篇 读书笔记

    第12章 创始人 12.1 创始人的3个角色 12.2 创始人的第一职责:确定战略 12.3 创始人的第二职责:促进变革 12.4 创始人的第三职责:构建团队 12.5 创始人的第四职责:形成文化 1 ...

  9. 【c语言】进阶篇学习笔记

    C语言高级特性 C语言的高级部分.指针板块,需要理解计算机内存模型,需要格外注意. 函数 程序帮我们补充好的main函数: int main() { //这是定义函数... } 程序的入口点就是mai ...

最新文章

  1. Linux之软件安装 apt-get
  2. Web Service 的工作原理
  3. 【经典书籍】深度强化学习实战(附最新PDF和源代码下载)
  4. 惠州学院、智能车和我
  5. android 入门-工序
  6. 用c语言编辑房间长和宽求面积_房间地砖规格怎么选?
  7. c#匿名方法用途_C#的匿名方法
  8. 7-189 帅到没朋友 (20 分)
  9. 人人都在谈的图数据库到底是个啥?
  10. 小白也能看懂的 Java 异常处理
  11. 移动金库模式保护客户信息 覆盖17套关键系统
  12. centos7上先要关闭httpd服务之后再卸载,反正卸载之后就是安装不上一脸懵逼
  13. 样本切分器—利用python按比例均匀切分样本
  14. php实现自定义中间logo的微信小程序码
  15. 2021 年 9 项优秀在线电话会议服务比较(带免费选项)
  16. ping命令的常用参数
  17. 【毕业设计/Matlab系列】基于PCA和BP神经网络的人脸识别系统(附matlab代码)
  18. Unity实现动作游戏的技能系统(Ability System)设计原型
  19. centos7 安装rtl8821ce教程
  20. 基于jsp java的汽车维修管理系统

热门文章

  1. 办公电脑监控软件哪款好用?有没有免费的?
  2. ubuntu 20.04 配置ITS环境遇到的坑
  3. python俄罗斯方块实训报告_用 Python 写个俄罗斯方块
  4. 小丸工具箱-小丸工具箱中文版下载
  5. 怎么彻底删除墨鱼丸?
  6. windows 操作系统中 各个DLL 作用简介
  7. swift函数参数指针传递inout和@escaping冲突的解决方法
  8. win10常用的一些的快捷键
  9. 《项目管理之美》第10章
  10. 由内而外的 螺旋数组