制作的网站,西安网页设计培训哪里有,免费微信网站制作平台,网站建设 模版错误路径
假路径是指拓扑上存在于设计中的路径#xff0c;但有以下两种情况之一#xff1a;#xff08;1#xff09;不起作用#xff1b;或#xff08;2#xff09;不需要定时。因此#xff0c;在定时期间应忽略错误路径分析。
错误路径的示例包括#xff1a;
•添…错误路径
假路径是指拓扑上存在于设计中的路径但有以下两种情况之一1不起作用或2不需要定时。因此在定时期间应忽略错误路径分析。
错误路径的示例包括
•添加了双同步器逻辑的时钟域交叉
•通电时可能写入一次的寄存器
•重置或测试逻辑
•忽略异步分布式的写入和异步读取时钟之间的路径RAM如适用
下图显示了一个非功能路径的示例。因为两个多路复用器都是由相同的选择信号驱动从Q到D的路径不存在应定义为错误路径。 从时序分析中删除错误路径的原因包括
•减少运行时间当从时序分析中删除错误路径时该工具不需要对那些非功能路径进行计时或优化。具有非功能路径对定时和优化引擎可见可能导致大的运行时损失。
•提高结果质量QOR消除错误路径可以大大提高结果QOR。综合、放置和优化设计的质量大大提高受到工具试图解决的时间问题的影响。
如果某些非功能路径存在时间冲突该工具可能会尝试修复这些路径而不是在真正的功能路径上工作。不仅设计可能不必要增加了大小如逻辑克隆但该工具可能会跳过修复实际问题因为非功能路径具有更大的违规行为会掩盖其他实际违规行为。最佳结果总是通过一组现实的约束来实现。
错误路径是使用XDC命令set_False_path在工具内部定义的 set_false_path [-setup] [-hold] [-from node_list] [-to node_list] \ [- through node_list] 可以对命令使用以下附加选项来微调路径规范。 有关所有支持的命令行选项的详细信息请参阅Vivado Design SuiteTcl命令参考指南UG835。 •-from选项的节点列表应该是有效起点的列表。有效的起点是时钟对象、顺序元件的时钟引脚或输入或输出主端口。多个可以提供元件。 •-to选项的节点列表应该是有效端点的列表。有效的终结点是时钟对象、输出或inout主端口或顺序元件输入数据引脚。倍数可以提供元件。 •直通选项的节点列表应该是有效引脚、端口或网络的列表。可以提供多个元件。 through选项的顺序很重要。请参阅以下示例。例如以下两个命令不同 set_false_path -through cell1/pin1 -through cell2/pin2 set_false_path -through cell2/pin2 -through cell1/pin1 以下示例删除了从重置端口到所有寄存器的定时路径 set_false_path -from [get_port reset] -to [all_registers] 以下示例禁用两个异步时钟域之间的定时路径用于例如从时钟CLKA到时钟CLKB set_false_path -from [get_clocks CLKA] -to [get_clocks CLKB] 前面的例子禁用了从时钟CLKA到时钟CLKB的路径。来自时钟CLKB的路径至时钟CLKA不被禁用。因此禁用两个时钟之间的所有路径任一方向上的域都需要两个set_false_path命令 set_false_path -from [get_clocks CLKA] -to [get_clocks CLKB] set_false_path -from [get_clocks CLKB] -to [get_clocks CLKA] set_clock_groups -group CLKA -group CLKB 在图81所示的非功能路径示例中可以使用-through选项而不是使用-from或-to选项。见图82。 这确保了无需选择通过上述路径的所有路径以查找起点和终点的特定模式。 set_false_path -through [get_pins MUX1/a0] -through [get_pins MUX2/a1] 另一个常见的例子是异步双端口分布式RAM。文字操作与时钟RAM同步但读取操作可以是异步的在设计允许的情况下。在这种情况下可以安全地将写入和读取时钟。 有两种方法可以做到这一点 •定义从RAM之前的写入寄存器到RAM之后的寄存器的错误路径接收所述读取时钟 set_false_path -from [get_cells write_registers] -to [get_cells read_registers] 关于Vivado Design Suite示例项目WAVEGenHDL set_false_path -from [get_cells -hier -filter {NAME ~ *gntv_or_sync_fifo.gl0.wr*reg[*]}] -to [get_cells -hier -filter {NAME~ *gntv_or_sync_fifo.mem*gpr1.dout_i_reg[*]}] •定义从RAM引脚WE开始的错误路径 set_false_path -from [get_cells -hier -filter {REF_NAME ~ RAM* IS_SEQUENTIAL NAME ~ PATTERN_FOR_DISTRIBUTED_RAMS}] 关于Vivado Design Suite示例项目WAVEGenHDL set_false_path -from [get_cells -hier -filter {REF_NAME ~ RAM* IS_SEQUENTIAL NAME ~ *char_fifo*}] 下图说明了WAVEHDL中分布式RAM的驱动方式示例项目。