filip

时钟错误处理

0
阅读(3115)

使用xilinx ISE 10.1的时钟出现如下 ERROR:Xst:2035 - Port <clk> has illegal connections. This port is connected to an input buffer and other components.
 查到的解决方法是禁掉自动I/O Buffer insertion 功能,具体的做法是右击synthesize,然后properties->Xilinx Specific Options,把add I/O buffer 的勾去掉,综合通过。但是这样处理了之后在实施布线

点击translate后,出现如下错误:

ERROR:NgdBuild:924 - input pad net 'clk' is driving non-buffer primitives

入信号clk未经buffer就用来驱动其他primitives 了,这个primitives 估计指的是我们用做输出的pad

在我的例子中,clk有两个load,一个是直接到输出端的test pin,另一个是到内部PLL作为源时钟来产生系统内部时钟。连接PLL时,输入信号先要连接到内部buffer以产生较强的驱动能力,从而保证时钟的时序质量。但是由于输入信号的另一分支不经过任何电路就直接连接到了输出pad ,所以存在一种可能,即连接buffer的分支会被短路,从而失去预期的效果。

可以这样改正:选择CLK经过PLL后无相位差的时钟输出作为test pin,可以达到同样效果,当然会有1个clock的延迟,但是对于时钟信号,这是观察不到的。