实现将SC130GS采集的黑白图像数据缓存进DDR3,并以1024*600@60的视频时序输出到LVDS
屏幕显示。其中,DDR3工作频率为600MHz,SC130GS输入的图像数据大小为1280*1024,帧率为
60帧,数据格式为RAW10。
底板提供了一个LVDS显示接口,采用40P 0.5mm间距的FPC连接 器,包含5对差分信号和6个控制信号,分别为4Data+1Clk和I2C、复 位、中断、PWM、使能信号。其中I2C、复位和PWM信号由核心板上 FPGA的4个1.8V电平信号通过底板上的双向电平转换芯片转换为3.3V 电平信号后引出到接口上。LVDS接口连接示意图:
电路原理图如下:
代码分析:
//
//Written by GowinSynthesis
//Tool Version "V1.9.10.02"
//Sat Oct 12 14:33:36 2024
//Source file index table:
//file0 "C:/Gowin/Gowin_V1.9.10.02_x64/IDE/ipcore/DDR/data/ddr_138k.v"
`timescale 100 ps/100 ps
module ddio_lvds (
din,
fclk,
pclk,
reset,
q
)
;
input [6:0] din;
input fclk;
input pclk;
input reset;
output [0:0] q;
wire VCC;
wire GND;
OVIDEO ovideo_gen[0].ovideo_inst (
.Q(q[0]),
.D6(din[6]),
.D5(din[5]),
.D4(din[4]),
.D3(din[3]),
.D2(din[2]),
.D1(din[1]),
.D0(din[0]),
.PCLK(pclk),
.FCLK(fclk),
.RESET(reset)
);
VCC VCC_cZ (
.V(VCC)
);
GND GND_cZ (
.G(GND)
);
GSR GSR (
.GSRI(VCC)
);
endmodule /* ddio_lvds */
module ddio_lvds (
din, // 7位输入数据(宽度6:0,含D0-D6共7位)
fclk, // 高频时钟(可能为系统时钟或DDR时钟)
pclk, // 并行时钟(可能用于数据锁存或同步)
reset, // 复位信号(高电平有效?需结合IP核特性)
q // 1位LVDS输出(可能为差分信号的正极)
);
din
转换为单路 LVDS 格式输出q
,适用于高速串行数据传输场景(如视频信号、DDR 接口等)。ddio_lvds
中,ddio
可能指双数据速率输入输出(Dual Data Rate I/O),lvds
为低压差分信号,暗示涉及高速串行通信。
OVIDEO ovideo_gen[0].ovideo_inst (
.Q(q[0]), // 输出LVDS信号(单端,实际可能需配合差分对)
.D6(din[6]), .D5(din[5]), ..., .D0(din[0]), // 7位输入数据
.PCLK(pclk), // 并行时钟(用于锁存输入数据)
.FCLK(fclk), // 高频时钟(可能用于生成串行时钟或数据采样)
.RESET(reset) // 复位信号(控制IP核内部状态机)
);
din[6:0]
可能对应视频信号的 RGB565 格式(如 D6-D0 对应 G [5:0] 或类似组合),或自定义协议的并行数据。pclk
为并行数据的同步时钟,fclk
为高频串行时钟(通常为pclk
的倍数,如 2x、4x 等,用于实现高速串行输出)。fclk
是pclk
的 8 倍,则可能实现 8b/10b 编码或类似的串化逻辑。
VCC VCC_cZ ( .V(VCC) ); // 电源实例化
GND GND_cZ ( .G(GND) ); // 接地实例化
GSR GSR ( .GSRI(VCC) ); // 全局复位使能(高电平有效)
din[6:0](并行输入) → OVIDEO IP核 → 串化处理 → q[0](LVDS单端输出)
pclk
驱动);2、串化器(Serializer)将 7 位数据转换为串行流;3、LVDS 驱动器(如差分缓冲器)生成符合 ANSI-644 标准的信号
编译下载固件如下:
实际效果如下:
实际图ddio
(双数据速率)特性,可能用于 FPGA 与 DDR 存储器之间的接口逻辑,实现高速数据读写(如 DDR3/DDR4 的控制信号传输)。q[0]
,实际应用中需搭配差分对(如q_p
和q_n
),可能需修改模块端口或 IP 核配置。fclk
和pclk
的频率关系满足 IP 核要求(如fclk = 8 * pclk
),否则可能导致数据采样错误或串化失败。reset
信号的极性(当前代码未明确,但GSR
实例化中GSRI=VCC
可能暗示复位信号为高电平有效),需与 IP 核文档一致。