购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

前言

设计收敛是FPGA工程师所面临的一个重要课题:既要保证功耗收敛,又要保证时序收敛。两者均与设计有很大关系。在多年的工程实践和技术支持过程中,笔者发现,很多设计未能收敛都与代码风格或对Vivado工具的理解有很大关系。

就代码风格而言,目前已有越来越多的工程师意识到其重要性。往往“良好的代码风格”能起到事半功倍的效果。“良好的代码风格”的一个重要指标就是代码风格与FPGA内部结构匹配,保证综合工具能够完美地推断出期望的结果。这一点被很多工程师忽略了。例如,7系列FPGA内部的DSP48E1是不支持异步复位的,如果乘法器使用了异步复位,那么相应的触发器是无法被吸收到DSP48E1内部的,这不仅消耗了额外的触发器(SLICE内部的触发器),还会导致时序恶化。鉴于此,本书以FPGA内部结构为基础,以SystemVerilog语言为描述方式,并结合大量实际案例,力求帮助读者深入理解两者之间的对应关系。

就工具而言,Vivado越来越智能,功能越来越强大,分析手段也越来越多。这就需要工程师深入理解工具在各个阶段所提供的选项的含义,并能够在工程实践中正确合理地使用这些选项;同时,面对未能收敛的设计,能够找到其中的根本原因。为此,本书也介绍了什么是有缺陷的设计,如何借助Tcl脚本找到这些缺陷,以及如何解决这些缺陷。

全书共10章。第1章从FPGA发展历程的角度对FPGA技术进行了分析。第2章以时钟网络架构为基础,阐述了优化时钟网络的经典方法,涉及改善时钟偏移和降低时钟抖动。第3章~第7章分别介绍了优化组合逻辑、优化触发器、优化移位寄存器、优化存储器和优化乘加运算单元的经典方法,重点介绍了优化对象的基本结构,包括目前主流的FPGA(7系列FPGA、UltraScale/UltraScale+和Versal ACAP),在每章的最后还重点介绍了如何发现缺陷单元,以及如何处理缺陷单元。第8章介绍了优化状态机的经典方法,包括状态机的“两段式”和“三段式”描述方法、状态机编码方式、Vivado提供的状态机编码选项等。第9章和第10章分别阐述了优化扇出和优化布线拥塞的经典方法,均以Vivado工具为核心,给出了相应的Tcl脚本。

全书既阐述了FPGA的内部结构,又阐述了RTL的代码风格(采用SystemVerilog语言),既介绍了以Vivado图形界面为主的分析手段,又介绍了以Tcl脚本为主的分析手段,力求帮助读者从设计输入和设计分析两个维度理解设计。

为便于读者阅读和理解书中内容,本书给出了468张图片、76个表格、186个SystemVerilog代码片段、56个Tcl脚本片段、57条设计规则和29个应用案例;同时,为加深印象,本书在每章最后还列出了一些常见问题留给读者思考,共有100个问题。

FPGA设计收敛不是一蹴而就的,既需要依靠我们的大脑智慧,又需要工具协同,两者缺一不可。希望读者在阅读本书之后,对FPGA架构和RTL代码风格的理解能够更上一层楼。

读者在阅读本书的过程中,如发现书中内容有任何不当之处,或者对本书内容有任何建议或意见,可发邮件到laurengao@126.com,不胜感激。

获取代码示例:

如果需要获取代码示例,请关注作者微信公众号“FPGA技术驿站”,回复关键字“设计优化SV”即可。

高亚军
2022/3/12 mSGHGxp1PYq162weeIDTsNjdAdo4jE4iKhwiFPtggBZfGLWi7y5EmM5MwS5zVtq4

点击中间区域
呼出菜单
上一章
目录
下一章
×