11、时序分析基础

         

1、建立时间与保持时间

        

        建立时间(Tsu):在时钟上升沿到来前数据必须提前保持稳定的时间。

        保持时间(Th):在时钟上升沿到来之后数据必须保持稳定的时间。

        在建立时间和保持时间范围内数据必须稳定,不然很可能出现亚稳态问题,影响系统稳定。

        路径延时过长可能造成建立时间违规,过短可能造成保持时间违规。

2、基本时序路径

        FPGA通常有4大类基本时序路径:内部寄存器之间的时序路径(reg2reg)、输入引脚到内部寄存器的时序路径(pin2reg)、内部寄存器到输出引脚的时序路径(reg2pin)、输入引脚到输出引脚(不通过寄存器)的时序路径(pin2pin)

        1)内部寄存器之间的时序路径(reg2reg)

                       

         需要告诉EDA工具该路径的时钟频率。

        2) 输入引脚到内部寄存器的时序路径(pin2reg)

        需要告诉EDA工具外部芯片的延时情况 ,从而调整内部电路(小圈部分)。

        3) 内部寄存器到输出引脚的时序路径(reg2pin)

        需要告诉EDA工具外部芯片的延时情况 ,从而调整内部电路(小圈部分)。

        4) 输入引脚到输出引脚(不通过寄存器)的时序路径(pin2pin)

        需要告诉EDA工具此部分电路的最大、最小延时要求。

3、内部寄存器之间的时序分析

             

 内部寄存器间的时序分析,上图中:

        Tc1表示时钟源到源寄存器的时钟延时。

        Tc2表示时钟源到目的寄存器的时钟延时。

        Tco表示源寄存器内部的延时。

        Tdata表示寄存器间的组合逻辑延时。

        Tsu表示目的寄存器的建立时间。

        Th表示目的寄存器的保持时间。

对于建立时间:

        data arrival time = Launch edge + Tc1 + Tco + Tdata

        data required time = Latch edge + Tc2 - Tsu

        Setup time slack = data require time - data required time

        对于建立时间,目的寄存器Latch edge 比 源寄存器Launch edge晚一个时钟周期。

对于保持时间:

        data arrival time = Launch edge + Tc1 + Tco + Tdata

        data required time = Latch edge + Tc2 + Th

         Hold time slack = data arrival time - data required time

         对于保持时间,目的寄存器Latch edge 与 源寄存器Launch edge为同一个时钟周期。

4、内部寄存器到输出引脚的时序分析

                  

         以上图VGA驱动为例,控制信号包括同步时钟信号lcd_clk和转换数据有效指示信号。上图可简化为如下模型

首先查看ADV7123的datasheet

     

     

可知建立时间为0.2ns,保持时间为1.5ns。

 

        对于lcd_clk时钟,其需要通过FPGA输出引脚连接到ADV7123上,其延时主要包括PLL输出到FPGA引脚的延时,以及FPGA引脚到ADV7123引脚的延时(PCB走线延时),需要将其约束为虚拟(virtual)时钟,以作为latch时钟进行时序分析。

        对于数据路径,其延时主要包括源寄存器内部延时Tco,源寄存器输出到FPGA引脚的延时,以及FPGA引脚到ADV7123引脚的延时(PCB走线延时)。

        对于建立时间,时序关系必须满足:

                Launch edge + Tc1 + Tco + Tdatai + Tdatao < Latch edge + Tc2i + Tc2o - Tsu

        对于保持时间,时序关系必须满足:

                Launch edge + Tc1 + Tco + Tdatai + Tdatao > Latch edge + Tc2i + Tc2o + Th

        对于内部延时(Tco, Tc1, Tdatai, Tc2i),FPGA自身知道,但对于外部的延时(Tc Tdatao, Tc2o),FPGA无从得知,需要通过数据约束告诉FPGA,可通过Quartus TimeQuest中的set output delay功能设置该参数

                output delay max = max(Tdatao) + Tsu - max(Tc2o)

                output delay min = min(Tdatao) - Th - min(Tc2o)

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值