tag 标签: constraint

相关博文
  • 热度 16
    2011-3-10 13:58
    3831 次阅读|
    0 个评论
    还没有用到,但很快就会,先整理自己留着,用过后再加入一写总结之类。 在http://asdf123321123.spaces.eepw.com.cn/articles/article/item/61813基础上整理的。 ======================= 概述: 将输入输出管脚约束到芯片IOB中的一种约束,让输入、输出的寄存器快一些,以保证管脚处的时序稳定快速一些。 方法:Assignment Editor - 找到管脚 - 选Fast Input/Output Register - On 注意: 1、一般来讲,IOB中只有少量的逻辑资源,它会有寄存器,但它几乎没有任何组合逻辑资源,因此需 被约束到管脚上的寄存器不能有任何组合逻辑 。 如果输入一进来就是一驱多,输出是经过组合逻辑后直接输出到管脚上的寄存器,则会出现布线布不通的问题 。 事实上,如果不是资源或功耗要求很高,我们一般都会采用同步设计方式。对外接口部分在同步设计中一般被视作异步接口,设计中会对接口做同步处理。 常用的同步处理做法就是将变量用系统时钟打二拍 ,如果你的每个管脚都用寄存器打过两拍,那么基本上也就不存在上述问题了 2、被约束的寄存器除了受组合逻辑影响外,还 会受到时钟驱动区域的影响 。 在设计中,为了保证时钟的Skew等性能,一般会将时钟加入全局时钟网络或区域时钟网络。 如果是全局时钟网络自不必管,它可驱动整个芯片。 区域时钟的驱动范围是“a single quadrant”(quadrant = quad),“a single quadrant”的区域驱动范围也就是说用这个时钟驱动的寄存器只能待在这个时钟所属的1/4芯片范围内,而不能越界到其它地盘上! 我的例子: clk1驱动芯片左下角的PLL,产生clk2,clk2被约束成区域时钟,驱动多个管脚; 不幸的是,硬件上这几个管脚都远在芯片的右上角。。。 于是,我的布线始终不通过,说是有冲突,还列出了两条Info,显示了两个寄存器,其中一个还是FIFO的输出,开始怎么也不明白它们两个会有什么冲突,后来再仔细看不是说它们俩有冲突,而是说可能与时钟约束有冲突; 记得哪里曾经提到,如果这一约束与Location约束相冲突,系统在这种情况下默认选择了Location约束,找到那篇文章后发现那里列出的Warning非常明显,一看就明白是选了Location约束而未实现此约束,但那条Warning的样子与我的一点不同,在又想了想,想不出别的思路后,我还是觉得与Location有点关系; 于是查询该寄存器所用时钟约束,发现我虽然未对其做任何约束,但在从PLL输出后,系统自动将其处理成了区域时钟!区域时钟只能走1/4芯片范围,于是我又查了我要约束的寄存器输出管脚,发现其果然不在此quad,而在对角quad。 解决: 我将CLK1约束成全局时钟,再约束其驱动的PLL为右上角的PLL,即管脚所在的quad,结果布线果然通过。 总结一下,如果碰到这种情况,我能想到的方法如下: 1) 如上,clk1-全局时钟,clk1驱动的管脚与clk1所在quad的PLL; 方法:Assignment Editor-选PLL-找到该时钟所在PLL-约束到所需PLL位置,PLL的位置可以在Datasheet上查到; 2) 将clk2约束成全局时钟 如果全局时钟资源够的话,这种方法最简单了。 方法:Assignment Editor - 找到clk2 - 约束为Global Signal - On;。 3、Fast Output Enable Register 只知道其和三态有些关系,但具体的用法知之不细,这里只列出我所知道的一点 用于约束inout类型变量,如CPU接口的双向数据总线; 需要注意的一点是,在约束时它不是单独用,而是要三管齐下! 想想也对,inout变量本来就有in,out两种属性,再加上其的确需要有Enable信号来控制选择in还是out,所以当然应该加Enable 于是,对inout变量的管脚约束,需要有 Fast Input Register Fast Output Register Fast Output Enable Register
  • 热度 10
    2010-10-28 15:38
    1331 次阅读|
    0 个评论
    I myself have been trapped by these similar terminology for a while. Here's for others' reference and my contemplation. general: Primitive and macro -- http://forums.xilinx.com/t5/Virtex-Family-FPGAs/about-the-difference-between-macro-and-primitive-in-xilinx/m-p/6161 Component is the common name of all kinds of parts in a design. Usually, component is divided into element, something simple, and instance/submodle, something a bit complex. Instance is usu. the common name of instantiation of primitive and macro. Element is usu. used with component so as not to use one word two times, but sometime means simpler component, such as FF, IBUF and etc.. Symbol is usu. used with other central words, such as primitive, pad, macro and etc., for habitual usage. Pad is physical port of top design, directly connect to die pin Pin is design port of submodule/instance ================== group constraint: time group containing many nets input pad time group time group containing input pad nets input pad net input net attached to the pad PIN port of submodule/instance NET port of top design or net within design, net connectivity INST instance of design
