Terasic で TFT LCD 7 インチ画面の VHDL コードを書いていますが、データシートに示されているタイミング仕様を理解するのに苦労しています。
- マニュアルの 17 ページ、表 3-1 (ダウンロードリンク)
- 15 ページ、データシートのセクション 8.3 (dropbox-link)
私のオフィスのコンピュータで、同じ 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 などの他のタイプの画面用のモジュールは、はるかに単純です。
上司は、この作業に 1 か月間取り組んでいるため、この作業を強く求めています。ここの誰かがこれらの時間パラメータの適切な定義を持っているなら、私はもっと幸せになるでしょう:)