DDR2 ip調試問題集合

一、 問題描述

ERROR:NgdBuild:455 - logical net 'clk400m_p' has multiple driver(s)

ERROR:NgdBuild:455 - logical net 'clk400m_n' has multiple driver(s)

解決辦法

DDR生成後有一個頂層的源文件,在那裏面找到一個關於原語寫的BUFG也不知是IBUFG,將這個原語跳過就可以,保存然後在編譯就不報錯了。

    原因分析

DCM出來的時鐘經進了BUFG,而DDR的輸入時鐘是從IBUFG進入的,在底層結構上BUFG不能聯到IBUFG。

 

二、問題描述:

在Translate過程中出現如下錯誤:

"ERROR:ConstraintSystem:59 - Constraint< xxx >: NET/INST "xxx" 未找到。Please verify that:

1. The specified design element actually exists in the design.

2. The specified object is spelled correctly in the constraint source file.

    解決辦法

爲了防止綜合工具刪除 net,應爲 net 應用 "KEEP"

       另外注意檢查管腳約束UCF文件中,是否有對多餘的IO信號分配了同一個管腳。

 

三、 問題描述

在implement時點擊translate後,出現如下錯誤:

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

意爲輸入信號clk未經buffer就用來驅動其他primitives了    

   原因分析

輸入時鐘clk_in在作爲DCM輸入引腳的時候又爲其他module的輸入,也就是說clk有兩個load,連接PLL時,輸入信號先要連接到內部buffer以產生較強

的驅動能力,從而保證時鐘的時序質量。但是由於輸入信號的另一分支不經過任何電路就直接連接到了輸出Pad ,所以存在一種可能,即連接buffer的

分支會被短路,從而失去預期的效果。即輸入clk兩個分支,一個直接連到模塊fsm;一個連在了DCM的輸入時鐘源。由於經過DCM時會自動加一個buffer

緩衝器,而到fsm會直接連在一起,這樣會造成DCM這一路短路出現錯誤。正因爲如此,ISE給出了錯誤警告。

    解決辦法

clk只是連接一個load,就是DCM。DCM兩個輸出一個CLKFX_OUT_1,另外一個用CLK0_OUT此信號和clk無論相位還是頻率是一樣的

  另外: chipscope 不能用晶振輸入時鐘來作爲採樣時鐘

 

四、 問題描述

PLL或者DLL產生的時鐘直接接到核上,出現如下錯誤

ERROR:NgdBuild:770 - BUFG 'test_ddr2_inst/memc3_infrastructure_inst/se_input_clk.u_ibufg_sys_clk'

And BUFG 'pll_200m_inst/clkout1_buf' on net 'clk_200m' are lined up in series.  

Buffers of the same direction cannot be placed in series. 

原因分析

IBUFG和BUFG串一塊兒了。

解決辦法

進到PLL或者DDR2模塊裏,把相應的BUFG(IBUFG)屏蔽掉。

  五、ddr2 ip系統時鐘

在ip配置過程中,如果配置成差分形式,必須從板級差分輸入時鐘提供,

如果配置成單端的形式,可以從板級輸入或者從內部鎖相環輸出來提供。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章