前〓〓言
FPGA因具备可编程、并行处理及低功耗等独特优势,广泛应用于复杂数字逻辑、硬件加速、数字信号处理、边缘计算、深度学习算法加速等领域。当前时钟频率越来越快,数据带宽越来越大,FPGA逻辑设计中时序问题凸显,这使得FPGA时序分析和时序约束在高频且逻辑功能复杂的设计中越来越重要。
在交通领域,车辆行驶速度快、流量大,则易导致交通事故与拥堵; 车辆行驶速度慢、流量小,则浪费交通资源且通行效率低。交通安全不应仅靠限行限速,更需要合理调度公路资源、优化交通规则,实现快速、安全通行。城市之间可以设计高速公路,城市之内可以设计快速路,交叉路口设计智能红绿灯,区域可以设计绿波路段,不断提高交通资源的效率和利用率。
类比到FPGA逻辑设计中,高时钟频率和高带宽如同提高车速和路宽,提升效率则容易引发数据阻塞、追尾和刮蹭。若要打造更快速、更稳定的FPGA逻辑,不仅需要设计合理的逻辑功能,而且需要进行时序分析并设计时序约束。换言之,FPGA逻辑设计既要会修路,还要会当交警,时序分析和约束就是当“交警”。
然而,在学习 FPGA 时序分析和约束的过程中,我发现存在一些问题。互联网上虽然有大量官方手册、经验总结及论坛教程对其进行说明,但大多是针对某一时序问题展开分析和约束,不利于研究者了解完整的时序框架,完整且系统地对 FPGA 时序进行分析和约束的资料相对匮乏。同时对实际工程逻辑代码、时序分析公式、时序路径框图及时序报告进行分析的案例较少,能够将时序报告中各类延时绘制成时序图,以帮助研究者直观理解时序的资料更是寥寥无几。
我在学习过程中做了一些努力。首先,有意识地构建了一个时序框架把时序问题规范到一起,摒弃从网上照搬一知半解的解决方案,因为很多时序问题可以采用不同的约束方案,只有理解全局后解决问题才变得游刃有余。其次,为不同时序问题设计工程逻辑代码,依据时序分析公式、时序路径框图和时序报告对每一种时序问题进行分析和约束,理解问题最好的方法就是仿真和实践。最后,为了直观地呈现时序路径的延时,我将时序报告中的延时数据绘制到时序路径中,并绘制了时序图,使时序问题变得清晰、明确。
最初学习FPGA时序分析和约束的笔记是手写稿,随着整理内容的不断增多,我对时序问题也有了更多的心得与体会。为了方便阅读和规范化,我将其整理为电子稿,后来又编撰成册,希望能与广大读者产生共鸣。本书内容相对全面,几乎涵盖了Vivado 支持的所有时序约束指令,且每个时序分析案例都附有完整的逻辑代码、时序原理公式、时序图和路径图,清晰、直观且不枯燥。此外,书中还包含一些场景实例,能够帮助读者更好地理解时序概念和相关问题。
本书介绍了4种基本时序路径分析、时钟约束、输入/输出延时约束、时序例外约束和其他时序约束。读者既可以按照顺序依次阅读,也可依据研究需要针对具体约束进行查阅。需要强调的是,实践出真知,对于初学者来说,亲自对案例进行编译和分析,自行绘制时序路径和时序图,会比单纯阅读更有助于深入理解。
最后,非常感谢清华大学出版社杨迪娜老师,为本书的立项、编辑和出版做了很多工作。感谢清华大学出版社对本书的认可和支持。感谢天津大学董娜教授,在硕博6年的时间里对我精心指导,帮助我拓宽科研思路并提升写作能力。感谢刘星和常斐然同学对行文和绘图提出宝贵意见。
非常感谢单位领导张大钢、李红军、王进军、刘剑锋、朵慧智,在百忙之中抽出时间阅读本书初稿,并提出了宝贵的建议和修改思路。还要感谢邢立佳、高广杰、王高峰、杜金艳、李文健、梁志豪、秦法佳,他们是非常好的导师、朋友和工作伙伴,与他们共事十分愉快。
由于个人水平有限,书中难免存在缺陷或纰漏之处,恳请各位读者谅解并批评指正。
常建芳2025年7月