《FPGA时序约束、时序分析》由会员分享,可在线阅读,更多相关《FPGA时序约束、时序分析(12页珍藏版)》请在金锄头文库上搜索。
1、FPGA设计之一一时序设计FPGA设计一个很重要的设计是时序设计,而时序设计的实质就是满足每一个触发器的建立(Setup)/ 保持 (Hold) 时间的要求。建立时间 (Setup Time) :是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时 间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器;保持时间(Hold Time):是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间, 如果保持时间不够,数据同样不能被打入触发器。FPGA设计分为异步电路设计和同步电路设计, 然而很多异步电路设计都可以转化 为同步电路设计,在设计时尽量采用同步电路进行设计。对于同步电路可以转化的
2、逻辑必须转 化,不能转化的逻辑,应将异步的部分减到最小,而其前后级仍然应该采用同步设计。为了让同步电路可靠地运行,就要对时钟偏差进行控制,以使时钟偏差减小到可用的范 围。影响时钟偏差的主要有以下几个因素:o 用于连接时钟树的连线o 钟树的拓扑结构o 时钟的驱动o 时钟线的负载o 时钟的上升及下降时间在通常的FPGA设计中对时钟偏差的控制主要有以下几种方法:o 控 制时钟信号尽量走可编程器件的的全局时钟网络。 在可编程器件中一般都有 专门的时钟驱动器及全局时钟网络,不同种类、型号的可编程器件,它们中的 全局时钟网 络数量不同, 因此要根据不同的设计需要选择含有合适数量全局时 钟网络的可编程器件。
3、一般来说,走全局时钟网络的时钟信号到各使用端的延 时小,时钟偏差很 小,基本可以忽略不计。o 若设计中时钟信号数量很多,无法让所有的信号都走全局时钟网络,那么可以 通过在设计中加约束的方法, 控制不能走全局时钟网络的时钟信号的时钟偏差。o 异步接口时序裕度要足够大。局部同步电路之间接口都可以看成是异步接口, 比较典型的是设计中的高低频电路接口、 I/O 接口,那么接口电路中后一级触 发器的建立 -保持时间要满足要求,时序裕度要足够大。o 在系统时钟大于30MHZ寸,设计难度有所加大,建议采用流水线等设计方法。 采用流水线处理方式可以达到提高时序电路的速度,但使用的器件资源也成倍 增加。o 要保
4、证电路设计的理论最高工作频率大于电路的实际工作频率。A 时序约束的概念和基本策略时序约束主要包括周期约束(FFS到FFS,即触发器到触发器)和偏移约束(IPAD 到FFS FFS到OPAD以及静态路径约束(IPAD到OPAD等3种。通过附加约 束条件可以使综合布线工具调整映射和布局布线过程, 使设计达到时序要求。 例 如用OFFSET_IN_BEFORE束可以告 诉综合布线工具输入信号在时钟之前什么 时候准备好,综合布线工具就可以根据这个约束调整与IPAD相连的LogicCircuitry 的综合实现过程,使结果满足 FFS的建立时间要求。附加时序约束的一般策略是先附加全局约束, 然后对快速和
5、慢速例外路径附加专 门约束。附加全局约束时, 首先定义设计的所有时钟, 对各时钟域内的同步元件 进行分组,对分组附加周期约束,然后对 FPGA/CPL输入输出PAD附加偏移约 束、对全组合逻辑的PAD TO PAD路径附加约束。附加专门约束时,首先约束分 组之间的路径,然后约束快、慢速例外路径和多周期路径,以及其他特殊路径。B附加约束的基本作用1. 提高设计的工作频率对很多数字电路设计来说,提高工作频率非常重要,因为高工作频率意味 着高处理能力。通过附加约束可以控制逻辑的综合、映射、布局和布线, 以减小逻辑和布线延时,从而提高工作频率。2. 获得正确的时序分析报告几乎所有的FPGA设计平台都包
6、含静态时序分析工具,利用这类工具可以 获得映射或布局布线后的时序分析报告,从而对设计的性能做出评估。静态时序分析工具以约束作为判断时序是否满足设计要求的标准,因此要求设计者正确输入约束,以便静态时序分析工具输出正确的时序分析报告。3. 指定FPGA/CPL引脚位置与电气标准FPGA/CPLI的可编程特性使电路板设计加工和 FPGA/CPLI设计可以同时进 行,而不必等FPGA/CPL引脚位置完全确定,从而节省了系统开发时间。 这样,电路板加工完成后,设计者要根据电路板的走线对 FPGA/CPLD上 引脚位置约束,使FPGA/CPL与电路板正确连接。另外通过约束还可以指 定10引脚所支持的接口标
7、准和其他电气特性。为了满足日新月异的通信 发展,Xilinx 新型FPGA/CPLI可以通过I0引脚约束设置支持诸如 AGP、 BLVDS CTT GTL GTLP HSTL LDT LVCMO SLVDC、LVDS LVPEC L LVDSEXTLVTTL PCI、PCIX SSTL ULVD等丰富的 IO 接口标准。另 外通过区域约束还能在FPGA!规划各个模块的实现区域,通过物理布局 布线约束,完成模 块化设计等。C周期(PERIOD的含义周期的含义是时序中最简单也是最重要的含义, 其它很多时序概念会因为软件商 不同略有差异,而周期的概念确是最通用的,周期的概念是FPGA/ASIC时序定
8、义 的基础概念。后面要讲到的其它时序约束都是建立在周期约束的基础上的,很多其它时序公式,可以用周期公式推导。周期约束是一个基本时序和综合约束,它附加在时钟网线上,时序分析工具根据 PERIOD勺束检查时钟域内所有同步元件 的时序是否满足要求。PERIOD勺束会自动处理寄存器时钟端的反相问题,如果相邻同步元件时钟相位相反,那么它们之间的延迟将被默认限制为PERIOD勺束值的一半。如下图所示,图1周期的定义时钟的最小周期为:TCLK = TCKO +TLOGIC +TNET +TSETUPTCLK_SKEWTCLK_SKEW =TCD2 TCD1其中TCKO为时钟输出时间,TLOGIC为同步元件之
9、间的组合逻辑延迟,TNET为网 线延迟,TSETU为同步元件的建立时间,TCLK_SKE为时钟信号TCD2和TCD1 延迟的差别。D数据和时钟之间的约束为了确保芯片数据采样可靠和下级芯片之间正确地交换数据,需要约束外部时钟和数据输入输出引脚之间的时序关系(或者内部时钟和外部输入/输出数据之间的关系,这仅仅是从采用了不同的参照系罢了)。约束的内容为告诉综合器、布 线器输入数据到达的时刻,或者输出数据稳定的时刻,从而保证与下一级电路的 时序关系。这种时序约束在 Xili nx 中用 Setup to Clock ( edge), Clock ( edge) to hold 等表示。在 Altera
10、 里常用 tsu (Input Setup Times) 、th (Input Hold Times) 、 tco (Clock to Out Delays)来表示。很多其它时序工具直接用 setup和hold表示。其实他们所要描述的是同一个问题,仅仅是时间节点的定义上略有不同。下面依次介绍。E关于输入到达时间Xilinx的输入到达时间的计算时序描述如下图所示:图2输入到达时间示意图定义的含义是输入数据在有效时钟沿之后的TARRIVAL寸刻到达。贝TARRIVAL=TCKO+TOUTPUT+TLOGIC 公式 1根据上面介绍的周期(Period )公式,我们可以得到:Tcko+Toutput+
11、Tlogic+Tinput+Tsetup-Tclk_skew=Tclk;公式 2将公式 1 代入公式 2: Tarrival+Tinput+Tsetup-Tclk_skew=Tclk,而 Tclk_skew满足时序关系后为负,所以TARRIVAL +TINPUT+TSETUP 咯RKD图3数据延时和数据到达时间示意图TDELAY为要求的芯片内部输入延迟,其最大值TDELAY_MA与输入数据到达时间 TARRIVAL勺关系如上图所示。也就是说:TDELAY_MAX+TARRIVAL=TPERIOD 公式 4所以:TDELAYTDELAY_MAX=TPEfRITARRIVALG要求输出的稳定时间从
12、下一级输入端的延迟可以计算出当前设计输出的数据必须在何时稳定下来,根据这个数据对设计输出端的逻辑布线进行约束,以满足下一级的建立时间要求, 保证下一级采样的数据是稳定的。计算要求的输出稳定时间如下图所示:幵发中的器件CLK图4要求的输出稳定时间示意图公式的推导如下:定义:TSTABLE = TLOGIC +TINPUT +TSETUP从前面帖子介绍的周期(Period )公式,可以得到(其中TCLK_SKEWTCLKTCLK2):TCLK= TCKQ- TOUTPUT+TLOGIC+TINPUT+TSETUP+TCLK_SKEW将TSTABLE勺定义代入到周期公式,可以得到:TCLK=TCKO
13、+TOUTPUT+TSTABLE+TCLK_SKEW所以:TCKO +TOUTPUT+TSTABLEVTCLK这个公式就是TSTABLE必须要满足的基本时序关系,即本级的输出应该保持怎么 样的稳定状态,才能保证下级芯片的采样稳定。 有时我们也称这个约束关系是 输 出数据的保持时间的时序约束关系。 只要满足上述关系, 当前芯片输出端的数据 比时钟上升沿提早TSTABLE寸间稳定下来,下一级就可以正确地采样数据。其 中TOUTPU为设计中连接同步元件输出端的组合逻辑、网线和PAD的延迟之和,TCK创同步元件时钟输出时间。H 实施时序约束的方法和命令 实施上述约束的基本方法是,根据已知时序信息,推算
14、需要约束的时间值,实施约束。具体地说是这样的,首先对于一般设计,首先掌握的是TCLK这个对于设计者来说是个已知量。前面介绍公式和图中的TCKO和 TSETUR注:有的工具软件对TCKO和 TSETUP勺定义与前面图形不同,还包含了到达同步器件的 一段 logic 的时延)是器件内部固有的一个时间量, 一般我们选取典型值, 对于 FPGA这个量值比较小,一般不大于12ns。比较难以确定的是TINPUT和TOUTPUT 两个时间量。约束输入时间偏移,需要知道TINPUT TINPUT为输入端的组合逻辑、网线和PAD 的延迟之和,PAD的延时也根据器件型号也有典型值可选,但是到 达输入端的 组合逻辑
15、电路和网线的延时就比较难以确定了,只能通过静态时序分析工具分 析,或者通过底层布局布线工具量取,有很大的经验和试探的成分在里面。约束输出时间偏移,需要知道TOUTPUTTOUTPU为设计中连接同步元件输出端 的组合逻辑、网线和PAD的延迟之和,仍然是到达输出端的组合逻辑电路和网线的延时就比较难以确定, 需要通过静态时序分析工具分析, 或者通过底层布局 布线工具量取,有很大的经验和试探的成分在里面。 约束的具体命令根据约束工具不同而异,首先说使用 Xilinx 器件的情况下,实 施上述约束的命令和方法。Xilinx 把上述约束统称为:OFFSET勺束(偏移约束), 一共有 4个相关约束属性: OFFSET_IN_BEFO、REOFFSET_IN_AFTE、R OFFSET_OUT_BEFOROFFSET_OUT_AFTE其中前两个属性叫做输入偏移(OFFSETN约束,基本功能相似,仅仅是约束取的参考对象不同而已。后两 个属性 叫做输出偏移(OFFSET_OUT勺束,