FPGA 入门 45:VGA 显示入门——行场同步与像素坐标
更新时间:2026-09-12。本文是
fpga/入门层第 47 篇。前置:计数器与分频、PLL/MMCM 时钟向导;相关:外设地图、BRAM。
本文要回答的问题
- 为什么一行明明只有 640 个可见像素,计数器却要数到 800?前沿、同步、后沿在 CRT 时代和液晶时代各起什么作用?
- 像素时钟怎么从行帧参数精确算出来?为什么 25.175MHz 这种怪频率不是随便定的,PLL 配置时要注意什么?
- DE(数据使能)模式和 HSYNC/VSYNC 模式有什么区别?现代显示器为什么更偏好 DE?
- 4 位/8 位电阻 DAC 怎么估算电阻值和颜色误差?为什么 VGA 模拟通道的电平是 0.7V 而不是 3.3V?
- 彩条、棋盘、字符、移动图形各练什么能力?帧缓存容量怎么算,640×480 真彩为什么超出入门 FPGA 的片内 RAM?
- 行缓冲(line buffer)、逐字符模式(text mode)、乒乓帧缓存分别在什么场景使用?
- 上板时「无信号、滚屏、偏色、闪烁、撕裂」五类典型症状如何按计数器、时钟、消隐、时序参数顺序定位?
读完本文,你应当能凭一张时序参数表写出任意分辨率的时序发生器,用彩条点亮显示器,并理解从 VGA 到 HDMI/DVI/LVDS 这条视频接口演化路线背后不变的扫描模型。
一、信号与扫描方式
信号:R/G/B(电阻网络做简单 DAC,0~0.7V 模拟)+ HSYNC + VSYNC + GND
扫描:左→右逐行,上→下逐帧;每秒约 60 帧;回扫期为消隐(blanking)
每行/每帧:可见区 → 前沿 → 同步脉冲 → 后沿二、640×480@60Hz 参数(VESA,负脉冲)
| 可见 | 前沿 | 同步 | 后沿 | 总长 | |
|---|---|---|---|---|---|
| 水平(像素) | 640 | 16 | 96 | 48 | 800 |
| 垂直(行) | 480 | 10 | 2 | 33 | 525 |
像素时钟 25.175MHz(≈800×525×60)。800×600/1024×768 只改参数,时钟用 PLL 从板载晶振得到。
三、可综合时序生成器
module vga_timing #(
parameter H_VIS=640, H_FP=16, H_SYNC=96, H_BP=48,
parameter V_VIS=480, V_FP=10, V_SYNC=2, V_BP=33
)(
input logic pclk, rst_n, // 25.175MHz 像素时钟
output logic hsync, vsync, de,
output logic [9:0] x, y
);
localparam H_TOTAL = H_VIS+H_FP+H_SYNC+H_BP; // 800
localparam V_TOTAL = V_VIS+V_FP+V_SYNC+V_BP; // 525
logic [9:0] hc=0, vc=0;
always_ff @(posedge pclk) begin
if (!rst_n) begin hc<=0; vc<=0; end
else if (hc==H_TOTAL-1) begin hc<=0;
vc <= (vc==V_TOTAL-1) ? 0 : vc+1; end
else hc <= hc+1;
end
// 同步区间(负脉冲)
always_comb hsync = ~(hc inside {[H_VIS+H_FP : H_VIS+H_FP+H_SYNC-1]});
always_comb vsync = ~(vc inside {[V_VIS+V_FP : V_VIS+V_FP+V_SYNC-1]});
always_comb de = (hc < H_VIS) && (vc < V_VIS); // 可见区
always_comb begin x = hc; y = vc; end
endmodule四、用坐标产生画面
// 顶层:消隐区必须输出黑;可见区按 (x,y) 出图
logic [3:0] r,g,b;
always_comb begin
if (!de) r=g=b=4'd0; // 消隐拉黑
else begin // 彩条:x 高位选段;棋盘:x[5]^y[5]
r = x[7:5]==3'd0 ? 4'hF : 4'h0;
g = x[7:5]==3'd1 ? 4'hF : 4'h0;
b = x[7:5]==3'd2 ? 4'hF : 4'h0;
end
end复杂图像把 (x,y) 拼成地址读 BRAM/显存(见入门 29)。
六、消隐区间的来历:为什么计数器要数到 800
VGA 标准诞生于 CRT 显示器时代:电子束从左到右扫完一行后,需要时间「关束、快速回到下一行起点」,这段不可见的回程时间就是水平消隐;垂直方向扫完一帧后电子束要从右下角回到左上角,对应垂直消隐。标准把消隐期再切成三段:前沿(可见区结束后给接收端的缓冲)、同步脉冲(明确告诉显示器「现在回扫」的时间基准)、后沿(同步结束后到下一行可见区开始前的稳定时间)。所以一行的节拍是「可见 640 → 前沿 16 → 同步 96 → 后沿 48 → 共 800 像素周期」,一帧是 480 加三段共 525 行。
液晶显示器没有电子束,但完整保留了这套时序约定,因为显示控制器和显卡接口要向后兼容。显示器内部在同步脉冲上对齐它的采样相位,在 DE 有效区间锁存像素。理解这段历史后就不会把消隐参数当「无用开销」——它们是发送端和接收端共享的时间坐标系。改分辨率时不是随便挑数字,而是查 VESA Coordinated Video Timing 或显示器手册的时序表;自己乱给的参数在宽容的显示器上也许能亮,换一台就黑屏。
七、像素时钟的算术与 PLL 配置
像素时钟频率完全由时序参数决定:f_pix = H_TOTAL × V_TOTAL × 刷新率。640×480@60 即 800×525×60=25.2MHz,标准取 25.175(行业历史值,对应 59.94Hz 体系);800×600@60 约 40MHz(1056×628×60);1024×768@60 约 65MHz(1344×806×60);720p60 约 74.25MHz;1080p60 约 148.5MHz。这些「怪」频率来自 NTSC 色彩副载波的历史继承(2.25MHz 的整数或分数倍),不是计算错误。
板载晶振通常是 50/100MHz,得不到这些频率,要用 PLL/MMCM 综合。配置时注意:PLL 输入抖动和压控振荡器范围决定输出能否精确到目标频率;25.175 与 25.0 的偏差约 0.7%,多数显示器容忍,但多显示器级联或转接 VGA-HDMI 时容易失败,应尽量用精确频率;PLL 输出 locked 前不要输出画面,时序生成器复位应在 locked 后释放(见 PLL/MMCM 时钟向导)。像素时钟是时序基准,它偏 1%,整帧每行都累积偏差,表现为缓慢横向滚动——这是判断「时钟不准与参数不对」的关键指纹。
八、HSYNC/VSYNC 模式与 DE 模式
早期 VGA 只有同步脉冲模式:接收端靠同步脉冲位置反推可见区起点。现代 LCD 控制器普遍支持 DE(Data Enable)模式:除时钟和像素外,送一个 DE 信号,DE 高的区间就是有效像素,消隐期 DE 拉低、颜色随便(通常黑)。DE 模式的好处是时序参数有少量偏差时画面只会轻微偏移而不会失步,且更适配数字接口。DVI/HDMI 就是在 DE 模型上发展的:消隐期不传像素,同步编码在控制周期里。
实现上两者可以同时产生:本文骨架的 de 与 hsync/vsync 并存,既能驱动老式 VGA 转接,也能给后续 LVDS/HDMI 模块用。注意同步极性:不同分辨率规定不同极性组合(640×480@60 两个同步都是负极性,800×600@60 双正,1024×768@60 双负),极性错误在支持极性自检测的显示器上无碍,在老显示器上就是黑屏或闪烁——参数表里的 polarity 位要逐行核对。
九、电阻网络 DAC:模拟电压怎么来
VGA 的 RGB 是模拟信号,标准满幅 0.7V。最简单的 DAC 是 R-2R 或加权电阻网络:几位 FPGA 输出各串一个电阻接到 VGA 管脚,利用外部 75Ω 端接做分压。4 位色深时每通道需要 4 个精密电阻,误差直接变成色阶不平;更实用的是 2~3 位每通道(8 色/64 色)教学方案。电阻值计算要考虑 FPGA 的输出阻抗(几十欧)和 75Ω 终端,经典值如最高位 130Ω、其余倍乘,网上有标准表,照抄即可但要用 1% 精度电阻。
更高级的方案是专用视频 DAC(三通道 8 位带同步电流输出)或走 DVI/HDMI 的数字通道彻底避免模拟误差。入门阶段理解三件事:FPGA 输出的是逻辑电平,颜色电压是外部网络「算」出来的;输出摆幅由电阻和端接共同决定,不接显示器(无 75Ω 终端)时电压会翻倍;模拟线长了要防反射,靠近 FPGA 端串联小电阻做源端匹配。色偏、颜色缺失、对比度低,九成是电阻焊错或通道位序接反(见 外设地图 的管脚核对)。
十、画面生成的四个层次
按难度阶梯练四个实验,每个对应一类设计问题。彩条/棋盘:纯组合,x、y 的高位直接映射颜色,零存储,先验证时序和 DAC。移动图形:几个寄存器存方块坐标,每帧更新(利用 vsync 脉冲做 tick),练帧级时序和边界碰撞,仍然零帧存。字符叠加/文本模式:屏幕分 8×16 字符格子,坐标高几位查字符码表(ASCII VRAM,每字符一字节,80×30 仅 2400 字节,一块小 BRAM 可放),字符码再查字模 ROM 得到当前扫描线的 8 位点阵。这是早期显卡的做法,资源极省,适合做状态显示终端。位图帧缓存:每个像素至少 8 位,640×480×1 字节约 300KB,远超入门 FPGA 的片内 BRAM,实际要用外部 SRAM/SDRAM 做显存,引出地址生成、读写仲裁、刷新时序等一整套问题。
中间路线是行缓存:只缓存一两行,适合流式图像处理(缩放、卷积),上游边写行缓存、下游按扫描节奏读,和 FIR 滤波 的延迟线思想同源。视频系统再往后就是双帧乒乓、带 alpha 的图层叠加,进阶在 视频图像流水线 展开。
十一、读写节奏、撕裂与乒乓
帧缓存系统有两个时钟域/节奏:生产者按自己的节拍写显存,显示端按像素时钟严格顺序读。若两者频率或相位不同,显示器可能在一帧扫描途中读到正在被改写的数据:上半屏是旧帧、下半屏是新帧,接缝随频率差上下移动,称为画面撕裂。标准解法有三种:①双帧乒乓,两块帧缓存交替写读,生产者只在 vsync 边界切换,显示器永远读一块完整的帧(代价是延迟一帧、显存翻倍);②FIFO 行缓冲做异步流控,适合上游帧率与显示相同但时钟独立的情况;③同步锁相,让上游时钟锁在显示时钟上(摄像头时序驱动显示)。
即使只做静态图,读显存也有固定节奏:每个像素时钟出一个地址、读数据有 BRAM 一拍延迟,地址要相对 x 提前一拍,颜色打一拍而 hsync/de 时序不变(延迟匹配)。这类「数据比坐标晚一拍」的问题是视频流水线最常见的错位来源,修法永远是让控制信号和数据一起走同样的流水线级数。
十二、从 VGA 到现代视频接口
理解 VGA 后再看其他显示接口,会发现它们共享同一套时序模型:可见区、消隐、同步、像素坐标。DVI/HDMI 把 RGB 加同步编码成三组 TMDS 差分串行对(每通道 10 比特 8b/10b 编码),像素时钟变成 10 倍串行码率,1080p60 达 1.485Gbps 每通道;FPGA 要用并串转换原语(OSERDES)和配对的高速时钟,板级要求差分阻抗和等长。LVDS 屏(7:1 串行化)常见于工控屏,原理类似但编码不同。MIPI DSI 是手机屏的低压差分通道,通常要桥接芯片。DisplayPort 用 8b/10b 加分组包结构,时序包在数据流里,但控制器内部仍生成一套传统同步时序。入门路线建议:VGA 彩条 → DVI/HDMI 直接输出(很多板卡配 TMDS 芯片,难度可控)→ 帧缓存图形 → 摄像头采集和视频处理。每一步都在复用本文的计数器时序核(高速接口见进阶 LVDS 源同步)。写显示逻辑还有一个特殊收获:它能训练「多个时间尺度在一个设计里共存」的思维。像素时钟以纳秒计,行周期以微秒计,帧刷新以毫秒计,软件里这是三层定时任务,硬件里就是三个嵌套计数器和比较器,全部确定、无中断、无调度抖动。一旦你习惯用计数器而不是定时器中断去思考周期性行为,再回头写嵌入式状态机、电机控制、采样调度,设计风格都会发生变化。这正是 VGA 这个「老接口」在教学中长盛不衰的原因——它简单到一块最便宜的 FPGA 就能驱动,又完整包含了时钟生成、精确时序、坐标系统、显存组织、数模转换、物理接口六大经典主题,是性价比最高的综合练习之一。再给一个扩展练习建议:在彩条之上加一个 UART 可改参数的测试图发生器——上位机发命令切换彩条、渐变、网格、移动方块,顺便完成显示和通信两个子系统的联动。这个小项目不依赖外部显存却覆盖了参数解析、坐标生成、多层图案优先级和帧边界处理,做完后再接真正的帧缓存和视频流水线,会发现绝大部分控制逻辑已经写过一遍。显示方向的学习曲线在 VGA 之后主要是物理层升级,时序发生器这个核心几乎可以原样带走。最后给一个常见故障的快速判断法:显示器提示无信号,先用分频计数让 HSYNC 驱动一个 LED(或量频率),有闪烁说明像素时钟和同步逻辑在跑,问题在物理连接或电平;完全不亮说明时序核本身没运行,回去查 PLL locked 和复位。把「时序核在翻转」和「接口有图像」分成两层验证,显示问题的定位速度会快很多,这也是 上板调试思路 分层法在视频接口上的直接应用。再补一个色彩入门知识:VGA 的 RGB 各通道是线性电压,但人眼对亮度的感知是非线性的,所以真彩色系统里有 gamma 校正;入门阶段用纯色条可以完全忽略它,但当你发现渐变条带不均匀、暗部细节看不清时,就要查显示器和数据源的 gamma 设置。这是从「能显示」走向「显示正确」的第一个坑。最后把视频学习路线收个口:完成 VGA 彩条后,下一步最有价值的练习不是立刻冲 1080p,而是把一个字符终端做完整——用 UART 收字节、在 80×30 文本格子里滚动显示,这一个项目同时练了通信、时序、BRAM 查表和显示四个主题,且完全不需要外部显存。再下一步接外部 SRAM/SDRAM 做位图,就自然进入存储控制器和跨时钟域的领域。每一步都以前一步的时序核为核心,难度台阶平滑,比直接啃 HDMI IP 收获大得多。最后提醒一个跨时钟问题:很多设计的像素时钟和产生图形的业务时钟不同(图像数据由 100MHz 系统处理,显示按 25MHz 读),二者交界处必须走异步 FIFO 或双帧缓存,不能让显示计数器直接去采系统域的坐标和数据。哪怕只是移动方块,坐标更新也应在 vsync 节拍下进行,保证一帧内坐标稳定。显示子系统往往是初学者第一次真实面对「两个独立频率时钟域」的项目,正好把前面学的 CDC 知识用在看得见的画面上。最后一个练习建议:用 ILA 抓 hsync、vsync 和 de,在波形里量出一行的像素数和一帧行数,和参数表逐项对照。这一步看似简单,但它建立的是「软件计数器输出」到「物理接口时序」的直接对应——以后调试任何源同步接口(摄像头、MIPI、BT1120),方法都是同一个:先在逻辑侧确认计数器正确,再在管脚侧确认电平和边沿,最后查物理连接。VGA 之所以是最好的训练场,正是因为这个闭环足够短、反馈又是一整屏画面。最后讲一个分辨率选择的实用判断:入门实验用每通道 1~2 位(8 色)足够验证时序,接电阻 DAC 做照片级显示才需要每通道 8 位。很多新手一上来就追求 24 位真彩色,却没有片外显存和高速 DAC,结果工程复杂度爆炸还出不了图像。先在低色深下把时序、坐标、帧缓存全部跑通,再按「显示需求」而不是「参数好看」增加位宽,是工程上最稳的路径。最后把 VGA 项目的验收标准写清楚,方便你判断「做完了」:显示器稳定显示无滚动;参数表 640×480@60 下 HSYNC/VSYNC 频率实测在容差内;彩条、棋盘、移动方块至少三种图案可切换;消隐期 RGB 全黑;跨时钟(若有)走异步 FIFO。达到这五条,显示时序核就算真正掌握,后续任何数字显示接口都是在这个核外面换物理层和编码方式。最后给一个常见误区的提醒:很多新手在画面偏移时第一反应是改计数器,实际上偏移方向直接对应参数错误——画面整体向右偏,说明可见区起点(同步脉冲加前沿的长度)算多了;向左偏则相反;上下偏移对应垂直参数。先按偏移方向对照参数表,再动手改,不要盲目试数。显示器对小幅偏差有一定容忍,但稳定的图像必须来自严格正确的时序,而不是「看起来差不多」。这也是显示类工程和纯逻辑练习最大的区别:最终裁判是人的眼睛和显示器的物理锁相能力,任何「差不多」都会在换一台显示器或换一批器件时暴露。严格按参数表实现、用 ILA 和频率测量验证,才是可移植、可交付的做法。当你能独立从时序参数表推出可工作的时序核,你就掌握了几乎所有光栅类显示和源同步接口的共同内核。这也是 VGA 项目在求职作品集中常被低估的原因:它虽然老旧,却完整覆盖了精确时序、坐标系统、存储组织、CDC 和物理接口五个 FPGA 核心能力,比一堆只在仿真里跑的小练习更能证明你的系统实现功底。
十三、上板分诊表
- 显示器提示无信号:像素时钟没有或频率差太远(先让 hsync 分频后点灯证明在翻转)、同步管脚绑错、电平标准不对、接口电源/转接问题。
- 有画面但纵向缓慢滚动:行/帧总长度错或像素时钟偏差,显示器无法锁定——用 ILA 量 hsync 频率对理论值(31.5kHz 行频、60Hz 场频)。
- 画面稳定但整体水平/垂直偏移:前后沿参数不对,同步脉冲相对可见区位置偏了;对照 VESA 表重算。
- 有斜向回扫亮线、整体发灰:消隐期没有输出黑。
- 颜色错乱/缺色:电阻网络、通道位序、管脚映射;先输出纯红纯绿纯蓝测试图逐通道验。
- 运动物体边缘撕裂:帧缓存读写节奏问题,需要乒乓或同步。
- 高温或长时间后失步:像素时钟裕量不足或模拟信号完整性差,检查 PLL 参数和端接。
十四、时序参数表的计算与跨分辨率移植
很多人能背下 640×480 的五个数字,却不知道它们怎么来,换一个分辨率就手足无措。其实参数表只有两行公式:像素时钟等于「一行总像素数 × 一帧总行数 × 刷新率」,640×480@60 下为 800×525×60≈25.175 兆赫兹;每个方向的总长度都是「可见区 + 前肩 + 同步脉宽 + 后肩」。VESA 和显示器手册都会给出以像素为单位的四个区间和同步极性,照着填即可,不需要发明。换成 800×600@60 时,总数变成 1056×628、像素时钟约 40 兆;1024×768@60 则是 1344×806、约 65 兆。参数化写法的价值在这里兑现:只要把可见宽度、前后肩、同步宽度等做成 parameter,同一个时序发生器换一组参数就支持新分辨率,计数器和比较逻辑一行都不用改。
跨分辨率移植有两个容易踩的点。其一是参数位宽:行计数器至少要能装下一行总像素数,垂直计数器要能装下一帧总行数,硬编码位宽在分辨率提高后会悄悄回绕,仿真时表现为画面周期性撕裂。其二是 PLL 输出精度:廉价板上的晶振频率不一定能整除目标像素时钟,PLL 的分频倍频组合产生的频率可能有百分之几偏差,CRT 和多数显示器对行频有容差,LCD 的采集容差更紧,偏差过大直接黑屏。正确做法是在时钟向导里查看实际输出频率和误差,超过 0.5% 就要换输入晶振或换一组参数。把参数表、PLL 配置、实测行频三者写进工程注释,这个显示核才算真正可移植。
十五、显存组织、带宽计算与帧率
一旦画面复杂到彩条和方块装不下,就要面对显存问题。先算最小容量:一帧 640×480、每像素 8 位索引色约需 300KB,24 位真彩则接近 900KB,都远超小器件的片上 BRAM,所以真实显示系统通常外挂 SDRAM 或 SRAM。再算带宽:640×480@60 的 24 位像素流约为 530Mbps,1024×768@60 升到约 1.2Gbps,1080p60 接近 3Gbps,而且这还只是读端口,若 CPU 或绘图引擎同时写显存,带宽要再叠加并考虑读写仲裁损失。带宽算不过来是很多显示项目后期推倒重来的根因,应该在选存储器阶段就完成。
显存的地址组织也有讲究。线性帧缓存把像素按行顺序存放,显示侧顺序读、效率最高,但绘图侧画一条垂直线时地址间隔等于行宽,命中率差;分块(tiling)布局把 8×8 或 16×16 的小块连续存放,绘图友好却增加显示侧的地址生成复杂度。双缓冲用两块帧缓存解决撕裂:显示读旧帧、绘图写新帧,消隐期间交换指针,代价是容量翻倍。更省资源的方案是脏矩形和行缓存——只缓存正在显示的几行,绘图引擎赶在行同步之间把下一行填好,这在字符界面和简单图形界面里足够用,也是低端 FPGA 做显示的常见选择。判断该用哪种方案,永远先回答两个问题:画面谁在产生、更新频率多快,而不是先挑存储器型号。
十六、把显示核做成可复用 IP
当一个时序核经历了三四个项目,就值得把它打磨成真正的可复用 IP,而不是每次复制整个工程文件夹。第一步是参数化:分辨率四参数、像素位宽、同步极性、坐标原点定义全部做成 parameter,并加参数合法性检查(总长度必须大于可见区、同步宽度不能超过消隐区),违例时用综合属性直接报错。第二步是划清边界:时序生成(纯计数器)、像素取数(读接口加 ready/valid)、数据来源(显存或图形发生器)分成三个模块,中间用标准流式接口连接,这样换数据源不用碰时序核,换分辨率不用碰图形逻辑。第三步是补齐验证:testbench 检查同步脉冲的周期和极性、计数器回绕点、消隐期数据使能拉低;再用一个监视模块统计一行和一帧的拍数,自动比对参数表。
复用 IP 还要写一份像样的文档,至少包含:支持的参数组合表、时序图、接口协议、资源和最高频率的实测数字、已知限制。这些内容看起来枯燥,但半年后你自己复用它时,省下的重新理解时间远超写文档的投入。求职作品集里,一个带文档、带 testbench、参数化、在两块不同板卡和两种分辨率上验证过的显示核,含金量远高于五段彼此复制的例程代码。复用能力本身就是 FPGA 工程成熟度的标志:初学者每次从零开始,成熟工程师的项目是在自己的 IP 库上搭出来的,而显示核因为边界清晰、反馈直观,正是开始建设个人 IP 库最合适的第一个组件。
五、常见坑对照
| 坑 | 现象 | 建议 |
|---|---|---|
| 像素时钟不准/没出来 | no signal、滚屏 | PLL 出 25.175MHz |
| 800/525 或参数错 | 扭曲不同步 | 严格按参数表 |
| 前后沿/起点算错 | 画面左右偏移 | 对齐同步区间 |
| 消隐期不拉黑 | 回扫线、发灰 | de 外 RGB=0 |
| 同步极性反 | 部分显示器不稳 | 用负脉冲 |
| 管脚/电平错 | 黑屏 | 查原理图(入门 43) |
| 直接上复杂图 | 难定位 | 先 640×480 彩条 |
相关与延伸
计数器/时钟:计数器与分频、PLL/MMCM 向导。 硬件/存储:开发板外设地图、BRAM vs 分布式 RAM;高速视频接口(HDMI/LVDS)见进阶 LVDS 源同步。
一句话总结
VGA 是纯时序产生的最佳入门:FPGA 只要按像素节拍输出 R/G/B(电阻网络做简易 DAC)和 HSYNC/VSYNC,显示器就按逐行逐帧光栅扫描显示。每行每帧都由“可见区+前沿+同步脉冲+后沿”组成,经典 640×480@60 用 25.175MHz 像素时钟,一行 800(640+16+96+48)、一帧 525(480+10+2+33),同步为负脉冲;更高分辨率只改参数表但需 PLL 倍频出更高像素时钟。实现就是两个嵌套计数器:hcnt 像素时钟驱动数到 799、行末让 vcnt 数到 524,组合比较出 hsync/vsync 和可见使能 de,可见区把 hcnt/vcnt 当像素坐标 (x,y) 直接生成彩条/棋盘格或读 BRAM 显存,消隐区必须把 RGB 拉黑。常见故障:无信号查像素时钟和管脚、滚屏扭曲查时钟与 800/525 参数、画面偏移查前后沿、回扫线查消隐拉黑、同步不稳查极性。先用 640×480 彩条验证通路再上真实图像。
上一篇:47 FIR 滤波器入门(抽头延迟线/乘加/DSP48) | 下一篇:49 SPI 读取 ADC 入门(CPOL/CPHA/主控状态机) | FPGA 系列目录