IO接口约束之理论推导
这一步要对SDRAM与FPGA连接的IO口进行约束,这些IO口包括了控制信号、地址信号、数据信号。除了数据信号是双向总线,其它均为输出信号。无论如何,我们要做的约束主要就是两个类型,即输入约束和输出约束。
在进行这一步之前,我们要再做一些理论储备,再明确一下我们要约束的取值范围到底是针对整个源寄存器到目的寄存器路径上的哪一段。
先看output管脚的setup(Equation 7-3)和hold(Equation 7-6)时序余量计算公式,Output Maximum Delay of Pin和Output Minimum Delay of Pin是我们需要添加的output约束值。关于这几个公式的详细推导和说明可以参考特权同学的《深入浅出玩转FPGA》一书。
从Output Maximum Delay of Pin和Output Minimum Delay of Pin在公式中的关系,再对照如图5.20所示的寄存器模型,我们不难推断output delay指定的时间范围是针对于这些红色(带箭头)路径而言的。它的值也是这三部分路径之和(图示的两条时钟路径算为一部分,需要注意路径取值的正负)。
图5.20
上述的三部分路径之和,有如下公式用于计算output delay的最大和最小取值。
最后,关于PCB clock skew,它是指在源寄存器和目的寄存器在PCB板上的时钟传播的延时差值。拿理想的状况来理解这个概念,当源寄存器和目的寄存器时钟都是PCB板上的一个晶振输出来的,那么它们到达两个寄存器各自的输入端口时势必要有延时,因为他们到达芯片内部的延时已经被计算过了(前面的几个公式和说明里都提到了),所以现在唯一不确定的是他们在PCB上走线的延时。因此,我们定义<PCB clock skew> = <晶振输出到达FPGA端口的时间> – <晶振输出到达外部芯片的时间>。那么这一部分路径的延时就被计算在内了。有人可能要问为什么?特权同学常常会遇到一些莫名其妙的为什么?其实会问是好的,但是有些概念需要先消化,因为基本的概念是定义出来的,没有太多的逻辑可推导,要问为什么其实没有太多意义。这时候就需要先接受,然后回头再系统的理解这些知识点。其实有时候我们发现自己总喜欢在问一些很傻瓜的问题,这些问题傻到就好像在问为什么1是1、2是2,为什么1不是2、2不是1。呵呵!有时候,就像小孩吃饭一样,不要花时间去搞懂为什么要吃饭,饭里都有什么成分?应该简单的先去吃,吃饱喝足了才有精力去研究去搞懂它。
再来看input管脚的setup(Equation 7-2)和hold(Equation 7-5)时序余量计算公式,Input Maximum Delay of Pin和Input Minimum Delay of Pin是我们需要添加的input约束值。
同样地,我们通过前述两个公式再结合图5.21,就应该能推断出input delay所针对的传输路径就是红色箭头的两条路径(按照output delay的分法同样是三部分)延时之和。
图5.21
有关input delay的运算公式如下。
公式中的参数与output delay类似,数据经过PCB的最大和最小延时是可以通过目标板的布局布线进行计算的。数据经过外部器件的最大或最小延时时间也都是可以通过查看相关接口芯片的datasheet可以确定的。此外,PCB clock delay值同样是指时钟在PCB板上由晶振源传输到源寄存器与传输到目的寄存器的时间差。
ilove314_323192455 2010-11-9 22:15
用户591598 2010-11-9 20:26