在Zynq的手冊上,用戶可以看到,按照CPU最大頻率分類,所有Zynq器件可以分為2檔。
實際上這個最大頻率限制僅僅是Xilinx為了保證所有量產產品的穩定性,人為限定的參數。對於某個實際的單顆Zynq晶片,其ARM CPU是當然可以超頻運行的,這在某些時候還是有一定意義的(當然大批量產品絕對不建議這麼幹)。
不太方便的是,Xilinx的Vivado/ISE開發工具中,在圖形界面裡面配置CPU運行頻率時,都是不允許超頻的。如下所示,是基於zynq-1的器件,限定CPU最大頻率只能到667Mhz:
那麼該如何克服軟體界面的限制,強制CPU超頻呢?
其實很簡單,CPU運行頻率的具體值,都是在fsbl的初始化階段,通過Zynq的系統寄存器進行配置的。具體負責配置CPU頻率的文件在SDK hw_platform文件夾下的ps7_init.c文件裡面,我們只要修改裡面對應的配置CPU頻率的寄存器的數值,就可以強制ARM超頻運行了。
所需要修改的寄存器,都在SystemLevel Control Registers(slcr),詳請參考UG585。
註:版權歸「FPGA那點事兒」運營團隊,轉載請註明出處。
歡迎掃描以下二維碼,關注「FPGA那點事兒」!