Utility Buffer生成的BUFG端口属性properties不匹配问题
参考:
https://coldnew.github.io/49454c4d/
https://forums.xilinx.com/t5/Synthesis/Vivado-2016-3-Utility-Buffer-issue-Limiting-clock-on-100Mhz/td-p/736176
缘由
在使用Digilent 提供的针对Linux的预设计档(zybo_base_system),下载地址:https://github.com/Digilent/ZYBO
由于这个设计是由vivado2015生成的,因此需要将project升级至vivado2018,在将IP核升级至最新版本准备生成bitstream文件时,出现以下错误无法进行implement。
[BD 41-238] Port/Pin property FREQ_HZ does not match between /clk_wiz_0/clk_in1(125000000) and /util_ds_buf_0/BUFG_O(100000000)
经查是因为BUFG_I和BUFG_O的properties中的FREQ_HZ选项与后续的clk_in的属性不匹配导致,而此选项是无法手动修改的,只能自动设定,如图:
根本原因是因为这个bufg的前端接的是sysclk这个外部端口,而在原先的设计中这个端口使用的是未定义类型端口,在properties中没有定义频率的选项,从而导致后续的元件端口属性无法跟着改变,只能使用默认值:
解决方法
删除原来的端口,重新生成一个端口,端口设定为clock类型外部端口,重连至BUFG,这个BUFG管脚的属性就会跟着设定改变了。
Crtl+K生成新的端口Create Port,
Validate Design后再次查看端口属性:
可以正常编译。