21.07.2013 Aufrufe

DIPLOMARBEIT - FG Mikroelektronik, TU Berlin

DIPLOMARBEIT - FG Mikroelektronik, TU Berlin

DIPLOMARBEIT - FG Mikroelektronik, TU Berlin

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Abbildung 62: Speedchart-Diagramm VIDEO/RELOAD/RL RAM/NEWL REL<br />

NEWL_REL<br />

entry<br />

T1<br />

S1<br />

T2<br />

S2<br />

T4<br />

A: -- 1st cycle of newline reload<br />

A: -- 2nd cycle<br />

A: -- 3rd cycle<br />

RAS_itv:="1111";<br />

CAS_itv:="1111";<br />

RAS_itv:="1110";<br />

RCA_itv:=DPYNEXTV(11 downto 0);<br />

MWE_itv:=’1’;<br />

-- calculate # of reloads necessary in next line<br />

-- calculate HCOUNT value for start of<br />

MOE_itv:=’0’;<br />

-- CALC_NRL: SRE=’0’: number of non-split reloads<br />

-- MLRAT6 and MLRAT10 midl. rel. attention signals<br />

MSF_itv:=’0’;<br />

-- SRE=’1’: # of split low half SR rel.<br />

-- CALC_NRH: SRE=’0’: no function<br />

-- and MLRAT5 midline reload start signal<br />

-- and calculation of SUM_TAP_ELL<br />

-- SRE=’1’: # of split high half SR rel.<br />

if HC_MEN5=’1’ then<br />

-- and calculation of TAPCNT (TAP position)<br />

if HC_MLR>=5 then<br />

if SUM_TE_A=’1’ then<br />

HC_MLR5:=HC_MLR-5;<br />

case SRL is<br />

CALC_NRL:=(CALC_ELL_SFT + 1) mod 256;<br />

else<br />

when "00" => -- SRL: 256 words<br />

else<br />

HC_MLR5:=(HC_MLR+HTOTAL-4) mod 65536;<br />

RCA_itv:=DPYNEXTV(19 downto 8);<br />

CALC_NRL:=CALC_ELL_SFT;<br />

end if;<br />

ROWCNT:=(DPYNEXT shr 8) mod 4096;<br />

TAPCNT:=(DPYNEXT mod 256) + 0x700;<br />

end if;<br />

end if;<br />

SUM_TAP_ELL:=(DPYNEXT mod 256) + (CALC_ELL mod 256);<br />

CALC_NRH:=(CALC_ELL_SFT + 1) mod 256<br />

if HC_MEN6=’1’ then<br />

when SUM_TE_A=’1’ and SUM_TE_B=’1’<br />

if HC_MLR>=11 then<br />

when "01" => -- SRL: 512 words<br />

else (CALC_ELL_SFT - 1)<br />

HC_MLR6:=HC_MLR-11;<br />

RCA_itv:=DPYNEXTV(20 downto 9);<br />

when SUM_TE_A=’0’ and SUM_TE_B=’0’<br />

else<br />

ROWCNT:=(DPYNEXT shr 9) mod 4096;<br />

and CALC_ELL_SFT/=0<br />

HC_MLR6:=(HC_MLR+HTOTAL-10) mod 65536;<br />

TAPCNT:=(DPYNEXT mod 512) + 0x600;<br />

else CALC_ELL_SFT;<br />

end if;<br />

SUM_TAP_ELL:=(DPYNEXT mod 512) + (CALC_ELL mod 512);<br />

-- calculate HCOUNT value at point of midline reload<br />

end if;<br />

when "10" => -- SRL: 1024 words<br />

if HC_MEN10=’1’ then<br />

RCA_itv:=DPYNEXTV(21 downto 10);<br />

case MSC_SFT is<br />

if HC_MLR>=15 then<br />

ROWCNT:=(DPYNEXT shr 10) mod 4096;<br />

when 0 => HC_MLR:=(HEBLNK+(0x800-TAPCNT)) mod 65536;<br />

HC_MLR10:=HC_MLR-15;<br />

TAPCNT:=(DPYNEXT mod 1024) + 0x400;<br />

