一、PLL原理
鎖相環(huán)(PLL,Phase Lock Loop)的主要作用是實(shí)現(xiàn)輸出時(shí)鐘對輸入?yún)⒖紩r(shí)鐘的相位與頻率的精確跟蹤和同步。鎖相環(huán)(PLL)的主要模塊包括相位頻率檢測器(PFD)、電荷泵、環(huán)路濾波器、壓控振蕩器(VCO)以及計(jì)數(shù)器,例如反饋計(jì)數(shù)器(M)、預(yù)分頻計(jì)數(shù)器(N)和后分頻計(jì)數(shù)器(C)。鎖相環(huán)的架構(gòu)取決于您在設(shè)計(jì)中所使用的器件。典型的PLL結(jié)構(gòu)如下所示(參考Altera文檔Altera Phase-Locked Loop (Altera PLL) IP Core User Guide):

用戶可以重新配置計(jì)數(shù)器,修改電荷泵和環(huán)路濾波器組件來實(shí)時(shí)更新輸出時(shí)鐘頻率、PLL帶寬和相移,且無需重配置整個 FPGA。本案例主要是配置不同的頻率輸出,主要關(guān)注這些計(jì)數(shù)器的重配置:
預(yù)分頻計(jì)數(shù)器N
反饋計(jì)數(shù)器M
后分頻計(jì)數(shù)器C
關(guān)于輸出頻率fout和輸入頻率fin之間的換算公式如下:

pll_controller.v代碼里面給出了不同頻率下M、N、C的經(jīng)驗(yàn)值:

二、 ALTPLL RECONFIG IP
本案例是通過一個PLL控制器(pll_controller.v)根據(jù)不同的顯示模式(mode)將不同的參數(shù)傳輸給ALTPLL RECONFIG IP處理后繼而傳遞給ALTPLL IP以實(shí)現(xiàn)PLL輸出頻率的改變。
如下是PLL控制器、ALTPLL RECONFIG IP和ALTPLL IP的RTL視圖:

ALTPLL RECONFIG IP是Altera 公司提供的 IP核,用于動態(tài)實(shí)時(shí)地重新配置 ALTPLL IP。借助該 IP 核,無需重新配置整個 FPGA,就可以實(shí)時(shí)更新 ALTPLL 的輸出時(shí)鐘頻率、PLL 帶寬和相移等參數(shù)。

在實(shí)際應(yīng)用中可將ALTPLL RECONFIG IP、單口 ROM 和.mif 文件三者配合工作來實(shí)現(xiàn)對 ALTPLL IP 內(nèi)核中參數(shù)的更新,也可以設(shè)計(jì)一個PLL控制器直接對ALTPLL RECONFIG IP的參數(shù)進(jìn)行更新。本案例選擇后者。
PLL控制器、ALTPLL RECONFIG IP和ALTPLL IP之間的關(guān)系簡化一下得到如下框圖:

PLL控制器通過mgmt接口(mgmt代表管理接口Management Interface)控制ALTPLL RECONFIG IP,mgmt 接口采用的是 Avalon-MM(Avalon Memory-Mapped)協(xié)議,它是一種簡單的內(nèi)存映射接口協(xié)議,支持主從機(jī)之間的通信,適合用于配置、控制和數(shù)據(jù)傳輸?shù)葓鼍啊?/p>
Avalon-MM的讀寫接口核心信號包括:
地址線(address):指定要訪問的從機(jī)內(nèi)部寄存器或存儲單元地址。
數(shù)據(jù)線(writedata/readdata):寫操作時(shí)傳遞要寫入的數(shù)據(jù),讀操作時(shí)返回讀取的數(shù)據(jù)。
寫使能(write):高電平有效時(shí),將writedata 寫入 address 指定的位置。讀使能(read):高電平有效時(shí),從address 指定的位置讀取數(shù)據(jù)到 readdata。
通過Avalon-MM 協(xié)議,主設(shè)備可以通過地址、數(shù)據(jù)和控制信號(如讀 / 寫使能)與 ALTPLL_RECONFIG IP 進(jìn)行交互,完成對 PLL 配置參數(shù)的讀取和修改。更多關(guān)于Avalon-MM協(xié)議請參考Altera文檔1. Introduction to the Avalon Interface Specifications
基于Avalon-MM接口的PLL動態(tài)重配置波形舉例如下(本教程采用polling模式):

