约束
时序约束
Xilinx的时序约束是进阶阶段必须要掌握的技能,首先考虑的约束就是板上的时钟,然后考虑这些时钟是不是同源的,然后需要分析这些时钟之间的相位关系
创建时钟}
设置clock group
FPGA内部的时钟资源可以分为三类(当然要说是两类也是可以的):同步时钟、异步时钟和不可扩展时钟。
- 同步时钟指的就是从同一个时钟源来的,经过一些逻辑、PLL或者MMCM产生的时钟,这些时钟有稳定的相位关系,除了不可扩展时钟以外。
- 异步时钟就是指的没有稳定相位关系的时钟。
- 不可扩展时钟指的是有些时钟虽然是从同一个时钟源来的,但是在1000个时钟周期内时钟沿不能对齐的时钟,比如说clk1的周期是5.125ns,clk2的周期是6.666ns,这两个即使是有稳定的相位关系,但是时钟沿对不齐。
后面这两种情况的时钟就要视为异步时钟来处理(很奇怪的分类对吧,第三类本来是同源时钟,但是要归到异步时钟中来考虑),Vivado在对FPGA内部的时钟信号进行分析的时候会把所有时钟当成同源时钟来考虑!!!也就是说,跨时钟域的信号也会被拿来进行时序分析,这大可不必,分析出来的结果也是错的。那么这里可以得到两个结论:一是跨时钟域的信号必须要自己处理,消除亚稳态问题(见这一节);二是没有必要让Vivado分析跨时钟域的信号的时序,徒增宇宙的熵。
input/ output delay}
待完成