1.前言
本文僅對UG471 第3章《Advanced SelectIO Logic Resources》部分進行翻譯和學習解讀。
其他部分,后續補充。
水平所限,有不足之處,歡迎拍磚。
2.ISERDESE2原語介紹
SERDESE2是專用的串并轉換器,它在完成串并轉換時并不會帶來多余的時序上的問題,從而很適合應用到高速源同步應用中。比如攝像頭數據。
專用解串器/串并轉換器
它可以完成高速數據傳輸同時不需要FPGA端匹配數據頻率,這個轉換器支持SDR(single data rate)和DDR(double data rate)。SDR模式支持2-,3-,4-,5-,6-,7-,8bit位寬;DDR模式支持4-,6-,8-bit位寬。10或14-bit需要兩個級聯。
Bitslip 子模塊
該子模塊可以使設計者重新排列輸入的并行數據。可用于源同步tranining。
- 對strobe-based 類型存儲接口的專用支持
- 對networking接口的專用支持
- 對DDR3接口的專用支持
- 對QDR接口的專用支持
- 對異步接口的專用支持
3.原語例化
ISERDESE2 #(
.DATA_RATE("DDR"), // DDR, SDR
.DATA_WIDTH(4), // Parallel data width (2-8,10,14)
.DYN_CLKDIV_INV_EN("FALSE"), // Enable DYNCLKDIVINVSEL inversion (FALSE, TRUE)
.DYN_CLK_INV_EN("FALSE"), // Enable DYNCLKINVSEL inversion (FALSE, TRUE)
// INIT_Q1 - INIT_Q4: Initial value on the Q outputs (0/1)
.INIT_Q1(1'b0),
.INIT_Q2(1'b0),
.INIT_Q3(1'b0),
.INIT_Q4(1'b0),
.INTERFACE_TYPE("MEMORY"), // MEMORY, MEMORY_DDR3, MEMORY_QDR, NETWORKING, OVERSAMPLE
.IOBDELAY("NONE"), // NONE, BOTH, IBUF, IFD
.NUM_CE(2), // Number of clock enables (1,2)
.OFB_USED("FALSE"), // Select OFB path (FALSE, TRUE)
.SERDES_MODE("MASTER"), // MASTER, SLAVE
// SRVAL_Q1 - SRVAL_Q4: Q output values when SR is used (0/1)
.SRVAL_Q1(1'b0),
.SRVAL_Q2(1'b0),
.SRVAL_Q3(1'b0),
.SRVAL_Q4(1'b0)
)
ISERDESE2_inst (
.O(O), // 1-bit output: Combinatorial output
// Q1 - Q8: 1-bit (each) output: Registered data outputs
.Q1(Q1),
.Q2(Q2),
.Q3(Q3),
.Q4(Q4),
.Q5(Q5),
.Q6(Q6),
.Q7(Q7),
.Q8(Q8),
// SHIFTOUT1, SHIFTOUT2: 1-bit (each) output: Data width expansion output ports
.SHIFTOUT1(SHIFTOUT1),
.SHIFTOUT2(SHIFTOUT2),
.BITSLIP(BITSLIP), // 1-bit input: The BITSLIP pin performs a Bitslip
// CE1, CE2: 1-bit (each) input: Data register clock enable inputs
.CE1(CE1),
.CE2(CE2),
.CLKDIVP(CLKDIVP), // 1-bit input: TBD
// Clocks: 1-bit (each) input: ISERDESE2 clock input ports
.CLK(CLK), // 1-bit input: High-speed clock
.CLKB(CLKB), // 1-bit input: High-speed secondary clock
.CLKDIV(CLKDIV), // 1-bit input: Divided clock
.OCLK(OCLK), // 1-bit input: High speed output clock used when
// Dynamic Clock Inversions: 1-bit (each) input: Dynamic clock inversion pins to switch clock polarity
.DYNCLKDIVSEL(DYNCLKDIVSEL), // 1-bit input: Dynamic CLKDIV inversion
.DYNCLKSEL(DYNCLKSEL), // 1-bit input: Dynamic CLK/CLKB inversion
// Input Data: 1-bit (each) input: ISERDESE2 data input ports
.D(D), // 1-bit input: Data input
.DDLY(DDLY), // 1-bit input: Serial data from IDELAYE2
.OFB(OFB), // 1-bit input: Data feedback from OSERDESE2
.OCLKB(OCLKB), // 1-bit input: High speed negative edge output clock
.RST(RST), // 1-bit input: Active high asynchronous reset
// SHIFTIN1, SHIFTIN2: 1-bit (each) input: Data width expansion input ports
.SHIFTIN1(SHIFTIN1),
.SHIFTIN2(SHIFTIN2)
);
4.ISERDESE2框圖

串行輸入: 即串行數據輸入(D: 與IOB相連, DDLY來源于IDELAYE2原語的輸出)
時鐘接口:包含高速時鐘CLK ,分頻時鐘CLKDIV等;
數據對齊模塊:Bitslip,用于源同步,重新排列輸入的并行數據;
組合輸出O:O輸出不寄存,根據參數配置輸出D / DDLY;
級聯接口:1個ISERDESE2最大位寬為8位,想要實現10-,14bit的數據,就需要級聯兩個ISERDESE2;
并行數據輸出:Q1-Q8



有些地方可能翻譯的不是很準確,附上手冊原文。
5.1時鐘接口
提供ISERDESE2工作的高速源同步串行時鐘,并行數據獲取時鐘和控制時鐘。

5.2并行數據輸出
輸入輸出的順序相反,具體見下圖:
當輸入D1為A,輸出Q8為A

5.3 數據輸出選擇
根據IOBDELAY參數設置的不同,組合輸出O與寄存輸出Q1-Q8的輸出選擇:
D 、 DDLY 的意思前文已講過,不再重復。

5.4級聯接口
該接口用于實現DDR模式下,位寬擴展為10bit,14bit;
通過級聯接口與另外一個ISERDESE2相接;

6.數據對齊操作
SDR Mode:
輸出每次左移1位;當8次操作后,恢復到最初狀態;
DDR Mode:
輸出交替進行右移1位和左移3位操作,當8次操作后,恢復到最初狀態;

注意:
1. 同步于CLKDIV時鐘,本小節所說的時鐘周期特指CLKDIV時鐘周期
2. 在“NETWORKING”模式下使用
3. 類似于一個桶式移位”Barrel_Shifter”
4. bitslip只能拉高1個clkdiv時鐘周期
5. bitslip兩次拉高之間必須間隔至少一個時鐘周期;
6. 用戶邏輯需等待最少2個clkdiv時鐘周期(SDR模式)/3個時鐘周期(DDR)后,數據移位才能完成。
審核編輯:符乾江
-
數據
+關注
關注
8文章
7246瀏覽量
91183 -
Xilinx
+關注
關注
73文章
2183瀏覽量
124472
發布評論請先 登錄
AD7606的VxGND必須接地嗎?
ISERDESE2原語端口及參數介紹

AI助力實時翻譯耳機

影目科技發布全球首款同傳翻譯眼鏡INMO GO2
SRIO介紹及xilinx的vivado 2017.4中生成srio例程代碼解釋

調試Xilinx Zynq + ADS58C48,ADC使用的是LVDS模式,ADC不能正常工作怎么解決?
ADC3583怎么用Xilinx的ISERDESE2采集信號?
UC3843BD1R2G安森美高性能電流模式PWM控制器-uc3843中文資料應用電路
MSP430F471x3,MSP430F471x6, MSP430F471x7混合信號微控制器數據表

評論