Intel® Stratix® 10嵌入式存储器用户指南

ID 683423
日期 11/19/2019
Public
文档目录

4.3.10.2. 用户可配置的时序约束

DCFIFO包含多比特(multi-bit)格雷码(gray-coded)异步时钟域交叉(CDC)路径以获得DCFIFO填充水平(fill-level)。为了使逻辑正确工作,multi-bit的值必须始终采样为给定锁存时钟沿上的1-bit change。

在物理世界中,触发器(flip-flop)没有相同的数据和时钟路径插入延迟。确保并检查1-bit change属性的正确设置很重要。您可以使用Fitter进行确认,并使用Timing Analyzer进行检查 。

Timing Analyzer将对DCFIFO应用以下时序约束:

  • 从写入域到读取域的交叉路径定义为从delayed_wrptr_grs_dgwp寄存器。
    • set from_node_list [get_keepers $hier_path|dcfifo_component|auto_generated|delayed_wrptr_g*]
    • set to_node_list [get_keepers $hier_path|dcfifo_component|auto_generated|rs_dgwp|dffpipe*|dffe*]
  • 从读取域到写入域的交叉路径定义为从rdptr_gws_dgrp寄存器。
    • set from_node_list [get_keepers $hier_path|dcfifo_component|auto_generated|delayed_wrptr_g*]
    • set to_node_list [get_keepers $hier_path|dcfifo_component|auto_generated|rs_dgwp|dffpipe*|dffe*]
  • 对于跨读写域的上述路径,应用以下约束(assignments):
    • set_max_skew -from $from_node_list -to $to_node_list
      -get_skew_value_from_clock_period src_clock_period -skew_value_multiplier 0.8
    • set_min_delay -from $from_node_list -to $to_node_list -100
    • set_max_delay -from $from_node_list -to $to_node_list 100
    • set_net_delay -from $from_node_list -to $to_node_list -max
      -get_value_from_clock_period dst_clock_period -value_multiplier 0.8
  • 跨时钟域网的set_net_delay用于亚稳性(metastability):
    • set from_node_mstable_list [get_keepers $hier_path|dcfifo_component|auto_generated|ws_dgrp|dffpipe*|dffe*]
      set to_node_mstable_list [get_keepers $hier_path|dcfifo_component|auto_generated|ws_dgrp|dffpipe*|dffe*] 
    • set from_node_mstable_list [get_keepers $hier_path|dcfifo_component|auto_generated|rs_dgwp|dffpipe*|dffe*]
      set to_node_mstable_list [get_keepers $hier_path|dcfifo_component|auto_generated|rs_dgwp|dffpipe*|dffe*]
    • set_net_delay -from $from_node_list -to $to_node_list -max -get_value_from_clock_period dst_clock_period -value_multiplier 0.8

Timing Analyzer将对混合宽度DCFIFO应用以下时序约束:

  • 从写入域到读取域的交叉路径定义为从delayed_wrptr_grs_dgwp寄存器。
    • set from_node_list [get_keepers $hier_path|dcfifo_mixed_widths_component|auto_generated|delayed_wrptr_g*]
      
    • set to_node_list [get_keepers $hier_path|dcfifo_mixed_widths_component|auto_generated|rs_dgwp|dffpipe*|dffe*]
  • 从读取域到写入域的交叉路径定义为从rdptr_gws_dgrp寄存器。
    • set from_node_list [get_keepers $hier_path|dcfifo_mixed_widths_component|auto_generated|*rdptr_g*]
    • set to_node_list [get_keepers $hier_path|dcfifo_mixed_widths_component|auto_generated|ws_dgrp|dffpipe*|dffe*]
  • 对于跨读写域的上述路径,应用以下约束(assignments):
    • set_max_skew -from $from_node_list -to $to_node_list -get_skew_value_from_clock_period src_clock_period -skew_value_multiplier 0.8
    • set_min_delay -from $from_node_list -to $to_node_list -100
    • set_max_delay -from $from_node_list -to $to_node_list 100
    • set_net_delay -from $from_node_list -to $to_node_list -max -get_value_from_clock_period dst_clock_period -value_multiplier 0.8
  • 跨时钟域网的set_net_delay用于亚稳性(metastability):
    • set from_node_mstable_list [get_keepers $hier_path|dcfifo_mixed_widths_component|auto_generated|ws_dgrp|dffpipe*|dffe*]
      set to_node_mstable_list [get_keepers $hier_path|dcfifo_mixed_widths_component|auto_generated|ws_dgrp|dffpipe*|dffe*] 
    • set from_node_mstable_list [get_keepers $hier_path|dcfifo_mixed_widths_component|auto_generated|rs_dgwp|dffpipe*|dffe*]
      set to_node_mstable_list [get_keepers $hier_path|dcfifo_mixed_widths_component|auto_generated|rs_dgwp|dffpipe*|dffe*]
    • set_net_delay -from $from_node_list -to $to_node_list -max - get_value_from_clock_period dst_clock_period -value_multiplier 0.8