周期约束分析-基础电子_第1页
周期约束分析-基础电子_第2页
周期约束分析-基础电子_第3页
周期约束分析-基础电子_第4页
周期约束分析-基础电子_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档-下载后可编辑周期约束分析-基础电子周期〈Period)约束的对象是该时钟所驱动的所有同步元件之间的路径,但是不会覆盖如图1所示的A、B、C和D路径,以及输入引脚到输出引脚〈纯组合逻辑〉、输入引脚到闷步元件、同步元件到输出引脚,还有Clk1到Clk2之间的异步路径,在进行周期Period约柬之前,需要对电路的时钟周期进行估计,不要便用过松或过紧的约束。设讨内部电路所能达到的南运行频率取决于同步元件本身的建立保持时间,以及同步元件之间的逻辑和布线延迟。虽然布线延时无法估计,但逻辑延时应该可以大致估计,如图2所示。通常可以根据逻辑延时和布线延时各占40%和60%的比例来判断将要设置的周期约束对于当前的设计是否现实或合理。

图1周期约束所达到的范围

图2估算逻辑之间的延时通过约束编辑器的文本编辑窗口,可以采用以下两种方式的UCF语句来做时钟约束。(1)period_itemPERIOD=period{HIGH|LOW}[high_orlow_item]其中,period_item可以是NET或TIMEGRP,分别代表时钟线名称netname或元件分组名称group-name。用NET表示PERIOD约束作用到名为“netname”的时钟网线所驱动的同步元件上,用TIMEGRP表示PERIOD约束作用到TiMEGRP所定义的分组(包括FFS、LATCH和RAM等同步元件)上。period是目标时钟周期,单位可以是ps、ns、μS和ms等。HIGH|LOW指出时钟周期中的第1个脉冲是高电平还是低电平,high_or_low_time为HIGHLOW指定的脉冲的持续时间,默认单位是ns。如果没有该参数,时钟占空比是50%。例如,NETSYS_CLKPERIOD=10nsHIGH4ns(2)NET“clocknetname”TNM_NET=“timinggroupname”;TIMESPEC“TSidentifier”=PERIOD“TNMreference”period{HIGHLOW}[high_orlow_item]下面举个例子来说明如何设置周期约束。考虑图3所示的电路设计范例1,输入时钟的周期是10ns,并且是上升沿动作,占空比为45%高电平,55%低电平。

我们可以用这样的UCF语旬来定义这个时钟:

NET“SysClk”TNM_NET=“SysClk”;TIMESPEC“to ̄SysClk”=PERIOD"SysClk"10nsHIGH45%;

图3周期约束设计范例一这个例子首先在时钟网线上附加了TNM_NET约束,把Clk驱动的所有同步元件定义成一个名为“sys_clk”的分组,然后使用TIMESPEC约束定义时钟周期。这种定义时钟周期的方法使用了标识符,在定义其他时钟周期时可以引用这个标识符,大大方便了派生时钟的定义。一种特殊情况的周期约束是相关时钟。前面提到周期约束不会覆盖异步路径,如图1所示的D路径。但是如果两个时钟是“相关”的,则实现工具和时序分析工具会考虑这个路径。因此对这样的路径不需要再设置FROMTO约束,相关内容包括自动相关和人为相关。我们来分别看看几种情况。(1)图4所示的相关时钟约束1为两个时钟来自于同一个DCM,我们只需对DCM的输入时钟执行周期约束,则DCM输出的两个时钟就会通过DCM自动关联,它们之间的路径就会自动地被分析。

图4相关时钟约束1例如,我们做如下约束:NET"CLKIN"TNW_NET="CLKIN";TIMESPEC"TS_CLKIX"=PERTOD"CLK△N"10.OnsHIGH50%;

则两个时钟之间的路径就会被这样分析:

Slack:3.926nsSource:DataRegSlow._d2_3(FF)Destination:DataRegFast_d3_3(FF)Requirement:5.OOOnsDataPathDelay:0.874ns(LevelsofLogic=0)ClockPathSkew:0.000nsSourceClock:C=CLK1XrisingatO.000nsDestinationClock:CLKZX_DCMrisingat5.000nsClockUncertainty:0.200ns

(2)如刚才的电路可以不对DCM输入时钟做约束,而分别对两个时钟单独做周期约束,如图5所示。由于CLK2X的周期是基于CLK1X的周期定义的,所以这样两个时钟就被人为地关联起来,它们之间的路径也会自动地被分析。

图5相关时钟约束2

例如,我们做如下约束:NET"CLKI1X"TNM_NET="CLK1X";NET"CLK2X"TNM_NET="CLK2X";TIMESPEC"TS_CLK1X"=PERIOD"CLK1X"lO.OnsHIGH50%;TIMESPEC"TS_CLK2X"=PERTOD"CLK2X"TS_CLX△CLK1X/2;

则其之间的路径就会被这样分析:Slack:3.926nsDestination:DataRegSlow_d2_3(FF)Requirement:DataRegSlow_d2_3(FF)DataPathDelay:0.874ns(LevelsofLogic=0)ClockPathSkew:0.0O0nsSourceClock:CLK1XrisingatO.000nsDestinationClock:CLK2Xrisingat5.000nsClockUncertainty:0.200ns

(3)两个时钟都是从FPGA外面送进来的,如图6所示,也可以对它们单独设置的周期约束,但是CLK2X的周期是基于CLK1X的周期定义。通过这种方式可以把两个时钟人为关联起来,它们之间的路径也会自动地被分析。

图6相关时钟约束3

例如,我们做如下约束:NET"CLK1X"TNMNET="CLK1X";NET"CLK2X"TNMNET="CLK2X";TIMESPEC"TS_CLK1X"=PERTOD"CLK1X"10.OnsHIGH50%;TIMESPEC"TS_CLK2X"=PERTOD"CLK2X"TS_CLK1x/2;则两个时钟之间的路径就会被这样分析:

Slack:3.926nsSource:DataRegSlow_d2_3(FF)Destination:DataRegFast_d2_3(FF)Requirement:5.OOOnsDataPathDelay:0.874ns(LevelsofLogic=0)0.OOOnsClockPathSkew:0.0OOnssourceclock:CLK1Xrisingat0.000nsDestinationClock:CLK2Xrisingat5.000nsClockUncertainty:0.200ns

(4)两个时钟都是从FPGA外面送进来的,而且还有特定的相位关系。这种情况也可以单独做周期约束,但是CLK2X的周期是基于CLK1X的周期定义,同时需要再加上相位关系。通过这种方式可以把两个时钟人为地关联起来,它们之间的路径也会自动地被分析,如图7所示。

图7相关时钟约束4

例如,我们做如下约束:NET"ClklX"TNM_NET="ClklX"NET"Clk2X180"TNM_NET="Clk2X180";TIMESPEC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论