首页 » 智能科技 » FPGA时序约束分享01_约束四大年夜步骤,时钟表图片。

FPGA时序约束分享01_约束四大年夜步骤,时钟表图片。

装饰通讯 2024-10-26 0

扫一扫用手机浏览

文章目录 [+]

本文章磋商一下FPGA的时序约束步骤,本文章内容,来源于配置的明德扬时序约束专题课视频。

时序约束是一个非常主要的内容,而且内容比较多,比较杂。
因此,很多读者对付怎么进行约束,约束的步骤过程有哪些等,不是很清楚。
明德扬根据以往项目的履历,把时序约束的步骤,概括分成四大步,分别是时钟的约束、input delays的约束、output delays的约束和时序例外。

FPGA时序约束分享01_约束四大年夜步骤 FPGA时序约束分享01_约束四大年夜步骤 智能科技

时序约束是有先后的,首先要做时钟约束、其次是input delays约束、再次是output delays约束,末了才是时序例外的约束。
这是一个完全的大步骤,也便是说我们在项目开始阶段就可以约束我们的时钟,把我们时钟的频率、周期、来源等等定义好。
这一步做完之后,先不要做二三四步。
这时候我们要完成我们的设计,要把我们内部的时序都完成之后才做第二步设置“input delays”,比如说我们从外部进来的一个情形。
第三步output delays,也便是说要往下贱器件发送的一个时序情形。
当这一二三步都做完之后,我们在末了项目的阶段才做一个时序例外的情形。
时序例外也便是说哪些时序是不须要剖析的,这种情形要设置好。
末了我们才能把全体时序约束完成。

FPGA时序约束分享01_约束四大年夜步骤 FPGA时序约束分享01_约束四大年夜步骤 智能科技
(图片来自网络侵删)

以上是大的步骤,但事实上每一个步骤又可以细分成很多种情形。
例如时钟约束,时钟可以分很多种,一种是差分时钟,一种是管脚进来的时钟、还有我们PLL产生时钟等等。
还有一种是有数据但没有时钟的情形。
input delays、output delays 也有很多种,我们到底要怎么样去剖析,怎么去看。
明德扬就把这四个步骤再进行细化,便是根据情形来分别列出来。

下面分别展开描述。

时钟

时钟约束可以分成很多种情形,不同的情形就有不同的约束方法,一样平常有哪几种情形呢?

如上图,时钟约束概括地,可以分成三种情形,分别是输入时钟、PLL等衍生时钟以及自己分步的时钟。

输入时钟

输入时钟是指时钟从FPGA管脚进来的环境,这也是最常见的情形。
根据输入的管脚的不同,输入时钟情形又可以分成:输入管脚是单真个、输入管脚是差分的,以及GT或者规复时钟三种情形。

第一种:输入管脚是单真个,即时钟直接从管脚进来、并且是单端旗子暗记。
例如普通低速晶振,大部分是这种情形,明德扬的FPGA ALTERA学习板,如MP801、MP603,其时钟均是由晶振产生,送到FPGA,并且是单真个旗子暗记。

第二种:输入管脚是差分的,即时钟直接从管脚进来,并且是差分旗子暗记。
大部分高速晶振、LVDS接口等,属于此环境。
例如明德扬FPGA XILINX学习板,如MP802,其包含了PCIE管脚,其输入的时钟便是差分的;这个板子的DDR的驱动时钟,时钟频率在200M旁边,也是属于此种以环境。

第三种:GT或者规复时钟,即利用了高速收发器的环境。
在高速收发器管脚中,是没有时钟的,时钟已经嵌入到数据里面,利用FPGA的GTX IP核吸收数据,并且从数据规复出时钟。
这个规复出来的时钟便是此种环境。
最常见的便是光纤接口。

PLL等衍生时钟

那如果说我不是输入管脚,而是PLL产生的输出时钟,这个 便是PLL等衍生时钟。
这种时钟,FPGA的工具,会自行推导,一样平常无需约束,但本色运用中,强烈建议约束,会有好处的,好处不才一篇文章中解释。

