FPGA时序分析实例篇(上)------逻辑重组和DSP资源合理利用


声明:本文章转载自FPGA开源工坊,作者xiaotudou


在开始之前,有个预备知识:当时序不满足下列给出的图的要求时,STA分析(静态时序分析)会报错,在低频时可能忽略不计可以正常运行,但是频率上去之后很有可能会导致电路功能的错误。因此我们不能忽略,要对logic修改或者修改频率以满足STA要求。


        本篇介绍了一次时序调优的过程,也就是重新修改代码逻辑,解决时序瓶颈(本文是缩小Logic delay)。在设计初期就应该考虑到这个问题,比如DSP的流水线寄存器,BRAM的输出寄存器这些在设计初期就考虑使用到它们,来获取更好的时序。

        因此,良好的编码习惯和风格有助于我们避免时序违例。


        在FPGA上完成了Canny算法(一种图像处理算法)的实现时,遇到了时序不收敛的问题,记录一下。

图片

可以看到时序的建立时间不满足。

我们在约束的主时钟频率是200MHz,也就是5ns,但是建立时间是-2.12ns,也就是说这个工程只能跑到7.12ns也就是140.45MHz,远远不能满足我们预先的设计。

怎么根据时序约束和建立保持时间裕量来分析工程能跑到的最大频率可以参考下面:

图片

首先来看一下PR之后是哪条路径不收敛,究竟是同一时钟域下的还是跨时钟域的路径,两者的处理方式不一样。

图片

可以看到是Intra-clock paths爆红了,也就是同一时钟域下的路径时序不收敛。接下来看具体的时序路径:

图片

可以看到logic delay远远比net delay大,那么我们就需要去降低logic delay,也就是要把我们的组合逻辑搞简单一点。如果是net delay比较大就要考虑是不是布线拥塞的问题了,两者的处理方式不太一样。

图片

再来看一下它的电路图,可以看到在左边的寄存器输出之后经过LUT,Carry等组合逻辑之后,给到DSP的输入端。一般来说DSP的几级pipline最好的都用上,这样DSP可以跑到更高的频率。

再来看一下具体的路径报告:

图片

可以看到logic的延时占到了82%,因此如果要解决这个时序为例,就必须要把logic delay给降低。

两者的比例可以参考,七系列的FPGA和UltraScale系列的FPGA不太一样:

图片

图片

来看一下这一个时序为例对应的代码:

图片

可以看到其实挺复杂的,有减法,有乘法。其中减法是被vivado用LUT+Carry搭了起来,乘法用的DSP。

要解决这个问题,就是把这一大段代码进行流水拆开嘛,把减法拆一级流水,乘法器拆为三级流水。

将代码修改为以下的样子,再来综合一下

图片

图片

可以看到时序就收敛了。

再来看一下生成电路结构:

图片

可以看到FDCE之后仍然是LUT+Carry的形式,用于做减法运算,然后再接入DSP的输入,在源码里面做完减法之后还有这两级寄存器,但是在电路图里面看不到他们了,这是因为这两级寄存器被DSP给吸收掉了,用于提高DSP的时钟频率,这两级寄存器会利用DSP单元内部的寄存器来实现,并不会增加我们的资源占用,DSP核里面的资源不用也是浪费。

图片

图片

上图为DSP单元里面的寄存器排布,可以看到有六级。

