IC设计中经常会遇到多时钟域的情况,最常见就是总线接口一个时钟,模块工作一个时钟(两个异步时钟),这时候数据通过总线到达模块内部在被模块工作时钟采样前需要做下同步处理,这样可以保证信号正确的被采样,不至于在时序仿真时寄存器出现亚稳态状况,给出一个信号在不用时钟域下同步处理时序如下图,实际上这种处理只需要在异步时钟的情况下才需要,如果是同源时钟则不需要,用综合工具做好约束,DC会在综合时做好处理,优化好时序。

设计目的是将来自源时钟域sclk的start信号和数据data同步到目的时钟域dclk,注意到sclk和dclk是异步时钟,为了保证start信号能够被dclk正确采样,首先需要将start信号延长(data_avail_nxt),在源时钟域sclk下同步一级(data_avail),然后两级同步到目的时钟域dclk(sync_data_avail),这时候start信号已经可以被目的时钟域dclk正确采到,再将sync_data_avail在dclk下同步一级,输出其上升沿信号(sync_data_ed)给dclk使用。sync_data_avail可以作为dclk的ack告诉源时钟域sclk同步已完成,可以进行下一个数据的同步了,ack来自dclk,要过渡到sclk需要在sclk下同步两级,然后再采其边沿,作为同步完成握手信号给sclk使用,busy信号作为同步正在进行的标志,在sclk检测到start后开始,检测到finish后结束。

功能框图如下:

转载于:https://www.cnblogs.com/kxk_kxk/archive/2010/12/25/1916435.html

异步时钟下跨时钟域信号处理相关推荐

  1. 跨时钟域信号处理(二)——异步fifo的Verilog实现(附同步fifo的实现)

    需要回答几个问题: 1.什么是异步FIFO,异步FIFO有什么功能? 跨时钟域的数据交换,防止亚稳态. 2.在产生写满与读空信号时需要进行跨时钟域如何做的,且如何能正确指示空满状态? 寄存器打两拍+格 ...

  2. 跨时钟域问题(CDC)

    跨时钟域问题(CDC) slow to fast 边沿检测同步器 脉冲同步器 fast to slow 脉冲同步器 展宽 跨时钟域问题分为单比特和数据流两种情况,数据流也就是多比特问题,采用异步FIF ...

  3. 跨时钟域传输和Verilog代码

    文章目录 基本概念 一.单bit信号 1.慢时钟域信号同步到快时钟域 2.快时钟域信号同步到慢时钟域 3.结绳法处理单bit信号跨时钟域 二.多bit控制信号跨时钟域同步 三.多bit数据流跨时钟域同 ...

  4. CDC:跨时钟域处理

    前言(还未整理好) CDC(clock domain crossing)检查(跨时钟域的检查)是对电路设计中同步电路设计的检查.非同步时钟没有固定的相位关系,这样Setup/Hold不满足而产生了亚稳 ...

  5. 亚稳态原因以及跨时钟处理方法

    亚稳态原因以及跨时钟处理方法 1.亚稳态原因:不满足建立时间与保持时间要求 (1)结论:数据早来晚走可以避免亚稳态,减少时序违例. (2)建立时间与保持时间概念: 建立时间Tsu:时钟触发事件来临之前 ...

  6. UltraScale时钟资源和时钟管理模块

    UltraScale时钟资源和时钟管理模块 绪论 图2.1和2.2给出了UltraScale结构的时钟结构.从图中可以看出,基本的结构是由表示分段时钟行和列的CR块构成的CR以一个单元的方式排列,从而 ...

  7. 【Verilog基础】CDC跨时钟域问题,个人理解总结(下)(数据丢失、多路扇出、异步复位解决方案)

    文章目录 3.3.CDC问题3--数据丢失(延长信号) 3.4.CDC问题4--多路扇出(同步后扇出) 3.5.CDC问题5--异步复位(同步释放) 书接上回:[Verilog基础]CDC跨时钟域问题 ...

  8. 异步fifo_跨时钟域同步(异步FIFO)

    本文使用 Zhihu On VSCode 创作并发布 跨时钟域同步(异步FIFO) 之前学习了跨时钟域下的单bit信号同步的方法,这些单bit信号多是作为控制信号或者标志信号来使用,再实际的项目中,处 ...

  9. 异步fifo_数字IC校招基础知识点复习(五)——跨时钟域涉及part2(异步FIFO)

    1.跨时钟域设计(CDC)-part 2 在上一篇中我们主要关注的是单比特的控制信号,而对于多比特信号的跨时钟域传输则需要一些其他的手段. 首先需要明确的是,一般不采用对多比特信号中的每个比特单独使用 ...

  10. FPGA跨时钟域异步时钟设计的几种同步策略

    1 引言 基于FPGA的数字系统设计中大都推荐采用同步时序的设计,也就是单时钟系统.但是实际的工程中,纯粹单时钟系统设计的情况很少,特别是设计模块与外围芯片的通信中,跨时钟域的情况经常不可避免.如果对 ...

最新文章

  1. numpy版本不对应导致tensorflow出错
  2. t oracle删除吗,Oracle 11g 手工建库与删库
  3. 第十三章 Perl的面向对象编程
  4. PostgreSQL 自定义复合类型(composite type) deform引入的额外开销
  5. _.uniq_在Ruby中使用Array.compact和Array.uniq方法从Array中移除元素
  6. Pika在360的应用与实践
  7. java计算程序执行时间_java计算程序执行所用时间例子
  8. TensorFlow HOWTO 1.2 LASSO、岭和 Elastic Net
  9. 后端根据查询条件生成excel文件返回给前端,vue进行下载
  10. 关键2招提升软件开发项目的利润
  11. linux单机配置DG过程记录
  12. Windows server 2019 - Raid5 搭建+测试
  13. Aix5~6小机运维
  14. tomcat7不支持html5吗,HTTP状态404说明请求的资源()不可用。的Apache Tomcat/7.0.27
  15. indesign排版标点挤压_indesign排版标点挤压设置技巧
  16. 【量化笔记】移动均线
  17. 2008中国IC十佳(七):深圳芯邦冲刺创业板
  18. NB-IoT从原理到实践 学习笔记 part1-8
  19. 用计算机进行文本信息的加工处理,前面我们已经学了用计算机进行文本信息的加工与表达过程.ppt...
  20. 化繁为简——分解复杂的SQL语句

热门文章

  1. flutter怎么手动刷新_Flutter 怎样更新?怎样升级? - Flutter - Angular 教程网
  2. 深度学习群体行为识别python包_入门Python深度学习,学会这个方法事半功倍
  3. Android第二十课 解决Logcat无法输出调试信息
  4. 使用Ant打包java程序
  5. EasyUI Datagrid换页不清出勾选方法
  6. 重启Windows的PowerShell
  7. ubuntu下用户的创建、修改
  8. QProcess 使用
  9. android studio进行增删改查代码_使用C#进行数据库增删改查(二)
  10. ARM开发7.3.1 基础实训( 1 ) 单个按键的输入系统设计( 1 )--LPC21XX