问题描述
当我使用Timing Analyzer查看时序结果时,它们比数据表规范中的更好。为什么是这样?
解决/修复方法
时序分析器中列出的数字可以更准确地表示您的系统;数据表规范是最坏情况估计,用于指示设计是否有效。时序分析器中报告的数字是您系统的准确表示。在这种情况下,通过系统同步设置可以更好地补偿您正在使用的给定应用程序。只有最坏情况的数字才能在数据表中表示,而实际情况只能在时序分析器中表示。
实际数据表中列出的数字是在器件上测量的数字,保证所有使用相同条件的设计(见下文)。列出了两种类型的建立/保持时间。第一个是Tpsdcm / Tphdcm或Tpsdll / Tphdll。这些是使用DCM或DLL的设计的建立/保持时间。第二种类型是Tpsfd / Tphfd。这些适用于使用全局时钟资源但不使用DCM或DLL的设计。这些参数中的每一个都有一些特定条件:
使用DCM进行全局时钟设置和保持:
– 列出的数字使用默认的I / O标准(即Virtex-II器件的LVTTL 12 mA FAST)。
– 输入FF在IOB中,不使用IOB延迟元件。 (这可能因器件系列而异。请查看数据表以验证确切的条件。)
– 时钟进入GCLK IOB并具有理想的IBUFG-> DCM和DCM-> BUFG连接。这意味着IBUFG和DCM或DCM和BUFG不能位于器件的相对侧(即,器件底部的GCLKIOB转到器件顶部的DCM)。
– 设置时间相对于具有最快路径和最轻负载的全局时钟输入信号进行测量。保持时间是相对于具有最慢路径和最重负载的全局时钟输入信号测量的。这意味着此处报告的建立/保持应该比静态时序报告的“最坏情况”更严重。
没有DCM的全局时钟设置和保持:
– 列出的数字使用默认的I / O标准(即Virtex-II器件的LVTTL 12mA FAST)。
– 输入FF在IOB中,并且正在使用IOB延迟元件。 (这可能因器件系列而异。请查看数据表以验证确切的条件。)
– 时钟进入GCLK IOB,并具有理想的IBUFG-> BUFG连接。这意味着IBUFG和BUFG不能位于器件的两侧(即器件底部的GCLKIOB转到器件顶部的BUFG)。
– 设置时间相对于具有最快路径和最轻负载的全局时钟输入信号进行测量。保持时间是相对于具有最慢路径和最重负载的全局时钟输入信号测量的。这意味着此处报告的建立/保持应该比静态时序报告的“最坏情况”更严重。
时序报告“数据表部分”中列出的数字是设计特定的,并根据几个测量值(Tiopi,Tiopick,Tgio,净延迟,Tdcmino等)计算。这些数字对于特定设计更准确。这两个数字都是正确的,但由于以下原因,您可能会发现数据表与报告的“数据表部分”之间存在差异:
– 数据和/或时钟的IOSTANDARD不是默认值(即Virtex-II的LVTTL 12 mA快速)。在这种情况下,您必须使用I / O调整表调整数据表中的数字。
– 实现工具在自动时钟放置方面没有做出理想的工作(即,GCLKIOB和DCM位于器件的两侧)。
– 输入FF不在IOB中。
– 输入FF在IOB中,但在应该使用时使用或不使用Delay元件。
– 全部或部分时钟不使用全局布线(即,如果您对时钟进行门控或使用本地时钟,则数字将会改变)。
在任何情况下,检查所有这些条件的最简单方法是使用FPGA编辑器。即使在理想条件下,或者进行了所有调整,您仍然无法在数据表和“数据表部分”之间找到直接的关联,因为数据表更“最糟糕”。数据表编号可用于在设计过程之前估算您的I / O时序,但应使用静态时序“数据表报告”来获取完成设计的实际I / O时序。此外,“数据表部分”中报告的建立/保持时间可以使用时序报告详细部分中OFFSET / IN约束报告的数字进行手工计算。
时序分析器在分析设计时确实包含IOSTANDARD。与PAD相关的延迟将根据数据和时钟焊盘设计中使用的IOSTANDARD而改变。时序分析根据使用的IOSTANDARD自动调整Pads的延迟。
没有回复内容