JESD204B IP核作為接收端時(shí),單獨(dú)使用,作為發(fā)送端時(shí),可以單獨(dú)使用,也可以配合JESD204b phy使用。
JESD204B通常配合AD或DA使用,替代LVDS,提供更高的通訊速率,抗干擾能力更強(qiáng),布線數(shù)量更少。
本篇的內(nèi)容基于jesd204b接口的ADC和FPGA的硬件板卡,通過(guò)調(diào)用jesd204b ip核來(lái)一步步在FPGA內(nèi)部實(shí)現(xiàn)高速ADC數(shù)據(jù)采集,jesd204b協(xié)議和xilinx 的jesd204 IP核相關(guān)基本知識(shí)已在前面多篇文章中詳細(xì)介紹,這里不再敘述~
在該篇中,小青菜哥哥試圖從一個(gè)初學(xué)者的視角來(lái)記錄整個(gè)開(kāi)發(fā)流程,力求做到每一個(gè)讀者閱讀完該筆記后都能快速開(kāi)發(fā)基于jesd204b接口的FPGA-ADC數(shù)據(jù)采集,同時(shí)也確保幾個(gè)月甚至幾年后的本人已經(jīng)遺忘了jesd204b開(kāi)發(fā)細(xì)節(jié)后,通過(guò)閱讀該筆記能夠快速重新上手。
硬件工作環(huán)境
ADC:ADS52J90。FPGA:kintex7。供電:12V/4A 直流電源。該板卡最多外接32通道2Vpp模擬信號(hào)以及20路外部觸發(fā)信號(hào)。數(shù)據(jù)傳輸接口方式有千兆以太網(wǎng)接口、高速光纖接口以及低速USB串口。需要用到的工具為萬(wàn)用表、示波器、信號(hào)發(fā)生器。
圖2:ADC主要特性
該款芯片內(nèi)置了16個(gè)ADC(模數(shù)變換器),這16個(gè)ADC輸出的數(shù)據(jù)通過(guò)jesd接口輸出。
這16個(gè)adc的數(shù)據(jù)通過(guò)2、4、或者8條lane輸出,具體選哪種用戶是可以選擇的。
每條lane的最高線速率是5Gbps。
支持子類0、1和2。
該芯片的采樣率、采樣精度,采樣通道數(shù)都有多種模式,用戶可選擇范圍比較大,但必須最終滿足每條lane的數(shù)據(jù)線速率不能高于5Gbps。
我們?cè)賮?lái)看看ADC數(shù)據(jù)的傳輸層數(shù)據(jù)結(jié)構(gòu)。該ADC手冊(cè)描述輸出數(shù)據(jù)有“NORMAL PACKING MODE”和“ SINGLE CONVERTER PER OCTET MODE”兩種模式,為了提高位傳輸效率,本人選擇了“NORMAL PACKING MODE”,如圖3所示:
圖3:不同的jesd接口操作模式
在實(shí)際操作演示時(shí),小青菜哥哥通過(guò)ADC配置接口,選擇了固定的ADC基本采樣參數(shù):即ADC的采樣率為80MSPS、采樣精度為12bit、采樣通道為16,所有數(shù)據(jù)最終通過(guò)4條lane輸出到FPGA(4個(gè)lane正好對(duì)應(yīng)FPGA的一個(gè)GTX quad,比較整齊。。。。技術(shù)男強(qiáng)迫癥犯了)。因此,在“NORMAL PACKING MODE”模式下,N=12,N’=12,F(xiàn)=6。
具體的傳輸層數(shù)據(jù)結(jié)構(gòu)如圖4所示:
圖4:“NORMALPACKING MODE”模式下的傳輸層數(shù)據(jù)結(jié)構(gòu)
從圖4也可以看出,F(xiàn)=6,采樣數(shù)據(jù)沒(méi)有contro bit 和tail bit填充,這樣就保證了輸出數(shù)據(jù)100%有效傳輸效率。
那么ADC的幀時(shí)鐘是多少呢?手冊(cè)上也已經(jīng)給出了,如圖5所示:幀時(shí)鐘頻率和ADC轉(zhuǎn)換頻率一樣的,這里都為80MHz。
圖5:jesd相關(guān)的時(shí)鐘頻率
基于以上信息,小青菜哥哥選擇的工作模式的lane線速率就可以確定了:
幀時(shí)鐘×幀字節(jié)數(shù)×每字節(jié)的bit數(shù)×8b/10b編碼開(kāi)銷即為lane的工作線速率
80MHz×6×8×10/8=4.8Gbps
另外,還有一種更容易理解的線速率確定方式:
我們知道每條lane傳輸4個(gè)ADC的數(shù)據(jù),而ADC采樣率為80MHz,采樣精度12bit,沒(méi)有控制和tail bit,只要8b/10b編碼,因此每條lane的線速率為:
80MHz采樣率×12bit采樣精度×4個(gè)ADC×10/8=4.8Gbps
另外,還有最后一個(gè)多幀參數(shù)K 需要確認(rèn)。ADC數(shù)據(jù)手冊(cè)給出了K的范圍,即:Ceil (17 / Number of Octetsper Frame) ≤ Multiframe Size (In Terms of Number of Frames),即Ceil (17 / 6) ≤ K。因此K必須要大于等于3,小青菜哥哥決定K取4。
到現(xiàn)在為止jesd204的參數(shù)就確認(rèn)完畢了,在這里就不一一介紹該芯片的其它功能了,該芯片的詳細(xì)中文版介紹可以看小青菜哥哥以前的文章。
接下來(lái)我們來(lái)打開(kāi)vivado,一步一步來(lái)完成FPGA-ADC數(shù)據(jù)采集的工程。在工程建立的過(guò)程中,小青菜哥哥還會(huì)反復(fù)提到上述的ADC芯片,因?yàn)樵诮esd204鏈路時(shí),F(xiàn)PGA端的參數(shù)必須和ADC的參數(shù)保持一致~
如圖6所示為新建的vivado工程“jesd204b_ads52j90”,匹配硬件的FPGA型號(hào)“xc7k325tffg900-2”,可以看到工程內(nèi)部還沒(méi)有任何文件:
圖6:新建工程
接下里我們來(lái)例化jesd204 IP核,如圖7所示:
圖7:例化IP核
雙擊該IP核后打開(kāi)了jesd204的配置界面,配置界面分成4個(gè)子界面:“Configuration”、“Shared Logic”、“Default Link Parameters”以及“JESD204 PHYConfiguration”。我們下面將分別描述:
“Configuration”配置界面
如圖8所示為“Configuration”配置界面,該界面有7個(gè)地方是需要用戶來(lái)選擇的
圖8:“Configuration”配置界面
1:輸入IP核名字
2:由于是ADC數(shù)據(jù)采集,因此FPGA的IP核應(yīng)該設(shè)置成“Receive”
3:設(shè)置IP核內(nèi)部的接收數(shù)據(jù)緩存器的字節(jié)長(zhǎng)度。數(shù)據(jù)緩存器主要用來(lái)做lane之間的數(shù)據(jù)對(duì)齊和實(shí)現(xiàn)確定性延遲功能。字節(jié)長(zhǎng)度是用戶可選的,選得值越小越節(jié)約FPGA邏輯資源,但字節(jié)長(zhǎng)度必須要超過(guò)F*K(本篇為6*4=24),因此選擇了64,如果大家不清楚的話,直接選最大長(zhǎng)度,絕對(duì)沒(méi)問(wèn)題。
4:lane數(shù)量:本篇為4條lane。
5:jesd204 IP核的AXI4-Lite配置時(shí)鐘:默認(rèn)為100MHz。對(duì)于ultrascale器件,頻率范圍為10MHz~200MHz,對(duì)于7系列器件,如果IP核的模式為“Include Shared Logic inexample design”,則頻率范圍為10MHz~200MHz;如果IP核的模式為“Include Shared Logic incore”,則頻率范圍和Transceiver DRP時(shí)鐘頻率范圍相同,本人選擇了80MHz(80MHz為FPGA系統(tǒng)時(shí)鐘,可以省去FPGA另外再提供100MHz時(shí)鐘);
6:該選項(xiàng)可以選擇sysref信號(hào)被core clk的上升沿或下降沿采樣,用于jesd204b子類1的確定性延遲功能。一般來(lái)說(shuō),外界提供的core clock和sysref是同源且上升沿對(duì)齊信號(hào),因此在FPGA端最好選擇在時(shí)鐘下降沿采樣sysref比較精確,具體描述可參考pg066的page-60。
7:用戶決定IP核的core clk是否由glbclk(p/n)管腳輸入。當(dāng)refclk(p/n)頻率不等于core clk時(shí),必須外部輸入core clk。本篇中的線速率為4.8Gbps,因此core clk為120MHz,所以本人將參考時(shí)鐘輸入頻率也調(diào)成120MHz,這樣IP核只需要一個(gè)120MHzd的參考時(shí)鐘輸入接口了。
“Shared Logic” 配置界面
如圖9所示為“Shared Logic” 的配置界面:該界面只有兩種選擇,要么選擇“Include Shared Logic in example design”,要么選擇“IncludeShared Logic in core”。對(duì)于大部分用戶來(lái)說(shuō),選擇“Include Shared Logic in core”就可以了,后期使用起來(lái)很簡(jiǎn)單。對(duì)于需要使用“transceiversharing”這種高級(jí)功能的特殊用戶來(lái)說(shuō),就需要選擇“Include Shared Logic in example design”,以便自己可以修改IP核內(nèi)部的部分代碼。我們選擇“IncludeShared Logic in core”就可以了。
圖9:“SharedLogic” 的配置界面
“Default Link Parameters” 配置界面
如圖10所示為“Default Link Parameters” 的配置界面:該界面5個(gè)部分需要用戶設(shè)置:
圖10:“DefaultLink Parameters” 的配置界面
1:Default SYSREFAlways:該選項(xiàng)用來(lái)配置LMFC計(jì)數(shù)器是否在每個(gè)SYSREF脈沖到來(lái)時(shí)都復(fù)位,或者只在SYSREF的第一個(gè)有效脈沖到來(lái)時(shí)復(fù)位,忽略以后的SYSREF信號(hào)。這里選擇OFF即可。
2:Default SCR:在ADC端我們禁止了擾碼功能,因此這里也將擾碼功能關(guān)閉。擾碼功能有利有弊,小青菜哥哥反正一直都不用該功能的~
3:Default F:從前面的ADC部分描述來(lái)看,這里F設(shè)置成6
4:Default K:從前面的ADC部分描述來(lái)看,這里K設(shè)置成4
5:Default SYSREFRequired on Re-Sync:該選項(xiàng)用來(lái)選擇每次鏈路重新同步時(shí)是否需要sysref信號(hào),我們最好關(guān)閉它,默認(rèn)鏈路同步時(shí)不需要該信號(hào),只在SYNC拉高后的下一個(gè)LMFC上升沿同步就可以了,這樣就方便許多。
“JESD204 PHY Configuration” 配置界面
如圖11所示為“JESD204 PHY Configuration” 的配置界面:該界面6個(gè)部分,只有其中4個(gè)部分需要用戶設(shè)置:
圖11:“JESD204 PHYConfiguration” 配置界面
1:Transceiver Type:這是由所選FPGA型號(hào)決定的,這里不能選擇
2:Line Rate:前面已經(jīng)計(jì)算過(guò),當(dāng)前需求的數(shù)據(jù)線速率為4.8Gbps
3:Reference Clock:由于線速率已確定4.8Gbps,而core clk為其1/40,即120MHz。所以為了不使用glbclk(p/n),減少一路時(shí)鐘輸入,這里將ReferenceClock 也設(shè)置成120MHz ,這樣外部輸入的glbclk(p/n)就可以由Reference Clock代替。
4:這里也沒(méi)得選:只能是CPLL
5:DRP Clock Frequency:配置頁(yè)面已經(jīng)提到過(guò),對(duì)于七系列器件,DRP clk和AXI4-Lite clock為同一時(shí)鐘,所以這里也不可選了,只能為前面定下的80MHz。
6:不需要Transceiver的調(diào)試功能
至此,jesd204的IP核就配置完成了。例化該IP核后,其生成的ip核端口信息如下圖12所示(帶信號(hào)注釋):
圖12:IP核例化代碼
我們?cè)倏纯葱∏嗖烁绺缃⒌墓こ添攲咏涌谖募?,如圖13所示:(帶注釋),接口其實(shí)真的很簡(jiǎn)單~
圖13:頂層文件接口
小青菜哥哥的FPGA頂層文件主要包括以下8模塊,如圖14所示:
圖14:頂層設(shè)計(jì)
1:PLL模塊
該模塊利用外部40MHz晶振和FPGA內(nèi)部的PLL,產(chǎn)生2路時(shí)鐘:其中一路10MHz,作為時(shí)鐘芯片配置模塊和ADC配置模塊的運(yùn)行時(shí)鐘;另一路100MHz,本打算供給AXI4-lite配置模塊時(shí)鐘,后來(lái)發(fā)現(xiàn)不需要,這里就留著備用了。
2:時(shí)鐘芯片配置模塊
沒(méi)啥可說(shuō)的,就是看lmk04826的數(shù)據(jù)手冊(cè),通過(guò)SPI接口協(xié)議配置時(shí)鐘芯片內(nèi)的寄存器,產(chǎn)生整個(gè)系統(tǒng)所需的時(shí)鐘和sysref信號(hào)。以前的文章詳細(xì)講述過(guò)~
3:ADC配置模塊
通過(guò)SPI接口協(xié)議配置ADC芯片,使其工作在我們需要的jesd204參數(shù)狀態(tài),本篇中小青菜哥哥將ADC配置成了累加數(shù),便于輸出測(cè)試。以前的文章詳細(xì)講述過(guò)~
4:jesd204 IP核模塊
調(diào)用前面的IP核即可
5:全局時(shí)鐘模塊
IP核會(huì)輸出一路120MHz的core clk,供給用戶使用。我們將該信號(hào)引入全局時(shí)鐘模塊,產(chǎn)生120MHz和80MHz全局時(shí)鐘,作為ADC數(shù)據(jù)解析模塊的時(shí)鐘。另外80MHz時(shí)鐘還可以作為AXI4-lite的配置時(shí)鐘。
6:AXI4配置模塊
配置jesd204 IP核的工作參數(shù)。這里需要注意的是配置的參數(shù)和ADC配置模塊的參數(shù)要相同,比如F,K,N等參數(shù)。
7:ADC數(shù)據(jù)解析模塊
由于IP核輸出的數(shù)據(jù)是128bit位寬,在120MHz的時(shí)鐘域下工作。而ADC采樣時(shí)鐘是80MHz,所以ADC數(shù)據(jù)解析模塊的功能就是將總共4 lane的這些數(shù)據(jù)分離,變成16個(gè)ADC的12bit精度的連續(xù)采樣數(shù)據(jù)。每款A(yù)DC芯片的數(shù)據(jù)組織結(jié)構(gòu)(其實(shí)就是JESD204B的傳輸層數(shù)據(jù)結(jié)構(gòu))不一樣,所以該模塊不具有普適性,只針對(duì)本篇的需求~
8:邏輯分析儀
我們通過(guò)ILA邏輯分析儀來(lái)觀察每一路的ADC采樣數(shù)據(jù),看是否正確。
如下圖15所示為小青菜哥哥的jesd204 IP核信號(hào)的連接方式,供大家參考:
圖15:IP核頂層代碼
我們?cè)倏纯磾?shù)據(jù)解析模塊的接口含有哪些信號(hào),如圖16:
圖:16:數(shù)據(jù)解析模塊頂層
我們?cè)倏纯催壿嫹治鰞x監(jiān)測(cè)的數(shù)據(jù)情況,如圖17為IP核輸出的數(shù)據(jù)時(shí)序,這里我們看不出來(lái)ADC數(shù)據(jù)到底對(duì)不對(duì),得到的都是ADC采樣數(shù)據(jù)經(jīng)過(guò)傳輸層分割后的數(shù)據(jù)。
圖17:jesd IP核數(shù)據(jù)輸出
進(jìn)一步的我們看看最終還原的ADC數(shù)據(jù)到底對(duì)不對(duì):由于小青菜哥哥將ADC配置成了發(fā)送累加數(shù),所以說(shuō)如果jesd204鏈路正常工作了,那么觀察到的16路ADC采樣數(shù)據(jù)肯定也是累加數(shù),如圖18所示:可以看到數(shù)據(jù)從0累加到4095,然后循環(huán)往復(fù),正好對(duì)應(yīng)我們?cè)谇懊媾渲玫?2bit ADC精度。
圖18:ADC累加數(shù)據(jù)
將ADC的累加數(shù)配置更改為采集正常輸入信號(hào)后,我們外接了信號(hào)發(fā)生器,將信號(hào)發(fā)生器設(shè)置成發(fā)送正弦波,下圖19是在FPGA內(nèi)部監(jiān)測(cè)到的一路正弦信號(hào),其他路沒(méi)有接信號(hào),是噪聲基線:
圖19:正弦波模擬信號(hào)的輸入測(cè)試
下圖20是用該板卡和上面描述的方案在試驗(yàn)現(xiàn)場(chǎng)測(cè)試的3種放射源的混合能譜,看上去還可以吧!
圖20:實(shí)際放射源測(cè)試結(jié)果
JESD204B IP核與ADC的實(shí)際操作就到這里了,其實(shí)只要明白了jesd204協(xié)議的基本內(nèi)容和IP核各個(gè)端口的含義,開(kāi)發(fā)起來(lái)并不復(fù)雜。我們主要還是要仔細(xì)閱讀ADC數(shù)據(jù)手冊(cè),根據(jù)手冊(cè)給出的參數(shù)來(lái)確定IP核的工作參數(shù)即可。
-
FPGA
+關(guān)注
關(guān)注
1629文章
21736瀏覽量
603307 -
adc
+關(guān)注
關(guān)注
98文章
6498瀏覽量
544628 -
JESD204B
+關(guān)注
關(guān)注
5文章
76瀏覽量
19137
原文標(biāo)題:JESD204B 使用說(shuō)明
文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論