相关资源
  • 所需E币: 0
    时间: 2022-5-9 15:01
    大小: 199.26KB
    Anintegralconstraintforsingleinputtwooutputfeedbacksystems
  • 所需E币: 0
    时间: 2022-5-11 11:25
    大小: 153.44KB
    Comparativestudyofconstraintoptimizationsforautomaticvoltageregulator
  • 所需E币: 1
    时间: 2020-9-4 16:32
    大小: 2.61MB
    上传者: zendy_731593397
    constraint設定之範例講解
  • 所需E币: 1
    时间: 2020-9-4 16:48
    大小: 2.61MB
    上传者: zendy_731593397
    constraint設定之範例講解
  • 所需E币: 3
    时间: 2019-12-25 02:27
    大小: 4.51MB
    上传者: 978461154_qq
    Xilinx时序约束用户手册TimingConstraintsUserGuide[GuideSubtitle][optional]UG612(v12.1)April19,2010[optional]UG612(v12.1)April19,2010www.xilinx.comTImingConstraintsUserGuideXilinxisdisclosingthisuserguide,manual,releasenote,and/orspecification(the"Documentation")toyousolelyforuseinthedevelopmentofdesignstooperatewithXilinxhardwaredevices.Youmaynotreproduce,distribute,republish,download,display,post,ortransmittheDocumentationinanyformorbyanymeansincluding,butnotlimitedto,electronic,mechanical,photocopying,recording,orotherwise,withoutthepriorwrittenconsentofXilinx.XilinxexpresslydisclaimsanyliabilityarisingoutofyouruseoftheDocumentation.Xilinxreservestheright,at……
  • 所需E币: 3
    时间: 2020-1-10 10:48
    大小: 842.89KB
    上传者: wsu_w_hotmail.com
    如何设定Allegro_APD最大线宽的Constraint如何设定Allegro/APD最大线宽的Constraint1.前言Physicalconstraint只能设定最小线宽的Constraint,无法设定最大线宽的Constraint,目前已经有多位客户要求新增此功能,但时程安排在未来的版本,因此目前可采用Workaround的方式来达到此目的。2.说明可利用Impedance来控制线宽。在迭板架构(厚度及材料系数)固定的情况下.一定的走线宽度会有对应的Impedance值(Single-LineImpedance),因此控制Impedance值,其实就等效于控制线宽。3.使用首先透过Impedance计算器求得最大线宽对应的Impedance值。求出Impedance值后,进ConstraintManager建立一个ElectricalConstraintSet(ECSet)。将求出之Impedance值填入RULE1Impedance的Target栏,Tolerance给一个很小的值,例如0.1%.将RULE1指定到Net去,例如选NetA0,将RULE1apply到NetA0.切回Allegro,若在NetA0上拉一条走线,线宽为5.1mil,马上被侦测出来线宽大于5mil.4.注意走线宽度会有对应的Impedance值,是建立在目前的迭板架构(厚度及材料系数)下,若厚度及材料系数有变动,Impedance值须重新计算及设定。Impedance的Tolerance设定值设定越小越好,在精度够得情况下,可设定为0%.确定ImpedanceDRCmode有打开。……