仅对英特尔可见 — GUID: gdw1625069500756
Ixiasoft
2.5.1.1. Report Fmax Summary(报告Fmax汇总)
2.5.1.2. Report Timing(报告时序)
2.5.1.3. Report Timing By Source Files(按源文件报告时序)
2.5.1.4. Report Data Delay(报告数据延迟)
2.5.1.5. Report Net Delay(报告网络延迟)
2.5.1.6. Report Clocks and Clock Network(报告时钟和时钟网络)
2.5.1.7. Report Clock Transfers(报告时钟传输)
2.5.1.8. Report Metastability(报告亚稳定性)
2.5.1.9. Report CDC Viewer(报告CDC Viewer)
2.5.1.10. Report Asynchronous CDC(报告异步CDC)
2.5.1.11. Report Logic Depth(报告逻辑深度)
2.5.1.12. Report Neighbor Paths(报告相邻路径)
2.5.1.13. Report Register Spread
2.5.1.14. Report Route Net of Interest
2.5.1.15. Report Retiming Restrictions(报告重定时限制)
2.5.1.16. Report Register Statistics(报告寄存器统计)
2.5.1.17. Report Pipelining Information(报告流水线信息)
2.5.1.18. 报告时间借用数据
2.5.1.19. Report Exceptions and Exceptions Reachability(报告异常和异常可达性)
2.5.1.20. Report Bottlenecks(报告瓶颈)
仅对英特尔可见 — GUID: gdw1625069500756
Ixiasoft
2.6.5.7. 约束CDC路径
在您的设计中,对多比特时钟域交叉(CDC)路径应用时序约束是至关重要的。您可以使用以下约束对CDC路径进行约束:
注意: As of 从 Intel® Quartus® Prime Pro Edition软件版本21.3开始,set_false_path约束不覆盖set_max_skew约束。您现在可以在同一路径上(没有覆盖)应用set_false_path和set_max_skew。
约束 | 说明 |
---|---|
set_false_path set_clock_groups -asynchronous |
这两个约束防止Compiler优化异步域交叉之间的时序裕量(slack)。set_clock_groups是最积极的约束(most aggressive constraint)。
|
set_max_skew | 设置不同总线比特之间允许的偏斜上限。
|
set_net_delay -max set_data_delay |
设置总线传输的任何比特上允许的数据路径延迟上限。
|
以下命令显示在clk_a时钟域中的data_a与clk_b时钟域中的data_b之间的时钟域交叉的约束示例:
create_clock -name clk_a -period 4.000 [get_ports {clk_a}] create_clock -name clk_b -period 4.500 [get_ports {clk_b}] set_clock_groups -asynchronous -group [get_clocks {clk_a}] -group \ [get_clocks {clk_b}] set_net_delay -from [get_registers {data_a[*]}] -to [get_registers \ {data_b[*]}] -max -get_value_from_clock_period \ dst_clock_period -value_multiplier 0.8 set_max_skew -from [get_keepers {data_a[*]}] -to [get_keepers \ {data_b[*]}] -get_skew_value_from_clock_period min_clock_period \ -skew_value_multiplier 0.8
下面示例显示了将set_false_path应用到一个包含DCFIFO模块的设计,以避免同步寄存器中的时序失败。这些示例用于约束单比特同步器CDC路径:
- 对于从写入域到读取域的交叉路径,在delayed_wrptr_g与rs_dgwp寄存器之间应用一个false path assignment:
set_false_path -from [get_registers {*dcfifo*delayed_wrptr_g[*]}] \ -to [get_registers {*dcfifo*rs_dgwp*}]
- 对于从读取域到写入域的交叉路径,在rdptr_g与ws_dgrp寄存器之间应用一个false path assignment:
set_false_path -from [get_registers {*dcfifo*rdptr_g[*]}] \ -to [get_registers {*dcfifo*ws_dgrp*}]