当前位置: 首页 > ds >正文

同步时钟与异步时钟

建立时间与保持时间

  • 建立时间:在时钟脉冲到来前,输入数据需要保持稳定的时间
  • 建立时间:在时钟脉冲到达后,输入数据仍需保持稳定的时间

在单时钟域,这很容易满足。但在多时钟域,很容易出现一个时钟域的输出在另一个时钟域的时钟上升沿来临时发生改变的现象,这将会引起第二个时钟域中的触发器的输出处于亚稳态,由此导致一系列错误的结果。

时钟

同步时钟

如果多个时钟都起源于同一时钟,并且它们的相位和频率关系是已知的(频率相同或频率比为整数倍、且相位相同或相位差固定),那么它们可以看成是同步时钟。

或者理解为,时钟同源且频率比为整数倍的两个时钟为同步时钟。其实,时钟同源,就保证了时钟相位差的固定性。

  •  同源同频同相位:来源于同一时钟源,频率和相位都是相同的。只需要满足正常的建立和保持时间就可以。

  • 同源同频不同相位:相位差为一恒定值,会有更小的建立/保持时间的裕量,对组合逻辑的约束更紧。例如两个时钟路径不同,导致时钟之间存在一定的时钟偏移;可以在版图级对时钟偏移进行填补。

  •  同源不同频,但存在整数分频比:此类情况下,一个时钟往往是另一个时钟的分频,即便存在相位差也是固定的。通常都是可以满足建立保持时间的。最差建立时间检查在时钟边沿相位差为T时进行,最差保持时间检查在时钟边沿相位差为零时进行。

异步时钟

工作在异步时钟下的两个模块进行数据交互时,由于时钟相位关系不可控制,很容易导致建立时间和保持时间 violation。以下 3 种情况下的时钟可以认为是异步的。

  • 不同源:由两个不同的时钟源产生的两个时钟是异步的,这是最常见的异步时钟。
  • 同源但频率比不是整数倍:此时两个时钟间相位差也可能会有多个,例如同源的 7MHz 时钟和 3MHz 时钟,他们之间也会出现多个相位差,时序也难以控制。一般情况下也需要当异步时钟处理。
  • 同源虽频率比为整数倍但不满足时序要求:当信号从快时钟域传递到慢时钟域时,只要慢时钟域能安全采集到从快时钟域传来的信号,就不存在异步问题。但如果信号在快时钟域翻转速率过快,慢时钟域可能不会安全的采集到从快时钟域传来的信号,这也可以认为是异步问题。一般来说,慢时钟域时序约束较为宽松,快时钟域较为严格。

时钟属性

  • skew:时钟前往不同寄存器的时钟端口会有不同的线网延迟,不同寄存器之间的时钟信号相位差称为skew。与时钟频率无关,只与线长,电容等相关。

  • jitter:相对于理想时钟,实际时钟会在理想时钟左右存在一定的偏移,不随周期积累。与时钟频率无关。这两者被称为时钟不确定性(uncertainty)。

  • transition:与器件特性和电容负载有关,并不是理想的直上直下,而是有一定的坡度。

    • 时钟转换时间越短,而且上升和下降越对称,时钟质量越好。
  • latency:包括时钟源延迟(source latency)和时钟网络延迟(network latency)。

    • 时钟源延时是时钟源到时钟定义点的延时。
    • 时钟网络延时是时钟定义点到寄存器时钟端口的延时。
  • 这篇博客中也有时钟属性相关的介绍,在DC中,skew、jitter值与建立时间检查之间的关系。

同步电路/同步/同步FIFO

  • 非同源的两个时钟域,一定是异步的。
  • 同源的两个时钟域,可以是同步的,也可以异步,根据具体需求来。
  • 同步指的是指信号在两个时钟域之间传递时,需要检查时序。两个时钟的同步,广义上来讲,就是需要保证相位的固定,不论是几分频关系,也不论是同相位反相位还是90度相位差。时钟的同步,不仅仅需要从设计上由同源做基本保证;同时还需要时钟约束同步,在综合以及PR时保证时序关系。
  • 同源的两个时钟域,如果没有同步需求,可以设置false path,减少时钟树负担和不必要的时序检查
  • 异步FIFO的概念是相对同步FIFO而言的,与异步时钟和同步时钟的概念有点区别。同步FIFO,读写时钟是同一个时钟;异步FIFO,读写时钟不是同一个时钟,不论读写时钟是否同源是否相位固定,只要不是接同一个时钟,都要按照异步FIFO处理。
http://www.xdnf.cn/news/2952.html

相关文章:

  • 1.24g 雨晨 19045.5796 Windows 10 企业版 x64 极速版
  • pymsql(SQL注入与防SQL注入)
  • Spring反射机制
  • Dijkstra算法的学习
  • cmake qt 项目编译
  • 开源 Agent 框架对比:LangChain vs AutoGen vs CrewAI
  • 牛客:AB1 【模板】栈
  • 天猫TP代运营服务商-品融电商:助力品牌破局增长的专业推手
  • 【HCIA】4种NAT的配置方式
  • AI专题(二)----由浅入深初识LLM
  • 大模型性能测试
  • 数据要素如何驱动的新质IDC一体化运营体系发展?
  • Jtti:nginx服务器如何限制访问频率
  • 在android 系统上qnn sdk转换,运行模型示例
  • MCU低功耗运行模式与唤醒机制解析
  • 数据结构每日一题day12(链表)★★★★★
  • 【AI论文】PHYBench:大型语言模型中物理感知与推理能力的全面评估
  • Redis 常见问题深度剖析与全方位解决方案指南
  • 基于STM32、HAL库的DS2411R安全验证及加密芯片驱动程序设计
  • RPO与RTO
  • 代码随想录第30天:动态规划3
  • Foreign Trade Process
  • 9.Excel:条件格式
  • torch.nn.Parameter 与 torch.Tensor
  • 微机控制电液伺服钢轨滚动疲劳试验机
  • 17:00开始面试,17:08就出来了,问的问题有点变态。。。
  • TransactionTemplate 与@Transactional 注解的使用
  • python22-元组、列表、字典、集合推导式
  • 清洁电力转换技术全球引领者——阳光电源,如何搭建数字化业务平台?
  • 代码随想录打卡|Day29 动态规划Part02(不同路径、不同路径2、整数拆分、不同的二叉树搜索)