PLL控制器則是按照上述時(shí)序?qū)LTPLL_RECONFIG IP 進(jìn)行控制,其中與頻率重配置相關(guān)的寄存器描述如下(更多詳情參考Altera文檔1.1.1.4.1. Fractional PLL Dynamic Reconfiguration Registers and...):
| 寄存器名稱 | 位寬 | 地址 | 設(shè)置 | 讀/寫 |
| Mode Register | 1 | 0 |
設(shè)置0選擇Waitrequest模式 設(shè)置1選擇polling模式 |
Read/Write |
| Status Register | 1 | 1 | 讀取0代表busy,讀取1代表配置完成 | Read |
| Start Register | 1 | 2 | 寫0或者寫1都可以開啟PLL 重配置 | Write |
| N Counter | 18 | 3 |
N_counter[7:0]=low_count N_counter[15:8]=high_count Total_div=high_count+low_count N_counter[16]=0, fREF= fIN/Total_div N_counter[16] = 1,選擇bypassed N_counter[17]=0,偶分頻 N_counter[17]=1,奇分頻 |
Read/Write |
| M Counter | 18 | 4 |
M_counter[7:0]=low_count M_counter[15:8]=high_count Total_div=high_count+low_count M_counter[16]=0,fFB=fVCO/Total_div M_counter[16]=1,選擇bypassed M_counter[17]=0,偶分頻 M_counter[17] =1,奇分頻 |
Read/Write |
| C Counter | 23 | 5 |
C_counter[7:0]=low_count C_counter[15:8]=high_count Total_div=high_count+low_count C_counter[16]=0, fOUT= fVCO/Total_ div C_counter[16] = 1,選擇bypassed C_counter[17]=0,偶分頻 C_counter[17]=1,奇分頻 C_counter[22:18],范圍00000到10001 (0–17)沒用來指示選哪個Ccounter,比如選擇C2,則設(shè)置C_ counter[22:18]=00010 |
Read/Write |
| BandwidthSetting | 4 | 8 | 參考pll-reconfiguration-calculator.xlsx | Read/Write |
| ChargePump Setting | 3 | 9 | 參考pll-reconfiguration-calculator.xlsx | Read/Write |
三、ALTPLL IP
ALTPLL IP是Altera 公司提供的鎖相環(huán) IP 核,通過振蕩器產(chǎn)生的波形相位匹配輸入信號相位來工作,可實(shí)現(xiàn)時(shí)鐘倍頻、分頻、相位偏移和可編程占空比等功能,為 FPGA 系統(tǒng)提供穩(wěn)定的時(shí)鐘信號。
設(shè)置ALTPLL IP時(shí)其參考時(shí)鐘填入50MHz,輸出時(shí)鐘填入162MHz(上電后配置FPGA時(shí)ALTPLL 默認(rèn)輸出162MHz):

在PLL IP 的Settings選項(xiàng)勾選Enable dynamic reconfiguration of PLL,就會多出reconfig_to_pll 和 reconfig_from_pll 這兩組信號:

reconfig_to_pll:由ALTPLL RECONFIG IP 輸出,發(fā)送到 ALTPLL IP,用于傳遞配置指令和參數(shù)。例如,動態(tài)修改 PLL 的輸出頻率、相位偏移、帶寬等參數(shù)的控制信號和數(shù)據(jù),都是通過這組信號從配置 IP 傳輸?shù)?PLL 核。
reconfig_from_pll:由ALTPLL IP 輸出,反饋到 ALTPLL RECONFIG IP,用于傳遞PLL 的狀態(tài)信息。例如,PLL 的鎖定狀態(tài)(locked)、配置是否成功的響應(yīng)信號等,幫助配置 IP 確認(rèn)操作結(jié)果或監(jiān)測 PLL 工作狀態(tài)。
這兩組信號是專用的內(nèi)部接口(非Avalon 協(xié)議),僅用于兩個 IP 核之間的直接通信,實(shí)現(xiàn) PLL 動態(tài)重配置的底層數(shù)據(jù)交互,無需用戶手動干預(yù)信號時(shí)序。在IP例化時(shí),ALTPLL_RECONFIG IP實(shí)例的reconfig_to_pll[63:0]總線連接到 ALTPLL IP實(shí)例的reconfig_to_pll[63:0]總線,同時(shí)將 ALTPLL IP實(shí)例的reconfig_from_pll[63:0]總線連接到 ALTPLL_RECONFIG IP實(shí)例的reconfig_from_pll[63:0]總線即可。
-
鎖相環(huán)
+關(guān)注
關(guān)注
36文章
635瀏覽量
91282 -
濾波器
+關(guān)注
關(guān)注
162文章
8457瀏覽量
186190 -
pll
+關(guān)注
關(guān)注
6文章
985瀏覽量
138350 -
計(jì)數(shù)器
+關(guān)注
關(guān)注
32文章
2320瀏覽量
98504
原文標(biāo)題:4-DE10-Nano的HDMI彩條顯示案例(分辨率可切換)—— ALTPLL IP與ALTPLL RECONFIG IP介紹
文章出處:【微信號:友晶FPGA,微信公眾號:友晶FPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
FPGA學(xué)習(xí)系列:14. 鎖相環(huán)pll設(shè)計(jì)
什么是鎖相環(huán) 鎖相環(huán)的組成 鎖相環(huán)選型原則有哪些呢?
鎖相環(huán)的相關(guān)資料分享
LabVIEW鎖相環(huán)(PLL)
FPGA零基礎(chǔ)學(xué)習(xí)之Vivado-鎖相環(huán)使用教程
鎖相環(huán)原理
鎖相環(huán)(PLL),鎖相環(huán)(PLL)是什么意思
數(shù)字鎖相環(huán)(DPLL),數(shù)字鎖相環(huán)(DPLL)是什么?
模擬鎖相環(huán),模擬鎖相環(huán)原理解析
鎖相環(huán)
Altera公司鎖相環(huán)IP核介紹
評論