<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 基于CPLD的位同步時(shí)鐘提取電路設計

基于CPLD的位同步時(shí)鐘提取電路設計

——
作者:王志梁 時(shí)間:2006-12-20 來(lái)源:電子元器件應用 收藏
引言

異步是現代電子系統中最常用的數據信息傳輸方式之一,一般情況下,為了能夠正確地對異步串行數據進(jìn)行發(fā)送和接收,就必須使其接收與發(fā)送的碼元同步,位信號不僅可用來(lái)對輸入碼元進(jìn)行檢測以保證收發(fā)同步,而且在對接收的數字碼元進(jìn)行各種處理等過(guò)程中,也可以為系統提供一個(gè)基準的。

本文介紹的位的提取方案,原理簡(jiǎn)單且同步速度較快。整個(gè)系統采用VerilogHDL語(yǔ)言編寫(xiě),并可以在上實(shí)現。

位同步時(shí)鐘的提取原理

本系統由一個(gè)跳變沿捕捉模塊、一個(gè)狀態(tài)寄存器和一個(gè)可控計數器共三部分組成,整個(gè)如圖1所示,其中data_in是輸入系統的串行信號,clock是頻率為串行信號碼元速率2N倍的高精度時(shí)鐘信號,pulse_out是系統產(chǎn)生的與輸入串行信號每個(gè)碼元位同步的脈沖信號,即位同步時(shí)鐘。

系統的原理框圖

跳變沿捕捉模塊的輸入也就是整個(gè)的輸入data_in和clock。當data_in發(fā)生跳變時(shí),無(wú)論是上升沿或是下降沿,捕捉模塊都將捕捉所發(fā)生的這次跳變,并產(chǎn)生一個(gè)脈沖信號clear,這個(gè)clear信號所反應的就是輸入信號發(fā)生跳變的時(shí)刻。然后以它為基準,

就可以有效地提取輸入串行信號的同步時(shí)鐘。

狀態(tài)寄存器有兩個(gè)輸入,分別接跳變沿捕捉模塊的輸出clear和可控計數器的輸出pulse_out,當clear信號的上升沿到來(lái)時(shí),此狀態(tài)寄存器的輸出k被置1,之后在pulse_out和k信號本身的控制下,k在pulse_out和k信號上產(chǎn)生一個(gè)脈沖之后被置0,這個(gè)k為一般連接到可控計數器的控制端。

可控計數器是??勺兊挠嫈灯?,在k信號的控制下可以對clock信號進(jìn)行模為N-2或2N的計數,其三個(gè)輸入分別接跳變沿捕捉模塊的輸出clear、狀態(tài)寄存器的輸出k和時(shí)鐘clock。其中clear信號可以對計數器進(jìn)行異步清零,k信號可選擇計數的模,當k=1時(shí),計數器的模為N-2,計數滿(mǎn)N-2后即產(chǎn)生輸出脈沖pulse_out,當k=0時(shí),計數器的模為2N,計數滿(mǎn)2N時(shí),產(chǎn)生輸出脈沖pulse_out。

整個(gè)系統工作時(shí),當輸入信號data_in發(fā)生跳變時(shí),跳變沿捕捉將可以捕捉到這次跳變,并產(chǎn)生一個(gè)脈沖信號clear,此clear信號可以將可控計數器的計數值清零,同時(shí)將狀態(tài)寄存器的輸出k置1,并送入可控計數器中,以使計數器進(jìn)行模塊為N-2的計數,待計滿(mǎn)后,便可輸出脈沖信號pulse_out,此信號一方面可作為整個(gè)系統輸出的位同步時(shí)鐘信號,另一方面,它也被接進(jìn)了狀態(tài)寄存器,以控制其輸出k在計數器完成N-2的計數后就變?yōu)?,并在沒(méi)有clear脈沖信號時(shí)使K保持為0,從而使可控計數器的模保持為2N,直到輸入信號data_in出現新的跳變沿并產(chǎn)生新的clear脈沖信號,由以上原理可見(jiàn),在輸入信號為連“1”或連“0”的情況下,只要系統使用的時(shí)鐘信號足夠精確,就可以保證在一定時(shí)間里輸出滿(mǎn)足要求的位同步時(shí)鐘,而在輸入信號發(fā)生跳變時(shí),系統又會(huì )捕捉下這個(gè)跳變沿并以此為基準輸出位同步時(shí)鐘。

