一、 緒 綸
3.3 資料接收端
實體編碼子層由實體媒體接觸子層接收每筆16 位元的資料,經過一對四解 多工器,將接收的資料組合成為64 位元的資料區塊,然後透過同步標頭位元偵 測器來確定同步標頭位元的位置,並且完成資料同步的動作。在做同步位元偵測 同時也會做位元錯誤率的監測,如過位元錯誤率超過10e−4則會發生高位元錯誤 率的狀態並會通知上層系統做進一步的處理。經過同步化的接收資料會被送至 descrambler 將打散過後的資料還原,然後在經過非同步先進先出暫存器做不同 時脈領域的資料同步處理。最後 66 位元的接收資料會送至 64B/66B 解碼器模 組,經過解碼後產生兩筆32 位元的資料與 8 位元的控制訊號送至 XGMII。底下 小節會針對每一個硬體模組做詳盡的功能介紹。
3.3.1 一對四解多工器
從實體媒體接觸子層傳送給實體編碼子層的資料為16 位元寬,當接收到四 筆16 位元寬度的資料之後,一對四解多工器會將資料組合成為 64 位元大小的資 料區塊然後傳送至同步標頭偵測器模組。實體媒體接觸子層除了傳送資料資外也
會傳送控制訊號,控制訊號會直接傳送至同步標頭偵測器模組,作為接收資料內 部處理之用。下圖3–5 為解多工器硬體架構圖。
DEMUX
16bit 16bit 16bit 16bit
64bit rx_unit-data[0:15]
DEMUX
圖3–5 解多工器硬體架構圖
3.3.2 同步標頭位元偵測器
同步標頭位元偵測器主要功能為接收資料的同步處理。當接收端進入硬體初 始狀態或是從實體媒體接觸子層傳送過來的控制訊號“PMA_SIGNAL.indicate”
顯示為錯誤狀態,則同步標頭位元偵測器便會進行接收資料的同步處理動作。每 當接收到一個資料區塊,同步標頭位元偵測器會先檢查資料區塊起始的兩個位元 是否為合法的同步標頭位元,若為合法的同步標頭則會繼續下一個資料區塊的偵 測,直到連續64 個資料區塊的標頭位元都是合法,則同步標頭位元偵測器會產 生區塊資料鎖定的狀態,這代表在接收資料過程中具有高穩定的狀態。當同步標 頭位元偵測器在區塊資料鎖定狀態之下,接下來的接收資料只要每64 個資料區 塊的同步標頭位元錯誤低於16 個,則同步標頭位元偵測器依然保持在區塊資料 鎖定狀態之下。若是每64 個區塊資料的同步標頭位元發生超過 16 個同步標頭位 元錯誤,則資料區塊鎖定狀態將會被取消,而同步標頭位元偵測器也會啟動SLIP 功能,以找出正確同步標頭位元。
3.3.3 BER 監測器
BER 監測器是要監控在接收資料的過程中,位元錯誤率是否超過系統所要 求。當系統處於起始狀態或者同步標頭位元偵測器處於非區塊資料鎖定狀態,則 BER 監測器就會進入監測狀態。BER 監測器主要是在每 125us 之中監測同步標 頭位元發生錯誤的次數。如果在125us 之中錯誤的同步標頭位元在 16 個以下,
BER 的狀態就會顯示為良好狀態;若是超過 16 個錯誤發生,則 BER 狀態會顯 示為高錯誤率狀態。位元錯誤率的狀態會傳送至較高階層的系統中做更進一步的 處理,在實體編碼子層當中並不會處理高位元錯誤率的狀態。
3.3.4 SLIP 功能模組
當64個資料區塊中發生16個以上的同步標頭位元錯誤,或是在非區塊資料鎖 定狀態下發生同步標頭位元的錯誤,SLIP功能模組就會啟動。SLIP功能模組主 要功能是找出資料區塊中同步標頭位元的位置,它必須能夠檢查資料區塊中所有 的位置,所以當同步標頭位元不斷發生錯誤之時,SLIP功能模組必須要提供所 有可能的同步標頭位元位置給同步標頭位元偵測器,以確保資料的正確性。圖3–6 為SLIP功能模組的功能示意圖。
1st data block 2nd data block
1st data block 2nd data block SLIP_count == 1SLIP == EN
SLIP == EN SLIP_count == 2
SLIP == EN
SLIP_count == 65 && stall one clk SLIP == 0
SLIP_count == 0
1st data block 2nd data block
SLIP
圖 3–6 SLIP 功能模組的功能示意圖
3.3.5 De-Scrambler
De-Scrambler 主要是將 Scrambled 過後的資料回復回原來的資料格式。De–
Scrambler 的多項式表示式如下所示:
39 58
( ) 1
G x = +x +x
圖 3–7 為 De–Scrambler 硬體架構圖。如果 Scrambler 硬體,為了提高 De–
Scrambler 的運作效率,我們也將展開其硬體架構,來達成在每個時脈週期內都 能夠完成一次完整的運算。
S0 S1 S2 S38 S39 S56 S57
scrambled data input
serial data output
Descrambler
圖3–7 De–Scrambler 硬體架構圖
3.3.6 資料整合器
同步標頭位元並不會經過Scrambler 的處理,所以同步標頭位元同樣要越過 De-Scrambler 的處理。之後同步標頭位元要在資料整合器中與復原後的資料作整 合。下圖3–8 為資料整合器架構圖。
資料整合器 De-Scrambled Data
Sync Header
66bit data
圖3–8 資料整合器
3.3.7 非同步先進先出暫存器
跟3.3.2 節中所討論的一樣,接收的資料也會跨過兩個不同的時脈領域,因 此也要透過非同步先進先出暫存器來做資料同步的動作。
3.3.8 64B/66B 解碼器模組
接收的資料最後會在64B/66B解碼器模組做最後的處理,在64B/66B解碼器 模組中,會檢查接收資料與同步標頭位元的一致性,若是純資料格式卻包含控制 字元的同步標頭位元,或是控制字元資料格式卻包含純資料的同步標頭位元,則 解碼器模組會產生錯誤的控制字元。根據表3–1,最後接收的資料格式也必須與 表中所列的資料格式相同,若是不同,則解碼器必須產生錯誤的資料格式透過 XGMII傳送至調解子層做適當的處理。編碼器會將接收到的66位元資料解碼為兩 個32位元的資料型態與8個控制訊號位元,然後透過XGMII與調節子層傳送至資 料鏈結層。