新聞中心

EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 采用VHDL設(shè)計(jì)的全數(shù)字鎖相環(huán)電路設(shè)計(jì)

采用VHDL設(shè)計(jì)的全數(shù)字鎖相環(huán)電路設(shè)計(jì)

作者: 時(shí)間:2010-05-19 來(lái)源:網(wǎng)絡(luò) 收藏

 異或門(mén)鑒相器在環(huán)路鎖定時(shí)和相位誤差達(dá)到極限時(shí)的相應(yīng)波形如圖3 所示:

  圖3  異或門(mén)鑒相器工作波形

 2. 2  數(shù)字環(huán)路濾波器的設(shè)計(jì)

  數(shù)字環(huán)路濾波器是由變模可逆計(jì)數(shù)器構(gòu)成的。該計(jì)數(shù)器設(shè)計(jì)為一個(gè)17 位可編程(可變模數(shù)) 可逆計(jì)數(shù)器,計(jì)數(shù)范圍是,由外部置數(shù)DCBA 控制。假設(shè)系統(tǒng)工作無(wú)相位差,由原理知, u1 和u2 的相位差0 ,異或門(mén)鑒相器輸出是一個(gè)對(duì)稱(chēng)的方波,如圖4 (a) 所示。因此可逆計(jì)數(shù)器在相同的時(shí)間間隔內(nèi)進(jìn)行加或減計(jì)數(shù),只要k 足夠大,那么從零開(kāi)始的計(jì)數(shù)就不會(huì)溢出或不夠。

  

若u1 開(kāi)始落后u2 ,異或門(mén)輸出不對(duì)稱(chēng),那么計(jì)數(shù)器加計(jì)數(shù)時(shí)間比減計(jì)數(shù)時(shí)間長(zhǎng),其結(jié)果計(jì)數(shù)器隨著時(shí)間的增長(zhǎng)將溢出,產(chǎn)生一個(gè)進(jìn)位脈沖。相反,若U1 開(kāi)始滯后U2 ,計(jì)數(shù)器將產(chǎn)生一個(gè)借位脈沖。進(jìn)位和借位脈沖可用來(lái)控制DCO ,使得DCO 輸出的脈沖數(shù)根據(jù)進(jìn)位和借位來(lái)加上或者是刪除一些脈沖,實(shí)際上也就改變了DCO 的輸出頻率。變模可逆計(jì)數(shù)器的設(shè)計(jì)由 完成,程序如下:

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 ;

變??赡嬗?jì)數(shù)器(取k = 24) 的仿真波形圖如圖4 所示。

  圖4  變模可逆計(jì)數(shù)器(取k = 24) 的仿真波形圖

塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理
鑒相器相關(guān)文章:鑒相器原理
脈沖點(diǎn)火器相關(guān)文章:脈沖點(diǎn)火器原理
數(shù)字濾波器相關(guān)文章:數(shù)字濾波器原理
鎖相環(huán)相關(guān)文章:鎖相環(huán)原理
鎖相放大器相關(guān)文章:鎖相放大器原理


評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