基于全數(shù)字鎖相環(huán)的設(shè)計(jì)
發(fā)布時(shí)間:2008/5/28 0:00:00 訪問次數(shù):600
關(guān)鍵詞:全數(shù)字鎖相環(huán);dpll;fsk;fpga
引言
鎖相環(huán)(pll)技術(shù)在眾多領(lǐng)域得到了廣泛的應(yīng)用。如信號(hào)處理,調(diào)制解調(diào),時(shí)鐘同步,倍頻,頻率綜合等都應(yīng)用到了鎖相環(huán)技術(shù)。傳統(tǒng)的鎖相環(huán)由模擬電路實(shí)現(xiàn),而全數(shù)字鎖相環(huán)(dpll)與傳統(tǒng)的模擬電路實(shí)現(xiàn)的pll相比,具有精度高且不受溫度和電壓影響,環(huán)路帶寬和中心頻率編程可調(diào),易于構(gòu)建高階鎖相環(huán)等優(yōu)點(diǎn),并且應(yīng)用在數(shù)字系統(tǒng)中時(shí),不需a/d及d/a轉(zhuǎn)換。隨著通訊技術(shù)、集成電路技術(shù)的飛速發(fā)展和系統(tǒng)芯片(soc)的深入研究,dpll必然會(huì)在其中得到更為廣泛的應(yīng)用。
這里介紹一種采用verilog硬件描述語言設(shè)計(jì)dpll的方案。
dpll結(jié)構(gòu)及工作原理
主要由鑒相器、k變?赡嬗(jì)數(shù)器、脈沖加減電路和除n計(jì)數(shù)器四部分構(gòu)成。k變模計(jì)數(shù)器和脈沖加減電路的時(shí)鐘分別為mfc和2nfc。這里fc是環(huán)路中心頻率,一般情況下m和n都是2的整數(shù)冪。本設(shè)計(jì)中兩個(gè)時(shí)鐘使用相同的系統(tǒng)時(shí)鐘信號(hào)。
鑒相器
常用的鑒相器有兩種類型:異或門(xor)鑒相器和邊沿控制鑒相器(ecpd),本設(shè)計(jì)中采用異或門(xor)鑒相器。異或門鑒相器比較輸入信號(hào)fin相位和輸出信號(hào)fout相位之間的相位差фe=фin-фout,并輸出誤差信號(hào)se作為k變?赡嬗(jì)數(shù)器的計(jì)數(shù)方向信號(hào)。環(huán)路鎖定時(shí),se為一占空比50%的方波,此時(shí)的絕對(duì)相為差為90°。因此異或門鑒相器相位差極限為±90°。
k變?赡嬗(jì)數(shù)器
k變?赡嬗(jì)數(shù)器消除了鑒相器輸出的相位差信號(hào)se中的高頻成分,保證環(huán)路的性能穩(wěn)定。k變?赡嬗(jì)數(shù)器根據(jù)相差信號(hào)se來進(jìn)行加減運(yùn)算。當(dāng)se為低電平時(shí),計(jì)數(shù)器進(jìn)行加運(yùn)算,如果相加的結(jié)果達(dá)到預(yù)設(shè)的模值,則輸出一個(gè)進(jìn)位脈沖信號(hào)carry給脈沖加減電路;當(dāng)se為高電平時(shí),計(jì)數(shù)器進(jìn)行減運(yùn)算,如果結(jié)果為零,則輸出一個(gè)借位脈沖信號(hào)borrow給脈沖加減電路。
脈沖加減電路
脈沖加減電路實(shí)現(xiàn)了對(duì)輸入信號(hào)頻率和相位的跟蹤和調(diào)整,最終使輸出信號(hào)鎖定在輸入信號(hào)的頻率和信號(hào)上。
除n計(jì)數(shù)器
除n計(jì)數(shù)器對(duì)脈沖加減電路的輸出idout再進(jìn)行n分頻,得到整個(gè)環(huán)路的輸出信號(hào)fout。同時(shí),因?yàn)閒c=idclock/2n,因此通過改變分頻值n可以得到不同的環(huán)路中心頻率fc。
dpll部件的設(shè)計(jì)實(shí)現(xiàn)
了解了dpll的工作原理,我們就可以據(jù)此對(duì)dpll的各部件進(jìn)行設(shè)計(jì)。dpll的四個(gè)主要部件中,異或門鑒相器和除n計(jì)數(shù)器的設(shè)計(jì)比較簡單:異或門鑒相器就是一個(gè)異或門;除n計(jì)數(shù)器則是一個(gè)簡單的n分頻器。下面主要介紹k變?赡嬗(jì)數(shù)器和脈沖加減電路的設(shè)計(jì)實(shí)現(xiàn)。
k變?赡嬗(jì)數(shù)器的設(shè)計(jì)實(shí)現(xiàn)
k變?赡嬗(jì)數(shù)器模塊中使用了一個(gè)可逆計(jì)數(shù)器count,當(dāng)鑒相器的輸出信號(hào)dnup為低時(shí),進(jìn)行加法運(yùn)算,達(dá)到預(yù)設(shè)模值則輸出進(jìn)位脈沖carry;為高時(shí),進(jìn)行減法運(yùn)算,為零時(shí),輸出借位脈沖borrow。count的模值ktop由輸入信號(hào)kmode預(yù)設(shè),一般為2的整數(shù)冪,這里模值的變化范圍是23-29。模值的大小決定了dpll的跟蹤步長,模值越大,跟蹤步長越小,鎖定時(shí)的相位誤差越小,但捕獲時(shí)間越長;模值越小,跟蹤步長越大,鎖定時(shí)的相位誤差越大,但捕獲時(shí)間越短。
k變?赡嬗(jì)數(shù)器的verilog設(shè)計(jì)代碼如下(其中作了部分注釋,用斜體表示):
module kcounter(kclock,reset,dnup,enable, kmode,carry,borrow);
input kclock; /*系統(tǒng)時(shí)鐘信號(hào)*/
input reset; /*全局復(fù)位信號(hào)*/
input dnup; /*鑒相器輸出的加減控制信號(hào)*/
input enable; /*可逆計(jì)數(shù)器計(jì)數(shù)允許信號(hào)*/
input [2:0]kmode; /*計(jì)數(shù)器模值設(shè)置信號(hào)*/
output carry; /*進(jìn)位脈沖輸出信號(hào)*/
output borrow; /*借位脈沖輸出信號(hào)*/
reg [8:0]count; /*可逆計(jì)數(shù)器*/
reg [8:0]ktop; /*預(yù)設(shè)模值寄存器*/
/*根據(jù)計(jì)數(shù)器模值設(shè)置信號(hào)kmode來設(shè)置預(yù)設(shè)模值寄存器的值*/
always @(kmode)
begin
case(kmode)
3'b001:ktop<=7;
3'b010:ktop<=15;
3'b011:ktop<=31;
3'b100:ktop<=63;
3'b101:ktop<=127;
3'b110:ktop<=255;
3'b111:ktop<=511;
default:ktop<=15;
endcase
end
/*根據(jù)鑒相器輸出的加減控制信號(hào)dnup進(jìn)行可逆計(jì)數(shù)器的加減運(yùn)算*/
always @(posedge kclock or posedge reset)
begin
if(reset)
count<=0;
else if(enable)
begin
if(!dnup)
begin
if(count==ktop)
count<=0;
else
count<=count+1;
end
else
begin
if(count==0)
count<=ktop;
else
count<=count-1;
end
end
end
/*輸出進(jìn)位脈沖carry和借位脈沖borrow*/
assign carry=enable&(!
關(guān)鍵詞:全數(shù)字鎖相環(huán);dpll;fsk;fpga
引言
鎖相環(huán)(pll)技術(shù)在眾多領(lǐng)域得到了廣泛的應(yīng)用。如信號(hào)處理,調(diào)制解調(diào),時(shí)鐘同步,倍頻,頻率綜合等都應(yīng)用到了鎖相環(huán)技術(shù)。傳統(tǒng)的鎖相環(huán)由模擬電路實(shí)現(xiàn),而全數(shù)字鎖相環(huán)(dpll)與傳統(tǒng)的模擬電路實(shí)現(xiàn)的pll相比,具有精度高且不受溫度和電壓影響,環(huán)路帶寬和中心頻率編程可調(diào),易于構(gòu)建高階鎖相環(huán)等優(yōu)點(diǎn),并且應(yīng)用在數(shù)字系統(tǒng)中時(shí),不需a/d及d/a轉(zhuǎn)換。隨著通訊技術(shù)、集成電路技術(shù)的飛速發(fā)展和系統(tǒng)芯片(soc)的深入研究,dpll必然會(huì)在其中得到更為廣泛的應(yīng)用。
這里介紹一種采用verilog硬件描述語言設(shè)計(jì)dpll的方案。
dpll結(jié)構(gòu)及工作原理
主要由鑒相器、k變模可逆計(jì)數(shù)器、脈沖加減電路和除n計(jì)數(shù)器四部分構(gòu)成。k變模計(jì)數(shù)器和脈沖加減電路的時(shí)鐘分別為mfc和2nfc。這里fc是環(huán)路中心頻率,一般情況下m和n都是2的整數(shù)冪。本設(shè)計(jì)中兩個(gè)時(shí)鐘使用相同的系統(tǒng)時(shí)鐘信號(hào)。
鑒相器
常用的鑒相器有兩種類型:異或門(xor)鑒相器和邊沿控制鑒相器(ecpd),本設(shè)計(jì)中采用異或門(xor)鑒相器。異或門鑒相器比較輸入信號(hào)fin相位和輸出信號(hào)fout相位之間的相位差фe=фin-фout,并輸出誤差信號(hào)se作為k變?赡嬗(jì)數(shù)器的計(jì)數(shù)方向信號(hào)。環(huán)路鎖定時(shí),se為一占空比50%的方波,此時(shí)的絕對(duì)相為差為90°。因此異或門鑒相器相位差極限為±90°。
k變?赡嬗(jì)數(shù)器
k變?赡嬗(jì)數(shù)器消除了鑒相器輸出的相位差信號(hào)se中的高頻成分,保證環(huán)路的性能穩(wěn)定。k變?赡嬗(jì)數(shù)器根據(jù)相差信號(hào)se來進(jìn)行加減運(yùn)算。當(dāng)se為低電平時(shí),計(jì)數(shù)器進(jìn)行加運(yùn)算,如果相加的結(jié)果達(dá)到預(yù)設(shè)的模值,則輸出一個(gè)進(jìn)位脈沖信號(hào)carry給脈沖加減電路;當(dāng)se為高電平時(shí),計(jì)數(shù)器進(jìn)行減運(yùn)算,如果結(jié)果為零,則輸出一個(gè)借位脈沖信號(hào)borrow給脈沖加減電路。
脈沖加減電路
脈沖加減電路實(shí)現(xiàn)了對(duì)輸入信號(hào)頻率和相位的跟蹤和調(diào)整,最終使輸出信號(hào)鎖定在輸入信號(hào)的頻率和信號(hào)上。
除n計(jì)數(shù)器
除n計(jì)數(shù)器對(duì)脈沖加減電路的輸出idout再進(jìn)行n分頻,得到整個(gè)環(huán)路的輸出信號(hào)fout。同時(shí),因?yàn)閒c=idclock/2n,因此通過改變分頻值n可以得到不同的環(huán)路中心頻率fc。
dpll部件的設(shè)計(jì)實(shí)現(xiàn)
了解了dpll的工作原理,我們就可以據(jù)此對(duì)dpll的各部件進(jìn)行設(shè)計(jì)。dpll的四個(gè)主要部件中,異或門鑒相器和除n計(jì)數(shù)器的設(shè)計(jì)比較簡單:異或門鑒相器就是一個(gè)異或門;除n計(jì)數(shù)器則是一個(gè)簡單的n分頻器。下面主要介紹k變?赡嬗(jì)數(shù)器和脈沖加減電路的設(shè)計(jì)實(shí)現(xiàn)。
k變?赡嬗(jì)數(shù)器的設(shè)計(jì)實(shí)現(xiàn)
k變?赡嬗(jì)數(shù)器模塊中使用了一個(gè)可逆計(jì)數(shù)器count,當(dāng)鑒相器的輸出信號(hào)dnup為低時(shí),進(jìn)行加法運(yùn)算,達(dá)到預(yù)設(shè)模值則輸出進(jìn)位脈沖carry;為高時(shí),進(jìn)行減法運(yùn)算,為零時(shí),輸出借位脈沖borrow。count的模值ktop由輸入信號(hào)kmode預(yù)設(shè),一般為2的整數(shù)冪,這里模值的變化范圍是23-29。模值的大小決定了dpll的跟蹤步長,模值越大,跟蹤步長越小,鎖定時(shí)的相位誤差越小,但捕獲時(shí)間越長;模值越小,跟蹤步長越大,鎖定時(shí)的相位誤差越大,但捕獲時(shí)間越短。
k變?赡嬗(jì)數(shù)器的verilog設(shè)計(jì)代碼如下(其中作了部分注釋,用斜體表示):
module kcounter(kclock,reset,dnup,enable, kmode,carry,borrow);
input kclock; /*系統(tǒng)時(shí)鐘信號(hào)*/
input reset; /*全局復(fù)位信號(hào)*/
input dnup; /*鑒相器輸出的加減控制信號(hào)*/
input enable; /*可逆計(jì)數(shù)器計(jì)數(shù)允許信號(hào)*/
input [2:0]kmode; /*計(jì)數(shù)器模值設(shè)置信號(hào)*/
output carry; /*進(jìn)位脈沖輸出信號(hào)*/
output borrow; /*借位脈沖輸出信號(hào)*/
reg [8:0]count; /*可逆計(jì)數(shù)器*/
reg [8:0]ktop; /*預(yù)設(shè)模值寄存器*/
/*根據(jù)計(jì)數(shù)器模值設(shè)置信號(hào)kmode來設(shè)置預(yù)設(shè)模值寄存器的值*/
always @(kmode)
begin
case(kmode)
3'b001:ktop<=7;
3'b010:ktop<=15;
3'b011:ktop<=31;
3'b100:ktop<=63;
3'b101:ktop<=127;
3'b110:ktop<=255;
3'b111:ktop<=511;
default:ktop<=15;
endcase
end
/*根據(jù)鑒相器輸出的加減控制信號(hào)dnup進(jìn)行可逆計(jì)數(shù)器的加減運(yùn)算*/
always @(posedge kclock or posedge reset)
begin
if(reset)
count<=0;
else if(enable)
begin
if(!dnup)
begin
if(count==ktop)
count<=0;
else
count<=count+1;
end
else
begin
if(count==0)
count<=ktop;
else
count<=count-1;
end
end
end
/*輸出進(jìn)位脈沖carry和借位脈沖borrow*/
assign carry=enable&(!
熱門點(diǎn)擊
- Xilinx FPGA全局時(shí)鐘和第二全局時(shí)鐘
- 使用C編譯器+ICD2調(diào)試程序需要注意的問題
- 基于VHDL的彩燈控制
- FPGA與DDR3 SDRAM的接口設(shè)計(jì)
- 基于IP模塊的PCI接口設(shè)計(jì)及FPGA實(shí)現(xiàn)
- 基于GCC的嵌入式程序插裝技術(shù)
- 組態(tài)王6.53
- ELD
- EDA技術(shù)在數(shù)字系統(tǒng)設(shè)計(jì)分析中的應(yīng)用
- 天碁科技與恩智浦率先實(shí)現(xiàn)TD-SCDMA/G
推薦技術(shù)資料
- 聲道前級(jí)設(shè)計(jì)特點(diǎn)
- 與通常的Hi-Fi前級(jí)不同,EP9307-CRZ這臺(tái)分... [詳細(xì)]
- CV/CC InnoSwitch3-AQ 開
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門信號(hào)調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應(yīng)
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究