spartan6 PLL IP Core使用中遇到的若干问题
问题1:外部clk作为全局输入时钟,分别为内部程序模块和IP核提供输入时钟,IP核分频所得时钟作为输出进行测试,Synthesize时出现如下错误:
ERROR : Xst : 2035 – Port <clk> has illegal connections. This port is connected to an input buffer and other components.
改正方法①:右击Synthesize—>process properties—>specific options—>取消add I/O buffers勾选项
改正方法②:打开clocking wizard—>首页input clock source改为no buffer
问题2:问题1采用第①种方法处理后,Synthesize通过,translate时出现如下错误:
ERROR : NgdBuild : 924 – input pad net ‘clk’ is driving non-buffer primitives
改正方法:内部程序模块always中的触发时钟不要使用clk,改用IP核输出的时钟!
问题3:问题1采用第②种方法处理后,Synthesize通过,translate通过,map时出现如下错误:
ERROR : Place : 1205 – This design contains a global buffer instance, <M0 / clkout1_buf>, driving the net, <CLK_OUT1_OBUF>, that is driving the following (first 30) non-clock load pins off chip.
改正方法:报错内容中已经给出了解决方法,在ucf文件中添加如下约束
PIN "M0/clkout1_buf.O" CLOCK_DEDICATED_ROUTE = FALSE;
PIN "M0/clkout2_buf.O" CLOCK_DEDICATED_ROUTE = FALSE;
总结:
若是程序中包含有时钟管理IP核,全局时钟尽量只作为IP的输入时钟,将IP核的输出时钟作为程序其他module的触发时钟!!!
本帖最后由 VincentLee90 于 2019-10-13 21:34 编辑