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
在我們的這個例子中,clk有兩個load,一個是直接到輸出端的test pin,另一個是到內部PLL作為源時鐘來產生系統內部時鐘。連線PLL時,輸入訊號先要連線到內部buffer以產生較強的驅動能力,從而保證時鐘的時序質量。但是由於輸入訊號的另一分支不經過任何電路就直接連線到了輸出pad,所以存在一種可能,即連線buffer的分支會被短路,從而失去預期的效果。正因為如此,ISE給出了錯誤警告。
理解這一點以後,解決辦法就有了。比如選擇CLK經過PLL後無相位差的時鐘輸出作為test pin,可以達到同樣效果,當然會有1個clock的延遲,但是對於時鐘訊號,這是觀察不到的。
另外,如果CLK沒有驅動PLL,只有輸出到test pin這一個load,那麼上述的錯誤警告就應該不會產生了。