问答 店铺
热搜: ZYNQ FPGA discuz

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

微信扫一扫 分享朋友圈

已有 10 人浏览分享

开启左侧

第1章 概述

[复制链接]
10 0
      时序约束是FPGA开发流程中重要的一环,但很多FPGA开发者对时序约束的概念非常模糊,有时也会对爆红的工程不知所措。时序约束本身的概念也比较抽象,学习的过程中会遇见种种困难。米联客的时序约束入门教程,首先引出时序约束的概念,再刨析不同约束的使用场景和方法,最后通过实战案例约束和优化时序,来总结归纳学习到的约束,帮助大家更好地掌握时序约束和分析的方法,以便在学习和工作中更好地解决工程中的时序问题。
1.1  什么是时序约束
      FPGA 的开发离不开时序约束,FPGA 芯片中的逻辑电路,从输入到输出所需要的时间必须在设定的时钟周期内完成。FPGA的开发流程如下图所示,包括需求分析、编写代码、功能仿真、逻辑综合、布局布线、编程调试。
      FPGA的布局布线和PCB的布局布线一样,会因为走线的长短而产生不同的传输延迟,信号经过各种逻辑门电路进行运算时也会产生延迟。如何控制不同信号进入FPGA处理后没有较大的延迟,这就需要进行时序约束分析。在布局布线这一步骤时通常会进行时序约束,将综合输出的逻辑网表适配到特定的器件。
简单来说就是指定要求进行时序约束后,对整个设计进行全编译,在此过程中,软件工具会根据设计者的时序要求进行优化从而进行布局布线,通过可编程连线将各种硬件资源进行合适的连接。用户利用静态时序分析工具对代码进行修改,完善时序约束,从而获得设计的最大性能。布局布线完成之后,便是下载验证,将生成的bit文件下载到FPGA进行验证。
image.jpg
      系统内大部分器件的运行都基于时钟的跳变,这就要要求时钟延迟差非常小,否则会导致时序逻辑状态出现错误,器件的工作先后顺序没按照设计需要进行,数据的传输发生错误。
如下图展示了时序分析的经典路径,由于走线的长短,必然会产生到达不同器件上时间的延迟。因此,时序约束的作用就在于满足设计者提出的时序要求,让FPGA逻辑功能稳定的运行。FPGA 中有很多的 D 触发器,按照一定的规则,通过内部不同的连线将这些触发器的输入输出组合起来,再加上时钟,就能实现时序逻辑了。
image.jpg
1.2  时序约束的影响
      首先通过千兆以太网数据收发回环的例子,对比不加时序约束的程序和添加时序约束的程序,分别会得到什么的效果,带领大家感受时序约束的重要性。
使用网线将开发板和PC相连,打开网络调试助手,分别设置好PC和开发板的 IP 地址位和 UDP 端口号,编写一段测试程序,让开发板主动向PC持续发送一段测试数据,由于开发板没有缓存PC的动态地址,如图1-3所示,下载程序后开发板会发送ARP包请求PC的IP地址,等待PC回复后,开发板才开始发送数据。没有添加时序约束的程序,由于接收端时序异常,不能正确解析ARP报文,导致开发板持续向PC发送ARP请求,而PC一直回复这个请求。
image.jpg
      对PHY芯片接收端的125MHz时钟进行主时钟约束后,将生成的程序重新下载到开发板上。在PC回复开发板发送的ARP请求报文后,开发板立即发送测试数据到PC,表示ARP回复报文中的地址被成功解析,接收端正常工作。如图所示,发送的数据为0-255递增循环,可以看到数据并无异常。
image.jpg
通过实例的对比,没有约束的程序进行数据收发时,产生的错误是不可预计的。因此,在软件开发过程中时序约束是十分重要的,它能带来程序的高效稳定的运行。
1.3  如何学习时序约束
      时序分析在电子设计与验证中占据着至关重要的地位。它是确保系统正常运作和性能稳定的关键因素之一。对于初学者来说,时序分析可能是一个相对复杂的概念,但通过系统的学习和实践,可以逐渐掌握其核心要点。
      首先,我们需要明白时序分析的基本概念。时序分析主要涉及到电路或系统中信号的传输时间、延迟以及同步等问题。在数字电路中,时序分析尤其重要,因为它关系到数据是否能准时到达目的地,以及系统是否能正确响应。对于初学者而言,时序分析的学习不可能一蹴而就,需要从基础开始,逐步深入了解。在开始正式的时序约束学习前,我们先了解一下大致要掌握哪些知识内容:
1.3.1  时序约束的基本概念
1.时钟特性
      时钟是FPGA中最重要的信号,时钟信号的频率通常是系统设计中频率最高的信号,因此要合理分频时钟频率及负载。时钟信号推动着FPGA内部各个器件之间的数据流转,为各个器件提供了同步的基准。时钟信号在实现复杂的逻辑运算和处理高速数据流时扮演着至关重要的角色,它不仅保证了时序的正确性,还确保了数据的准确性。本文将从时钟模型、时钟偏移、时钟抖动、时钟温漂、时钟的不确定性等方面介绍时钟信号。
2.触发器特性
      在数字电路中,存储单元是不可或缺的组成部分,其中触发器和锁存器是两种重要的存储方式。
      首先,让我们了解一下触发器。触发器是一种时序逻辑电路,它的主要特点是其输出状态的改变是通过时钟沿到来的触发。这种工作方式使得触发器能够按照时钟信号的节奏,在特定的时刻改变其存储的输出状态。
      锁存器则是一种电平触发的存储单元。与触发器不同,锁存器的输出状态的改变是通过电平的变换来实现的,而不是依赖于时钟信号。这意味着锁存器的状态改变并不受时钟信号的控制,而是在达到特定的电平条件时自动发生。
