使用 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 等等。
Vivado RTL 闪退问题的解决办法
1. 千万要保证你的软件安装路径和工程存放路径绝对是英文路径,不能有除数字、英文、下划线等的其他字符。
2. Vivado 对英文环境是我见过最苛求的软件了,要保证你的 windows 账户名和电脑的名字也是英文。
3. 从工程文件中启动而不是先开软件后开工程,本人解决 Vivado RTL 闪退就是这个方法。
扫码关注尚为网微信公众号
原创文章,作者:sunev,如若转载,请注明出处:https://www.sunev.cn/embedded/1254.html