FPGA设计中跨时钟域常见的问题(读书笔记)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FPGA设计中跨时钟域常见的问题(读书笔记)相关的知识,希望对你有一定的参考价值。

参考技术A 亚稳态产生的原因就是触发器建立时间(Tsu)和保持时间(Th)不满足,以及复位过程中复位信号的释放相对于有效时钟的恢复时间和撤离时间不满足,就可能产生亚稳态。建立时间就是时钟沿到来之前,触发器输入信号必须保持稳定的时间。保持时间就是时钟沿之后,信号必须保持稳定的时间。

从图中可以看出输出端Q在CLK的上升沿后,处于不稳定的振荡状态,在经过决断时间后(Tmet),Q将稳定在0或者1上,但是稳定是随机的,与输入没有必然关系。
在同一时钟域中,可以采用时序约束来满足建立时间(Tsu)和保持时间(Th)。对于异步信号,在输出稳定前可能会出现毛刺、振荡、不固定的电压值,还会有亚稳态的传播。

这个现象经常出现在由快时钟域到慢时钟域时,由于信号保持时间过短,作为采集方的慢时钟域有可能采集不到该信号,造成数据丢失。所以为了安全起见,异步信号应该保持目的时钟域的两个时钟周期(这个很重要)。

意思就是信号通过不同路径传输后重新聚合到一起使用。有下面两种情况

该信号从一个时钟域进入到另一个时钟域,由于Td存在传输延时,DA1和DA2到达CLK_B的时间不同,导致一级触发器的触发时钟沿不同,最后导致Fsm1_en和Fsm2_en也存在相位差。

这种情况就是多个信号聚合成一个信号。在通过组合逻辑的时候会导致电路功能上的异常,如图En1和En2输入,最终的期望值是0b11,但由于两个信号到达时钟域B的时间有差异,实际输出值是0b00、0b10、0b11。

以上是关于FPGA设计中跨时钟域常见的问题(读书笔记)的主要内容,如果未能解决你的问题,请参考以下文章

读书笔记 - js高级程序设计 - 第四章 变量 作用域 和 内存问题

[hadoop读书笔记] 第三章 HDFS

JavaScript高级程序设计-读书笔记

读书笔记iOS-设计模式

JavaScript设计模式:读书笔记(未完)

《控制系统设计指南》第一章和第二章读书笔记