日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > > AdriftCoreFPGA芯研社


導(dǎo)言

8b10b編碼作為數(shù)字通信領(lǐng)域中的一項(xiàng)重要線路編碼方案,其核心理念在于將每8位數(shù)據(jù)映射到10位編碼中。這個(gè)映射過程嚴(yán)格按照特定規(guī)則進(jìn)行,旨在保證編碼中的電平轉(zhuǎn)換足夠,以維持信號(hào)的直流平衡,并提供足夠的時(shí)鐘信息,使接收端能夠準(zhǔn)確無誤地解碼數(shù)據(jù)。這種編碼技術(shù)在多個(gè)通信系統(tǒng)中發(fā)揮著關(guān)鍵作用,其中包括但不限于Aurora、PCIe、USB、光纖通信、SATA和HDMI等。在這些應(yīng)用場(chǎng)景中,8b10b編碼通過其獨(dú)特的特性,如電平平衡、時(shí)鐘恢復(fù)和錯(cuò)誤檢測(cè),確保了高速數(shù)字?jǐn)?shù)據(jù)的可靠傳輸。在今天的通信標(biāo)準(zhǔn)中,8b10b編碼已經(jīng)成為確保數(shù)據(jù)完整性和可靠性的不可或缺的一環(huán)。

1為什么要使用8b10b編碼

由于串行鏈路中存在交流耦合電容,理想電容的阻抗公式為Zc=1/2πf*C。因此,隨著信號(hào)頻率的增加,阻抗逐漸降低;反之,頻率降低時(shí)阻抗增加。在這種情況下,當(dāng)信號(hào)頻率較高時(shí),傳輸基本上可以實(shí)現(xiàn)零損耗。然而,當(dāng)碼型為連續(xù)“0”或“1”時(shí),電容的損耗顯著增加,導(dǎo)致信號(hào)幅度不斷下降。這帶來的嚴(yán)重后果是無法準(zhǔn)確識(shí)別是“1”還是“0”。因此,為了盡量減小低頻碼型的損耗,8b10b編碼技術(shù)應(yīng)運(yùn)而生。8b10b編碼的主要目標(biāo)是優(yōu)化低頻碼型,將其轉(zhuǎn)換為較高頻的碼型,以確保在傳輸過程中降低損耗,這就是直流平衡。通過這種方式,我們能夠在高頻率條件下更可靠地傳輸數(shù)據(jù),提高串行鏈路的性能和穩(wěn)定性。8b/10b編碼的提出最早應(yīng)用在光纖的傳輸技術(shù),8b/10b技術(shù)是將8個(gè)比特經(jīng)過某種映射的機(jī)制轉(zhuǎn)化為10個(gè)比特的字碼,分兩組分別進(jìn)行映射的處理,分別是 5B/6B 與 3B/4B 的處理。

2不均等性——Disparity

8b10b編碼產(chǎn)生的輸出為10位,經(jīng)過8b10b編碼后只存在三種情況,分別是"+2" "0" "-2",它們代表了三種不均等性(Disparity)。在這里,不均等性通過計(jì)算 "1" 的數(shù)量減去 "0" 的數(shù)量得到,即 Disparity = "1"的數(shù)量 - "0"的數(shù)量。通過利用這種不均等性與 Disparity 的關(guān)系,可以確保發(fā)送的 "0" 和 "1" 的數(shù)量保持一致,從而有效地限制了連續(xù)的 "1" 或 "0" 不超過5位。這種機(jī)制有助于維持編碼的直流平衡,保障了數(shù)據(jù)的可靠傳輸。

  • "+2"表示10b內(nèi)有4b的"0",6b的"1"。

  • " 0"表示10b內(nèi)有5b的"0",5b的"1"。

  • "-2"表示10b內(nèi)有6b的"0",4b的"1"。

3編碼原理

8b10b編碼會(huì)將8b數(shù)據(jù)分成兩組,一組3b(HGF),一組5b(EDCBA),經(jīng)過8b10b編碼后,3b(HGF)經(jīng)過3b4b編碼變成4b(fghj),5b(EDCBA)經(jīng)過5b6b編碼變成6b(abcdefgi),合起來就是10b(abcdefgifghj)。此外,“D.x.y”是數(shù)據(jù)碼(D即是Data),“K.x.y”指控制碼(K即是Key),x與y表示輸入的原始數(shù)據(jù)。