细心的朋友可能看到,上图的电路结构不仅有DSP和LUT模块,还有FDCE+CARRY4进位链,这些对时序影响同样不可忽视,我们将在下一篇中讨论。

  • 31
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 《Xilinx FPGA高级设计及应用-设计者的思想》是一本关于FPGA(现场可编程门阵列)高级设计和应用的教材。该教材旨在帮助读者深入理解FPGA的设计原理和应用方法,并通过设计者的思想来提高设计的效率和质量。 首先,该教材介绍了FPGA的基本概念和结构。FPGA是一种灵活可编程的硬件平台,可以根据需要实现不同的逻辑功能。在设计过程中,需要充分了解FPGA的架构和资源分配,合理利用各种IP核和资源,实现设计目标。 其次,该教材详细介绍了FPGA高级设计的思想和方法。设计者需要具备深厚的数字电路设计知识和编程技能,理解各种设计模式和优化策略。教材通过实例分析和实践操作,让读者熟悉各种高级设计技术,如时序优化、功耗优化、资源共享等,提高设计的性能和效率。 此外,该教材还介绍了FPGA应用的一些典型场景。FPGA广泛应用于数字信号处理、通信系统、图像处理等领域。教材通过案例分析和实际应用项目,让读者了解FPGA在不同领域的应用需求和设计方法。 最后,该教材强调了设计者的思想和创新能力在FPGA设计中的重要性。设计者需要具备解决问题的能力和创造新功能的能力,善于应用各种设计技术和工具。教材通过鼓励读者进行设计实践和思考,培养读者的设计思维和创新精神。 总之,《Xilinx FPGA高级设计及应用-设计者的思想》是一本全面介绍FPGA高级设计和应用的教材。通过学习该教材,读者可以深入理解FPGA的设计原理和应用方法,提升设计的效率和质量。 ### 回答2: 《Xilinx FPGA高级设计及应用-设计者的思想》这本书是一本探讨FPGA高级设计和应用的重要参考资料。书中详细介绍了Xilinx FPGA的设计理念和应用方面的重要技术。以下是对该书内容的概括。 首先,这本书介绍了Xilinx FPGA设计中的基础知识和概念。读者将了解到FPGA的结构、布局和时序控制等基本原理。通过对FPGA的内部架构和工作机制的深入分析,读者可以获得对FPGA设计的深刻理解。 其次,该书详细介绍了FPGA设计中的一些高级技术和方法。其中,特别强调了纯Verilog和纯VHDL设计的能力,以便读者能够实现更加灵活和高效的设计。此外,书中还介绍了如何使用Xilinx Vivado设计套件进行FPGA的设计和开发。 在书的后半部分,作者详细介绍了FPGA设计中的一些实际应用。包括如何设计高性能的数字信号处理系统、如何使用FPGA进行图像处理以及如何在FPGA上实现嵌入式系统等。通过这些实际案例的介绍,读者可以学习到如何将FPGA应用于各种不同的领域和应用中。 总结起来,《Xilinx FPGA高级设计及应用-设计者的思想》这本书对于想要深入了解FPGA设计和应用的人来说非常有价值。它系统地介绍了FPGA的设计理念和方法,同时通过实际案例的分享,使读者能够更好地应用FPGA到实际的项目中。这本书对于FPGA设计者来说是一本不可或缺的指南。 ### 回答3: 《Xilinx FPGA高级设计及应用-设计者的思想》是一本关于FPGA(现场可编程门阵列)的高级设计和应用的书籍。本书主要讨论了在FPGA设计过程中设计者的思想和方法。 首先,本书介绍了FPGA的基本知识和原理,包括FPGA的结构、内部资源和编程方式。这为读者提供了一个良好的基础,使他们能够更好地理解后续章节的内容。 其次,本书详细讲解了FPGA的高级设计技术,包括时钟域和时序分析、复位电路设计、数据通路设计以及流水线和并行处理等。这些内容帮助读者掌握了在FPGA设计中常用的技术和方法,使他们能够设计出高性能、高可靠性的电路。 另外,本书还介绍了一些高级应用,包括FPGA在数字信号处理(DSP)和通信系统中的应用,以及FPGA与其他硬件和软件的接口设计等。这些实际应用案例和设计经验对读者在实际项目中运用FPGA非常有帮助。 最后,本书强调了设计者的思想和方法。通过分析真实的FPGA设计案例,读者将了解到在设计过程中应该注重哪些方面,如如何优化性能、如何提高可靠性以及如何解决设计中的难点和挑战等。这些思想和方法可以帮助读者提高设计水平,更好地应对复杂的FPGA设计任务。 总之,《Xilinx FPGA高级设计及应用-设计者的思想》这本书通过详细介绍FPGA的高级设计和实际应用以及设计者的思想和方法,帮助读者全面了解和掌握FPGA的设计技术,提高设计水平。无论是对FPGA设计初学者还是有一定经验的设计工程师来说,这本书都是一本难得的参考资料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芯想是陈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值