本书首先引出时序约束的概念,详绍细介时序分析中的基本时序路径,再剖析不同时序路径的约束语法;最后通过实战案例约束和优化时序,来总结归纳学习到的约束。本书共分为14章,内容如下。
第1章 概述:介绍时序约束的概念及必要性;
第2章 时序约束基本概念:介绍时钟、触发器、静态时序分析、建立时间和保持时间等基本理论知识;
第3章 时钟约束:介绍主时钟、生成时钟、虚拟时钟、时钟特性约束等;
第4章 时序的基本路径分析:介绍FPGA通常包含的4大类基本时序路径;
第5~6章 输入/输出延迟约束:从时钟的同步方式,分为系统同步和源同步模型,介绍不同采样时刻的时序约束语法;
第7章 时序例外约束:对特定路径执行时序分析的方式,包括伪路径约束、多周期约束、最大/最小延迟约束;
第8章 FPGA代码设计中的时序收敛方法:介绍复位电路设计、跨时钟域设计、代码模块拆分、时钟组等;
第9~14章 实战案例约束和优化时序:介绍时序分析工具的使用方法;结合实际案例,进行时序分析,优化时序约束。
本书适合从事FPGA开发的工程师或研究人员阅读参考。
米联客
----------------------------
米联客商标品牌于2017年注册,专业从事FPGA/SOC硬件模块开发和软硬件创新解决方案的突破,用心服务于中国工程师,为中国工程师提供技术基座生态支持。经历十多载发展,在业内获得了良好的品牌口碑。产品线覆盖国产安路、AMD(XILINX)龙芯、瑞芯微等FPGA|SOC硬件平台,米联客的核心板模块被广泛应用于工业控制、机器视觉、医疗设备、电力设备、仪器仪表、数据通信、人工智能及汽车电子等多个领域。
汤金元,米联客创始人,半导体专家,专注于FPGA硬件模块开发及技术推广,带领公司已推出40余种硬件生态板卡产品,覆盖教学、工业、科研等场景。通过成为上海安路(国内FPGA领军企业)的官方生态合作伙伴及硬件开发板指定供应商,汤金元团队合作推广国产高性能FPSoC芯片“飞龙系列DR1M90”,推动了国产芯片的产业化应用?。
韩歆韵
----------------------------
韩歆韵,米联客资深FPGA课程讲师,专注于FPGA教学内容的研发,负责文档教程编写与视频课程录制,已构建包含基础篇、时序篇、UDP篇在内的核心课程体系,内容覆盖从入门到进阶的关键技术路径。
杨钧杰
----------------------------
杨钧杰,米联客资深FPGA逻辑工程师,熟练使用安路、Xilinx等开发平台,负责通信类产品与解决方案的整体架构设计与实现,主导开发了40G/100G UDP协议栈、10G TCP协议栈及光纤相机方案等关键项目,具备丰富的高速接口设计与系统集成经验。
第1章 时序约束概述
? 1.1 什么是时序约束 ?002
? 1.2 时序约束的影响 ?003
? 1.3 如何学习时序约束 ?004
? 1.3.1 时序约束的基本概念?005
? 1.3.2 时序约束方法?005
? 1.3.3 FPGA代码设计中的时序收敛方法?006
? 1.4 总结 ?007
第2章 时序约束基础
? 2.1 时钟 ?009
? 2.1.1 时钟的不确定性?009
? 2.1.2 时钟偏差?010
? 2.1.3 时钟抖动?010
? 2.2 触发器?011
? 2.2.1 触发器定义?011
? 2.2.2 触发器特性?012
? 2.3 静态时序分析概念?013
? 2.4 时序路径模型?014
? 2.5 数据到达路径和数据需求路径?015
? 2.6 发射沿和锁存沿?016
? 2.7 建立时间和保持时间的关系?016
? 2.8 建立时间裕量和保持时间裕量?017
? 2.9 总结?017
第3章 时钟约束
? 3.1 主时钟约束?020
? 3.2 生成时钟约束?021
? 3.3 虚拟时钟约束?023
? 3.3.1 虚拟时钟和物理时钟的比较?024
? 3.3.2 虚拟时钟的应用场景?025
? 3.4 时钟特性约束?027
? 3.4.1 用户时钟不确定性?027
? 3.4.2 时钟延时?027
? 3.5 总结?028
第4章 时序的基本路径分析
? 4.1 时序的基本路径概述?031
? 4.2 寄存器到寄存器的时序路径分析?032
? 4.3 输入延迟时序路径分析?034
? 4.3.1 系统同步分析?034
? 4.3.2 源同步分析?036
? 4.4 输出延迟时序路径分析?038
? 4.4.1 系统同步分析?038
? 4.4.2 源同步分析?039
? 4.5 引脚到引脚的时序路径分析?041
? 4.6 总结?042
第5章 输入延迟约束
? 5.1 系统同步输入约束?044
? 5.1.1 系统同步接口单沿采样?044
? 5.1.2 系统同步接口双沿采样?046
? 5.2 源同步输入约束?047
? 5.2.1 源同步接口单沿采样中心对齐?047
? 5.2.2 源同步接口双沿采样中心对齐?049
? 5.2.3 源同步接口单沿采样边沿对齐?050
? 5.2.4 源同步接口双沿采样边沿对齐?053
? 5.3 总结?055
第6章 输出延迟约束
? 6.1 系统同步输出约束?057
? 6.1.1 系统同步接口单沿采样?057
? 6.1.2 系统同步接口双沿采样?059
? 6.2 源同步输出约束?060
? 6.2.1 源同步接口单沿采样?060
? 6.2.2 源同步接口双沿采样?063
? 6.3 总结?065
第7章 时序例外约束
? 7.1 伪路径约束?067
? 7.2 多周期约束?068
? 7.2.1 End Multicycle Setup?069
? 7.2.2 Start Multicycle Setup?069
? 7.2.3 Start Multicycle Hold?070
? 7.2.4 End Multicycle Hold?071
? 7.2.5 同频同相的多周期约束?071
? 7.2.6 同频不同相的多周期约束?073
? 7.2.7 快时钟域到慢时钟域的多周期约束?074
? 7.2.8 慢时钟域到快时钟域的多周期约束?076
? 7.3 最大最小延迟约束?077
? 7.4 总结?078
第8章 FPGA代码设计中的时序收敛方法
? 8.1 复位电路设计?080
? 8.1.1 同步复位?080
? 8.1.2 异步复位?081
? 8.1.3 异步复位同步释放?082
? 8.2 跨时钟域设计?084
? 8.2.1 单比特信号跨时钟域?085
? 8.2.2 多比特信号跨时钟域?088
? 8.3 代码模块的拆分?089
? 8.4 时钟组?090
? 8.5 总结?091
第9章 时序分析和时序约束演练
? 9.1 时序分析工具的使用?093
? 9.1.1 添加约束?093
? 9.1.2 查看时序报告?099
? 9.2 内部路径时序报告分析?104
? 9.2.1 路径分析?104
? 9.2.2 片内资源时序优化?107
? 9.3 输入延迟时序优化?112
? 9.3.1 时钟直接输入的情况?114
? 9.3.2 时钟经过PLL的情况?118
? 9.4 输出延迟时序优化?129
? 9.4.1 随路时钟选择?132
? 9.4.2 输出延迟时序违例解决办法?136
? 9.4.3 输出延迟和输入延迟的区分?137
? 9.5 总结?138
第10章 千兆以太网RGMII约束实例
? 10.1 RGMII?140
? 10.1.1 RGMII信号定义?140
? 10.1.2 RGMII信号组合定义?141
? 10.1.3 RGMII的三种速率模式?142
? 10.2 RGMII时序?142
? 10.2.1 发送端?143
? 10.2.2 接收端?143
? 10.2.3 B50610 RGMII PHY?144
? 10.2.4 88E1518 RGMII PHY?141
? 10.2.5 RTL8211 RGMII PHY?146
? 10.2.6 YT8531(D)C RGMII接口 PHY?148
? 10.3 RGMII时序约束?149
? 10.3.1 RX接口延时模式约束?149
? 10.3.2 RX接口非延时模式约束?153
? 10.3.3 TX接口延时模式约束?160
? 10.3.4 TX接口非延时模式约束?165
? 10.4 总结?168
第11章 ADS422x接口约束实例
? 11.1 125 MHz时钟采样的情况?172
? 11.2 250 MHz时钟采样的情况?175
? 11.3 总结?178
第12章 AD9248/AD9767接口约束实例
? 12.1 AD9248?181
? 12.2 AD9767?191
? 12.3 总结?198
第13章 SPI AD7606约束实例
? 13.1 AD7606?201
? 13.2 总结?208
第14章 EEPROM I2C总线约束实例
? 14.1 M24C02?211
? 14.2 总结?218