不均等性執(zhí)行規(guī)則

8b/10b編碼是DC-free(直流平衡)的,意味著長(zhǎng)時(shí)間的傳輸比特?cái)?shù)的1和0的比例恰好為50%。為了實(shí)現(xiàn)這一點(diǎn),傳輸?shù)?的數(shù)量和0的數(shù)量之間的差異始終被限制在±2之間,并且在每個(gè)符號(hào)的末尾,它要么是+1要么是?1。這個(gè)差異被稱為運(yùn)行差異(RD,running disparity

  • 當(dāng)RD = -1時(shí),表示編碼后"1"的個(gè)數(shù)比"0"的個(gè)數(shù)多2個(gè),表示"1"多

  • 當(dāng)RD = +1時(shí),表示編碼后"0"的個(gè)數(shù)比"1"的個(gè)數(shù)多2個(gè),表示"0"多;

這里為什么是2呢,這是由于4 bit和6bit的兩個(gè)子分組都是偶數(shù)個(gè)位數(shù),所以不平衡度不可能是“+1” 或“-1”,因此,在8B/10B編碼方案中會(huì)使用不平衡度為“+2” 和“-2” 的值。

編碼的過程就是使得"0"和"1"的數(shù)量均衡,防止"0"或"1"過長(zhǎng)的現(xiàn)象,因此在"1"多的時(shí)候會(huì)翻轉(zhuǎn)RD-變?yōu)镽D+,在"0"多的時(shí)候會(huì)翻轉(zhuǎn)RD+變?yōu)镽D-,在編碼過程中,RD的初值為-1,當(dāng)編碼為完美平衡編碼時(shí),如上表所示不均等性(Disparity of 6 or 4 bit Code)為0,RD的極性(Next RD)不反轉(zhuǎn);當(dāng)編碼“1”和“0”的數(shù)量不等時(shí),如上表所示不均等性為±2,則RD的極性(Next RD)反轉(zhuǎn)。

上表有四種情況,Next RD值依賴于Current RD以及當(dāng)前6B碼或者4B碼的Disparity。根據(jù)Current RD的值,決定5B/4B和 3B/4B編碼映射方式:

  • 當(dāng)前RD為-1,編碼"0"和"1"數(shù)量相等即不均等性為0,則選擇Disparity為0的編碼,下次RD的極性不變?yōu)?1。

  • 當(dāng)前RD為-1,編碼"0"和"1"數(shù)量不等即不均等性為±2,根據(jù)RD = -1選擇Disparity為+2的編碼,下次RD的極性翻轉(zhuǎn)為+1。

  • 當(dāng)前RD為+1,編碼"0"和"1"數(shù)量相等即不均等性為0,則選擇Disparity為0的編碼,下次RD的極性不變?yōu)?1。

  • 當(dāng)前RD為+1,編碼"0"和"1"數(shù)量不等即不均等性為±2,根據(jù)RD = +1選擇Disparity為-2的編碼,下次RD的極性翻轉(zhuǎn)為+1。

下表分別為5b6b和3b4b的映射碼表,對(duì)于每個(gè)具有不同數(shù)量的1和0的5b/6b和3b/4b編碼,都有兩種可以用于傳輸?shù)谋忍啬J剑阂环N是含有兩個(gè)更多“1”比特,另一種是所有比特取反從而含有兩個(gè)更多“0”。根據(jù)信號(hào)的當(dāng)前的RD,編碼引擎會(huì)選擇對(duì)給定數(shù)據(jù)發(fā)送哪兩種可能的六位或四位序列之一。

下面是一個(gè)例子:

  • 原數(shù)據(jù)為D.01.3即8b'011_00001

  • 當(dāng)前5b6b編碼RD = -1,可以看到EDCBA為D.01,5b6b編碼后為5b'011101

  • 當(dāng)前3b4b編碼RD = -1,可以看到HGF為D.x.3,3b4b編碼后為3'b0011

  • 綜合起來8b'01100001經(jīng)過8b10b編碼后變成10'b0111010011

  • 編碼后Disparity = -2,則最終的RD需要由RD-1翻轉(zhuǎn)為RD+1

D.x.7主要編碼和備用編碼

