天天看點

【分享】 MPSoC的VCU超頻

目錄

​​1. 超頻介紹​​

​2. VCU正常設計​

​​2.1. VCU時鐘​​

​​2.2. Clocking Wizard配置​​

​2.3. 單闆時鐘​

​​2.3.1. vivado接口屬性​​

​​2.3.2. vivado限制​​

​3. 超頻步驟​

​​3.1. vivado接口屬性​​

​​3.2. vivado限制​​

​​4. 結論​​

1. 超頻介紹

很多晶片可以暫時超頻使用。 當然,出于良品率、長期可靠性考慮,廠家官方都不建議超頻使用。

Xilinx的器件質也能超頻。幾年前,當Zynq-7000剛面世時,通過修改PLL的設定,7020的A9的頻率被超頻到1GHz後,也能正常運作。

最近有人問到MPSoC的VCU能不能超頻。檢查Vivado裡的VCU設計後,确認通過簡單步驟,VCU也能超頻。這是黑客操作。請確定電源有足夠的供電、單闆有足夠的散熱能力。超頻後,VCU已經工作在産品規格之外,工程師需要承擔器件可能損壞的責任。如果在産品中使用,一定要注意在高溫、低溫等極端情況下,是否能正常工作。

2. VCU正常設計

VCU編解碼器内部使用時鐘pll_ref_clk,所有外部AXI接口使用其它時鐘。如果調整内部時鐘pll_ref_clk,不會影響外部接口時鐘,也不會引起時序問題。是以非常友善。

VCU的信号如下。

【分享】 MPSoC的VCU超頻

VCU的信号說明。

【分享】 MPSoC的VCU超頻

VCU的工作時鐘一般是667MHz,由VCU自己内部的PLL産生。

【分享】 MPSoC的VCU超頻

VCU内部時鐘pll_ref_clk來自于外部時鐘晶片si570的輸出。si570的輸出是300MHz的時鐘,進入PL後,經過一個Clocking Wizard,産生33MHz給VCU作為pll_ref_clk。

下圖展示了VCU的時鐘來源,包括從si570到Clocking Wizard的設計。

【分享】 MPSoC的VCU超頻

Clocking Wizard的輸入是300MHz。

【分享】 MPSoC的VCU超頻

Clocking Wizard的輸出是33.33MHz。

【分享】 MPSoC的VCU超頻

PL設計中,來自于外部時鐘晶片si570的信号是si570_user。在Vivado的屬性設定裡,聲明了si570_user是300MHz。

【分享】 MPSoC的VCU超頻

vivado限制檔案裡,也指定了si570_user的周期是3.333ns,對應的頻率是300MHz。

3. 超頻步驟

Vivado會檢查VCU的時鐘。如果VCU的時鐘超出規格,會報錯。

超頻的核心訣竅是欺騙Vivado,向Vivado聲明一個假的時鐘頻率。比如實際輸入頻率是300MHz,我們在設計中卻告訴它是200MHz。那麼在後續的倍頻操作中,Vivado會以200MHz計算出産生667MHz的倍頻分頻系數,實際得到的頻率就是667*(300/200),也就是1000MHz。

測試時,打算把VCU的頻率超頻到933MHz。VCU的配置裡,已經把VCU的頻率,改為712MHZ。是以要把輸入頻率,降低933/712=1.310倍,也就是改為300/1.310=228.9MHz,對應的周期4.368。

在Vivado的屬性設定裡,把si570_user的頻率,從300MHz,改為228.9MHz。

【分享】 MPSoC的VCU超頻

vivado限制檔案裡,也指定了si570_user的周期是4.368ns,對應的頻率是933MHz。

4. 結論

編譯Vivado工程,更新PetaLinux工程的HDF檔案,再産生Linux檔案。單闆能正常啟動,編碼4K檔案時,幀率能夠顯著提升。

最後,再次聲明,超頻後,VCU已經工作在産品規格之外,需要自己承擔器件可能損壞的責任。

繼續閱讀