when 1 => HC_MLR:=(HEBLNK+(0x800-TAPCNT) shl 1) mod 65536;<br />

else<br />

SUM_TAP_ELL:=(DPYNEXT mod 1024) + (CALC_ELL mod 1024);<br />

when 2 => HC_MLR:=(HEBLNK+(0x800-TAPCNT) shl 2) mod 65536;<br />

HC_MLR10:=(HC_MLR+HTOTAL-14) mod 65536;<br />

when 3 => HC_MLR:=(HEBLNK+(0x800-TAPCNT) shl 3) mod 65536;<br />

end if;<br />

when "11" => -- SRL: 2048 words<br />

when 4 => HC_MLR:=(HEBLNK+(0x800-TAPCNT) shl 4) mod 65536;<br />

end if;<br />

RCA_itv:=DPYNEXTV(22 downto 11);<br />

when 5 => HC_MLR:=(HEBLNK+(0x800-TAPCNT) shl 5) mod 65536;<br />

ROWCNT:=(DPYNEXT shr 11) mod 4096;<br />

TAPCNT:=DPYNEXT mod 2048;<br />

end case;<br />

SUM_TAP_ELL:=(DPYNEXT mod 2048) + (CALC_ELL mod 2048);<br />

-- determine if HCOUNT has to be regarded to<br />

end case;<br />

-- generate midline reload attention signals<br />

-- disable HC_MLR6 and HC_MLR10 signals<br />

case MSC_SFT is<br />

when 0 => if TAPCNT>0x7FB then -- 0x800 -5<br />

HC_MEN5 :=’0’;<br />

HC_MEN5:=’1’;<br />

HC_MEN6 :=’0’;<br />

end if;<br />

HC_MEN10:=’0’;<br />

if TAPCNT>0x7F5 then -- 0x800 -11 (5+6)<br />

HC_MEN6:=’1’;<br />

end if;<br />

if TAPCNT>0x7F1 then -- 0x800 -15 (5+10)<br />

HC_MEN10:=’1’;<br />

end if;<br />

when 1 => if TAPCNT>0x7FD then -- 0x800 -(5/2 up)<br />

HC_MEN5:=’1’;<br />

end if;<br />

if TAPCNT>0x7FA then -- 0x800 -(11/2 up)<br />

HC_MEN6:=’1’;<br />

end if;<br />

if TAPCNT>0x7F8 then -- 0x800 -(15/2 up)<br />

HC_MEN10:=’1’;<br />

end if;<br />

when 2 => if TAPCNT=0x7FF then -- 0x800 -(5/4 up)<br />

HC_MEN5:=’1’;<br />

end if;<br />

if TAPCNT>0x7FD then -- 0x800 -(11/4 up)<br />

HC_MEN6:=’1’;<br />

end if;<br />

if TAPCNT>0x7FC then -- 0x800 -(15/4 up)<br />

HC_MEN10:=’1’;<br />

end if;<br />

when 3 => if TAPCNT=0x7FF then -- 0x800 -(11/8 up)<br />

HC_MEN6:=’1’;<br />

HC_MEN10:=’1’; -- 0x800 -(15/8 up)<br />

end if;<br />

end case;<br />

T6<br />

T7<br />

T3<br />

T5<br />

S3<br />

S4<br />

S5<br />

S6<br />

exit<br />

A: -- 4th cycle<br />

CAS_itv:="0000";<br />

A: -- 5th cycle<br />

RCA_itv:=0xFFF;<br />

MOE_itv:=’1’;<br />

A: -- 6th cycle<br />

RAS_itv:="1111";<br />

CAS_itv:="1111";<br />

MSC_reload:=’0’; -- MSC low pulse<br />

-- after newline reload<br />

A: MSC_reload:=’1’;<br />

Technische Universität <strong>Berlin</strong><br />

Institut für <strong>Mikroelektronik</strong><br />

Lukas Bauer<br />

Diplomarbeit<br />

Hochleistungs-Grafikprozessor in Speedchart-VHDL<br />

Anhang C.2<br />

Seite 95

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!