從上圖可以看到,D.x.7有兩套編碼,分別是D.x.P7(主要,Primary)和D.x.A7(備用,Alternate),這是為了避免與前面的5b/6b代碼組合時(shí)出現(xiàn)5個(gè)連續(xù)的0或1.

  • 當(dāng) RD = -1,5b/6b編碼 x = 17,18或20時(shí),如果選擇D.x.P7則會(huì)出現(xiàn)5個(gè)連續(xù)的1,所以需要選擇備用編碼D.x.A7

  • 當(dāng) RD = -1,5b/6b編碼 x = 11,1324時(shí),如果選擇D.x.P7則會(huì)出現(xiàn)5個(gè)連續(xù)的0,使用需要選擇備用編碼D.x.A7

控制符號(hào)(Control Symbols)

在8b/10b編碼中,控制符號(hào)是10位符號(hào),它們是有效的位序列(包含不超過六個(gè)1或0),但沒有對(duì)應(yīng)的8位數(shù)據(jù)字節(jié)。這些控制符號(hào)主要用于執(zhí)行低級(jí)別的控制功能。例如,在光纖通信中,K28.5 用于執(zhí)行循環(huán)仲裁、填充字、鏈路重置等功能的四字節(jié)序列(稱為“有序集”)的開頭。

通過引入K.28或備用的D.x.A7輸出,可以創(chuàng)建用于控制的12個(gè)特殊符號(hào)。這些符號(hào)不攜帶實(shí)際的數(shù)據(jù),而是用于在數(shù)據(jù)流中標(biāo)識(shí)和控制特定的狀態(tài)或操作。其中有一些逗號(hào)序列,這是一個(gè)在數(shù)據(jù)流中獨(dú)特且不會(huì)與實(shí)際數(shù)據(jù)混淆的位模式。通過檢測(cè)逗號(hào)序列,接收方可以確定字節(jié)邊界,幫助正確解釋和處理數(shù)據(jù)流中的字節(jié)。

只有K.28.1、K.28.5和K.28.7生成包含五個(gè)0或1位序列的逗號(hào)序列。這些逗號(hào)序列的格式是11000001xx或00111110xx,其中xx表示任意兩位。

逗號(hào)序列中有兩個(gè)相同的前導(dǎo)位("00","11"),是為了應(yīng)對(duì)當(dāng)逗號(hào)序列跨越兩個(gè)符號(hào)時(shí),可能出現(xiàn)連續(xù)五個(gè)相同的位。這種設(shè)計(jì)確保了逗號(hào)序列的唯一性,從而在解析數(shù)據(jù)流時(shí),可以準(zhǔn)確識(shí)別并用于確定字節(jié)邊界。例如,D.x.A7(0111)后面可能跟著一個(gè)以兩個(gè)相同位開始的符號(hào),比如D.03(110001)、D.11、D.12、D.19、D.20、D.28或K.28,但是,D.x.A7始終以一個(gè)非相同的位作為前導(dǎo)位,因此形成的模式是ifghj_abc = 10111_110或01000_001,如果前導(dǎo)位為非相同位("10","01")則不認(rèn)為他是逗號(hào)序列。

在控制符號(hào)中,只有在x等于23、27、29、30時(shí),K.x才能與A7組合使用。對(duì)于其他D.x.A7編碼,不應(yīng)該使用,因?yàn)檫@可能導(dǎo)致逗號(hào)序列的對(duì)齊錯(cuò)誤。



4帶寬利用率

在8b/10b編碼中,每8位數(shù)據(jù)被編碼成10位,其中2位用于控制目的??紤]到每8位數(shù)據(jù)編碼成10位,帶寬利用率可以計(jì)算為8/10 = 80%。這表示在8b/10b編碼中,80%的比特用于傳輸實(shí)際的數(shù)據(jù),而其余的20%用于控制和維護(hù)直流平衡。


5總結(jié)

本文主要介紹了8b10b的編碼原理,8b/10b編碼是一種用于高速數(shù)據(jù)通信的編碼方案,其設(shè)計(jì)目的是保持直流平衡,并通過控制符號(hào)實(shí)現(xiàn)一些控制功能。在后續(xù),我們將深入探討如何在FPGA中實(shí)現(xiàn)和優(yōu)化8b/10b編碼,以滿足不同應(yīng)用場(chǎng)景的性能和可靠性需求。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
關(guān)閉