位同步時(shí)鐘的提取

本系統包括三個(gè)部分,一是采用VerilogHDL語(yǔ)言編寫(xiě)程序,第二步再將每個(gè)部分作為一個(gè)模塊(module)來(lái)編寫(xiě),最后通過(guò)元件例化的方法將三個(gè)模塊連接起來(lái),以完成這個(gè)整個(gè)系統的設計。

下面是跳變沿捕捉模塊的部分程序,其中Int0為串行輸入信號,PCclk為輸入系統的高精度時(shí)鐘信號,本模塊的輸出Pcout對應于圖1中的clear信號,它同時(shí)又接入狀態(tài)寄存器模塊的Psclr和可控計數器模塊的clr。其仿真結構如圖2所示。

仿真結構

跳變沿捕捉模塊的部分程序如下:

module PcheckCapture (PCout,Int0,PCclk);

……

reg PCtemp1,PCtemp2;

always@(posedge PCclk) begin

PCtemp1<=Int0;

PCtemp2<=PCtemp1;

end

assign PCout="PCtemp1"^PCtemp2;

……

狀態(tài)寄存器模塊的部分程序如下,其中輸入信號Psclr來(lái)自跳變沿捕捉模塊,另一個(gè)輸入信號Pss則來(lái)自可控計數器的輸出s對應圖1中的pulse_out,輸出信號Psout對應圖1中的k;

module PcheckSreg (Psout,Pss,Psclr);

……

wire Pstemp;

assign Pstemp=~(Pss&Psout);

always@(posedge Pstemp or posedge Psclr) begin

if(Psclr==1b1)Psout<=1;

else Psout<=~Psout;

end

……

下面是可控計數器模塊的部分程序,其中三個(gè)輸入信號k、clr、clk分別對應于圖1中的k、clear、clock,輸出信號s對應于圖1中的輸出信號pulse_out;

module PcheckCoumter (s,k,clr,clk);

……

always@(posedge clk or posedge clr)

begin

if(clr==1)begin

s=0;

cnt=0;

end

else begin

if(k==0) begin

if(cnt==2N-1)begin

cnt=0;

s=1;

end;

else begin

cnt=cnt+1;

s=0;

end

end

else begin

if(cnt==N-2)begin cnt="0";

s=1;

end

else begin

cnt=cnt+1;

s=0;

end

………

在頂層模塊中,應對三個(gè)模塊進(jìn)行例化,并在導線(xiàn)相連接,以構成一個(gè)完整的系統,此模塊的程序如下:

modulePcheckTop (PTout,PTint,PTclk);

inout PTout;

input PTint,PTclk;

PcheckCapture a (clear,PTint,PTclk);

PcheckCounter b (PTout,k,clear,PTclk);

PcheckSreg

c(k,PTout,clear);

endmodule

圖3為整個(gè)系統的仿真結果。

整個(gè)系統的仿真結果

結束語(yǔ)

本位同步時(shí)鐘提取方案已在器件上進(jìn)行了仿真實(shí)現,通過(guò)以上的分析可知,本位同步時(shí)鐘的提取方案具有結構簡(jiǎn)單、節省硬件資源、同步建立時(shí)間短等優(yōu)點(diǎn),在輸入信號有一次跳變后,系統出現連“1”連“0”,或信號中斷時(shí),此系統仍然能夠輸出位同步時(shí)鐘脈沖,此后,只要輸入信號恢復并產(chǎn)生新的跳變沿,系統仍可以調整此位同步時(shí)鐘脈沖輸出而重新同步,此系統中輸入的時(shí)鐘信號頻率相對碼元速率越高,同步時(shí)鐘的位置就越精確,而當輸入碼元速率改變時(shí),只要改變本系統中的N值系統就可重新正常工作。



評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>