文档参考:
ug903:vivado-using-constraints.pdf
ug945:vivado-using-constraints-tutorial.pdf
ug949:vivado-design-methodology.pdf
1、 代码风格
推荐使用Xilinx language templates的代码块,这里的代码能够综合出正确且结构简洁的电路,包括移位寄存器,乘法,复数乘法,FIR滤波器等,凡是涉及到的模块尽量使用官方写法。
模块的输出最好是使用寄存器输出,有助于降低路径延时帮助时序收敛。
如果并不需要优先级,尽量将If语句转化为case语句。
2、时序改善
2.1、建立时间问题
Xilinx的时序报告中的Data Path Delay主要分为logic delay + route delay,一般各占比50%左右表示最优,若建立时间违例且占比严重不均匀,则需要进行优化。
logic delay主要由逻辑级数太大或者扇出太大导致。
一个logic level的延迟对应的是一个LUT和一个Net的延迟,对于不同的器件,不同频率的设计能容纳的logic level是不同的。
逻辑级数太大解决方法:重定时(Retiming),典型的重定时方法就是流水线,将过于冗长的组合逻辑增加寄存器进行打拍。
High Fanout指的是扇出,同样和器件、设计频率等有关。
扇出太