我正在为TFT液晶7“屏编写VHDL代码,我很难理解数据表中提供的时序规范
我在办公室的一台电脑上发现,同一个液晶屏幕上有一个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设置/保持时间 水平/垂直脉宽
另外,您是否知道为什么会有2种操作模式(DE/SYNC)?我什么时候该用每一个?其他类型的屏幕(如VGA )的模块要简单得多。
我的老板在这个任务上给我很大的压力,因为我已经忙了一个月了。如果这里的人对这些时间参数有一个很好的定义,我会非常高兴的:)
发布于 2015-08-25 20:19:36
发布于 2015-08-20 11:54:17
HSYNC或水平同步信号是单个短脉冲,指示每一行的开始。同样,VSYNC或垂直同步信号是单个短脉冲,它指示每个帧的开始。
脉宽是指每个信号处于逻辑高状态的时间。在您的示例中,HSYNC逻辑较高,从13 is到523 is。这意味着510 is是HSYNC的脉宽。
https://stackoverflow.com/questions/32111813
复制相似问题