vivado布局布线过程
- 既然是应用Xilinx公司的编译器进行时序收敛,那么就需要大致了解vivado的编译过程
- 布局布线过程可以粗略分三步,synthesis,place,route;
- implentation如果细分,可分为7步:
- Opt Design:优化逻辑设计,使其适应该Xilinx设备
- Power Opt Design(可选):优化设计功耗
- Place Design:将设计布局到对应器件
- Post-Place Power Opt Design(可选):为了降低功耗,对布局后设计进行进一步优化
- Post-Place Phys Opt Design(可选):根据布局结果预估布线timing,对逻辑和布局进行进一步优化,主要优化点在复制high fanout(高扇出)驱动。这一步对于时序收敛很重要,Xilinx建议对于高扇出信号用寄存器形式输出,而不是LUT,原因在于vivado会自动对高扇出寄存器信号进行复制;当然,对于wire型变量,可以通过手动添加(*max_fanout=n*)来控制扇出,但驱动能力和时序还是不如寄存器。
- Route Design:根据布局结果进行布线
- Post-Route Phys Opt Design(可选):根据实际布线延迟进一步优化逻辑和布局,这一步对于时序优化也有好处,但是不会优化很多,对于关键路径,大概比Route Design的结果好0.01ns左右。
时序报告查看
- vivado运行implementation之后,如果有时序违例问题的话,会在最后Design Runs窗口显示时序收敛失败和时序违例大小,但是这个是布线Route阶段之后的结果了,如果只看最终结果很难分析清楚时序违例的根本原因或者说根本路径,所以如果有timing问题,那么要看每一阶段报告,即synthesis之后的,Place Design之后的和Post-Place Phys Opt Design之后的,而不是只看