本篇博客,博主將總結FPGA時鐘方面的問題。以前碰到過一些時鐘的問題,但是由於沒記錄也就都忘記了,所以這篇文章將用來記錄FPGA中時鐘的問題。這篇文章屬於持續更新的系列,將總結接下來時鐘的注意點。
FPGA時序問題主要就是體現在時鐘上面,雖然可以設置IO Delay,但是我還是喜歡使用PLL來調節相位。該方法雖然不好,但是非常簡單。
有一些時鐘的輸出沒有接到專用時鐘引腳,可以使用OSERDESE2 原語來串行輸出0、1信號增強時鐘的質量。
Xilinx 7系列FPGA專用時鐘引腳標誌
相信許多同學們都知道FPGA內部的全局時鐘網絡質量特別高,時鐘偏移、到達不同寄存器的時鐘延遲比較小。進入全局時鐘網絡有幾種方法:
1、經過專用時鐘引腳引入的時鐘
2、PLL輸出的時鐘
3、經過BUFG輸出的時鐘
寫的不全,但是以後會繼續補充。
那麼如何判斷FPGA的時鐘引腳是專用時鐘引腳呢?
對於7系列的FPGA專用時鐘引腳主要會標誌上:SRCC、MRCC
UG472中的內容如下:
我們只要看見FPGA的引腳上面帶有MRCC與SRCC,那麼便證明這個引腳是FPGA專用時鐘引腳。
Quartus II將普通引腳引用的時鐘連接到全局時鐘網絡
有時候一些芯片的時鐘引入到FPGA的普通引腳,但是扇出係數比較大,那麼我們便需要將該引腳引入到FPGA的全局時鐘網絡。所以我們將使用IP ALTCLKCTRL,如下圖:
使用該IP便可以把普通引腳引入的時鐘轉換到全局時鐘網絡中去。
FPGA時鐘單雙端轉換
參考文獻
[1] UG472文獻
總結
該篇文章我們會一直補充完善,共同發掘一些時鐘方面的大坑。
在查找一些資料的時候,發現一些博主只給出部分代碼,其實這樣別人根本看不懂,只有給出整個工程代碼才易於知識的傳播。創作不易,認爲文章有幫助的同學們可以關注、點贊、轉發支持。爲行業貢獻及其微小的一部分。或者對文章有什麼看法或者需要更近一步交流的同學,可以加入下面的羣: