ESIstream IP–簡化確定性數(shù)據(jù)序列化的設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
概述
當(dāng)使用現(xiàn)代寬帶數(shù)據(jù)轉(zhuǎn)換器時(shí),管理產(chǎn)生的高速串行數(shù)據(jù)流是一個(gè)巨大的挑戰(zhàn)。ESIstream是一個(gè)開源的串行數(shù)據(jù)接口協(xié)議,成本極低,支持多種FPGA架構(gòu)的簡單硬件實(shí)現(xiàn),并占用最小的資源。簡單來說,它是JEDEC的JESD204B子集1和2標(biāo)準(zhǔn)的開源替代方案。另外,ESIstream可為用戶帶來很多好處,這里將討論其中的一些,包括低復(fù)雜度、低鏈接延遲和實(shí)現(xiàn)確定性延遲的簡單方案。
本文將僅闡述ESIstream的架構(gòu),因?yàn)楫?dāng)前有很多文檔已很好地描述了JESD204B的標(biāo)準(zhǔn)。然后我們將揭示這兩種協(xié)議之間的細(xì)微區(qū)別,并介紹Teledyne e2v,ESIstream協(xié)議的開發(fā)者,已決定發(fā)布自己的ESIstream VHDL IP,以進(jìn)一步簡化用戶的使用。
串行的歷史
新千年以來,數(shù)據(jù)轉(zhuǎn)換器技術(shù)和CMOS工藝的發(fā)展開始到達(dá)功能的瓶頸。起初,高速ADC和DAC(fs>10MHz)采用并行數(shù)據(jù)接口,這意味著在印刷電路板(PCB)上需從每個(gè)數(shù)據(jù)轉(zhuǎn)換器上引出/引入大量的布線(圖1)。隨著采樣率和輸出數(shù)據(jù)速率的提高,PCB設(shè)計(jì)變得越來越有挑戰(zhàn)性。而串行化接口,起初使用LVDS(低壓差分型號(hào)),最近則使用串行器/解串器(SERDES)接口(時(shí)鐘嵌入在數(shù)據(jù)流中),為這種數(shù)據(jù)傳送的挑戰(zhàn)提供了一種解決方案,并可簡化PCB布線,大大推進(jìn)形狀參數(shù)的發(fā)展。這種接口的簡化對(duì)鏈接的兩端都有利(圖1)。Serdes鏈接進(jìn)一步簡化了PCB的設(shè)計(jì),因?yàn)闊o需保證數(shù)據(jù)線長度匹配。
圖1 串行鏈接如何降低互聯(lián)負(fù)荷
然而,經(jīng)過了很多年,才有了一種串行方案解決了寬帶數(shù)據(jù)轉(zhuǎn)換器帶來的所有系統(tǒng)級(jí)挑戰(zhàn)。實(shí)現(xiàn)確定性延遲是同時(shí)采樣的前提,人們付出了很多努力研究它。下表(表1)展示了過去12年甚至更長時(shí)間里JESD204標(biāo)準(zhǔn)的發(fā)展和開源ESIstream的發(fā)展。
串行數(shù)據(jù)的一個(gè)顯著的優(yōu)點(diǎn)是,當(dāng)分辨率提高時(shí),器件的封裝無需包含額外的數(shù)據(jù)線,這可以幫助限制引腳數(shù)的增加。但是,串行化的缺點(diǎn)是由于引入了編碼/解碼流程,且通過某些額外的接收路徑彈性緩沖器補(bǔ)償路徑之間的對(duì)齊度,導(dǎo)致增加了額外的傳遞延遲。
圖2 串行化引入互聯(lián)延遲
串行化也可幫助管理數(shù)據(jù)轉(zhuǎn)換器的電源需求,因?yàn)樗芙档蛦蝹€(gè)器件需要的特定輸出驅(qū)動(dòng)器的數(shù)目。而且,通過實(shí)現(xiàn)差分串行線,可幫助減少復(fù)雜系統(tǒng)中產(chǎn)生的電氣噪聲,以保證良好的動(dòng)態(tài)范圍。另外,編碼方案也可分散頻譜噪聲,而且差分信號(hào)可降低串?dāng)_。
事實(shí)上,直到現(xiàn)在,早期串行接口依然不能很好地支持多個(gè)并行通道的應(yīng)用,設(shè)計(jì)師依然會(huì)面臨板級(jí)設(shè)計(jì)的挑戰(zhàn)。
ESIstream 具體實(shí)現(xiàn)
現(xiàn)在讓我們看一下ESIstream的核心要素。ESIstream使用14b/16b的數(shù)據(jù)編碼算法,低有效位優(yōu)先,支持超過13Gbps的線路速率。它支持12位和14位的轉(zhuǎn)換器。協(xié)議使用線性回饋移位寄存器加擾技術(shù),為每個(gè)數(shù)據(jù)字加入不均等位和時(shí)鐘同步位(2個(gè)bit的額外負(fù)擔(dān)),如圖3。通過這種方式,它的編碼效率高達(dá)87.5%,比JESD204B(8b/10b的編碼流)略高。不均等位(DB)可在CLK位切換使能同步監(jiān)控時(shí),保持?jǐn)?shù)據(jù)鏈間的DC平衡。
圖3 ESIstream 基本數(shù)據(jù)幀
ESIstream發(fā)射端(Tx)和接收端(Rx)核心的上層框圖如圖4和圖5所示。
圖4 ESIstream的Tx路徑
圖5 ESIstream的Rx路徑
ESIstream編碼算法被設(shè)計(jì)成可減少串行接口的物理限制。最重要的是,發(fā)射端和接收端之間的鏈接需要AC耦合??紤]到這一點(diǎn),發(fā)射的數(shù)據(jù)要確保DC平衡,否則鏈接耦合電容可能漂移,導(dǎo)致數(shù)據(jù)眼圖閉合,破壞接收的數(shù)據(jù)。
在接收端,時(shí)鐘和數(shù)據(jù)恢復(fù)(CDR)模塊通常使用PLL鎖到發(fā)射的信號(hào),這樣無需使用獨(dú)立的時(shí)鐘線。但是,為了使得CDR鎖定并保持鎖定狀態(tài),需保證傳送的信號(hào)經(jīng)過特定的變換次數(shù)。為發(fā)送的數(shù)據(jù)加擾是為了維持DC平衡,確保鏈接保持鎖定。ESIstream的開發(fā)者希望限制數(shù)字設(shè)計(jì)的復(fù)雜度,于是采用附加的算法最小化錯(cuò)誤傳遞。這種算法基于斐波那契數(shù)列,長度為217-1。此外還應(yīng)用了14位的移位。轉(zhuǎn)換流程輸出的有用數(shù)據(jù)和線性反饋移位寄存器數(shù)據(jù)(偽隨機(jī)碼)進(jìn)行異或操作,如圖6。
圖6 通過與LSFR碼異或?qū)崿F(xiàn)數(shù)據(jù)加擾
加擾之后,14位的數(shù)據(jù)結(jié)果被編碼成16位的數(shù)據(jù)幀。第一個(gè)附加位時(shí)鐘位,隨著每個(gè)連續(xù)幀切換。第二個(gè)附加位不均等位根據(jù)不均等計(jì)數(shù)器(RDC)的當(dāng)前狀態(tài)設(shè)置。兩種RDC狀態(tài)可導(dǎo)致:
1.RDC小于+/-16,不均等位設(shè)置為‘0’。
2.RDC大于+/-16,不均等位設(shè)置為‘1’,數(shù)據(jù)反向(按位非運(yùn)算)。這個(gè)操作可滿足Rx PLL鎖定的最小轉(zhuǎn)換次數(shù)的要求,并滿足鏈接DC平衡的需要。在正常操作下,接收端首先檢查不均等位。如果它為高,則在去擾前反向接收的數(shù)據(jù)。如果它為低,則直接對(duì)數(shù)據(jù)進(jìn)行去擾操作。對(duì)于確定性操作,ESIstream要求鏈接同步,即發(fā)射端和接收端的數(shù)據(jù)幀對(duì)齊,鏈接兩端的加擾引擎在同樣的初始化狀態(tài)。同步分兩步,幀對(duì)齊和偽隨機(jī)位序列(PRBS)初始化。
圖7 ESIstream 鏈接同步幀
接收端通過使能SYNC啟動(dòng)流程。這個(gè)脈沖應(yīng)該持續(xù)至少一個(gè)幀周期。然后發(fā)射端發(fā)送一個(gè)32幀的對(duì)齊樣式(圖7)。在接收端,這個(gè)保留的序列繞過加擾和不均等的處理,使接收端和發(fā)射端時(shí)序?qū)R。在對(duì)齊幀之后,發(fā)射端立刻發(fā)送一個(gè)32幀的PRBS數(shù)據(jù)——包含14位的PRBS以及時(shí)鐘和不均等信息。經(jīng)過正確地處理,接收端LFSR由接收端的PRBS字初始化。這時(shí)鏈接已同步(圖8)。用戶可在接收端通過觀察時(shí)鐘位,連續(xù)監(jiān)控同步狀態(tài)。如果時(shí)鐘位在某一幀沒有切換,則出現(xiàn)了同步問題,需復(fù)位鏈接重新同步。
圖8 ESIstream接收端線路同步序列
通過加擾以及時(shí)鐘位和不均等位的處理,ESIstream可保證確定的數(shù)據(jù)傳輸。