OSERDES和OBUFDS在LVDS视频传输中的应用
Select IO 资源 分三类:基元、逻辑资源、高级逻辑资源。
A、基元
B、逻辑资源
C、高级逻辑资源
1、OSERDES与ODDR区别:
OSERDES数据入口为1个并行口,2个clk,通过高倍时钟串行化,低位先发LSB;
ODDR 数据入口为2个单bit口,1个clk,clk双沿分别发两个口数据。接收端用双沿采样。
2、通过原语调用MMCM或PLL,也可用GUI方式。
3、OSERDES2
模块实现把并行数据转化为串行数据,串行时钟的速率与并行数据宽度有关,可参见《UG190-输出并串转换(OSERDES)-Virtex5》;
1)宽度扩展接法
2)数据输出有DDR和SDR两种方式
3)数据输出的延迟
4、OBUFDS
原语实现把单端转差分,一个输出原信号,一个输出取反信号,需明确信号电平。
OBUFDS #(
.IOSTANDARD("DEFAULT"), // Specify the output I/O standard
.SLEW("SLOW") // Specify the output slew rate
) OBUFDS_inst (
.O(O), // Diff_p output (connect directly to top-level port)
.OB(OB), // Diff_n output (connect directly to top-level port)
.I(I) // Buffer input
);
5、在LVDS视频中的应用
1)整体信号的处理方案
2)差分对在配置管脚时输入p端,自动匹配出n端:
3)时钟输出与数据宽度匹配
- 钟输出方法
时钟为与数据同路径,且相位固定,也采用 OSERDES,用5倍时钟输出1倍时钟。
-- Clock needs no encoding, send a pulse
ClockSerializer: entity work.OutputSERDES
generic map (
kParallelWidth => 10) -- TMDS uses 1:10 serialization
port map(
PixelClk => PixelClkIO,
SerialClk => SerialClkIO,
sDataOut_p => TMDS_Clk_p,
sDataOut_n => TMDS_Clk_n,
--Encoded parallel data (raw)
pDataOut => "1111100000",
aRst => pRstLck);
4) DDR方式10:1宽度仿真
参考资料 《UG190 Virtex-5 FPGA User Guide》