Vivado常见警告与错误的解决办法(持续更新)

使用 Vivado 的过程中遇到的警告与错误,记录解决办法,不定期更新。

clk_wiz:6.0‘ core does not support module reference

工程中用到了 clock wizard IP 核,但是综合的时候,出现了错误:

Vivado常见警告与错误的解决办法(持续更新)

搜索之后,发现遇到此错误的还不少。

Clock Wizard 6.0 not supported in module reference (xilinx.com:ip:clk_wiz:6.0)

clock wiz dose not support module reference in vivado

帖子给出了错误的原因及解决办法:

大概意思是说,clock wizard 这个 IP 核例化后,用在了用户 verilog 代码块中,然后,将这个包含 clock wizard 的代码作为 module 又添加到 BD 设计中,所以就报错了。

解决办法:

1)将 module 封装成 IP,添加在 BD 中。这种方法的缺点也显而易见,就是每次修改 verilog 代码,就得重新封装一次 IP。

2)在 BD 中直接调用 clock wizard,通过连线的方式输入/输出到用户 module 中。

Unsupported PLLE2_ADV connectivity

Vivado Implementation 的时候报的一个错误:

[DRC REQP-1712] Input clock driver: Unsupported PLLE2_ADV connectivity. The signal u_clk_wiz_0/inst/clk_in1 on the u_clk_wiz_0/inst/plle2_adv_inst/CLKIN1 pin of u_clk_wiz_0/inst/plle2_adv_inst with COMPENSATION mode ZHOLD must be driven by a clock capable IO.

由提示信息可知,应该是配置 clocking wizard 出问题了。

解决办法:

选择 PLL 后,将 source 由“single ended clock capable pin”调为“global buffer”即可。再次 implementation 时候就不报错了。

No common primary clock between related clocks

造成这个的原因有很多,这里仅解释由于 MMCM/PLL 造成此警告的原因。

No common primary clock between related clocks

如果 MMCM/PLL 配置成了 single-ended capable clock 模式,但是原理图或者 HDL 代码中,输入时钟不仅驱动 MMCM/PLL,还驱动额外的逻辑资源,那么就会产生此报警。因为,MMCM/PLL IP 核配置中包含了 IBUF。

解决办法:

1)MMCM/PLL 额外输出一路频率、相位与源时钟相同的时钟,用来驱动额外的逻辑资源;

2)重新配置 MMCM/PLL 为”Globle Buffer” 或 “No Buffer”。

[Vivado 12-4739] set_clock_groups:No valid object(s) found for ‘-group [get_clocks]

此 critical warning 仅出现在综合阶段,不会出现在实现阶段,因为在综合阶段,与这些 clock 相关的 IP 约束文件,并未编译,详见Vivado 中 IP 核约束文件和用户约束文件的编译顺序

WARNING: [Timing 38-172] LUT was found on clock network.

一般情况下,采用组合逻辑产生的时钟 MUX 电路,会产生此警告。Xilinx 的建议是不要采用组合逻辑来产生时钟 MUX 电路,而是采用专用的时钟资源来做 MUX,例如 BUFGMUX 等等。

扫码关注尚为网微信公众号

尚为网微信公众号
每天学习电路设计嵌入式系统的专业知识,关注一波,没准就用上了。

原创文章,作者:sunev,如若转载,请注明出处:https://www.sunev.cn/embedded/1254.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022年7月27日
下一篇 2022年8月8日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注