主要参考:
 https://blog.csdn.net/weixin_50810761/article/details/137383681
 xilinx原语详解及仿真——ISERDESE2
 作者:电路_fpga
https://blog.csdn.net/weixin_45372778/article/details/122036112
 Xilinx ISERDESE2应用笔记及仿真实操
 作者:郭郭的柳柳在学FPGA
原理
- 校准模式
输入端循环输入8’h5c和8’h82交替的校准序列,接收端比较接收到的并行数据,如果与发送端不一致,则产生1个CLKDIV的BITSLIP信号,使并行数据的顺序滑动一次,等待3个CLKDIV后,比较滑动后的结果是否一致,如果一致则不再产生BITSLIP信号,直到检测到8个连续一致信号,认为字节边界已经对齐,随后进入工作模式。 - 工作模式
可以传输字节边界对齐的数据,也可以产生伪随机字节序列检测整个发送和接收通路的正确性。 
重要参数
重要参数有两个:DDR、NETWORKING
ISERDESE2 #(
			.DATA_RATE("DDR"),//位时钟的上升沿和下降沿都有效
			.DATA_WIDTH(DESER_FACTOR),
			.INTERFACE_TYPE("NETWORKING"),//可以使用BITSLIP
			.DYN_CLKDIV_INV_EN("FALSE"),
			.DYN_CLK_INV_EN("FALSE"),
			.NUM_CE(2),
			.OFB_USED("FALSE"),
			.IOBDELAY("NONE"),
			.SERDES_MODE("MASTER"))
 
重要端口


时钟方案

 
bit顺序

 发送方:
.D1         ( din[0]        ),
.D2         ( din[1]        ),
.D3         ( din[2]        ),
.D4         ( din[3]        ),
.D5         ( din[4]        ),
.D6         ( din[5]        ),
.D7         ( din[6]        ),
.D8         ( din[7]        ),
 
接收方(高低位颠倒):
.Q1         ( q[7]          ),
.Q2         ( q[6]          ),
.Q3         ( q[5]          ),
.Q4         ( q[4]          ),
.Q5         ( q[3]          ),
.Q6         ( q[2]          ),
.Q7         ( q[1]          ),
.Q8         ( q[0]          ),
 
滑动

 SDR模式下:每次的BITSLIP操作,会使输出左移1位;当8次操作后,恢复到最初状态;
 DDR模式下:每次的BITSLIP操作,会使输出交替进行右移1位和左移3位操作,当8次操作后,恢复到最初状态;
移位延时
BitSlip与CLKDIV同步,移位脉冲BITSLIP在CLKDIV上升沿有效后,3个CLKDIV完成移位。
 
BITSLIP的作用
修改串转并的起始位置
 BITSLIP前:
 
BITSLIP后:
 丢弃1bit
 
串并转换延时
2个CLKDIV
 



















