采用VHDL設計的全數字鎖相環(huán)電路設計
異或門(mén)鑒相器在環(huán)路鎖定時(shí)和相位誤差達到極限時(shí)的相應波形如圖3 所示:
圖3 異或門(mén)鑒相器工作波形
2. 2 數字環(huán)路濾波器的設計
數字環(huán)路濾波器是由變??赡嬗嫈灯鳂嫵傻?。該計數器設計為一個(gè)17 位可編程(可變模數) 可逆計數器,計數范圍是,由外部置數DCBA 控制。假設系統工作無(wú)相位差,由鎖相環(huán)原理知, u1 和u2 的相位差0 ,異或門(mén)鑒相器輸出是一個(gè)對稱(chēng)的方波,如圖4 (a) 所示。因此可逆計數器在相同的時(shí)間間隔內進(jìn)行加或減計數,只要k 足夠大,那么從零開(kāi)始的計數就不會(huì )溢出或不夠。
若u1 開(kāi)始落后u2 ,異或門(mén)輸出不對稱(chēng),那么計數器加計數時(shí)間比減計數時(shí)間長(cháng),其結果計數器隨著(zhù)時(shí)間的增長(cháng)將溢出,產(chǎn)生一個(gè)進(jìn)位脈沖。相反,若U1 開(kāi)始滯后U2 ,計數器將產(chǎn)生一個(gè)借位脈沖。進(jìn)位和借位脈沖可用來(lái)控制DCO ,使得DCO 輸出的脈沖數根據進(jìn)位和借位來(lái)加上或者是刪除一些脈沖,實(shí)際上也就改變了DCO 的輸出頻率。變??赡嬗嫈灯鞯脑O計由VHDL 完成,程序如下:
library ieee ;
use ieee. std_logic_1164. all ;
use ieee. std_logic_unsigned. all ;
entity li is
port (clk ,j ,en ,d ,c ,b ,a :in std_logic ;
r1 ,r2 :out std_logic) ;
end li ;
architecture behave of li is
signal cq ,k ,mo :std_logic_vector (16 downto 0) ;
signal cao1 ,cao2 :std_logic ;
signal instruction :std_logic_vector (3 downto 0) ;
begin
instruction = d c b a ;
with instruction select
mo ="00000000000000111"when"0001",
"00000000000001111"when"0010",
"00000000000011111"when"0011",
"00000000000111111"when"0100",
"00000000001111111"when"0101",
"00000000011111111"when"0110",
"00000000111111111"when"0111",
"00000001111111111"when"1000",
"00000011111111111"when"1001",
"00000111111111111"when"1010",
"00001111111111111"when"1011",
"00011111111111111"when"1100",
"00111111111111111"when"1101",
"01111111111111111"when"1110",
"11111111111111111"when"1111",
"00000000000000111"when others ;
process (clk ,en ,j ,k ,cq)
begin
if clk'event and clk = '1'then
k = mo ;
if en = '1'then
if j = '0'then
if cq k then cq = cq + 1 ;
else cq = (others = > '0') ;
end if ;
else
if cq > 0 then cq = cq - 1 ;
else cq = k ;
end if ;
end if ;
else cq = (others = > '0') ;
end if ;
end if ;
end process ;
process (en ,j ,cq ,k)
begin
if en = '1'then
if j = '0'then
f cq = k then cao1 = '1';
else cao1 = '0';
end if ;
cao2 = '0';
else
if cq ="00000000000000000"then
cao2 = '1';
else cao2 = '0';
end if ;
cao1 = '0';
end if ;
else cao1 = '0';cao2 = '0';
end if ;
end process ;
r1 = cao1 ; r2 = cao2 ;
end behave ;
變??赡嬗嫈灯?取k = 24) 的仿真波形圖如圖4 所示。
圖4 變??赡嬗嫈灯?取k = 24) 的仿真波形圖
塵埃粒子計數器相關(guān)文章:塵埃粒子計數器原理 鑒相器相關(guān)文章:鑒相器原理 脈沖點(diǎn)火器相關(guān)文章:脈沖點(diǎn)火器原理 數字濾波器相關(guān)文章:數字濾波器原理 鎖相環(huán)相關(guān)文章:鎖相環(huán)原理 鎖相放大器相關(guān)文章:鎖相放大器原理
評論