1. 程式人生 > >鎖相環PLL:Xilinx PLL IP核使用方法

鎖相環PLL:Xilinx PLL IP核使用方法

轉自:https://blog.csdn.net/qq_30866297/article/details/52355245

1. 時鐘與振盪電路

在晶片中,最重要的是時鐘。那時鐘是怎麼來的呢?時鐘可以看成周期性的0與1訊號變化,而這種週期性的變化可以看成振盪。因此,振盪電路成為了時鐘的來源。

2. PLL與倍頻

晶振由於其頻率的穩定性,一般作為系統的外部時鐘源。但是晶振的頻率雖然穩定,但是頻率無法做到很高(成本與工藝限制),因此晶片中高頻時鐘就需要一種叫做壓控振盪器(Voltage Controlled Oscillator)的東西生成了(顧名思義,VCO就是根據電壓來調整輸出頻率的不同)。可壓控振盪器也有問題,其頻率不夠穩定,而且變化時很難快速穩定頻率。為了將頻率鎖定在一個固定的期望值,鎖相環PLL出現了!

3.Xilinx PLL IP核使用方法

step1:

 如圖所示,在“Design à Implementation”下的任意空白處單擊滑鼠右鍵,彈出選單中選擇“New Source …”。

step2:

在彈出的“New Source Wizard à Select Source Type”下,如圖所示,選擇檔案型別為“IP (CORE Generator & Architecture Wizard)”。“File name”可以給新建立的PLL取個名字,我們命名為“pll_controller”。“Location”即生成的新檔案所有相關原始檔的儲存路徑,預設即為當前工程路徑下的一個名為“ipcore_dir”的資料夾中,通常我們不需要更改它。點選“Next”繼續。

step3:

接著進入“New Source Wizard à Select IP”頁面,如圖所示,選擇IP核型別為“FPGA Features and Design à Clocking à Clocking Wizard”。點選“Next”繼續。

step4:

 如圖所示,前面的配置資訊在“New Source Wizard à Summary”頁面重新羅列供review。點選“Finish”繼續。

step5:

  此時,我們注意到Design介面下有如圖所示的“Creating: pll_controller.xco”的提示資訊,大家需要耐心等待一會,新建的PLL模組正在建立中,隨後將會彈出PLL的配置頁面。

step6:

如圖所示,在彈出的PLL配置頁面Page1中,主要設定“Input Clock Information”下的輸入時鐘頻率,這裡我們在“Value”下輸入“25”MHz。其他的配置通常使用預設即可,大家也可以點選右下角的“Datasheet”檢視文件,確認相關設定的具體含義。

step7:

在page2中,如圖所示,我們設定CLK_OUT1的輸出時鐘頻率為12.5(單位:MHz),同時勾選CLK_OUT2、CLK_OUT3和CLK_OUT4,並且分別設定它們的頻率為25、50和100(MHz)。

step8:

Page3中,如圖所示,勾選“RESET”和“LOCKED”這兩個介面。RESET即整個PLL的復位訊號,LOCKED則是PLL輸出時鐘正常工作的指示訊號。

step9:

完成上面的配置,在Page5中,如圖所示,所有相關的配置資訊都在此羅列出來了,供review。

step10:

   與此同時,如圖所示,在PLL配置頁面的右側,所有可用於連線到我們的邏輯中的訊號介面也都一覽無餘,非常直觀。

step11:

最後,在page6中,如圖所示,PLL模組配置完成後,將會生成的所有相關原始檔都羅列出來了。

step12:

 我們可以點選PLL配置頁面右下角的“Generate”生成當前配置。

step13:

如圖所示,在“Design à Implementation”中出現了剛剛配置的pll_controller模組,選中它,然後在“Processes”中,我們可以雙擊“View HDL Instantiation Template”開啟PLL檔案的例化模板。

step14:

 如圖所示,這邊是pll_controller的例化模板,我們把它複製到我們的設計模組中,然後更改“()”內的訊號名稱,和我們的模組訊號名稱一致。具體請參考設計例項的原始碼。