Vivado是Xilinx系列FPGA开发环境。本文记载收录了vivado常用开发技巧,随机记录、随时更新。。。
任何Xilinx相关问题都可到WELCOME TO XILINX SUPPORT!查询
1. STA
静态时序分析(Static Timing Analysis, STA):简介及内容导航
VIVADO的综合属性ASYNC_REG
1.1. 同步器
在XDC中作如下约束,表示对名字末尾为_cdc_to的寄存器不进行STA
set_false_path -through [get_pins -hier *cdc_to*]
同时,对于跨时钟域的同步寄存器,要作如下声明。这样这几个同步寄存器就可以接收异步信号,且会布局到同一个SLICE/CLB来提高Mean Time Between Failure(MTBF)
(*ASYNC_REG = "TRUE"*)reg res_cdc_to;
(*ASYNC_REG = "TRUE"*)reg res_d1;
1.2. Report Timing Summary
详细报告可以点击Open Implemented Design下的Report Timing Summary,之后在右侧TIming一栏中选择具体的路径显示延迟

上图中,我们将From触发器看作是UFF0,To触发器看作是UFF1,则时序路径可简化为如下图

名词解释如下
● Slack:建立时间裕量
● Levels:逻辑级数,从UFF0/Q到UFF1/D之间组合逻辑器件的个数
● Fanout:表示从这一点连接到了几个目的端点,fanout = 1就表示连接了1个目的端点
● From To:发起触发器与捕获触发器
● Total Delay:路径UFF0/CK到UFF1/D的总延迟,即 T C K 2 Q U F F 0 + T U F F 0 / Q _ t o _ U F F 1 / D T_{CK2Q}^{UFF0}+T_{UFF0/Q\_to\_UFF1/D} TCK2QUFF0+TUFF0/Q_to_UFF1/D
● Logic Delay:路径UFF0/CK到UFF1/D的逻辑元件延迟,包括触发器延迟 T C K 2 Q U F F 0 T_{CK2Q}^{UFF0} TCK2QUFF0
● Net Delay:路径UFF0/CK到UFF1/D的走线延迟
由此可见,Total Delay = Logic Delay + Net Delay
之后双击Path 5那一行,得到该时序路径的时序报告,如下

Summary一栏:
● slack:建立时间裕量,为正表示这条路径是满足建立时间要求
● source:源端触发器,即时序分析的起点,发射沿(Launch Edge)
● destination:目的触发器,即时序分析的终点,锁存沿(Latch Edge)
● path group:时序分析的时钟源
● path type:路径类型,此路径为建立时间的分析
● requirement:时序要求,设定为25MHz,所以就是40ns
● data path delay:路径UFF0/CK到UFF1/D的总延迟,即 T C K 2 Q U F F 0 + T U F F 0 / Q _ t o _ U F F 1 / D T_{CK2Q}^{UFF0}+T_{UFF0/Q\_to\_UFF1/D} TCK2QUFF0

本文详细介绍了Vivado工具在FPGA开发中的关键步骤,包括静态时序分析(STA)的同步器设置、ReportTimingSummary的解读,以及编译过程中的route_design问题。综合部分讨论了报告利用率、功耗、拥塞和时序违例路径,强调了IOB配置、安全状态机配置和DONT_TOUCH属性的重要性。此外,还提到了DevicePrimitiveInstantiation,如IOComponents、ClockBuffers和XilinxParameterizedMacros的使用。
最低0.47元/天 解锁文章
3433

被折叠的 条评论
为什么被折叠?



