我正在为terasic 的 TFT LCD 7" 屏幕编写 VHDL 代码,但我很难理解数据表中提供的时序规范
- 第 17 页,手册中的表 3-1(下载链接)
- 第 15 页,数据表中的第 8.3 节(保管箱链接)
我在我办公室的一台电脑上发现了同一个 LCD 屏幕的 VHDL 代码,而编写它的人不可用。最有趣但尚未完全清楚他编写的代码的部分如下:
process(Reset,clk_33)
begin
if Reset = '0' then
H_count <= 0;
V_count <= 0;
DE <= '0';
LCD_fin <= '0';
R<=(others=>'0');
G<=(others=>'0');
B<=(others=>'0');
elsif rising_edge(clk_33) then
H_count <= H_count + 1; -- Horizantal pixels count
case V_count is -- Vertical row
when 0 to 12 => V_sync <= '0'; LCD_fin <= '0'; -- Vertical pulse width
when 13 to 22 => V_sync <= '1'; -- Vertical back porch
when 23 to 502 => V_sync <= '1'; -- Vertical valid
when 503 to 523 => V_sync <= '1'; LCD_fin <= '1'; -- Vertical front porch
when 524 => V_count <= 0;
end case;
case H_count is -- Horizontal column
when 0 to 29 => H_sync <= '0'; -- Horizontal pulse width
when 30 to 45 => H_sync <= '1'; -- Horizontal back porch
when 46 to 845 => H_sync <= '1'; DE<='1'; -- Horizontal valid
when 846 to 1054 => H_sync <= '1'; DE<='0';-- Horizontal front porch
when 1055 => H_count <= 0; V_count <= V_count + 1;
end case;
我知道 VHDL 非常好,但我似乎无法为这些项目找到一个很好的解释:
HSYNC/VSYNC 建立/保持时间[ns]
水平/垂直脉冲宽度
另外,您知道为什么会有 2 种操作模式(DE/SYNC)吗?我应该什么时候使用每一个?VGA 等其他类型屏幕的模块要简单得多。
我的老板正在努力推动我完成这项任务,因为我已经为此工作了一个月。如果这里有人对这些时间参数有一个很好的定义,我会非常高兴:)