JESD204接口调试总结——Xilinx JESD204B IP testbench解析
提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔
JESD204接口調(diào)試總結(jié)——Xilinx JESD204B IP testbench解析
- IP核配置
- testbench工程
- 部分代碼解讀
IP核配置
1、IP核為接收功能
2、LMFC buffer設(shè)定為最大
3、4條lane
4、sysref下降沿采樣 (前面的帖子有說明為什么下降沿)
1、選擇第二種,保持更大靈活性(不然更多的功能被包在了IP核中)
1、SYSREF always 前面博文有介紹
2、不開擾碼
3、F K參數(shù)與外面transceiver器件設(shè)定相匹配
4、SYSREF Required on Re-Sync 前面博文有介紹
1、線速率 9.8304Gbps
2、參考時鐘 122.88
3、DRP時鐘 122.88
生成IP核后,右擊IP核,點(diǎn)擊example design,一個tb工程就自動生成了。
testbench工程
以下是xilinx jesd手冊文檔描述的接收testbench工程
| 1 | ADC轉(zhuǎn)換器個數(shù) | M | 4 | 已知前提條件 |
| 2 | ADC與FPGA連接的SERDES通道數(shù) | L | 4 | 已知前提條件 |
| 3 | ADC每幀包含8位字節(jié)數(shù) | F | 4 | 根據(jù)1,2,5,6計算出來 |
| 4 | ADC采樣位數(shù) | N | 14 | 已知前提條件 |
| 5 | JESD204B字大小(4個半字節(jié)) | N` | 16 | 根據(jù)4計算出來 |
| 6 | ADC每幀包含樣本數(shù) | S | 1 | 已知前提條件 |
| 7 | ADC每個多幀包含的連續(xù)幀數(shù) | K | 32 | 可配置 |
| 8 | ADC側(cè)的Device Clock | 491.52MHz | 根據(jù)10,1,5計算出來 | |
| 9 | FPGA側(cè)的Device Clock(Core CLK) | 122.88MHz | 根據(jù)10計算出來 | |
| 10 | JESD204B SERDES速率 | 9.8304Gpbs | 已知前提條件 |
這里要注意,因為例程中M = LANE數(shù),相當(dāng)于1條lane對應(yīng)1個轉(zhuǎn)化器
而一條lane 數(shù)據(jù)輸入或輸出接口是 在245.76M下的32bit輸出
而轉(zhuǎn)化器是491.52下的14(16)bit輸入或輸出。
因此相當(dāng)于一個時鐘下兩個采樣點(diǎn)并行輸入輸出。
在接收校驗?zāi)K中 jesd204_ip_4rx_ad_sig_chk.v
在一個clk時鐘下接收到了2個數(shù)據(jù),即可說明上述說法是正確的
(在實(shí)際應(yīng)用中,一般是存在IQ兩路數(shù)據(jù)的,I/Q分別都需要一個轉(zhuǎn)換器,4個轉(zhuǎn)換器相當(dāng)于2對IQ了)
相關(guān)計算過程如下:
1、F的值根據(jù) MSN`/(8L) = 4116/(84) = 2
1、serdes速率為9.8304Gbps,并行數(shù)據(jù)寬度為32位,core clock為 9.8304G * 0.8 / 32 = 245.76MHz
2、8位字符時鐘character clock為
245.76MHz*4 = 983.4MHz
3、Frame clock 為491.52MHz (F=2,四個字節(jié)一個frame)
4、Multi - Frame clock 為 491.52MHz/32 = 15.36MHz
5、SYSREF周期數(shù)必須是Multi - Frame clock的整數(shù)倍分頻,可以更小,不能更大。
(This generate a periodic SYSREF with period = 4 Multiframes 3.84)
部分代碼解讀
下面涉及兩個任務(wù)
Task:rx_stimulus_send_column 將字節(jié)經(jīng)過8B10B編碼后,
通過Task:rx_stimulus_send_10b_column發(fā)送出去。其中里面還包含一個8B10B編碼函數(shù),因為相對來說比較固定,這里不做解讀,只要知道經(jīng)過了這個函數(shù)后,8bit就變成了10bit即可。
ILA 4個多幀,一個多幀(F = 2 K = 32)64字節(jié),那么4個多幀256個字節(jié)
------------------------------多幀1------------------------------
字節(jié)1 : K28.0 8’h1C (R)
字節(jié)2-63: 數(shù)字:0 – 61 (D)
字節(jié)64 : K28.3 8’h7C (A)
------------------------------多幀2------------------------------
字節(jié)1 : K28.0 8’h1C (R)
字節(jié)2 : K28.4 8’h9C (Q)
字節(jié)3 : pDID 8’h55
字節(jié)4 : {pADJCNT, pBID} 4’h0 4’hA
字節(jié)5 ([4:0]) : LANEID(如果有4個lane,那么每個lane這個字節(jié)分別為0-3)
([7:5]) : {1’b0, pADJDIR, pPHADJ} 0 0
字節(jié)6 : {pSCR, 2’b0, pL} pSCR = 0 pL = Lane的個數(shù)- 1
字節(jié)7 : pF – 1 pF即參數(shù)F
字節(jié)8 : pK – 1 pK即參數(shù)K
字節(jié)9 : pM = Lane的個數(shù) – 1
字節(jié)10 : {pCS, 1’b0, pN} pCS = 2’d2 pN = 5’d13 查詢一下,AD位數(shù)14bit
字節(jié)11 :{pSUBCV, pNt} 3’b001 5’d15
字節(jié)12 :{pJESDV, pS} 3’b001 5’d0
字節(jié)13 :{pHD, 2’b0, pCF}
字節(jié)14 :{pHD, 2’b0, pCF} 1’b0 5’d1
字節(jié)15 :{ pRES1} 8’h5A
字節(jié)16 :{ pRES2} 8’hA5
字節(jié)17 :prechecksum + LANEID
字節(jié)18-63 :數(shù)字:0 – 46
字節(jié)64 : K28.3 8’h7C (A)
------------------------------多幀3------------------------------
字節(jié)1 : K28.0 8’h1C (R)
字節(jié)2-63: 數(shù)字:0 – 61 (D)
字節(jié)64 : K28.3 8’h7C (A)
------------------------------多幀4------------------------------
字節(jié)1 : K28.0 8’h1C (R)
字節(jié)2-63: 數(shù)字:0 – 61 (D)
字節(jié)64 : K28.3 8’h7C (A)
發(fā)射端在檢測到sync后,遇到sysref上升沿開始發(fā)送ILA。紅色箭頭所示
接收端收到了4個多幀后(前后帶K碼),很快tvalid信號拉高,則可以數(shù)據(jù)接收準(zhǔn)備好,可以取數(shù)據(jù)了
tb中的axi_write如果IP核中配置正確的話下面代碼在實(shí)際應(yīng)用中可以不需要
// 0x008: Support ILAaxi_write(2,32'h00000001);// 0x00C: Scrambling dissabledaxi_write(3,32'h00000000);// 0x010: Sysref onceaxi_write(4,32'h00000001);// 0x014: Tx Only register// 0x018: Test mode = Normal operationaxi_write(6,32'h00000000);// 0x020: Octets per Frame F=2axi_write(8,32'h00000001);// 0x024: Frames per Multiframe K=32axi_write(9,32'h0000001F);// 0x028: Lanes in useaxi_write(10,32'd15);// 0x02C: Device subclass 1axi_write(11,32'h00000001);// 0x030: Rx buffer delayaxi_write(12,32'h00000000);// 0x034: Error reporting via ~syncaxi_write(13,32'h00000000);只需要對 寫這個即可
axi_write(1,32'h00000001);看明白了接收,那么發(fā)射也就不難了,這里就不再說明了
寫于2021年11月6日。
如需交流,可以評論區(qū)留言,然后加QQ:172146579
總結(jié)
以上是生活随笔為你收集整理的JESD204接口调试总结——Xilinx JESD204B IP testbench解析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 删除windows文件右击打开方式中的无
- 下一篇: 速达软件二次开发-百威要货单和速达采购订