使用 Vivado 的过程中遇到的警告与错误,记录解决办法,不定期更新。
‘clk_wiz:6.0‘ core does not support module reference
工程中用到了 clock wizard IP 核,但是综合的时候,出现了错误:
搜索之后,发现遇到此错误的还不少。
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