第01章
时序约束入门
什么是时序约束?为什么需要时序约束?Vivado中的时序约束流程概览。
概念流程
第02章
Vivado工程创建与基本设置
创建RTL工程、添加源文件、综合与实现的基本流程。
工程综合
第03章
时序分析基础概念
建立时间、保持时间、时钟偏斜、时钟抖动、数据到达时间、时钟到达时间。
建立时间保持时间抖动
第04章
主时钟约束 (create_clock)
语法详解、单端时钟与差分时钟、占空比与相位偏移。
主时钟差分占空比
第05章
生成时钟约束 (create_generated_clock)
分频时钟、倍频时钟、相移时钟、与主时钟的关系。
分频倍频相移
第06章
虚拟时钟约束 (create_clock -name)
什么是虚拟时钟?为什么需要它?典型应用场景(如异步接口)。
虚拟时钟异步
第07章
输入延迟约束 (set_input_delay)
min/max延迟、参考时钟选择、上升沿/下降沿触发。
输入延迟min/max
第08章
输出延迟约束 (set_output_delay)
min/max延迟、参考时钟选择、负载模型考虑。
输出延迟负载
第09章
时序例外之伪路径 (set_false_path)
跨时钟域路径、复位路径、测试逻辑路径。
伪路径跨时钟域
第10章
时序例外之多周期路径 (set_multicycle_path)
慢速逻辑、使能信号、数据有效窗口。
多周期使能
第11章
时序例外之最大/最小延迟 (set_max_delay / set_min_delay)
异步信号、组合逻辑路径。
最大延迟最小延迟
第12章
时钟分组约束 (set_clock_groups)
异步时钟组、互斥时钟组、物理互斥与逻辑互斥。
时钟分组互斥
第13章
时序约束文件管理
XDC文件结构、多个XDC文件的优先级、Tcl脚本化约束。
XDCTcl
第14章
综合后的时序分析
阅读综合报告、识别关键路径、初步优化思路。
综合报告关键路径
第15章
实现后的时序分析
阅读实现报告、setup/hold违例分析、时序路径报告详解。
实现报告违例
第16章
时序报告解读(上)
报告路径类型(reg-to-reg、in-to-reg、reg-to-out、in-to-out)。
路径类型reg-to-reg
第17章
时序报告解读(下)
Slack计算、数据路径延迟、时钟路径延迟、时钟不确定性。
Slack不确定性
第18章
时序收敛策略(一)
流水线设计、寄存器平衡、逻辑复制。
流水线寄存器平衡
第19章
时序收敛策略(二)
重定时(Retiming)、物理综合、布局优化。
Retiming物理综合
第20章
时序收敛策略(三)
时钟树综合优化、I/O寄存器放置、区域约束。
时钟树区域约束
第21章
跨时钟域同步与约束
CDC同步器(双级触发器、异步FIFO)、set_clock_groups与set_false_path的应用。
CDC同步器FIFO
第22章
源同步接口时序约束
DDR接口、SDR接口、数据与时钟的对齐关系。
源同步DDRSDR
第23章
SDRAM/DDR控制器时序约束
读写时序窗口、DQS与DQ的关系、输出延迟计算。
DDRDQS延迟计算
第24章
高速串行接口时序约束
SerDes、GTX/GTH收发器、参考时钟与恢复时钟。
SerDesGTX恢复时钟
第25章
时序约束的调试与验证
Tcl脚本检查约束、report_timing_summary、check_timing。
调试check_timing
第26章
时序约束的迭代优化
从综合到实现的迭代流程、如何快速定位违例。
迭代定位违例
第27章
Vivado时序分析工具详解
Timing Summary Report、Timing Path Report、Clock Interaction Report。
报告时钟交互
第28章
实战案例一:百兆以太网接口时序约束
RGMII接口。
以太网RGMII
第29章
实战案例二:DDR3控制器时序约束
用户接口与物理接口。
DDR3控制器
第30章
实战案例三:多时钟域系统时序约束
包含CDC与异步FIFO。
多时钟域CDCFIFO