FPGA專用時鍾管腳問題


轉自:http://www.eefocus.com/liu1teng/blog/12-02/237897_4533d.html

  前一段時間畫了一塊千兆擴展板,板子上有千兆網口和千兆光纖接口,兩種介質可以通過跳線來轉換,板子做好之后進行回環測試時,發現網口會有隨機的丟幀現象,而光口是正常的,一直沒有找到問題根源,后來在做另一個項目里,需要寫MAC的時序約束,發現Xilinx提供的MAC硬對‘RX_CLK’的時序約束要求很高,建立時間只有2.5ns,保持時間0.5ns,無論怎么反復修改這個約束值都無法達到約束要求,最后仔細研究了一下,發現評估板上的PHY芯片,'RX_CLK'這個信號連接在GC_CLK,而我的硬件設計只連接在普通IO口上,在時序約束時,用CLOCK_DEDICETED_ROUTE=FLASE繞過PAR的檢查,這樣就只是將本該接入專用時鍾管腳(或者叫做全局時鍾管腳)的信號,接到了普通IO口上,但並沒有做好如何用普通IO口來引入全局時鍾,Xilinx官方論壇上更是有老外直接指出這只是把一個error變成了warning,並沒有解決真正的問題。作為初學者的我並沒有意識到,什么是‘真正的問題’,直到出現這種丟幀現象之后,才慢慢意識到FPGA並不是我之前想象的那么‘簡單順手’。

         現在說說專用時鍾引腳,它的出現具體原因可以說是FPGA自身的實現結構引起的,FPGA實現時,具體的時鍾大概有外部供給FPGA的工作時鍾,由DCM或者PLL產生的時鍾,和FPGA輸入輸出數據的隨路時鍾;再說說FPGA的實現,由於是基於觸發器的設計實現,這就造成了,在布局布線時,同一時鍾域但是布局相隔較遠的同步器件再被相同時鍾觸發時,會有延時,這反映在時鍾的skew(相位傾斜),為了解決這個問題,時鍾樹就出現了,將時鍾的布線成樹形結構,使得到達每一個邏輯單元的時鍾信號同相,這樣就可以實現同步,這就是全局時鍾網絡,GC_CLK。也就是說GC_CLK在FPGA內部是固定的位置,與其對應的引腳也就固定了,這樣的引腳稱為全局時鍾引腳GC_CLK PIN。實際上,綜合器會將扇出的較大的信號當做全局信號,並自動在引腳上加入IBUFG,但是只有全局引腳之后才有IBUFG,所以如果UCF中的時鍾管腳不是用的GC_CLKPIN,PAR就會報錯,反之,當一個信號分配的是GC_CLK PIN,無論是否扇出足夠大,都會加入IBUFG,這也其實是FPGA內部結構造成的,只有全局管腳上有IBUFG,所以只要該信號用了全局管腳,無論是,或不是全局信號,IBUFG都在那里。

        再說說GC_CLK和CC_CLK的區別,由於GC_CLK PIN是最好用的時鍾管腳,正常來說,凡是時鍾信號,硬件連接上都應該用GC_CLK PIN,但是這樣的PIN太少了,高端的FPGA也就十幾個而已,V5系列最大的的200T也只有24個,所以很多時候滿足不了實際應用對時鍾的需求,這時就出現了代替品CC_CLK,CC_CLK只能保證同一BANK或者相鄰BANK的時鍾信號同相,並且無法用BUFER驅動,(這一點我不是很理解,以后用到了會補充上來。)簡單地說,就是有GC_CLK就要用GC_CLK,沒了,就用CC_CLK,如果用普通的IO口,就會有一些問題要注意。
 
        回到之前所說的FPGA內的時鍾,工作時鍾的管腳是固定的,沒啥說的,一定最全局的時鍾管腳,內部由DCM或PLL產生的時鍾,DCM的輸出會自動接入全局時鍾網絡,最后一個其實是我曾忽略過的,輸入輸出的隨路時鍾,如果硬件上接到了普通IO上,這就有點悲劇了,盡管可以用BUFG接進全局時鍾網,但是,從PAD到BUFG的輸出有10ns的固有延時。這10ns無法消除,所以如果時鍾頻率超過20M左右時,skew會比較大。一些處理辦法:用兩個DCM級聯來調相BUFG+DCM+DCM。千兆網口要跑125Mbps,時鍾周期是8ns,如果固有延時是10ns,那么就有1/4周期的延時,我打算用前一級調相90°,后一級調相180°,這樣就可以達到同相了吧。但隨之而來的問題就是10ns的固有延時是否是穩定的(這個延時量也是官方論壇里的一大牛說的,沒查到可靠的出處),兩級DCM調相是否能保證無偏差。這都是要看實際的程序在板子跑的結果來下結論了。
 
       板子回來后,在實際中的使用,出現了以下現象:按固定的最小幀間隔發以太網幀,以千兆標准96ns,出現錯幀現象,如果以十兆標准9600ns,就沒有任何丟幀現象,我想接口板還是沒有完美的達到高速通信的要求,原因最可能是上述專用管腳的使用或者接口板經過插針無法支持高速傳輸,這只能再一一排除了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM