create_generated_clock -name ldpc_clk -source [get_pins design_1_wrapper_i/design_1_i/clk_wiz_1/clk_in1] -divide_by 3 -multiply_by 2 [get_pins design_1_wrapper_i/design_1_i/clk_wiz_1/ldpc_clk]
时间: 2023-08-04 12:08:38 浏览: 217
你似乎在询问一个命令,这是一个时钟生成命令,用于创建一个新的时钟信号。该命令的作用是创建一个名为 ldpc_clk 的时钟信号,其源时钟为 design_1_wrapper_i/design_1_i/clk_wiz_1/clk_in1,将其分频系数设置为 3,倍频系数设置为 2,并将其输出到 design_1_wrapper_i/design_1_i/clk_wiz_1/ldpc_clk 这个引脚上。
相关问题
[Constraints 18-1056] Clock 'dclk_200' completely overrides clock 'design_1_wrapper_i/design_1_i/clk_wiz_0/dclk_200'. New: create_generated_clock -name dclk_200 -source [get_pins design_1_wrapper_i/design_1_i/clk_wiz_0/clk_in1] -divide_by 1 -multiply_by 2 [get_pins design_1_wrapper_i/design_1_i/clk_wiz_0/dclk_200], ["/mnt/batman/ex_regions/yangang/zynq/bd_design/nfc_fm_20230610_8ch_125MHZ_syn_id5/project_1/project_1.srcs/constrs_1/new/top.xdc": and 46] Previous: create_generated_clock -source [get_pins design_1_wrapper_i/design_1_i/clk_wiz_0/clk_in1] -edges {1 2 3} -edge_shift {0.000 -2.656 -5.312} [get_pins design_1_wrapper_i/design_1_i/clk_wiz_0/dclk_200], ["/mnt/batman/ex_regions/yangang/zynq/bd_design/nfc_fm_20230610_8ch_125MHZ_syn_id5/project_1/project_1.srcs/sources_1/bd/design_1/ip/design_1_clk_wiz_0_0/design_1_clk_wiz_0_0/design_1_clk_wiz_0_0_in_context.xdc": and 2]
这是一个关于 Vivado 约束文件的错误信息,指出了时钟 'dclk_200' 被新的约束完全覆盖了,新约束为:
create_generated_clock -name dclk_200 -source [get_pins design_1_wrapper_i/design_1_i/clk_wiz_0/clk_in1] -divide_by 1 -multiply_by 2 [get_pins design_1_wrapper_i/design_1_i/clk_wiz_0/dclk_200]
而之前的约束为:
create_generated_clock -source [get_pins design_1_wrapper_i/design_1_i/clk_wiz_0/clk_in1] -edges {1 2 3} -edge_shift {0.000 -2.656 -5.312} [get_pins design_1_wrapper_i/design_1_i/clk_wiz_0/dclk_200]
这种情况通常是由于在约束文件中出现了重复的约束或者约束冲突导致的。建议检查约束文件中的所有时钟约束,并确保每个时钟都只有一个约束,并且没有冲突。可以选择删除一个约束或者修改约束参数来解决问题。
foreach clk_gate_name $all_crg_gates { set clk_source_col [all_fanin -to ${clk_gate_name}/cp -flat -startpoints_only] set clk_source [get_object_name $clk_source_col] create_generated_clock [get_pins ${clk_gate_name}/hand_latch/Q -source $clk_source -divide_by 1 if {$clk_source == "core_clk"} { set all_core_clks [add_to_collection $all_core_clks [get_clock ${clk_gate_name}/hand_latch/Q] ] } } foreach clk_gate_name $all_crm_gates { set clk_source_crg_col [all_fanin -to ${clk_gate_name}/cp -flat -only_cells -startpoints_only ] set clk_source_crg [get_object_name $clk_source_crg_col] set clk_source [get_object_name [remove_from_collection -intersect [all_fanin -to ${clk_source_crg}/CP -flat -startpoints_only] $clk_ports_list]] create_gennerated_clock [get_pins $clk_gate_name/hand_latch/Q] -source ${clk_source_crg}/Q -divide_by 1 if {$clk_source == "core_clk"} { set_all_core_clks [add_to_collection $all_core_clks [get_clock ${clk_gate_name}/hand_latch/Q] ] } },这两段tcl有什么相同之处和不同之处
这两段 TCL 脚本的相同之处是它们都含有一个类似的循环结构,都是对一个变量进行遍历操作,然后对这个变量进行一系列操作。
它们的不同之处在于循环中对变量的操作不同,第一段脚本的循环中涉及到了获取对象名称、创建生成时钟等操作,而第二段脚本的循环中涉及到了交集、差集等操作,并且创建生成时钟的参数也略有不同。此外,第二段脚本中还有一个变量 `$clk_ports_list`,而第一段脚本中没有出现。
阅读全文