更换IP核报错处理

一.问题一: Constraints 18-4419

(1)Vivado报错信息:Constraints 18-4419 Constraints cannot be saved because constraint file '/path/to/system.xdc' was read multiple times...

(2)Vivado给出的建议方案:重新加载设计(refresh_design)并确保每个约束文件只读一次。

分析错误:

read multiple times表示Vivado在当前会话中多次将该特定XDC文件(system.xdc)纳入了约束列表。

(3)为什么会发生这种情况?常见原因包括:

1.用户在项目设置中将同一个文件添加了两次(来源列表中重复)。

2.该文件包含在constrs_1中,同时通过Tcl脚本或约束集属性被重复包含。

3.用户可能运行了多个read_xdc命令,或者文件被include了多次。Vivado缓存状态混乱。

4.解析中提到的解决方案:"Reload the design (refresh_design) and read each constraint file once." 这是Vivado的标准建议,但我需要提供比"输入refresh_design"更可操作、更具体的排查步骤,因为简单的刷新可能无法解决根本原因(如果文件确实是重复添加的)。

(4)解决方法

在 Vivado 的Tcl Console中输入以下命令,重新加载当前设计:tclrefresh_design

  • 问题二: Vivado 12-3280

(1)问题分析:Vivado 12-3280 Incremental checkpoint file '...srcs/utils_1/imports/synth_1/Single_line_mode.dcp' set on run 'synth_1' does not exist.这个错误 Vivado 12-3280 的核心原因是:你的 Vivado 项目启用了增量编译(Incremental Compile)功能,但指定的检查点文件(.dcp)不存在.

(1)解决方法:使用 Tcl 命令清除设置(更彻底)

如果 GUI 操作后问题依旧,可以用 Tcl 命令强制清除相关属性。在 Vivado 底部的 Tcl Console 中,依次输入并执行以下命令:

tcl

1.# 清除手动指定的检查点文件路径

set_property INCREMENTAL_CHECKPOINT "" get_runs synth_1

2.# 禁用自动增量编译

set_property AUTO_INCREMENTAL_CHECKPOINT 0 get_runs synth_1

3.这两条命令会直接清除项目对那个缺失 .dcp 文件的引用。执行后,可以再运行 reset_project 命令刷新项目状态。

  • 问题三:IP核器件型号不匹配
  1. 问题分析

(2)你的 IP 核 Qspi_block_design_Qspi_cs_0_0 是在 xc7z020clg400-2 器件上定制生成的,但当前项目使用的器件是 xc7z015clg485-2。两者属于不同系列(Zynq-7000)但具体型号不同,Vivado 为防止不兼容而锁定了该 IP。

(3)点击IP核,右键点击Report IP Status,刷新一下,然后升级就可以了

  • 问题四:修改IP核引脚宽度和状态

如:第一次生成的IP核引脚宽度为【7:0】,要更改为宽度为1,直接在Is vecton里面把√去除即可。