在FPGA中,我们通常会选择使用触发器而非锁存器。这是因为触发器具有更高的可靠性和可预测性,能够提供更好的时序控制和同步机制。而锁存器虽然在一些简单的应用中可能看起来更方便,但由于其不需要时钟信号的控制,因此可能成为电路中的不稳定因素。特别是在复杂的数字电路中,锁存器的使用可能会引入难以预测的时序问题,甚至可能导致电路的错误或故障。
3.静态时序分析
      静态时序分析是一种关键的设计验证技术,它涉及设计者提出一系列特定的时序要求,并运用特定的时序模型对特定电路进行深入分析。这种分析方法的核心在于确保电路的时序性能满足设计者的预期,从而达到时序收敛的目的。在FPGA设计中,静态时序分析扮演着至关重要的角色。如果时序要求无法得到满足,FPGA的逻辑功能将出现不稳定的现象,这将对整个系统的性能和可靠性产生严重影响。
      因此,设计者在FPGA设计过程中必须高度重视时序设计。通过静态时序分析,可以及早发现并解决潜在的时序问题,确保FPGA的逻辑功能在各种工作条件下都能保持稳定。本文将从时序路径、发射沿和锁存沿、建立时间和保持时间、建立时间裕量和保持时间裕量等方面进行分析时序约束的相关参数。
1.3.2  时序约束方法
      时序约束是fpga设计中至关重要的环节。对于许多初学者来说,其步骤可能有些模糊。我们将时序约束的步骤精简地分为四大类:时钟约束、输入延迟约束、输出延迟约束以及时序例外约束。按照这样的顺序和步骤进行时序约束,我们可以确保整个过程的条理性和效率。先完成基础和主要的时序设置,最后再进行特殊的设置和优化,这样可以保证时序约束的完整性和准确性。最终,我们才能完成整个时序约束的过程。
1.时钟约束
      时钟是所有时序约束的起点,时序分析离不开时钟信号,时钟约束是最基本的时序约束,涉及对时钟的频率、周期、来源等关键参数的精确定义。我们需明确这些参数,为后续的时序分析奠定基础。时钟约束包含主时钟、生成时钟、虚拟时钟,首先要明确要约束的时钟类型,才可以被约束使用,本文会详细介绍这三种时钟的约束方法。
2.输入、输出延迟约束
      在FPGA设计中,模拟信号传输的时序是至关重要的。为了在设计中精准地模拟信号从FPGA传输到外部设备,或者从外部信号进入FPGA端口的时序,我们必须仔细地定义输入和输出端口的延时信息。Vivado工具虽然能够识别设计内部的时序边界,但它无法自动处理外部路径的时序。因此,为了确保设计的准确性和可靠性,我们必须为输入和输出端口指定详细的延时约束。
这些延时约束的设定并非随意,而是需要根据已选定的外部器件、路径延时以及其他相关参数来定义。输入延迟约束描述了信号从外部设备进入FPGA所需的时间,而输出延迟约束则描述了从FPGA输出信号到外部设备所需的时间。实质上,输入和输出延迟约束是对内部器件和路径延时进行优化的过程。通过这些约束,我们才能确保设计的时序准确无误,从而保证整个系统的稳定运行和高效性能。
3.时钟例外约束
      时序例外约束用于修改时序分析工具对特定路径执行时序分析的方式。时序例外是指在特定情况下,哪些时序不需要进行深入分析。在默认情况下,时序分析工具对某些路径的分析可能不满足实际情况的需要,造成时序约束太紧或者太宽松,这就需要使用时序例外约束,让时序分析工具做出正确的分析。正确地设置时序例外,可以帮助我们更好地优化时序约束,提高工作效率。
1.3.3  FPGA代码设计中的时序收敛方法
      在FPGA设计中,时序收敛是一个核心且至关重要的概念。它不仅关系到设计的性能表现,还直接影响到整个系统的稳定性。特别是在复杂的数字电路系统中,时序收敛的精确性对于确保信号的准确传输和系统的可靠运行具有不可忽视的作用。通过合理设计复位电路、跨时钟域以及代码模块的拆分等方面,可以有效提高FPGA设计的时序收敛性能,从而确保系统的稳定性和可靠性。
1.4  总结
      在学习的道路上,对于新手们来说,建议多角度、全方位地探索时序分析的领域。建议大家反复研读相关的教程和资料,深入理解时序分析的基本原理和方法。通过仔细阅读,你们将能够掌握时序分析的核心概念,为后续的学习打下坚实的基础。同时,结合实际案例进行学习是非常有效的方式。
通过分析真实的案例,你们可以更好地理解时序分析在实际应用中的运用,从而加深对知识的理解和掌握。这样的学习方式不仅能够提高你们的理论水平,还能够培养你们的实践能力。
      对于那些从事高速接口设计工作的设计师们,如千兆网、HDMI接口、摄像头接口等的设计,时序约束显得尤为重要。这些高速接口需要精确的时序控制,以确保数据的准确传输和整个系统的稳定运行。因此,学习和掌握时序约束是这些设计师们的必备技能。
      无论是初学者还是资深设计师,都需要保持学习的态度,不断更新自己的知识。时序分析是一个不断发展的领域,新的技术和方法不断涌现。通过系统的学习和实践,我们可以逐渐掌握时序分析的核心要点,为设计出高性能、高稳定的电子系统提供有力的保障。学习是一个持续的过程,需要耐心和毅力。通过不断的努力和实践,你们将能够掌握时序分析的技巧,并在实际工作中发挥出自己的潜力。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0

关注

10

粉丝

71

主题
精彩推荐
热门资讯
    网友晒图
      图文推荐
        
        • 微信公众平台

        • 扫描访问手机版