自己分频的时钟

还有一种情形是自己分频的时钟,如果说我们自己写了一个计数器,把它二分频、四分频、八分频等,分频出来的旗子暗记当为时钟,这种情形便是自己分频的时钟。

首先解释,明德扬不推举利用此方法来产生时钟。
但确实要用到分频时钟时,那就要记得做时钟约束。
这种情形下要怎么进行约束呢?

以上概括相识释了时钟的几种情形,每种情形下,其约束方法都有些不同以及把稳点。
详细约束方法,可以看后续文章的内容。

input delays

input delay约束,即输入延时约束,是时序约束的重点,input delay 又分几种呢?

如上图,input delay约束概括地,可以分成三种情形,分别是系统同步、源同步和有数据无时钟。

系统同步

第一个是系统同步办法,也便是说全体电路板上FPGA以及上游器件都共用一个时钟,并且相位严格相同,这个便是系统同步的办法。

源同步

第二种是源同步的办法,源同步是怎么样?便是上游器件,把数据和时钟旗子暗记一起送到FPGA上来的,那这种便是源同步。

源同步是更常用的一种办法,系统同步比较少用,为什么呢?由于要做到上游器件跟FPGA的相位差为0,没有一点时钟差,这种哀求非常高。
而源同步是数据跟时钟都是从上游器件一起运送过来给FPGA,这是一种更常用的办法。

这个源同步,又有很多种,详细SDR、DDR和有数据无时钟三种情形。

第一种:SDR。
SDR是指时钟是单沿有效的办法,比如说我只用上升延或者低落延的一个办法,SDR约束的参数,其获取的方法有两种:查看上游器件手册(通过查看上游器的数据手册,获取参数)以及通过示波器丈量(通过示波器丈量旗子暗记的相位差,获取参数)。

第二种:DDR。
DDR是另一种办法,它是一种时钟双沿有效的一个办法。
也就说即用它的上升延,也用它的低落延。
例如说我们的DDR2、DDR3的时钟,都是高下降沿一贯采数据的;包括千兆网的RGMII接口,也是通过双沿的办法。

DDR的这种情形,我们还可以连续划分成中央对齐和边沿对齐两种情形。

中央对齐是指:时钟边沿始终在数据的中间,时钟上升沿的旁边两边,数据都是稳定的。
边沿对齐是指:时钟和数据边沿对齐的,在时钟变革沿两边,其数据是不稳定的。

第三种:有数据无时钟。
第三种便是有数据无时钟的情形。
例如说常见的串口。
串口是直接数据过来的,它是没有随路时钟过来的。
而我们用本地时钟去采样,就会涌现有数据无时钟。
那对付这种我们该当怎么去约束,又是另一种情形。

output delays

输出延时约束和输入延时一样,也是约束的重点。
output delay 我们紧张分两种,系统同步和源同步。

系统同步

全体电路板上FPGA以及下贱器件都共用一个时钟,并且相位严格相同,这个便是系统同步的办法。
此时FPGA往下贱器件发送数据,这时候只传送数据线就可以了。
而时钟跟FPGA共用一个的,不须要传时钟。

源同步

源同步便是FPGA往这个器件发数据,在发数据过程中也发一个时钟过去,这是一个随路时钟的一个办法,是源同步。

源同步我们还分SDR和DDR。

第一种:SDR。
SDR是指时钟是单沿有效的办法,比如说我只用上升延或者低落延的一个办法,SDR约束的参数,其获取的方法有两种:查看上游器件手册(通过查看上游器的数据手册,获取参数)以及通过示波器丈量(通过示波器丈量旗子暗记的相位差,获取参数)。
示波器丈量比较少用。

第二种:DDR。
DDR是另一种办法,它是一种时钟双沿有效的一个办法。
也就说即用它的上升延,也用它的低落延。
例如说我们的DDR2、DDR3的时钟,都是高下降沿一贯采数据的;包括千兆网的RGMII接口,也是通过双沿的办法。

