Generate Bitstream Failed

[DRC NSTD-1]

  • 问题
    引脚定义了,没有使用或者没做物理约束导致生成bit文件报错,DRC电气检测失败。此处特指顶层文件输入输出引脚。

  • 解决

    1.找到未使用引脚并注释。

    2.使用TCL文件忽略该项报错,TCL文件内容如下,手动创建该文件后,在Vivado右栏选择Setting->Project Settings->Implementation->Write Bitstream->tcl.pre选择该文件并导入后重新执行Generate Bitstream。

    3.给引脚添加物理约束

    1
    2
    3
    set_property SEVERITY {Warning} [get_drc_checks NSTD-1]
    set_property SEVERITY {Warning} [get_drc_checks UCIO-1]
    set_property SEVERITY {Warning} [get_drc_checks RTSTAT-1]

Run Implementation Failed

[Place 30-494]

[Place 30-494] The design is empty Resolution: Check if opt_design has removed all the leaf cells of your design. Check whether you have instantiated and connected all of the top level ports.

  • 问题
    顶层文件没有输出引脚整个电路逻辑会被Vivado优化掉。

  • 解决
    随便定义一个引脚物理约束一下就可以解决。

[DRC UTLZ-1]

Resource utilization: DSP48E1 over-utilized in Top Level Design (This design requires more DSP48E1 cells than are available in the target device. This design requires 1211 of such cell types but only 900 compatible sites are available in the target device. Please analyze your synthesis results and constraints to ensure the design is mapped to Xilinx primitives as expected. If so, please consider targeting a larger device.)

  • 问题
    提示很明显指出,DSP资源不足.

  • 解决
    点击 Open Synthesized Design -> Report Utilization 查看各个模块DSP使用情况,优化DSP使用.一般需要关注DDS,FIR,CFR等模块.

[DRC BIVC-1]

ERROR: [DRC BIVC-1] Bank IO standard Vcc: Conflicting Vcc voltages in bank 10. For example, the following two ports in this bank have conflicting VCCOs:xxxx[0] (LVCMOS18, requiring VCCO=1.800) and xxxxx (LVCMOS33, requiring VCCO=3.300)

  • 问题
    电气检测提示,在Bank10中出现了两种电平标准,这是不允许的。Xilinx FPGA将引脚划分为多个Bank以适应不同电压,但是在同一个Bank内只能存在一种电平标准。

  • 解决
    根据提示检查bank内引脚电平标准,修改电平标准或电路。
    查看Io所属bank可以通过进入AMD XILINX Package Files Portal,选择自己对应的器件型号进行查看。

    Xilinx FPGA主要有两种类型Bank

    • HP(High-performance) BANK
    • HR(High-range)BANK

    其中HR BANK拥有更为广泛的电平标准,最高支持3.3V高电平。而HP BANK最高支持1.8V,主要是高速通信信号设计使用。


Run Synthesis Failed

[Synth 8-91]

ambiguous clock in event control

  • 问题
    敏感信号没有被使用

  • 解决
    使用敏感信号或删除敏感信号

[Synth 8-5535]

port has illegal connections. It is illegal to have a port connected to an input buffer and other components. The following are the port connections : Input Buffer: Port I of instance clkin1_ibufg(IBUF) in module Other Components: Port C of instance sys_rst_n_reg(FD) in module ddr3_rw_top

  • 问题
    顶层时钟引脚未经过IBUF直接使用会导致此错误

  • 解决
    使用IBUFBUFG原语将时钟导入输入时钟缓冲和全局时钟缓冲后使用。IBUFG即输入全局缓冲,是与专用全局时钟输入管脚相连接的首级全局缓冲。所有从全局时钟管脚输入的信号必须经过IBUF元,否则在布局布线时会报错。 IBUFG支持AGP、CTT、GTL、GTLP、HSTL、LVCMOS、LVDCI、LVDS、LVPECL、LVTTL、PCI、PCIX和 SSTL等多种格式的IO标准。BUFG
    是全局缓冲,它的输入是IBUFG的输出,BUFG的输出到达FPGA内部的IOB、CLB、选择性块RAM的时钟延迟和抖动最小。

Others

[DRC AVAL-326]

Hard_block_must_have_LOC: The hard block IBUFDS_GTE4 cell xxxxxxxxxxxxxxxxx.ibufds_gtex_i is missing a valid LOC constraint for placement assignment, normally supplied by IP generation or manually assigned using the LOC property. Unguided placement of this block may cause problems in routing or other issues. Please check your design and set a valid LOC for this block to avoid these problems.

  • 问题
    GTX管脚放置错误
  • 解决
    检查是否将普通信号约束到了GTX差分时钟引脚上,或者GTX引脚约束到了普通引脚上。想要知道是否是专用引脚可以通过AMD XILINX Package Files Portal选择自己的器件进行查询,I/O Type栏若为GTX则为专用引脚,此时需要修改约束文件更换物理约束。
    若无以上问题,检查前面关于GTX的警告,若有相关警告则需要优先解决。

[USF-XSim-62]

‘compile’ step failed with error(s). Please check the Tcl console output or ‘/xxxx/xxx/xxxx/xxxxxx.sim/sim_1/behav/xsim/xvlog.log’ file for more information.

  • 问题
    行为仿真出现错误,大概率是语法错误,打开提示中指定的xvlog.log文件或查看Tcl控制台即可查看错误。
  • 解决
    根据xvlog.log详细提示解决问题。若已经解决且编译通过还显示此提示,选择此条提示->右键->Discard User Created Messages然后重新编译即可。

Unable to open file <file> because the path is invalid

  • 问题
    突然发现文件无法打开,但使用Vscode可以在路径下找到文件,且使用Vivado GUI可以打开文件。该文件存在,但无法通过Messages栏打开。
  • 解决
    打开../projectName.runs/synth_1/runme.log文件,这个是编译日志,Message栏的信息就是由这个文件生成。观察日志,发现项目名称中出现了纯数字,猜测Vivado无法识别纯数字路径。修改掉路径,重新编译,该错误解决。