三、所有信号都需要寄存两拍吗
如果这个输入信号来自异步时钟域(比如FPGA芯片外部的输入),必须寄存两拍。第一拍将输入信号同步化,同步化后的输出可能带来建立/保持时间的冲突,产生亚稳态。需要再寄存一拍,减少(注意是减少)亚稳态带来的影响。
如果这个输入信号来自于同一时钟域且需要用到跳变沿,需要寄存一拍。否则时序报告多半会报clock skew > data delay,造成建立/保持时间的冲突。
总而言之,五条原则:
1.全局时钟的跳变沿最可靠。
2.来自异步时钟域的输入需要寄存一次以同步化,再寄存一次以减少亚稳态带来的影响。
3.不需要用到跳变沿的来自同一时钟域的输入,没有必要对信号进行寄存。
4.需要用到跳变沿的来自同一时钟域的输入,寄存一次即可。
5.需要用到跳变沿的来自不同时钟域的输入,需要用到3个触发器,前两个用以同步,第3个触发器的输出和第2个的输出经过逻辑门来判断跳变沿。
————————————————
版权声明:本文为CSDN博主「请answer1996」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43950612/article/details/105478626
FPGA底层原理结构及内部资源
https://blog.csdn.net/qq_15026001/article/details/99691999
1.初识FPGA CLB之总览
http://xilinx.eetrend.com/d6-xilinx/article/2018-10/13799.html
2.初识FPGA CLB之LUT实现逻辑函数
http://xilinx.eetrend.com/d6-xilinx/article/2018-10/13818.html
3.初识FPGA——如何理解时序电路
1)纯组合逻辑电路的缺点在哪?
纯组合电路容易产生毛刺,时序逻辑电路对于组合逻辑的毛刺具有容忍度,从而改善电路的时序特性
2)纯组合逻辑电路完成不了什么功能?
纯组合逻辑只能由当前输入决定当前输出,而不能实现带反馈的逻辑(纯组合电路,奇数个反相器串联闭环振荡器)。
带反馈的逻辑,必须要通过寄存器把输出暂存起来,再由时钟沿去控制数据的反馈更新,这样电路才有意义。
3)为什么需要时钟和寄存器呢?
http://xilinx.eetrend.com/d6-xilinx/article/2018-11/13907.html
4.Xilinx原语学习
https://www.cnblogs.com/rouwawa/p/9961873.html
5.跨时钟域数据处理
跨时钟域处理方法总结--最终详尽版
https://www.cnblogs.com/lyc-seu/p/12441366.html
https://www.cnblogs.com/rouwawa/p/7501319.html