我在AXI QUAD SPI的综合/放置中遇到以下错误我为ext_spi_clk创建了外部端口,为SPI_O创建了接口端口。
[放置30-574] IO引脚和BUFG之间的布线布局不佳。
如果此子设计可接受此子优化条件,则可以使用.xdc文件中的CLOCK_DEDICATED_ROUTE约束将此消息降级为WARNING。
但是,强烈建议不要使用此覆盖。
这些示例可以直接在.xdc文件中使用,以覆盖此时钟规则。
ext_spi_clk_IBUF_inst(IBUF.O)被锁定到IOB_X1Y46并且ext_spi_clk_IBUF_BUFG_inst(BUFG.I)由clockplacer临时放置在BUFGCTRL_X0Y0上
[放置30-99] Placer因错误而失败:'IO Clock Placer failed'请在放置期间查看所有ERROR,CRI
tiCAL WARNING和WARNING消息,以了解失败原因。
[Common 17-69]命令失败:Placer无法放置所有实例
---------------------------------
[Common 17-55]'set_property'需要至少一个对象。
[“/home/cpatel/DataEngine/cpu_linux_2/cpu_linux_2.srcs/constrs_1/imports/cpu_linux/cpu_linux.xdc":45]set_property LOC AF15 [get_ports {spi_0_io0_io}];
[Common 17-55]'set_property'需要至少一个对象。
[“/home/cpatel/DataEngine/cpu_linux_2/cpu_linux_2.srcs/constrs_1/imports/cpu_linux/cpu_linux.xdc":46]set_property IOSTANDARD LVCMOS15 [get_ports spi_0_io0_io];
-----------------
[Common 17-55]'get_property'需要至少一个对象。
[“/home/cpatel/DataEngine/cpu_linux_2/cpu_linux_2.srcs/sources_1/bd/cpu_uart/ip/cpu_uart_axi_quad_spi_0_0/cpu_uart_axi_quad_spi_0_0_clocks.xdc":52] set_max_delay -from [get_cells -hierarchical -filter {NAME =〜* RX_FIFO_II / USE_2N_DEPTH。
V6_S6_AND_LATER.I_ASYNC_FIFO_BRAM / inst_fifo_gen / gconvfifo.rf / grf.rf / gntv_or_sync_fifo.gcx.clkx / wr_pntr_gc_reg }] -to [get_cells -hierarchical -filter {NAME =〜* RX_FIFO_II / USE_2N_DEPTH.V6_S6_AND_LATER.I_ASYNC_FIFO_BRAM / inst_fifo_gen / gconvfifo
.rf / grf.rf / gntv_or_sync_fifo.gcx.clkx / gsync_stage 。rd_stg_inst / Q_reg_reg }] -datapath_only [get_property -min PERIOD $ clk_domain_ext_spi_clk]
[Common 17-55]'get_property'需要至少一个对象。
[“/home/cpatel/DataEngine/cpu_linux_2/cpu_linux_2.srcs/sources_1/bd/cpu_uart/ip/cpu_uart_axi_quad_spi_0_0/cpu_uart_axi_quad_spi_0_0_clocks.xdc":55] set_max_delay -from [get_cells -hierarchical -filter {NAME =〜* TX_FIFO_II / USE_2N_DEPTH。
V6_S6_AND_LATER.I_ASYNC_FIFO_BRAM / inst_fifo_gen / gconvfifo.rf / grf.rf / gntv_or_sync_fifo.gcx.clkx / rd_pntr_gc_reg }] -to [get_cells -hierarchical -filter {NAME =〜* TX_FIFO_II / USE_2N_DEPTH.V6_S6_AND_LATER.I_ASYNC_FIFO_BRAM / inst_fifo_gen / gconvfifo
.rf / grf.rf / gntv_or_sync_fifo.gcx.clkx / gsync_stage .wr_stg_inst / Q_reg_reg }] -datapath_only [get_property -min PERIOD $ clk_domain_ext_spi_clk]
以上来自于谷歌翻译
以下为原文
I am gettng the following errors in synthesis/place for AXI QUAD SPI I have created external port for the ext_spi_clk and interface port for SPI_O.
[Place 30-574] Poor placement for routing between an IO pin and BUFG. If this sub optimal condition is acceptable for this design, you may use the CLOCK_DEDICATED_ROUTE constraint in the .xdc file to demote this message to a WARNING. However, the use of this override is highly discouraged. These examples can be used directly in the .xdc file to override this clock rule.
< set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets ext_spi_clk_IBUF] >
ext_spi_clk_IBUF_inst (IBUF.O) is locked to IOB_X1Y46
and ext_spi_clk_IBUF_BUFG_inst (BUFG.I) is provisionally placed by clockplacer on BUFGCTRL_X0Y0 [Place 30-99] Placer failed with error: 'IO Clock Placer failed'
Please review all ERROR, CRITICAL WARNING, and WARNING messages during placement to understand the cause for failure. [Common 17-69] Command failed: Placer could not place all instances ---------------------------------[Common 17-55] 'set_property' expects at least one object. ["/home/cpatel/DataEngine/cpu_linux_2/cpu_linux_2.srcs/constrs_1/imports/cpu_linux/cpu_linux.xdc":45]
set_property LOC AF15 [get_ports {spi_0_io0_io}] ; [Common 17-55] 'set_property' expects at least one object. ["/home/cpatel/DataEngine/cpu_linux_2/cpu_linux_2.srcs/constrs_1/imports/cpu_linux/cpu_linux.xdc":46]
set_property IOSTANDARD LVCMOS15 [get_ports spi_0_io0_io] ; ----------------- [Common 17-55] 'get_property' expects at least one object. ["/home/cpatel/DataEngine/cpu_linux_2/cpu_linux_2.srcs/sources_1/bd/cpu_uart/ip/cpu_uart_axi_quad_spi_0_0/cpu_uart_axi_quad_spi_0_0_clocks.xdc":52]
set_max_delay -from [get_cells -hierarchical -filter {NAME =~*RX_FIFO_II/USE_2N_DEPTH.V6_S6_AND_LATER.I_ASYNC_FIFO_BRAM/inst_fifo_gen/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.gcx.clkx/wr_pntr_gc_reg}] -to [get_cells -hierarchical -filter {NAME =~*RX_FIFO_II/USE_2N_DEPTH.V6_S6_AND_LATER.I_ASYNC_FIFO_BRAM/inst_fifo_gen/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.gcx.clkx/gsync_stage.rd_stg_inst/Q_reg_reg}] -datapath_only [get_property -min PERIOD $clk_domain_ext_spi_clk] [Common 17-55] 'get_property' expects at least one object. ["/home/cpatel/DataEngine/cpu_linux_2/cpu_linux_2.srcs/sources_1/bd/cpu_uart/ip/cpu_uart_axi_quad_spi_0_0/cpu_uart_axi_quad_spi_0_0_clocks.xdc":55]
set_max_delay -from [get_cells -hierarchical -filter {NAME =~*TX_FIFO_II/USE_2N_DEPTH.V6_S6_AND_LATER.I_ASYNC_FIFO_BRAM/inst_fifo_gen/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.gcx.clkx/rd_pntr_gc_reg}] -to [get_cells -hierarchical -filter {NAME =~*TX_FIFO_II/USE_2N_DEPTH.V6_S6_AND_LATER.I_ASYNC_FIFO_BRAM/inst_fifo_gen/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.gcx.clkx/gsync_stage.wr_stg_inst/Q_reg_reg}] -datapath_only [get_property -min PERIOD $clk_domain_ext_spi_clk]