X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=dide_16.git;a=blobdiff_plain;f=bsp3%2FAngabe%2Fvga_control_arc.vhd;h=0b33ff935e325f8197c80cf4fe2b43b66aa4b9ec;hp=0c4425b2e4d4ed6eae21ea1fa448f18611263741;hb=5094f38dc303ffb483f21916399e293a56c5ac99;hpb=dad9d820049346615ca141552fec5a4918121286 diff --git a/bsp3/Angabe/vga_control_arc.vhd b/bsp3/Angabe/vga_control_arc.vhd index 0c4425b..0b33ff9 100644 --- a/bsp3/Angabe/vga_control_arc.vhd +++ b/bsp3/Angabe/vga_control_arc.vhd @@ -40,12 +40,46 @@ architecture behav of vga_control is attribute syn_preserve of behav : architecture is true; - -begin - + DRAW_SQUARE_syn: process(clk, reset) + begin + if (reset = RES_ACT) then -- draw black screen upon reset r <= COLR_OFF; g <= COLR_OFF; b <= COLR_OFF; + elsif (clk'event and clk = '1') then -- synchronous capture + r <= r_next; + g <= g_next; + b <= b_next; + end if; + end process; + + + DRAW_SQUARE_next: process (column_counter, v_enable, h_enable) + begin + if v_enable = ENABLE and h_enable = ENABLE then + if (column_counter >= X_MIN and column_counter < X2_MIN) -- if pixel within the rectangle borders + r_next <= COLR_OFF; + g_next <= COLR_OFF; + b_next <= COLR_ON; + elsif (column_counter >= X2_MIN and column_counter < X3_MIN) -- if pixel within the rectangle borders + r_next <= COLR_OFF; + g_next <= COLR_ON; + b_next <= COLR_ON; + elsif (column_counter >= X3_MIN and column_counter < X_MAX) -- if pixel within the rectangle borders + r_next <= COLR_ON; + g_next <= COLR_OFF; + b_next <= COLR_ON; + else -- if somewhere else on screen... + r_next <= COLR_OFF; + g_next <= COLR_OFF; -- ... draw background color + b_next <= COLR_OFF; + end if; + else -- if out of screen... + r_next <= COLR_OFF; + g_next <= COLR_OFF; -- ... do not activate any color + b_next <= COLR_OFF; -- (black screen) + end if; + end process; end behav;