在高速鏈路中導(dǎo)致接收端眼圖閉合的原因,很大部分并不是由于高頻的損耗太大了,而是由于高低頻的損耗差異過(guò)大,導(dǎo)致碼間干擾嚴(yán)重,因此不能張開(kāi)眼睛。針對(duì)這種情況,前面有講過(guò)可以通過(guò)CTLE和FFE(包括DFE)均衡進(jìn)行解決,原理無(wú)非就是衰減低頻幅度或者抬高高頻幅度,從而達(dá)到在接收端高低頻均衡的效果。
隔了一段時(shí)間,不知道大家還記得我們這個(gè)約定嗎?不管你們記不記得,本人肯定沒(méi)有忘記哈。現(xiàn)在就把這個(gè)關(guān)子拿出來(lái)講講,也就是今天要說(shuō)的編碼方式。說(shuō)到針對(duì)于NRZ數(shù)據(jù)的編碼方式,本人聽(tīng)過(guò)的有4B/5B,8B/10B,64B/66B,64/67B,128B/130B,128B/132B編碼(可能各位還有其他吧),不同的編碼方式針對(duì)于不同的信號(hào)協(xié)議,當(dāng)然效率也是不一樣的。
什么叫效率?在數(shù)據(jù)包傳送的術(shù)語(yǔ)叫開(kāi)銷,意思就是除了實(shí)際需要的數(shù)據(jù)之外的一些數(shù)據(jù)bit,例如冗余校驗(yàn)等。那大家看上面的編碼的數(shù)值比就知道了,例如8B/10B,要把8bit的實(shí)際數(shù)據(jù)擴(kuò)展為10B,那開(kāi)銷就是20%,效率就只有80%了,更通俗來(lái)說(shuō)就是增加了20%的非實(shí)際數(shù)據(jù)的傳輸 。所以一個(gè)好的編碼方式,除了看它本身的算法優(yōu)化情況外,還要注重效率高不高。
本人將用兩期的篇章主要介紹下8B/10B和64/66B編碼方式,其他的主要都是由他們擴(kuò)展開(kāi)來(lái)的。那介紹完前面總體的情況后,進(jìn)入本期的主題,8B/10B編碼。
首先,為什么要編碼?原來(lái)的碼型有什么不好的地方嗎?其中最主要的原因用下面這個(gè)圖來(lái)進(jìn)行解釋:

大家看明白了吧,由于我們的串行鏈路中會(huì)有交流耦合電容,我們知道理想電容的阻抗公式是Zc=1/2πf*C,因此信號(hào)頻率越高,阻抗越低,反之頻率越低,阻抗越高。因此上面的情況,當(dāng)碼型是高頻的時(shí)候,基本上可以不損耗的傳輸過(guò)去,但是當(dāng)碼型為連續(xù)“0”或者“1”的情況時(shí),電容的損耗就很大,導(dǎo)致幅度不斷降低,帶來(lái)的嚴(yán)重后果是無(wú)法識(shí)別到底是“1”還是“0”。因此編碼就是為了盡量把低頻的碼型優(yōu)化成較高頻的碼型,從而保證低損耗的傳輸過(guò)去。
上面解釋了原因,下面就介紹下這種8B/10B的編碼方式的算法。

如上圖,關(guān)于8B/10B編碼算法有下面幾點(diǎn)需要理解:
1, 低5位(ABCDE)中間加一位,進(jìn)行5B/6B編碼,高三位(FGH)中間加一位,進(jìn)行3B/4B編碼;
2, 編碼后的bit僅會(huì)出現(xiàn)這三種情況:5個(gè)“0”與5個(gè)“1”、4個(gè)“0”與6個(gè)“1”、6個(gè)“0”與4個(gè)“1”;
3, 有兩個(gè)術(shù)語(yǔ)要知道:不均等性(disparity)和極性偏差(running disparity,RD)。
不均等性是指編碼后的碼型數(shù)據(jù)是“1”多還是“0”多,如果是“1”多,則極性偏差RD為-RD,如果是“0”多則為+RD。那定義+-RD有什么意義呢?+-RD代表著同一個(gè)碼型的兩種編碼方式。我們本身就是編碼的目標(biāo)就是為了緩解長(zhǎng)“0”或長(zhǎng)“1”的影響,因此在編碼后如果“1”多的話,我們下一次的編碼就要把這種碼型做一個(gè)修正,因此從-RD碼型變成+RD碼型。如果是“0”和“1”一樣多,極性則不用變,如下圖:

4, 我們?cè)趺粗谰幋a后映射成什么碼型呢?因此會(huì)有一個(gè)專門(mén)的編碼表,我們只需要在上面找到我們的原始碼型,然后就一目了然了。編碼表如下所示(部分截圖):

說(shuō)了那么多,還不如舉個(gè)例子更直觀。
我們以上面的D3.0碼型進(jìn)行仿真驗(yàn)證:

原始的碼型如下:

仿真得到8B/10B編碼后的碼型如下:

對(duì)照上面的編碼表,結(jié)果完全相同,從RD-的模型出發(fā),編碼后RD-的碼型“1”比較多,因此極性變成RD+的編碼碼型,接著RD+的編碼碼型“0”比較多,極性又變回RD-,因此碼型就是RD-和RD+之間循環(huán)下去。
通過(guò)上面的介紹,大家對(duì)8B/10B編碼有一個(gè)初步的認(rèn)識(shí)了吧。
-
阻抗
+關(guān)注
關(guān)注
17文章
988瀏覽量
49239 -
編碼
+關(guān)注
關(guān)注
6文章
1039瀏覽量
56974 -
高速信號(hào)
+關(guān)注
關(guān)注
1文章
267瀏覽量
18505 -
耦合電容
+關(guān)注
關(guān)注
2文章
157瀏覽量
20791
發(fā)布評(píng)論請(qǐng)先 登錄
USB3.0中8b/10b編解碼器的設(shè)計(jì)
8b10b編碼verilog實(shí)現(xiàn)
Aurora 8b/10b IP核問(wèn)題
8b/10b編解碼的控制字問(wèn)題
淺析64B//66B編碼
收發(fā)器向?qū)е袉⒂?b class='flag-5'>8b/10b編碼器的方法是什么?
如何使用Aurora 8B / 10B建立僅傳輸?
怎么禁用Aurora IP Core 8B / 10B中的時(shí)鐘補(bǔ)償功能?
基于FPGA的8B/10B編解碼設(shè)計(jì)
基于PRBS的8B/10B編碼器誤碼率為0設(shè)計(jì)
基于Virtex-6 的Aurora 8B/10B,PCIe2.0,SRIO 2.0三種串行通信協(xié)議分析
淺談高速信號(hào)的64B/66B編碼方式
高速串行通信常用的編碼方式-8b/10b編碼/解碼解析
對(duì)高速信號(hào)8B/10B編碼的初步認(rèn)識(shí)
評(píng)論