DDR的这种情形,我们还可以连续划分成中央对齐和边沿对齐两种情形。

中央对齐是指:时钟边沿始终在数据的中间,时钟上升沿的旁边两边,数据都是稳定的。
边沿对齐是指:时钟和数据边沿对齐的,在时钟变革沿两边,其数据是不稳定的。

时序例外

时序例外一样平常用在clock与IO都约束后,还是不知足时序哀求的情形下。
紧张包括多周期路径、不须要检讨的路径和组合电路延时等三种情形,如下图。

多周期路径

多周期路径是指完成一个运算须要超过1个时钟周期的环境,多周期路径在IC设计领域利用较多,但在FPGA里运用较少。

不须要检讨的路径

有一些路径是不须要剖析的,详细可以分成三种:常量或伪常量旗子暗记、互斥路径和异步时钟。

第一种:常量或伪常量旗子暗记。
某些旗子暗记虽然不知足时序哀求,但本色上该旗子暗记在运用处景中,是不会改变的,例如某个开关旗子暗记,它在上电时打开后,就一贯保持打开状态,不会变来变去。
那么这个旗子暗记就可以认为是伪常量旗子暗记。
假设它不知足时序哀求,也是无所谓的,由于不会变,不会变就意味着建立韶光和保持韶光肯定知足,以是不存在问题。
这种旗子暗记是不须要检讨 的。

第二种:互斥的路径。
可以大略认为是双向端口,即代码中,利用inout定义的旗子暗记。

第三种:异步时钟。
即旗子暗记从一个时钟域,跨到另一个时钟域的情形。
这也是不须要检讨 的。
把稳,这里说不用检讨,是指完成异步旗子暗记同步化后,不用检讨的意思。

组合电路延时

还有一种是组合电路的延时。
组合电路延时便是说我从这个管脚到另一个管脚之间,另一个管脚进来,这个管脚出去中间没有任何一个时钟,这是组合电路给延时的一种情形。

总结与建议

前面我们讲了时钟约束、输入延时、输出延时还时序例外的情形。
每一种情形又分了很多种,根据它的不同类型来区分,每次约束的时候都是个中的一种情形。
比如说CLK差分,就去找时钟,然后根据差分管脚怎么约束,来找到对应情形,按照哀求进行约束。
这相称于我已经供应一个表给你,你按照这个表去核对。
找到对应的情形,按哀求进行约束就可以了。

记住:开始的时候,只是配置时钟,不配置input delay 、 output delays和持续例外。
由于我们开始的时候是专心于内部电路,我们时序的一个设计,知足内部哀求之后,再去配置我们的接口。
在时钟完备通过之后再配置input delay 和output delays 。

时序例外是末了差不多要落成了再进行配置的。
而且这个配置是要很小心。
由于我们实际例外,比如说不用检讨,我们set false path这种情形,设置好便是表示不用检讨。
如果在开始的时候,就设置好了,万一中间又要改变,你改变的话,那你忘了把这个约束给干掉了,这种情形就会涌现有缺点也提示不出来的情形。
以是说时序例外该当是末了情形下进行的。

这个顺序是明德扬履历的一个顺序,我们的项目基本上是按照这个顺序做的。
但是不同的公司也会有不同的做法。
例如说我一开始全部都不约束,到末了再生约束,这也是可以的。
这种做法没有统一标准,反正学明德扬的课程,你就按这个步骤做,去到其他公司,再根据公司哀求去做就可以了。

本文章是基于赛灵思的一个时序约束,ALTERA也是相似的,乃至IC芯片设计领域,也是同样的思路。

有句话讲的很好,我们的时序是设计出来的,不是约束出来的。
以是说时序主要还是不主要?当然主要。
但是它不是非常主要,更主要的是如果说我时序涌现例外,不知足的时候,更主要是改变你的设计,而不是哀求约束。

下一篇文章,我们将详细磋商“时钟约束”的内容,讲解各种情形下的时序约束方法。
须要更多更详细的资料,可以找作者理解。

标签:

相关文章