内容简介
时序约束是确保芯片和FPGA性能满足设计需求的关键技术。芯片研发过程需要准确把握产品需求和项目需求,通过不断迭代、评审和变更,实现需求的收敛和约束。芯片测试用例经过多个阶段的仿真和验证,以保证设计的准确性。在芯片RTL综合流程中,时钟、信号和关键路径的约束是必要的,以满足时序要求。FPGA的时序约束则涉及RTL设计、模块位置、高速IP和I/O延时等,是一项系统的工程。本书深入讲解时序约束的原理和实战,将芯片时序约束的经验应用于FPGA,以优选限度地提升FPGA性能。本书旨在为有经验的工程设计者与工程管理者提供深入的时序约束知识,特别适合高级硬件设计工程师、研发部经理、专业的EMC工程师等。本书不仅适合希望提升芯片和FPGA性能的专业人士,还适合对时序约束原理和应用感兴趣的技术爱好者。
目录
目 录
第1章 Vivado时序分析综述 1
1.1 引言 1
1.2 静态时序分析 2
1.3 Vivado时序约束流程 6
1.3.1 使用GUI界面进行约束 7
1.3.2 通过XDC文件添加约束 11
1.4 Vivado XDC语言 12
1.5 XDC文件管理 13
1.6 时序约束命令分类 15
第2章 FPGA内部时序路径分析 18
2.1 时序路径分类 18
2.2 建立时间和保持时间 19
2.3 建立关系和保持关系 23
2.3.1 建立关系和保持关系定义 23
2.3.2 时钟同源时的建立关系和保持关系 24
2.3.3 时钟不同源时的建立关系和保持关系 25
2.4 网表中的目标路径定位 28
2.4.1 网表中的目标分类 28
2.4.2 get_cells命令详解 29
2.4.3 get_cells命令使用示例 30
2.4.4 网表中定位目标命令的参数对比 34
2.5 reg2reg路径时序分析 34
2.5.1 reg2reg路径时序模型 34
2.5.2 reg2reg路径建立时序裕量公式 36
2.5.3 reg2reg路径保持时序裕量公式 38
2.5.4 reg2reg路径建立时序裕量和保持时序裕量总结 40
2.6 复位路径时序检查 41
2.7 reg2reg路径时序报告解读 42
2.7.1 reg2reg路径分段 42
2.7.2 reg2reg路径报告实例环境 43
2.7.3 reg2reg路径建立时序报告解读 44
2.7.4 reg2reg路径保持时序报告解读 52
第3章 主时钟约束 55
3.1 时钟特性约束 55
3.1.1 时钟周期/占空比/相位约束 56
3.1.2 时钟抖动约束 60
3.1.3 时钟不确定性约束 62
3.1.4 时钟延时约束 64
3.1.5 时钟转换时间 65
3.2 虚拟时钟约束 65
3.2.1 pin2reg时序路径中的虚拟时钟约束 66
3.2.2 reg2pin时序路径中的虚拟时钟约束 68
第4章 衍生时钟约束 70
4.1 引言 70
4.2 衍生时钟约束语法 71
4.3 基本衍生时钟约束实例分析 72
4.4 -edges参数约束实例分析 74
4.4.1 下降沿二分频约束实例 74
4.4.2 -edge_shift参数约束用法 75
4.4.3 三分频非标准波形约束实例 76
4.5 -combinational参数约束实例分析 77
4.6 -invert参数约束实例分析 78
4.7 时钟MUX约束实例分析 80
4.8 时钟分组约束 82
4.8.1 时钟分组使用场景 83
4.8.2 set_clock_groups语法详解 84
4.8.3 异步时钟组 85
4.8.4 独占时钟组 89
4.9 PLL/MMCM时钟约束 90
4.10 时钟检查 92
第5章 输入信号接口约束 96
5.1 引言 96
5.2 接口通信时序模型 96
5.2.1 系统同步模型 97
5.2.2 源同步模型 100
5.2.3 异步模型 101
5.2.4 自同步模型 102
5.3 源同步输入信号分析 103
5.3.1 源同步输入信号建立时序裕量 103
5.3.2 源同步输入信号保持时序裕量 105
5.4 输入延时命令详解 106
5.5 源同步SDR输入延时约束模板 108
5.5.1 源同步输入信号时序类型 108
5.5.2 源同步SDR时钟边沿对齐 109
5.5.3 源同步SDR时钟中央对齐 113
5.6 源同步DDR输入延时约束模板 115
5.6.1 源同步DDR时钟边沿对齐 116
5.6.2 源同步DDR时钟中央对齐 119
5.7 pin2reg路径时序报告解读 120
5.7.1 pin2reg路径分段 120
5.7.2 pin2reg路径约束实例分析 121
5.7.3 pin2reg路径建立时序报告分析 123
5.7.4 pin2reg路径保持时序报告分析 124
第6章 输出信号接口约束 126
6.1 引言 126
6.2 源同步输出信号分析 126
6.2.1 源同步输出信号建立时序裕量 127
6.2.2 源同步输出信号保持时序裕量 129
6.3 输出延时命令详解 130
6.4 源同步SDR输出延时约束模板 132
6.4.1 源同步SDR时钟边沿对齐 133
6.4.2 源同步SDR时钟中央对齐 135
6.5 源同步DDR输出延时约束模板 137
6.5.1 源同步DDR时钟边沿对齐 137
6.5.2 源同步DDR时钟中央对齐 138
6.6 reg2pin路径时序报告解读 139
6.6.1 reg2pin路径分段 139
6.6.2 reg2pin路径约束实例分析 140
6.6.3 reg2pin路径建立时序报告分析 141
6.6.4 reg2pin路径保持时序报告分析 143
第7章 时序例外约束 146
7.1 引言 146
7.2 虚假路径约束 147
7.2.1 虚假路径约束应用场景 147
7.2.2 虚假路径约束命令详解 149
7.2.3 虚假路径约束实例 149
7.2.4 虚假路径约束时序报告解读 150
7.3 优选/最小延时约束 152
7.3.1 优选/最小延时约束语法 152
7.3.2 优选/最小延时约束实际意义 153
7.3.3 优选延时-datapath_only参数约束 154
7.3.4 组合逻辑路径约束实例 156
7.4 多周期路径约束 158
7.4.1 多周期路径约束语法 160
7.4.2 同频同相多周期路径约束 161
7.4.3 同频异相多周期路径约束 162
7.4.4 不同频多周期路径约束 163
7.5 时序例外约束优先级 168
7.5.1 同类型约束优先级 168
7.5.2 不同类型