cdr(clock data recovery)即時鐘資料恢復,實現思路分為三個方向::
前饋(feed-forward)相位跟蹤型
本地時鐘和輸入資料之間的相位關係,是通過時鐘資訊的不斷前饋校準跟蹤。
反饋(feedback)相位跟蹤型
本地時鐘和輸入資料之間的相位關係,是通過鑑相器(pd)實時地監控本地時鐘與資料之間的相對相位的變化,並實時地反饋給控制電路進行相位校準來完成的。
盲過取樣型blind-oversampling
指取樣時鐘(頻率和相位)是確定不變的,不受輸入資料(前饋)或後續檢測電路(反饋)的控制或影響的過取樣技術。
盲過取樣法實現簡單,不依賴於外部硬體電路即,通過rtl即可純數字實現幾百m hz的資料提取,正好填補xilinx serdes的500m hz以下的空窗。 圖1
過取樣法登前提是知道被取樣波形的頻率。如圖2、圖3所示,過取樣法總體思路就是找到訊號的跳邊沿,然後取最優取樣點,一般來說就是波形**處。
圖2
圖3空間盲過取樣整體架構如圖4所示:
圖4空間盲過取樣法主要由取樣模組、鑑相器和資料選擇三大模組組成。
圖5以100m-fx為例,100mbps的資料經過4b5b編碼後的物理層通訊速率為125mbps。通過pll產生與接收時鐘頻率相同的125mhz,相位相差180°的兩個時鐘。通過兩個時鐘上下邊沿一共4個邊沿取樣接收訊號,最終通過打拍子同步到同乙個時鐘域。0°(clk0)時鐘取樣時鐘域取名domin a,90°(clk90)時鐘取樣時鐘域取名domin b,180°(clk180)時鐘取樣時鐘域取名domin c,270°(clk270)時鐘取樣時鐘域取名domin d。
假設傳送資料時鐘為tx_clk傳送資料為tx_data
恢復時鐘為clk,clk90,clk180,clk270
恢復出的資料為cdr_data
恢復出的時鐘為cdr_clk
圖6鑑相器的邏輯如圖7所示:
圖7
四個時鐘域都發現波形跳變,那說明波形邊沿在domin a中,即波形跳變離clk0最近,那離兩個波形跳變平均距離最遠也就是最穩定的取樣點就是clk180時鐘對應的domin c取樣資料。domin a use c
aap=bbp=ccp=ddp=1,
or aan=bbn=ccn=ddn=1.
以此類推
前面的鑑相器是理想狀態,接收時鐘和傳送時鐘頻率完全相等。實際上由於各種原因,接收時鐘和傳送時鐘頻率肯定會有偏差,那在空間過取樣法中肯定會遇到兩種特殊情況。domin b use d
aap=1 and bbp=ccp=ddp=0
or aan=1 and bbn=ccn=ddn=0.
domin c use a
aap=bbp=1 and ccp=ddp=0,
or aan=bbn=1 and ccn=ddn=0.
domin d use b
aap=bbp=ccp=1 and ddp=0,
or aan=bbn=ccn=1 and ddn=0.
當tx_clk比接收時鐘clk慢時,如圖8所示,取樣點會由usea–>useb–>usec–>used–>usea這樣偏移。
當取樣點由used–>usea時,如圖8中sig2所示,同一取樣週期內對波形做了兩次取樣,所以捨棄usea的取樣值。
對於sig4的情況,如果乙個取樣週期內沒有跳變,則延用前乙個取樣週期的取樣時刻。
圖8當tx_clk比接收時鐘clk快時,如圖9所示,取樣點會由used–>usec–>useb–>usea–>used這樣偏移。
當取樣點由usea–>used時,如圖9中sig3所示,漏掉了1bit資料,所以按usea的取樣時刻多採橘色圈內的取樣點。
對於sig1的情況,根據演算法只會出現useb的取樣點。
圖9cdr模組輸出cdr_data[1:0]和data_vld[1:0],當clk與傳送時鐘不一致時,即不同步時,就需要做好tx_clk時鐘域的資料同步到clk時鐘域的處理。
一般跨時鐘域的多bit資料同步採用非同步fifo的方式,如下所示。
當fifo_wr_cnt大於一定數值時使能fifo_rd_en,即在fifo內做一部分緩衝。fifo_2i1o_1024 fifo_2i1o_1024_m(
.aclr(~rst_n),//高有效
.wrclk(clk),
.wrreq(data_vld[0]),
.data(cdr_data),
.wrusedw(fifo_wr_cnt),
.rdclk(clk),
.rdreq(fifo_rd_en),
.q(serialdata_out),
.rdempty(empty)
);
但當傳送資料比接收時鐘慢時,即fifo的寫入速率比讀取速率慢,那就會碰到讀空fifo的情況,當fifo_wr_cnt小於閾值時,fifo_rd_en無效,停止從fifo讀取資料。
MCMC取樣法 一些前置知識
作為一種隨機取樣方法,馬爾科夫鏈蒙特卡羅 markov chain monte carlo,以下簡稱mcmc 在機器學習,深度學習以及自然語言處理等領域都有廣泛的應用,是很多複雜演算法求解的基礎 下面我們就對mcmc的原理做乙個總結。從名字我們可以看出,mcmc由兩個mc組成,即蒙特卡羅方法 mon...
線性表的查詢法 順序查詢法(思路與實現)
首先宣告乙個概念 查詢的基本方法可以分為兩大類,即比較式查詢法和計算機式。其中比較式查詢法有可以分為基於線性表的查詢法和基於樹的查詢法,而計算查詢法也稱為也稱為hash 雜湊 查詢法。查詢 是最常見的資料操作之一,資料結構核心運算之一,其重要性不言而喻。順序查詢是人們最熟悉的查詢策略,對於小規模的資...
cesium中實現空間查詢(思路解析加原始碼)
空間查詢作為gis資料分析的基本手段,在三維gis中也是必不可少的,下面就對具體實現做具體介紹 目錄 在cesium中實現空間查詢 思路解析加原始碼 前言 一 獲取待查詢的點 二 獲取待查詢的面 二 面和點求交 總結 四 更多 如果你不是gis專業,那麼你對空間查詢的也許會很陌生,下面我就簡單解釋一...