kopia lustrzana https://github.com/hoglet67/RGBtoHDMI
CPLD: Align quad timing back to cycle 0 as before
Change-Id: I0dd0504670f8e79f8139bc5f38bd7f8af52b8950pull/56/head
rodzic
a58cd27837
commit
55e5d8f683
|
@ -281,15 +281,18 @@ begin
|
||||||
end if;
|
end if;
|
||||||
|
|
||||||
-- Pipeline when to update the quad
|
-- Pipeline when to update the quad
|
||||||
if counter(counter'left) = '0' and (
|
|
||||||
(rate = "00" and counter(4 downto 0) = 0) or -- normal
|
|
||||||
(rate = "01" and counter(3 downto 0) = 0) or -- double
|
|
||||||
(rate = "10" and counter(5 downto 0) = 0) or -- subsample even
|
|
||||||
(rate = "11" and counter(5 downto 0) = 32)) then -- subsample odd
|
|
||||||
-- toggle is asserted in cycle 1
|
|
||||||
toggle <= '1';
|
|
||||||
else
|
|
||||||
toggle <= '0';
|
toggle <= '0';
|
||||||
|
if counter(counter'left) = '0' then
|
||||||
|
-- toggle changes at the start of cycle 0
|
||||||
|
if (mode7 = '0' and counter(2 downto 0) = 5) or (mode7 = '1' and counter(2 downto 0) = 7) then
|
||||||
|
if rate = "00" and counter(4 downto 3) = "11" then
|
||||||
|
toggle <= '1'; -- normal
|
||||||
|
elsif rate = "01" and counter(3) = '1' then
|
||||||
|
toggle <= '1'; -- double
|
||||||
|
elsif counter(5) /= rate(0) and counter(4 downto 3) = "11" then
|
||||||
|
toggle <= '1'; -- subsample
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
end if;
|
end if;
|
||||||
|
|
||||||
-- Output quad register
|
-- Output quad register
|
||||||
|
@ -298,7 +301,7 @@ begin
|
||||||
elsif counter(counter'left) = '1' then
|
elsif counter(counter'left) = '1' then
|
||||||
quad <= (others => '0');
|
quad <= (others => '0');
|
||||||
elsif toggle = '1' then
|
elsif toggle = '1' then
|
||||||
-- quad changes at the start of cycle 2
|
-- quad changes at the start of cycle 1
|
||||||
quad(11) <= shift_B(3);
|
quad(11) <= shift_B(3);
|
||||||
quad(10) <= shift_G(3);
|
quad(10) <= shift_G(3);
|
||||||
quad(9) <= shift_R(3);
|
quad(9) <= shift_R(3);
|
||||||
|
@ -316,7 +319,7 @@ begin
|
||||||
-- Output a skewed version of psync
|
-- Output a skewed version of psync
|
||||||
if version = '0' or counter(counter'left) = '1' then
|
if version = '0' or counter(counter'left) = '1' then
|
||||||
psync <= '0';
|
psync <= '0';
|
||||||
elsif counter(3 downto 0) = 3 then -- comparing with N gives N-1 cycles of skew
|
elsif counter(3 downto 0) = 2 then -- compare with N gives a skew of N
|
||||||
if rate = "00" then
|
if rate = "00" then
|
||||||
psync <= counter(5); -- normal
|
psync <= counter(5); -- normal
|
||||||
elsif rate = "01" then
|
elsif rate = "01" then
|
||||||
|
|
|
@ -488,3 +488,14 @@ FB3 18/18* 28/54 64/90 9/ 9*
|
||||||
FB4 18/18* 33/54 81/90 5/ 7
|
FB4 18/18* 33/54 81/90 5/ 7
|
||||||
----- ----- ----- -----
|
----- ----- ----- -----
|
||||||
71/72 118/216 232/360 29/34
|
71/72 118/216 232/360 29/34
|
||||||
|
|
||||||
|
44. Align quad timing back to cycle 0 as before
|
||||||
|
|
||||||
|
Function Mcells FB Inps Pterms IO
|
||||||
|
Block Used/Tot Used/Tot Used/Tot Used/Tot
|
||||||
|
FB1 18/18* 38/54 54/90 7/ 9
|
||||||
|
FB2 18/18* 23/54 36/90 8/ 9
|
||||||
|
FB3 18/18* 28/54 64/90 9/ 9*
|
||||||
|
FB4 17/18 33/54 82/90 5/ 7
|
||||||
|
----- ----- ----- -----
|
||||||
|
71/72 122/216 236/360 29/34
|
||||||
|
|
Ładowanie…
Reference in New Issue