測周法實(shí)現(xiàn)位同步時(shí)鐘的提取

Paste_Image.png

1匹涮、M序列產(chǎn)生電路

M序列產(chǎn)生以移位寄存器為基礎(chǔ),每次輸出移位寄存器的最后一位,并更新數(shù)值宵距,從而形成偽隨機(jī)序列。

m_p:process(clk,reset)         

begin

dataout<=shifter(7);

if (reset='0') then shifter<="00001111";    -——移位寄存器的初始值

elsif rising_edge(clk) then 

    shifter(7 downto 1)<=shifter(6 downto 0);    ——輸出最后一位

     shifter(0)<=shifter(3) xor shifter(4) xor shifter(5) xor shifter(7);   ——移位更新數(shù)據(jù)

end if;

end process;
```

(2)位時(shí)鐘提取電路


  為了程序的易讀性以及編程的可控性吨拗,在編程實(shí)現(xiàn)位時(shí)鐘同步提取電路的過程中主要使用狀態(tài)機(jī)來完成满哪。第一個狀態(tài)機(jī)用來檢測一段時(shí)間內(nèi)兩個上升沿之間的最小間隔,用來提取同步時(shí)鐘
```
 process(clk)
 begin
 if clk'event and clk='1' then
   case state is
    when 0=>   min_reg<=20000000;      ——設(shè)定最小值
               state<=1;     

    when 1=>   if m='1' and m_delay1='0' then    ——當(dāng)檢測到M序列的上升沿
               state<=2;
              count2<=0;
                  end if;
    when 2=>   count1<=count1+1;          ——探測時(shí)間范圍控制
              count2<=count2+1;       ——兩個上升沿之間的時(shí)間間隔
                if m='1' and m_delay1='0' then
                 state<=3;
                     end if;
    when 3=>   if count2<min_reg then
              min_reg<=count2;
                  end if;
                     if count1>=30000000 then   
                      state<=4;
                      count1<=0;
                      else
                      state<=1;
                      end if;
    when 4=>   min_reg2<=min_reg;
                 if min_reg2=min_reg then   ——為了防止跳變劝篷,使用一級寄存器哨鸭,當(dāng)連
                   min<=min_reg2;     ——兩次檢測到相同的最小值,才輸出
                        end if;
                 state<=0;
            end case;
            end if;
            end process;



待檢測到最小時(shí)間間隔后携龟,可用時(shí)鐘計(jì)數(shù)除
2作為同步時(shí)鐘的周期兔跌,并根據(jù)
M
序列做相位同步。

 

process(clk)
    begin
       if clk'event and clk='1' then 
        case step is
    when 0=> 
                    period<=min+26;
                     step<=1;
        when 1=>  if m='1' and m_delay1='0' then   ——檢測
M
序列的上升沿
                    step<=2;
                        end if;
        when 2=>   if count3<period/4 then      ——產(chǎn)生高電平
                     reclk<='1';
                         count3<=count3+1;
                        else
                          if count5<127 then    ——每個M序列的周期同步一次相位
                          step<=3;
                      count3<=0;
                      count5<=count5+1;
                          else
                          step<=1;
                          count5<=0;
                          end if;
                          end if;
        when 3=>  if count4<period/4 then     ——產(chǎn)生低電平
                       reclk<='0';
                           count4<=count4+1;
                       else
                           count4<=0;               
                            if period>=min then    
                              re<=period-min;
                                else
                                re<=min-period;
                            end if;
                                if re>37 then  ——用來防止信號的不穩(wěn)定帶來的跳變
                                  step<=0;
                                else
                                    step<=2;
                                 end if;
                                 end if;                             
             when others=>  step<=0;           
                         end case;
                            end if;
                        end process;

``` 
因?yàn)榍凹壞M電路中低通濾波器的頻率響應(yīng)不平整峡蟋,造成相位的變化坟桅,加之FPGA在整除過程中對結(jié)果進(jìn)行了舍位操作,導(dǎo)致測周法提取的時(shí)鐘存在誤差蕊蝗,所以在要求嚴(yán)格要求相位抖動的時(shí)候還是應(yīng)該使用鎖相環(huán)法仅乓,對于一位FPGA的菜鳥來說,鎖相環(huán)的工作原理和實(shí)現(xiàn)方法值得我們?nèi)ヌ骄俊?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蓬戚,一起剝皮案震驚了整個濱河市夸楣,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌子漩,老刑警劉巖豫喧,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異幢泼,居然都是意外死亡紧显,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進(jìn)店門缕棵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來孵班,“玉大人涉兽,你說我怎么就攤上這事「莩蹋” “怎么了枷畏?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵躲胳,是天一觀的道長购岗。 經(jīng)常有香客問我裆装,道長伶跷,這世上最難降的妖魔是什么步咪? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任卸耘,我火速辦了婚禮坦辟,結(jié)果婚禮上诅岩,老公的妹妹穿的比我還像新娘折柠。我一直安慰自己宾娜,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布扇售。 她就那樣靜靜地躺著前塔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪承冰。 梳的紋絲不亂的頭發(fā)上华弓,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天,我揣著相機(jī)與錄音困乒,去河邊找鬼寂屏。 笑死,一個胖子當(dāng)著我的面吹牛娜搂,可吹牛的內(nèi)容都是我干的迁霎。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼百宇,長吁一口氣:“原來是場噩夢啊……” “哼考廉!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起携御,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎啄刹,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體膊升,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年廓译,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了债查。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片非区。...
    茶點(diǎn)故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖盹廷,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情管怠,我是刑警寧澤缸榄,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布甚带,位于F島的核電站,受9級特大地震影響晴氨,放射性物質(zhì)發(fā)生泄漏碉输。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望闰非。 院中可真熱鬧财松,春花似錦、人聲如沸辆毡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽主慰。三九已至,卻和暖如春该肴,著一層夾襖步出監(jiān)牢的瞬間藐不,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留挑秉,地道東北人衷模。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像刁憋,于是被迫代替她去往敵國和親木蹬。 傳聞我的和親對象是個殘疾皇子镊叁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容