首页 > 解决方案 > xdc中一个get_pin中的多个寄存器

问题描述

我正在使用 Vivado 2016.4。

我的设计时序失败,我想将路径设置为错误路径。问题是 Vivado 向我显示了两个寄存器之间单个位之间的路径,当我想将其设置为假路径时,我只能在所述两个单个位之间设置假路径,就像这样

set_false_path -from [get_pins {bram_controller_y_TV/current_sample_reg[8]/C}] -to [get_pins {bram_controller_y_TV/address_read_reg[0]/S}]
set_false_path -from [get_pins {bram_controller_y_TV/current_sample_reg[8]/C}] -to [get_pins {bram_controller_y_TV/address_read_reg[3]/R}]
set_false_path -from [get_pins {bram_controller_y_TV/current_sample_reg[8]/C}] -to [get_pins {bram_controller_y_TV/address_read_reg[8]/R}]
set_false_path -from [get_pins {bram_controller_y_TV/current_sample_reg[8]/C}] -to [get_pins {bram_controller_y_TV/address_read_reg[9]/R}]
set_false_path -from [get_pins {bram_controller_y_TV/current_sample_reg[8]/C}] -to [get_pins {bram_controller_y_TV/address_read_reg[1]/R}]
set_false_path -from [get_pins {bram_controller_y_TV/current_sample_reg[8]/C}] -to [get_pins {bram_controller_y_TV/address_read_reg[5]/R}]
set_false_path -from [get_pins {bram_controller_y_TV/current_sample_reg[8]/C}] -to [get_pins {bram_controller_y_TV/address_read_reg[6]/R}]
set_false_path -from [get_pins {bram_controller_y_TV/current_sample_reg[8]/C}] -to [get_pins {bram_controller_y_TV/address_read_reg[7]/R}]
set_false_path -from [get_pins {bram_controller_y_TV/current_sample_reg[8]/C}] -to [get_pins {bram_controller_y_TV/address_read_reg[10]/R}]
set_false_path -from [get_pins {bram_controller_y_TV/current_sample_reg[8]/C}] -to [get_pins {bram_controller_y_TV/address_read_reg[11]/R}]

现在,我有没有办法在一行中为这两个寄存器之间的所有位设置一条错误路径,例如

set_false_path -from [get_pins {bram_controller_y_TV/current_sample_reg[8:0]/C}] -to [get_pins {bram_controller_y_TV/address_read_reg[11:0]/R}]

额外问题:寄存器名称末尾的 /C 和 /R 是什么?

标签: verilogxilinxvivado

解决方案


实际上,您可以使用通配符而不是数字来捕获所有位

 set_false_path -from [get_pins {bram_controller_y_TV/current_sample_reg[*]/C}] -to [get_pins {bram_controller_y_TV/address_read_reg[*]/R}]

奖励答案:Vivado 综合了触发器之类的原语。C 是 ff 的时钟输入,S 和 R 是 SR FF 的输入


推荐阅读