1. 程式人生 > >PLL模組使用中的一些錯誤

PLL模組使用中的一些錯誤

問答編號# 22658
型號 XST General
最後更新日期 2007-04-11 00:00:00.0
記錄狀態 Active
關鍵詞 XST, IBUF, OBUF, netlist

疑問描述

Keywords: XST, IBUF, OBUF, netlist

When attempting to instantiate a netlist, the following error occurs in XST:

"ERROR:Xst:2035 - Port has illegal connection. Port is connected to input buffer and following ports:
Port of instance with type FDCEC"

解決方案

This error will occur if the instantiated netlist contains I/O ports. There are two ways to fix this error:

1. Generate the instantiated netlist without I/O ports.
2. Instruct XST not to add I/O Buffers.

Please refer to the XST User Guide on how to disable the automatic I/O Buffer insertion.

-------------------------------------------------------------------------------------------------------------------------------

於是我找到XST User Guide文件,按照文件所說的禁掉自動I/O Buffer insertion 功能。具體做法

選中synthesize,然後process->properties->Xilinx Specific Options,把add I/O buffer 的勾去掉。

去掉勾後,synthesize通過。

2.implement錯誤

點選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的分支會被短路,從而失去預期的效果。正因為如此,ISE給出了錯誤警告。

理解這一點以後,解決辦法就有了。比如選擇CLK經過PLL後無相位差的時鐘輸出作為test pin,可以達到同樣效果,當然會有1個clock的延遲,但是對於時鐘訊號,這是觀察不到的。

另外,如果CLK沒有驅動PLL,只有輸出到test pin這一個load,那麼上述的錯誤警告就應該不會產生了。